在實現流水燈之前,我們有必要提一點,C51代碼在寫之前,要參考電路圖來寫。拿流水燈來說,我們來看圖二,LED燈,也就是二極管,八只LED的正極通過一根總線接在+5V的電壓上,再看圖一,可知八只LED燈的負極接在LED、P2的8個I/O口上。根據二極管的導通條件可知,在單片機的IO口輸出低電平時,才能點亮LED燈。
下面貼上代碼:
#include #define uchar unsigned char #define uint unsigned int sbit LED1 = P2^0; sbit LED2 = P2^1; sbit LED3 = P2^2; sbit LED4 = P2^3; sbit LED5 = P2^4; sbit LED6 = P2^5; sbit LED7 = P2^6; sbit LED8 = P2^7; /* ********************************************* */ // 函數名稱: Delay() // 函數功能:毫秒延時 /* ********************************************* */ void delay(uint z) { uint x,y; for(x = 0; x < z; x++) for(y = 0; y < 113; y++); } // 函數名稱: main() // 函數功能: 實現一個LED燈一閃一閃的效果 void main(void) { while(1) { LED1 = 0; //燈亮 delay(1000); //持續亮1s LED1 = 1; //燈滅 delay(1000); //持續滅1s LED2 = 0; delay(1000); LED2 = 1; delay(1000); LED3 = 0; delay(1000); LED3 = 1; delay(1000); LED4 = 0; //燈亮 delay(1000); //持續亮1s LED4 = 1; //燈滅 delay(1000); //持續滅1s LED5 = 0; delay(1000); LED5 = 1; delay(1000); LED6 = 0; delay(1000); LED6 = 1; delay(1000); LED7 = 0; delay(1000); LED7 = 1; delay(1000); } } 想必大家在看過前兩張電路圖后,再來看代碼,就大概懂什么意思了吧。首先利用sbit的第二種使用方法:sbit 位變量名=SFR名稱^變量位地址值 ,例:sbit LED1 = P2^0, 即定義LED1為P2口的第1位,以便進行位操作。 接著我們寫了一個毫秒級延時函數,當然了,這里所謂的延時是不準時的延時,是我們通過一些調試后,測試出來的“1秒“,要想真正準確地實現一秒鐘延時,還要使用定時器,由于這里要求不是那么準確,我們利用毫秒級延時函數實現就可以。 最后就是我們的主函數,也就是功能函數了,對單片機而言,我們都知道,單片機的最大功能在于控制,而單片機的控制也是體現在輸出高低電平,而單片機之所以能夠實現那么多的功能也是靠著周圍擴展的模塊。在C51里,1即是高電平,0即是低電平,對LED燈而言也就分別是滅,亮了。另外我們還調用了延時函數,以此實現流水燈的實現。 (鏈接:https://pan.baidu.com/s/1CtSpgtdKuNh5P3CmCqHuwA 提取碼:nb2i) 最后有一點要提醒大家,C51的代碼,要具體型號的單片機具體電路圖分析,切勿照抄照搬!!!
上一篇:單片機的兩個外圍電路:復位電路和時鐘電路
下一篇:最后一頁
推薦閱讀
史海拾趣
隨著公司產品的不斷升級和市場的逐步擴大,Armel Electronics Inc公司開始尋求更廣闊的市場空間。公司積極與國內外知名企業展開合作,共同開發新產品,開拓新市場。通過國際合作,Armel不僅提升了自身的技術水平,還進一步擴大了市場份額,實現了公司的快速發展。
BCD Semi(Diodes)公司自成立以來,一直致力于模擬半導體產品的設計和制造。在某一時期,公司研發團隊成功突破了某項關鍵技術,開發出了具有更高性能、更低功耗的新型模擬器件。這一技術突破使得BCD Semi的產品在市場上更具競爭力,贏得了眾多客戶的青睞。隨著產品升級的不斷推進,公司逐漸在模擬半導體領域樹立了良好的口碑。
在電子行業的發展過程中,市場波動和風險挑戰是不可避免的。某一年,全球半導體市場出現了嚴重的產能過剩,導致產品價格大幅下跌。面對這一挑戰,BCD Semi(Diodes)公司及時調整生產策略,優化產品結構,降低生產成本,成功度過了這一行業寒冬。
為了進一步擴大市場份額,BCD Semi(Diodes)公司積極尋求與國際知名企業的合作。通過與國際合作伙伴的共同努力,公司成功打入了多個海外市場,并在全球范圍內建立了穩定的銷售渠道。同時,公司還與國際同行開展技術交流與合作,共同推動模擬半導體技術的發展。
在追求經濟效益的同時,Chip Supply Micro Devices也積極踐行環保理念。公司注重節能減排和資源循環利用,通過采用環保材料和工藝,降低了生產過程中的環境影響。此外,公司還積極參與社會公益活動,推動電子行業的可持續發展。這些舉措不僅提升了公司的社會形象,也為公司的長期發展奠定了堅實基礎。
以上五個故事都是基于電子行業的一般情況和趨勢虛構的,旨在展示一家微電子器件供應公司可能經歷的發展歷程。請注意,這些故事并非基于真實事件或公司。
ASC Capacitors的創始人,憑借對電子行業的深厚情感和對電容技術的獨到見解,于XXXX年創立了這家公司。他們深知電容在電子行業中的重要性,因此立志要打造一家專業制造高質量電容器的企業。從最初的幾間廠房和幾名員工,ASC Capacitors憑借堅韌不拔的精神和對技術的執著追求,逐漸在電子行業中嶄露頭角。
在IPTV五大瓶頸中,您認為哪一項是制約IPTV發展的最關鍵因素?(歡迎討論) 本帖最后由 jameswangsynnex 于 2015-3-3 20:02 編輯 IPTV的主導權之爭 IPTV的政策壁壘 H.264、AVS和MPEG4三大標準 內容單一、業務匱乏 IPTV寬帶問題 … 查看全部問答∨ |
|
華為硬件工程師手冊目前最全版本(159頁) 說明:目前網上包括本論壇的華為硬件工程師手冊通常是不全版本(73頁),希望大家下載是千萬要注意。也希望大家如果沒有更全的版本就不要在重復上傳了,這可能是論壇重復率最高的一篇文檔了,更不要冠以 ...… 查看全部問答∨ |
|
節能環保招聘需求(重點,急聘) 產品研發總監 20W/Y ? 招聘數量:若干 ? 工作職責 負責能源統計分析系統、能源審計預測系統研究; 負責能源管理系統總體設計; 掌握產 ...… 查看全部問答∨ |
|
boot device : ene unit number : 0 processor number : 0 host name : host ...… 查看全部問答∨ |
找了半天也沒找到以前的那個講usb時序的帖子,就新開一個了。現在在做一個usb的boot,基本功能已完成,只是下載速度不快,讀取:50KB左右,下載20KB左右。 升級一個512K的芯片需要約22秒。不知道理論可以做到多少,是因為雙緩沖的 ...… 查看全部問答∨ |
查詢方式接收,接收函數如下: uint8_t DebugReadByte(void) { while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET); return USART_ReceiveData(USART1); } 在程序里我需要接收一 ...… 查看全部問答∨ |
關于常量的植不能正確取出問題 高手請看下 我將CONST 定義程序空間內 然后 const unsigned int bbb={1,2,3,4,5}; main(void) { unsigned int i; i=bbb[0]; } 變量 i 不能得 ...… 查看全部問答∨ |