項目4單片機控制LED燈的設(shè)計[共40頁]

上傳人:gfy****yf 文檔編號:51146897 上傳時間:2022-01-24 格式:PPT 頁數(shù):40 大?。?.26MB
收藏 版權(quán)申訴 舉報 下載
項目4單片機控制LED燈的設(shè)計[共40頁]_第1頁
第1頁 / 共40頁
項目4單片機控制LED燈的設(shè)計[共40頁]_第2頁
第2頁 / 共40頁
項目4單片機控制LED燈的設(shè)計[共40頁]_第3頁
第3頁 / 共40頁

下載文檔到電腦,查找使用更方便

12 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《項目4單片機控制LED燈的設(shè)計[共40頁]》由會員分享,可在線閱讀,更多相關(guān)《項目4單片機控制LED燈的設(shè)計[共40頁](40頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、電子工業(yè)出版社單片機控制技術(shù)單片機控制技術(shù) 項目式教程項目式教程 (C C語言版)語言版)電子工業(yè)出版社項目項目4 4 單片機控制單片機控制LEDLED燈的設(shè)計燈的設(shè)計 l 能了解能了解5151單片機單片機I/OI/O口的結(jié)構(gòu);口的結(jié)構(gòu);l 能掌握能掌握5151單片機單片機I/OI/O口的特點及應(yīng)用;口的特點及應(yīng)用;l 能掌握能掌握5151單片機控制單片機控制LEDLED燈的硬件設(shè)計方法;燈的硬件設(shè)計方法;l 能熟練編寫單片機控制能熟練編寫單片機控制LEDLED燈閃爍的程序。燈閃爍的程序。 學(xué)習(xí)目標學(xué)習(xí)目標 工作任務(wù)工作任務(wù) l 敘述敘述5151單片機單片機I/OI/O口的結(jié)構(gòu)和特點;口的結(jié)構(gòu)

2、和特點;l 設(shè)計單片機控制單個設(shè)計單片機控制單個LEDLED燈閃爍的電路和工作軟件;燈閃爍的電路和工作軟件;l 設(shè)計單片機控制多個循環(huán)設(shè)計單片機控制多個循環(huán)LEDLED燈的電路和工作軟件。燈的電路和工作軟件。任務(wù)任務(wù)4.1 單片機控制單個單片機控制單個LEDLED燈燈 任務(wù)任務(wù)4.2 單片機控制多個循環(huán)單片機控制多個循環(huán)LEDLED燈燈 項目拓展項目拓展 實驗板彩燈的花式控制實驗板彩燈的花式控制項目小結(jié)項目小結(jié)思考與訓(xùn)練思考與訓(xùn)練項目項目4 單片機控制單片機控制LED燈的設(shè)計燈的設(shè)計 任務(wù)任務(wù)4.1 單片機控制單個單片機控制單個LED燈燈 4.1.1 MCS-514.1.1 MCS-51單片機

3、的單片機的I/OI/O口介紹口介紹 MCS-51系列單片機有4個8位的并行I/O接口:P0、P1、P2和P3口。它們是特殊功能寄存器中的4個。這4個口,既可以作輸入,也可以作輸出,既可按8位處理,也可按位方式使用。輸出時具有鎖存能力,輸入時具有緩沖功能。 1P0口口 P0口是一個三態(tài)雙向口,包括一個輸出鎖存器、兩個三態(tài)緩沖器、輸出驅(qū)動電路和輸出控制電路組成 ,它的一位結(jié)構(gòu)如圖 :輸出驅(qū)動器控制電路控制電路P0口功能口功能1、通用IO接口:不需要外部擴展時,內(nèi)部控制信號將使MUX開關(guān)接通到鎖存器。此時,由于P0口沒有內(nèi)部上拉電阻,通常要在外部加一個上拉電阻來提高驅(qū)動能力。2、地址/數(shù)據(jù)分時復(fù)用:

