久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4241|回復: 16
打印 上一主題 下一主題
收起左側

用C51單片機怎么做流水燈

  [復制鏈接]
跳轉到指定樓層
樓主
ID:237658 發表于 2017-10-7 16:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
用C51單片機怎么做流水燈
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:216625 發表于 2017-10-7 18:53 | 只看該作者
借花獻佛
/**************************************************************************************
*                              LED流水燈實驗                                                                                                  *
實現現象:下載程序后LED呈現流水燈效果進行左移右移滾動
注意事項:無
***************************************************************************************/

#include "reg52.h"                         //此文件中定義了單片機的一些特殊功能寄存器
#include<intrins.h>                //因為要用到左右移函數,所以加入這個頭文件

typedef unsigned int u16;          //對數據類型進行聲明定義
typedef unsigned char u8;

#define led P0           //將P0口定義為led 后面就可以使用led代替P0口

/*******************************************************************************
* 函 數 名         : delay
* 函數功能                   : 延時函數,i=1時,大約延時10us
*******************************************************************************/
void delay(u16 i)
{
        while(i--);
}

/*******************************************************************************
* 函 數 名       : main
* 函數功能                 : 主函數
* 輸    入       : 無
* 輸    出             : 無
*******************************************************************************/
void main()
{
        u8 i;
        led=0x01;
        delay(50000); //大約延時450ms
        while(1)
        {
/*                for(i=0;i<8;i++)
                {
                        P0=(0x01<<i);         //將1右移i位,然后將結果賦值到P0口
                        delay(50000); //大約延時450ms
                }
*/

                for(i=0;i<7;i++)         //將led左移一位
                {
                        led=_crol_(led,1);
                        delay(50000); //大約延時450ms
                }
                for(i=0;i<7;i++)        //將led右移一位
                {
                        led=_cror_(led,1);
                        delay(50000); //大約延時450ms
                }
        }
}

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:237676 發表于 2017-10-7 19:22 | 只看該作者
去百度文庫找教程,或者看郭天祥的《新概念51單片機》入門,用proteus仿真或者淘寶買一塊片子。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:217803 發表于 2017-10-7 20:07 | 只看該作者
網上一搜一大堆例程
回復

使用道具 舉報

5#
ID:237459 發表于 2017-10-7 20:36 | 只看該作者
很簡單,STC-ISP下載軟件同時也提供了很多資料,打開軟件,跳到     范例程序---》選擇相應的單片機
如果你是新手,不知道軟件在哪里下,可以打開這個鏈接www點gxwmcu點com    (這是STC官網)
然后跳到    STC-ISP下載編程燒錄軟件,下載軟件就可以了
回復

使用道具 舉報

6#
ID:237714 發表于 2017-10-7 22:03 | 只看該作者
是用單片機嘛?就用循環就可以了
回復

使用道具 舉報

7#
ID:111634 發表于 2017-10-7 22:20 | 只看該作者
網上一大堆,自己去搜。
回復

使用道具 舉報

8#
ID:237722 發表于 2017-10-7 22:36 | 只看該作者
/************************************
*實驗名:流水燈
*實驗效果:流水燈(循環移位)
*************************************/
#include<reg52.h>
#include<intrins.h>
#include"delay.h"
void main()
{
        P1 = 0xfe;//1111 1110
        while(1)
        {
                delay(500);
                P1 =_crol_(P1,1);/*將P1循環左移1位*/
        }
}

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

9#
ID:237722 發表于 2017-10-7 22:36 | 只看該作者
www點yahboom點com/build.html?id=111&cid=33
請看這里

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

10#
ID:237414 發表于 2017-10-7 23:39 | 只看該作者
流水燈

流水燈.rar

13.19 KB, 下載次數: 3

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

