新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 按鍵控制流水燈程序

        按鍵控制流水燈程序

        作者: 時間:2016-11-29 來源:網絡 收藏
        最近有很多學弟來問我流水燈該怎么做,程序怎么寫,現在在這里統一說下,很多時候沒有時間讓你們白跑一趟了,O(∩_∩)O~。
        首先就說到單片機了,單片機對于你們來說是個新概念,可能以前都沒聽說過。我想說的是它不是傳統意義上的集成電路,只能按照特定的焊接來能工作,而是一塊類似電腦CPU的芯片,對于一塊正常的單片機,只要你提供合適的工作電源(4V都5.5V左右)、復位電路 、起振電路它就可以工作了。所有的輸入輸出口(以P開頭的)都是可以靈活配置的,可以根據你焊接的硬件電路寫程序,也可以根據你寫的程序焊接硬件電路。所以沒有必要死板硬套。前天沒事寫了一下,仿真了一下還可以用。源碼貼于下方供入門者參考,高手勿嘲笑,大家都是從流水燈程序寫起的 (*^__^*) 嘻嘻……
        再就是我的51開發板不知道是誰借走了,很久沒有用過51單片機了,所以下載程序的事就不要來找我了。我把編譯過后的代碼也貼在下面,如果硬件和我做的一樣的同學又不會寫程序的就直接復制下面編譯過后的代碼,在電腦上新建一個文本文檔(.txt)命名任意,將復制后的代碼粘貼于記事本上,然后重命名,將".txt"改為“.hex”,保存,然后通過下載器下載到單片機里面去就可以用了。
        不會的多去http://www.51hei.com看一下教程。以下僅供參考,不得一味模仿
        /***************************************************************************************************************
        源碼:
        51單片機
        晶振頻率12Mhz
        八位數碼管采用共陽極接法(所有陽極接一起接Vcc,陰極接P0口)
        按鍵分別接P2.0 P2.1 P2.2(低電平有效)
        編譯軟件采用keil 4
        *******************************************************************************************************************************************************/
        #include
        #define uint unsigned int
        #define uchar unsigned char
        sbit key1 =P2^0; //按鍵1
        sbit key2 =P2^1; //按鍵2
        sbit key3 =P2^2; //按鍵3
        uchar flag1=0,flag2=0,flag3=0;
        void delay_ms(uint z)
        {
        uint i,j;
        for(i=0;i for(j=0;j<110;j++);
        }
        void O_to_E() //1,3,5,7與2,4,6,8交替閃爍
        {
        P0=0Xaa;
        delay_ms(200);
        P0=~0Xaa;
        delay_ms(200);
        }
        void key_scan() //鍵盤掃描
        {
        if(!key1)
        {
        delay_ms(10); //延時消抖
        if(!key1)
        flag1=1;
        }
        if(!key2)
        {
        delay_ms(10); //延時消抖
        if(!key2)
        flag2=1;
        }
        if(!key3)
        {
        delay_ms(10); //延時消抖
        if(!key3)
        flag3=1;
        }
        }
        void main()
        {
        uchar i;
        while(1)
        {
        key_scan();
        if(flag1) //按鍵一按下?
        {
        for(i=0;i<8;i++) //從左至右亮,每次一盞
        {
        P0=~(0x80>>i);
        delay_ms(100);
        key_scan(); //按鍵掃描
        if(flag2||flag3){flag1=0;break;} //如果有其它按鍵按下響應其它按鍵
        }
        }
        if(flag2) //按鍵一按下?
        {
        for(i=0;i<8;i++) //從右至左亮,每次一盞
        {
        P0=~(0x01< delay_ms(100);
        key_scan();
        if(flag1||flag3){flag2=0;break;}
        }
        }
        if(flag3)
        {
        O_to_E(); //奇偶交替閃爍
        key_scan();
        if(flag1||flag2)flag3=0;
        }
        }
        }
        /***********************************************************************************************************************
        編譯過后的文件
        注意:復制下面的代碼(注意不要包含本句,注意不要改變格式)
        :09015700010800010900010A0081
        :040123007F0A7E00D1
        :10012700E4FDFCC3ED9FEC9E5015E4FBFA0BBB000E
        :0F013700010AEB646E4A70F50DBD00010C80E407
        :010146002296
        :100147007580AA7FC87E0012012775805502012796
        :0A00F400F4F5807F647E00120127FE
        :1000FE0020A00912012320A00375080120A10912D6
        :10010E00012320A10375090120A20912012320A2B7
        :05011E0003750A012237
        :10008F001200FE1200FEE5086021E4F97480A80159
        :10009F00088002C313D8FC1200F4E5097004E50AC6
        :1000AF006005E4F508800409B908E1E509601FE47B
        :1000BF00F97401A801088002C333D8FC1200F4E5DB
        :1000CF00087004E50A6003E4F50909B908E3E50AD5
        :1000DF0060B11201471200FEE5087004E50960A344
        :0500EF00E4F50A809E0B
        :03000000020003F8
        :0C000300787FE4F6D8FD75810A02004AFF
        :10000F0002008FE493A3F8E493A34003F68001F278
        :10001F0008DFF48029E493A3F85407240CC8C333F2
        :10002F00C4540F4420C8834004F456800146F6DFC1
        :10003F00E4800B0102040810204080900157E47EF9
        :10004F00019360BCA3FF543F30E509541FFEE493B6
        :10005F00A360010ECF54C025E060A840B8E493A37D
        :10006F00FAE493A3F8E493A3C8C582C8CAC583CAA8
        :10007F00F0A3C8C582C8CAC583CADFE9DEE780BE60
        :01016000009E
        :00000001FF
        結束(注意不要包含本句及上面的※號,注意不要改變格式!)


        關鍵詞: 按鍵控制流水

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 郓城县| 抚松县| 博乐市| 吴旗县| 韶山市| 睢宁县| 鄂托克前旗| 西贡区| 辰溪县| 林口县| 禹城市| 西和县| 成安县| 寿光市| 永川市| 华容县| 比如县| 马尔康县| 鹤庆县| 福贡县| 常宁市| 衡阳市| 枣庄市| 土默特左旗| 嵊州市| 来安县| 栾城县| 孟村| 湘潭县| 五寨县| 乐山市| 大洼县| 合作市| 来宾市| 承德市| 三原县| 临汾市| 德惠市| 贵定县| 阿克陶县| 红安县|