4、需要進行外部擴展時,內(nèi)部控制信號將使MUX開關(guān)接通到內(nèi)部地址數(shù)據(jù)線。此時,P0口在ALE信號的控制下,分時輸出低8位地址和8位數(shù)據(jù)信號。P0口的工作原理口的工作原理(1)通用)通用I/O口口用作輸入口(端口外數(shù)據(jù) 內(nèi)部寄存器)方式1(讀鎖存器): Q 緩沖器2 D 內(nèi)部總線, 適于“讀修改寫”方式2(讀引腳):P0.x 緩沖器1 D 內(nèi)部總線。 作為通用I/O使用,是一個準雙向口:“在輸入數(shù)據(jù)時應(yīng)先把口置在輸入數(shù)據(jù)時應(yīng)先把口置1,使使V1、V2都截止,引腳處于懸浮狀態(tài),都截止,引腳處于懸浮狀態(tài), 可作高阻抗輸入可作高阻抗輸入” 用作輸出口(片內(nèi)數(shù)據(jù) 端口) 數(shù)據(jù) 鎖存 MUX P0.x (2)

5、地址/數(shù)據(jù)總線口 輸出:地址/數(shù)據(jù)為1,P0 x 高 地址/數(shù)據(jù)為0,P0 x 低 輸入:經(jīng)緩沖器1讀入 (1)P0口既可作地址/數(shù)據(jù)總線使用,也可作通用I/O口使用。當(dāng)P0口作地址/數(shù)據(jù)總線使用時,就不能再作通用I/O口使用了。(2)P0口作輸出口使用時,輸出級屬漏極開路,必須外接上拉電阻,才有高電平輸出。(3)P0口作輸入口讀引腳時,應(yīng)先向鎖存器寫1,使V1、V2截止,不影響輸入電平。P0口特點口特點2. P1口口P1口是準雙向口,它只能作通用I/O接口使用。結(jié)構(gòu)與P0口不同,它的輸出只由一個場效應(yīng)管V1與內(nèi)部上拉電阻組成。 (1)P1口是唯一的單功能口,僅能作為通用I/O口使用。因在其輸

6、出端接有上拉電阻,可以直接輸出而無需外接上拉電阻。(2)同P0口一樣,當(dāng)作輸入口時,必須先向鎖存器寫“1”,使場效應(yīng)管V1截止。P1口特點口特點3. P2口口P2口也是準雙向口,它有兩種用途:通用I/O接口和高8位地址線。 l P2口作I/O端口使用時:內(nèi)部控制信號使MUX開關(guān)接通到鎖存器,此時P2口的用法與P1口相同。l P2口作外部地址總線使用時:內(nèi)部控制信號使MUX開關(guān)接通到內(nèi)部地址線,此時P2口的引腳狀態(tài)由所輸出的地址決定。需要特別指出的是,由于對片外地址的操作是連續(xù)不斷的,只要進行了外部系統(tǒng)擴展,此時P0口和P2口就不能再用作I/ O端口了。4. P3口口 P3口用作通用I/O口時,

7、其工作原理同P1口類似。此外,它的每一根線還具有第二種功能。 在真正的應(yīng)用電路中,在真正的應(yīng)用電路中,P3P3口的第二功能顯得更為重要口的第二功能顯得更為重要 。4.1.2 單片機控制單個單片機控制單個LED燈閃爍的設(shè)計燈閃爍的設(shè)計 1 1任務(wù)要求任務(wù)要求 設(shè)計一個電路,AT89C52單片機的P1.7引腳連接一個LED燈,控制LED閃爍。2任務(wù)分析任務(wù)分析 以單片機以單片機為核心的為核心的電子設(shè)計電子設(shè)計 硬件設(shè)計硬件設(shè)計軟件設(shè)計軟件設(shè)計單片機最小系統(tǒng)加單片機最小系統(tǒng)加上最簡單的輸出電上最簡單的輸出電路來驅(qū)動路來驅(qū)動LEDLED編程控制編程控制P1.7P1.7引腳引腳的電平狀態(tài),使其的電平狀態(tài)

8、,使其持續(xù)一段時間的高持續(xù)一段時間的高電平,再持續(xù)一段電平,再持續(xù)一段時間的低電平時間的低電平 3任務(wù)設(shè)計任務(wù)設(shè)計(1)器件的選擇發(fā)光二極管l 發(fā)光二極管:單向?qū)щ娦?,通過5mA左右電流即可發(fā)光,電流越大,亮度越強,但若電流過大會燒毀二極管,一般控制在320mA。l 工作電壓: 紅色發(fā)光二極管1.7-2.5V 綠色發(fā)光二極管2.0-2.4V 黃色發(fā)光二極管1.9-2.4V 藍/白色發(fā)光二極管3.0-3.8V 限流電阻l 二極管串聯(lián)電阻的目的是為了防止發(fā)光二極管和P1.7引腳流過的電流過大,燒毀二極管或單片機,所以該電阻也稱為“限流電阻”。l 限流電阻的選擇: 假設(shè)電源電壓為VCC,發(fā)光二極管的