11#
ID:237747 發表于 2017-10-8 09:21 | 只看該作者
* 實 驗 名                 : 流水燈實驗
* 實驗說明       : 延時實現LED流水燈效果P2口八個燈作跑馬燈。采用了寄存器存中間數
* 連接方式       : 見接線圖
* 注    意                 :
*******************************************************************************/

//--包含你要使用的頭文件
#include <reg52.h>          //此文件中定義了51的一些特殊功能寄存器
#include <intrins.h>

//--聲明全局函數--//
void Delay10ms(unsigned int c);   //延時10ms            

/*******************************************************************************
* 函 數 名         : main
* 函數功能                   : 主函數
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/

main()
{
        unsigned char LED;

        LED = ~0xfe;          //0xfe = 1111 1110

        while (1)
        {
             P0 = LED;
                 Delay10ms(50);
                 LED = LED << 1;    //循環右移1位,點亮下一個LED "<<"為左移位
                  if (P0 == 0x00)        //當它全滅的時候,重新賦值
                 {
                         LED = 0xfe;          // 0xfe = 1111 1110
                 }
                                     
        }
}

/*******************************************************************************
* 函 數 名         : Delay10ms
* 函數功能                   : 延時函數,延時10ms
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/

void Delay10ms(unsigned int c)   //誤差 0us
{
    unsigned char a, b;

        //--c已經在傳遞過來的時候已經賦值了,所以在for語句第一句就不用賦值了--//
    for (;c>0;c--)
        {
                for (b=38;b>0;b--)
                {
                        for (a=130;a>0;a--);
                }
           
        }      
}



回復

使用道具 舉報

12#
ID:237808 發表于 2017-10-8 15:18 | 只看該作者
百度一下,你就知道
回復

使用道具 舉報

13#
ID:237826 發表于 2017-10-8 16:23 | 只看該作者
/**************************************************************************************
*                              LED閃爍的簡單試驗                                                                                                  *
*                延時實現p2口LED流水燈效果 (用循環移位指令)                                       *
*        連接方法: JP11(P2)和JP1(LED燈) 用8PIN排線連接起來                                                          *
*                                                                                                                                                                          *
***************************************************************************************/
#include <reg51.h>            //此文件中定義了51的一些特殊功能寄存器
#include <intrins.h>

void delayms(unsigned char ms)       
// 延時子程序
{                                               
        unsigned char i;
        while(ms--)
        {
                for(i = 0; i < 120; i++);
        }
}


main()
{
        unsigned char LED;
        LED = 0xfe;          //0xfe = 1111 1110
        while(1)
        {
             P2 = LED;
                 delayms(250);
                 LED = LED << 1;    //循環右移1位,點亮下一個LED "<<"為左移位
                  if(P2 == 0x00 )         {LED = 0xfe;  } // 0xfe = 1111 1110
                    
                 
        }
}





回復

使用道具 舉報

