![]() |
發(fā)布時間: 2017-6-25 13:32
正文摘要:單片機控制兩個74HC595驅(qū)動16個LED燈,我要從第一個燈開始亮,到全部一起亮,然后所有燈常亮,不循環(huán),程序要怎么寫? |
受教了 |
本帖最后由 zl2168 于 2017-6-27 19:32 編輯 實例44 74HC595串入并出控制8/16循環(huán)燈 ![]() ![]() 先Proteus仿真一下,確認(rèn)有效。 以上摘自張志良編著《80C51單片機仿真設(shè)計實例教程——基于Keil C和Proteus》清華大學(xué)出版社ISBN 978-7-302-41682-1,內(nèi)有常用的單片機應(yīng)用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行。書中電路和程序設(shè)計有詳細(xì)說明,程序語句條條有注解。仿真電路和Hex文件能在清華出版社網(wǎng)站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網(wǎng)上書店打折購買。 |
我專門為你做的程序。 /* AT89C52、共陽LED */ #include<reg51.h> #include<INTRINS.H> sbit SER=P2^0;//14腳 sbit RCLK=P2^2;//12腳 sbit SRCLK=P2^1;//11腳 void Delay10ms(unsigned int c) { unsigned char a,b; for(c;c>0;c--) { for(b=44;b>0;b--) { for (a=112;a>0;a--) { } } } } void HC595 (unsigned char dat) { unsigned char i; SRCLK=0; RCLK=0; for (i=0;i<8;i++) { SER=dat>>7; dat<<=1; SRCLK=1; _nop_(); _nop_(); SRCLK=0; } RCLK=1; _nop_(); _nop_(); RCLK=0; } void main(void)//主函數(shù) { unsigned char i=0x01,j; HC595(0x00);//初始化595 HC595(0x00); for (j=0;j<8;j++) { HC595(0); HC595(i); i<<=1; Delay10ms(50); } i=0x01; for (j=0;j<8;j++) { HC595(i); HC595(0xff); i<<=1; Delay10ms(50); } while (1)//主循環(huán) { } } |
參與人數(shù) 1 | 黑幣 +40 | 收起 理由 |
---|---|---|
![]() | + 40 | 共享資料的黑幣獎勵! |
Powered by 單片機教程網(wǎng)