9、導(dǎo)通壓降為VDD,導(dǎo)通時流過二極管的電流為I,則限流電阻R為: R = (VCC-VDD)/Il 例如,若二極管的導(dǎo)通壓降為2.2V,導(dǎo)通時流過的電流為5mA,則限流電阻為560。器件清單器件名稱數(shù)量(只)AT89C52112MHz晶體122pF瓷片電容222uF電解電容110k電阻1560電阻1發(fā)光二極管LED1(2)硬件原理圖設(shè)計再次強調(diào):再次強調(diào):圖中的單片機元件沒有“VCC”和“GND”引腳,這是因為Proteus軟件中,元件模型中的“電源”和“地”已經(jīng)進行了連接,“VCC”接到了“+5V”電源,“GND”接到了“地”,所以隱藏了這兩個引腳。(3)軟件程序設(shè)計#include /宏定義

10、sbit led=P17; / 用sbit 關(guān)鍵字定義P1.7引腳 / 延時子函數(shù)void Delay(unsigned int t) while(-t); /主函數(shù),控制P1.7引腳的LED燈閃爍void main (void)while (1) /主循環(huán) led=0; /將P1.7引腳置0,對外輸出低電平 Delay(20000); /調(diào)用延時程序 led=1; /將P1.7引腳置 1,對外輸出高電平 Delay(20000); /調(diào)用延時程序 在軟件編程中,通常使用空循環(huán)來達到延時的效果。延時時間的長短可以在Keil C51的調(diào)試狀態(tài)下分析。(4)軟硬件聯(lián)合調(diào)試1任務(wù)要求任務(wù)要求 設(shè)計一

11、個電路,AT89C52單片機的P1口連接8只LED燈,按以下順序點亮,形成流水燈的效果: 從P1.0到P1.7連接的8只LED燈逐個點亮; 從P1.0到P1.7連接的8只LED依次全部點亮; 從P1.7到P1.0連接的8只LED燈逐個點亮; 從P1.7到P1.0連接的8只LED依次全部點亮。任務(wù)任務(wù)4.2 單片機控制多個單片機控制多個LED燈燈 2任務(wù)分析任務(wù)分析 任務(wù)要求單片機控制8個LED燈,當(dāng)需要對某個I/O口的八位一起操作時,一般采用整體操作的方式,即總線的方式。在軟件設(shè)計時可以定義一個變量來給P1口賦值,賦的值不同點亮的LED燈不同。由于8只LED燈要按一定規(guī)律點亮,這就要求對給P1

12、口賦的變量進行移位,移位操作既可以用標準C中的左移、右移運算符來實現(xiàn),也可以用C51庫自帶的函數(shù)來實現(xiàn)。 移位運算符 循環(huán)移位函數(shù) 注意:循環(huán)移位函數(shù)_crol_( )和_cror_( )包含在intrins.h頭文件中,因此如果在程序中要用到這類函數(shù),就必須在程序的開頭處包含intrins.h這個頭文件。l 由于用到的發(fā)光二極管較多,每個發(fā)光二極管都需要限流電阻,硬件電路會顯得比較復(fù)雜,所以這里使用了排阻。l 排阻排阻,就是若干個參數(shù)完全相同的電阻,它們的一個引腳都連到一起,作為公共引腳,其余引腳正常引出。如果一個排阻是由n個電阻構(gòu)成的,那么它就有n+1個引腳,一般來說最左邊的那個是公共引腳

13、。它在排阻上一般用一個色點標出來。 直插式排阻 貼片式排阻排阻一般用在數(shù)字電路上,比如作為某個并行口的上拉或者下拉電排阻一般用在數(shù)字電路上,比如作為某個并行口的上拉或者下拉電阻用。使用排阻比用若干只固定電阻更方便。阻用。使用排阻比用若干只固定電阻更方便。3 3任務(wù)設(shè)計任務(wù)設(shè)計(1)器件的選擇l器件清單器件名稱數(shù)量(只)AT89C52112MHz晶體122pF瓷片電容222uF電解電容110k電阻15608排阻1發(fā)光二極管LED8(2)硬件原理圖設(shè)計(3)軟件程序設(shè)計#include /宏定義,52單片機頭文件#include /包含_crol_、_cror_函數(shù)所在的頭文件#define ui