14#
ID:232501 發表于 2017-10-8 19:13 | 只看該作者
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
uint a,b,c;
void main()
{               
                P1=0xff;                                          //左到右
                P1=0xfe;
                for(a=0;a<20000;a++);
                b=7;
                while(b--)
                {       
                        P1=_cror_(P1,1);
                        for(a=0;a<20000;a++);
                }
                P1=0xff;
                P3=0xfe;
                for(a=0;a<20000;a++);
                b=7;
                while(b--)
                {
                        P3=_cror_(P3,1);
                        for(a=0;a<20000;a++);
                }
                P3=0xff;
                P2=0xfe;
                for(a=0;a<20000;a++);
                b=7;
                while(b--)
                {
                        P2=_cror_(P2,1);
                        for(a=0;a<20000;a++);
                }
                P2=0xff;
                P0=0x7f;
                for(a=0;a<20000;a++);
                b=7;
                while(b--)
                {
                        P0=_cror_(P0,1);
                        for(a=0;a<20000;a++);
                }                                                              //
                         //
            P0=0xff;                                         //全亮全滅
                P2=0xff;
                P3=0xff;
                P1=0xff;
                for(a=0;a<20000;a++);
                P0=0x00;
                for(a=0;a<20000;a++);
                P2=0x00;
                for(a=0;a<20000;a++);
                P3=0x00;
                for(a=0;a<20000;a++);
                P1=0x00;
                for(a=0;a<20000;a++);               
                                               
            P0=0xfe;                                    //從右向左追趕
                for(a=0;a<10000;a++);
                b=7;
                while(b--)
                {
                        P0=_crol_(P0,1);
                        for(a=0;a<10000;a++);
                }
                P0=0xff;
                P2=0x7f;
                for(a=0;a<10000;a++);
                b=7;
                while(b--)
                {
                        P2=_crol_(P2,1);
                        for(a=0;a<10000;a++);
                }
                P2=0xff;
                P3=0x7f;
                for(a=0;a<10000;a++);
                b=7;
                while(b--)
                {
                        P3=_crol_(P3,1);
                        for(a=0;a<10000;a++);
                }
                P3=0xff;
                P1=0x7f;
                for(a=0;a<10000;a++);
                b=7;
                while(b--)
                {
                        P1=_crol_(P1,1);
                        for(a=0;a<10000;a++);
                }                       
                P0=0xfe;                                         //上收放,下收放
                P1=0xfe;
                b=7;               
                while(b--)
                {
                        P0=_crol_(P0,1);
                        P1=_cror_(P1,1);
                        for(a=0;a<10000;a++);
                }
                P0=0xff;
                P1=0xff;
                P2=0x7f;
                P3=0xfe;
                b=7;               
                while(b--)
                {
                        P2=_cror_(P2,1);
                        P3=_crol_(P3,1);
                        for(a=0;a<10000;a++);
                }
                P2=0xff;
                P3=0xff;
                P2=0xfe;
                P3=0x7f;
                b=7;               
                while(b--)
                {
                        P2=_crol_(P2,1);
                        P3=_cror_(P3,1);
                        for(a=0;a<10000;a++);
                }                                          //
                P2=0xff;
                P3=0xff;
                P0=0x7f;
                P1=0x7f;
                b=7;               
                while(b--)
                {
                        P0=_crol_(P0,1);
                        P1=_cror_(P1,1);
                        for(a=0;a<10000;a++);
                }
                P0=0xff;
                P1=0xff;                                                    //
}
回復

使用道具 舉報

15#
ID:237867 發表于 2017-10-8 20:08 | 只看該作者
簡單的程序設計,網上有教程
回復

使用道具 舉報

16#
ID:478073 發表于 2019-2-25 03:37 | 只看該作者
壇子里一大堆例程
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久综合网 | 国产成人免费在线观看 | 伊人免费在线观看高清 | 亚洲精品欧洲 | 围产精品久久久久久久 | 亚洲人成人一区二区在线观看 | 在线成人免费视频 | 色婷婷久久久久swag精品 | 亚洲一二三区精品 | 欧美性极品xxxx做受 | 久久国产精品-国产精品 | 激情五月综合 | 中文在线一区二区 | 国产精品视频一区二区三区四区国 | 999久久久 | 天天操夜夜操免费视频 | 欧美日韩在线免费观看 | 国产精品自产拍 | 久草热线 | 国产在线视频一区 | 蜜桃在线一区二区三区 | 国产精品精品 | 亚洲日本三级 | 国产91亚洲精品一区二区三区 | 欧美日韩久久精品 | 国产在线一区二区 | 国产精品v | 在线视频91 | 污视频在线免费观看 | 欧美日韩国产精品一区 | 夜夜草视频| 国产精品综合网 | 亚洲欧美日韩中文字幕一区二区三区 | 黄色毛片免费看 | 国产欧美日韩一区二区三区在线观看 | 精品一二区 | 日日夜夜天天干 | 成人久久网 | 精品一区久久 | 亚洲一区在线播放 | 黄色网址在线播放 |