14、nt unsigned int #define uchar unsigned char /延時子函數(shù)void Delay(unsigned int t) while(-t);/主函數(shù),循環(huán)點亮LED燈void main() uchar k,recy; while(1) /大循環(huán) recy=0 xfe; for(k=1;k=8;k+) /8只LED燈從P1.0到P1.7逐個點亮 P1=recy; /先點亮P1.0的LED燈 Delay(50000); /延時一段時間 recy=_crol_(recy,1); /將recy循環(huán)左移1位后再賦給recy recy=0 xfe; for(k=1;k=8

15、;k+) /8只LED燈從P1.0到P1.7依次全部點亮 P1=recy; Delay(50000); recy=recy1; /將recy左移1位后再賦給recy P1=0 xff; /全部熄滅 Delay(50000); recy=0 x7f; for(k=1;k=8;k+) /8只LED燈從P1.7到P1.0逐個點亮 P1=recy; /先點亮P1.7的LED燈 Delay(50000); recy=_cror_(recy,1); /將recy循環(huán)右移1位后再賦給recy recy=0 x7f; for(k=1;k1; /將recy右移1位后再賦給recy P1=0 xff; /全部熄滅

16、 Delay(50000); (4)軟硬件聯(lián)合調(diào)試 將編寫的程序在Keil C51中編譯成*.hex后調(diào)入Proteus硬件電路圖的AT89C52中運行,八只LED燈從P1.0到P1.7逐個點亮,接下來再從P1.0到P1.7依次全部點亮,然后全部熄滅后又從P1.7到P1.0逐個點亮,最后再從P1.7到P1.0依次全部點亮,如此反復(fù)形成流水燈。項目拓展項目拓展 實驗板彩燈的花式控制實驗板彩燈的花式控制 在任務(wù)4.2中設(shè)計的流水燈為八個LED按一個方向循環(huán)點亮,此外我們還可以通過編程控制LED燈,使它以我們想要的各種方式點亮,而且LED燈點亮頻率可以通過改變延時時間來實現(xiàn)。下面編寫程序控制實驗板上

17、的八個LED燈按照不同花式循環(huán)點亮。 (1)實驗板8個LED燈電路如圖所示。RP1為390歐姆排阻;J9為插針,用于連接需要使用的I/O口,此處用杜邦線連接單片機的P1口。(2)編寫程序,控制八個LED燈使其以1s左右的時間間隔按不同形式循環(huán)點亮。 /宏定義 #include #define uint unsigned int #define uchar unsigned char void delay(uint); /聲明延時函數(shù) uint a; /定義循環(huán)用變量 /定義循環(huán)用數(shù)據(jù)表格 uchar code table= 0 xff, /全滅 0 xfe,0 xfd,0 xfb,0 xf7,

18、0 xef,0 xdf,0 xbf,0 x7f, /從第0位到第7位依次逐個點亮 0 xfe,0 xfc,0 xf8,0 xf0,0 xe0,0 xc0,0 x80,0 x00, /從第0位到第7位/依次全部點亮 0 x80,0 xc0,0 xe0,0 xf0,0 xf8,0 xfc,0 xfe,0 xff, /從第7位到第0位依次全部熄滅 0 x7e,0 xbd,0 xdb,0 xe7,0 xe7,0 xdb,0 xbd,0 x7e, /分別從第7位和第0位向中間靠攏逐個點亮 /然后從中間向兩邊分散逐個點亮 0 x7e,0 x3c,0 x18,0 x00,0 x00,0 x18,0 x3c,

19、0 x7e, /分別從第7位和第0位向中間靠攏全部點亮,/然后從中間向兩邊分散熄滅 0 x00 /全亮 ; /定義循環(huán)用數(shù)據(jù)表格 /延時子函數(shù),通過time值改變延時時間 void delay(uint time) uint i,j; for(i=time;i0;i-) for(j=110;j0;j-); /* /主函數(shù),循環(huán)點亮LED燈 void main() while(1) for(a=0;a42;a+) P1=tablea; /以a做索引號,從數(shù)組中取值送給P1口 delay(1000); /調(diào)用延時子程序,晶振頻率12MHz時,延時約1s /* 分析:分析:這個程序中,根據(jù)LED燈點

20、亮的方式,將需要送向P1口的數(shù)據(jù)預(yù)先存放到數(shù)組中,程序運行中,只要按照順序?qū)⑦@些數(shù)組元素送向P1口,就可以實現(xiàn)不同花式的彩燈。數(shù)組定義時,寫“code”的含義是告訴單片機,定義的數(shù)組要放在ROM(程序存儲區(qū))里面,寫后就不能再更改。程序可以簡單的分為code(程序)區(qū)和data(數(shù)據(jù))區(qū),code區(qū)在運行的時候是不可以更改的,data區(qū)放全局變量和臨時變量,是要不斷改變的,CPU從code區(qū)讀取指令,對data區(qū)的數(shù)據(jù)進行運算處理。由于單片機上的RAM區(qū)很小,而ROM區(qū)相對來說比較大,當(dāng)需要定義的數(shù)據(jù)太多時,會存在RAM區(qū)放不下的情況。所以編寫程序時,對于那些在程序運行中一直不變的數(shù)據(jù),可在數(shù)

21、據(jù)類型名和變量名之間加上“code”,這樣數(shù)據(jù)就會被存放到ROM區(qū),節(jié)省了RAM區(qū)的空間。注意:注意:在單片機編程中,要根據(jù)變量的取值范圍,合理的定義變量的數(shù) 據(jù)類型,節(jié)省RAM區(qū)。(3)將調(diào)試通過的程序下載到實驗板觀察效果,實驗板上的單片機為STC89C52,可直接使用STC-ISP下載軟件將程序燒寫到單片機上。STC-ISP的打開界面如圖所示。按照界面中操作步驟,依次選取單片機型號、打開HEX文件、選擇串口、點擊下載就可以將程序下載到單片機中。注意:注意: STCSTC單片機下載時單片機下載時必須進行冷啟動,必須進行冷啟動,即在點擊即在點擊“下載下載”之前實驗板電源之前實驗板電源是關(guān)閉的,

22、點擊是關(guān)閉的,點擊下載按鈕后,大下載按鈕后,大概概2 2秒鐘,打開實秒鐘,打開實驗板電源,出現(xiàn)驗板電源,出現(xiàn)藍色進展條并有藍色進展條并有提示音表示下載提示音表示下載成功。成功。項目小結(jié)項目小結(jié) l 本項目主要介紹了51單片機I/O口結(jié)構(gòu)和應(yīng)用,通過兩個任務(wù)實現(xiàn)了單片機對單個LED燈閃爍和多個循環(huán)LED燈的控制。 l 51單片機有4個8位的并行I/O接口:P0、P1、P2和P3口。對于P0口要注意其內(nèi)部沒有上拉電阻,所以在硬件設(shè)計中要給P0口外接上拉電阻,以保證P0口可以輸出高電平。P1口是唯一一個只有輸入/輸出功能的I/O口。P0口和P2口當(dāng)有外部擴展存儲器時,作為數(shù)據(jù)/地址的復(fù)用口。P3口每

23、一位都具有第二功能。l 對于單片機的編程,離不開對特殊功能寄存器的操作,所以在程序中一定要有包含對特殊功能寄存器聲明的頭文件。 思考與訓(xùn)練思考與訓(xùn)練 (一)知識思考:1P1口與P0口在結(jié)構(gòu)上有何區(qū)別?2P0口P3口的負載能力分別如何?351單片機的P0P3口在結(jié)構(gòu)上有何不同?在使用上有什么特點?用作通用I/O口輸入數(shù)據(jù)時,應(yīng)注意什么?4P3口的第二功能是什么?5單片機外部擴展存儲器時,P0口和P2口有什么作用?6在編寫單片機程序時,添加“reg52.h”頭文件的目的是什么? (二)項目訓(xùn)練:1如圖4.7電路,請修改程序,使P1.7的LED燈大致按1s的時間間隔交替亮與滅。2如圖4.10電路,請將設(shè)計稍作修改:控制從P1.0到P1.7連接的8只LED燈依次全部點亮,然后依次熄滅,接下來控制從P1.7到P1.0連接的8只LED燈依次全部點亮再依次熄滅,最后8只LED燈全亮之后再全滅。請編寫程序并調(diào)試。

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!