《單片機技術(shù)應(yīng)用》項目一 廣告燈發(fā)光_第1頁
《單片機技術(shù)應(yīng)用》項目一 廣告燈發(fā)光_第2頁
《單片機技術(shù)應(yīng)用》項目一 廣告燈發(fā)光_第3頁
《單片機技術(shù)應(yīng)用》項目一 廣告燈發(fā)光_第4頁
《單片機技術(shù)應(yīng)用》項目一 廣告燈發(fā)光_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

單片機應(yīng)用技術(shù)

項目教程任務(wù)一點亮一個LED燈

任務(wù)提出任務(wù)分析相關(guān)知識編寫程序任務(wù)一點亮一個LED燈

任務(wù)提出用單片機控制一只發(fā)光二極管燈亮。任務(wù)一點亮一個LED燈任務(wù)分析根據(jù)任務(wù)要求使用單片機I/O端口控制LED燈亮。根據(jù)LED的工作原理,只要給LED兩端加上正向電壓就可以點亮一個燈。要想用單片機來控制LED,至少要完成以下幾個工作:一、硬件工作(1)提供系統(tǒng)所需的電源和CPU工作所需的時鐘振蕩信號;(2)將單片機與LED連接起來;二、軟件工作把我們的要求用單片機可以接收的語言“寫”給單片機,也就是軟件編程。任務(wù)一點亮一個LED燈硬件知識1.MCS

51單片機的外部引腳P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1VSS12345678910111213141516171819208031805187514039383736353433323130292827262521222324VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0熟悉Keil軟件的使用方法一、Keil軟件概述二、Keil軟件的使用(1)啟動Keil雙擊桌面上的圖標(biāo),即可啟動Keil軟件,啟動主界面如圖1-2所示。

(2)建立源文件

(3)建立工程文件

(4)工程參數(shù)設(shè)置工程建立后,還需要對工程參數(shù)進(jìn)行設(shè)置,以滿足要求。

(5)編譯、連接、調(diào)試在設(shè)置好工程參數(shù)之后,即可進(jìn)行程序編譯、調(diào)試以及工程的連接。任務(wù)一點亮一個LED燈使用Proteus設(shè)計仿真電路圖

本任務(wù)主要熟悉Proteus軟件的使用方法。一、Proteus軟件概述二、Proteus軟件的初步使用任務(wù)一點亮一個LED燈二、Proteus軟件的初步使用1)菜單欄:菜單欄共由12個部分組成,其功能大部分可以通過工具欄中的圖標(biāo)實現(xiàn),編輯一般的原理圖時,應(yīng)用工具欄中的圖標(biāo)更快捷、方便。

2)原理圖編輯區(qū):原理圖編輯區(qū)是用來編輯原理圖的區(qū)域,啟動主界面后,在該區(qū)域會出現(xiàn)藍(lán)色方框,設(shè)計原理圖時元件必須放到藍(lán)色方框里面。

3)預(yù)覽窗口:預(yù)覽窗口主要用于單個元件和整個原理圖的預(yù)覽。

4)元件列表:此窗口用來顯示用戶所選擇的元件,在需要編輯原理圖時,用鼠標(biāo)單擊該窗口對應(yīng)的元件,再單擊原理圖編輯區(qū),就可以把元件添加到原理圖中。5)模型工具欄:模型工具欄,顧名思義,用來選擇對應(yīng)的模型、配件、圖形等,下面列出工具欄中部分圖標(biāo)的功能。

6)工具欄:工具欄中給出了對編輯窗口中的圖形進(jìn)行操作的快捷方式。

7)仿真工具欄:原理圖完成后,可以單擊仿真工具欄進(jìn)行仿真運行。原理圖元器件材料表序號名稱型號、規(guī)格單位數(shù)量備注1UAT89S51片12J16MHZ只13C1、C230pF只24C322μF/25V只15R1270Ω只16R2200Ω只17R32K只18LEDφ5紅色只19A1TC-0102只1編寫程序C語言程序如下:#include<reg52.h>//包含reg.52文件sbitP1_0=P1^0;//位定義voidmain()//main函數(shù){while(1)//while循環(huán){P1_0=0;//點亮LED}}任務(wù)一點亮一個LED燈任務(wù)二閃爍燈

任務(wù)提出任務(wù)分析相關(guān)知識編寫程序任務(wù)二閃爍燈

任務(wù)提出用單片機控制一只發(fā)光二極管燈閃爍

。任務(wù)分析使用單片機I/O端口控制LED燈閃爍,想讓LED燈暗,通過單片機的連接口置低電平實現(xiàn),反之,將對應(yīng)端口置高電平可以點亮LED,要使得LED閃爍,單片機輸出的高低電平需要有一段時間的延時。

任務(wù)二閃爍燈任務(wù)二閃爍燈C51的數(shù)據(jù)類型類型符號關(guān)鍵字所占位數(shù)字節(jié)數(shù)表示范圍整型有(signed)short162-32768~32767(signed)int162-32768~32767(signed)long324-2147483648~2147483647無Unsigedshoutint1620~65535Unsiged

int1620~65535Unsigedlong3240~4294967295實型有float324±1.175494E-38~±3.402823E+38有double6481.7e-308~1.7e308字符型有

char81-128~127無Unsigedchar810~255任務(wù)二閃爍燈C51擴充數(shù)據(jù)類型

型長

度值

域說明bit位0或1位變量聲明sbit位0或1特殊功能位聲明sfr8位=1字節(jié)0~255特殊功能寄存器聲明Sfr1616位=2字節(jié)0~65535Srf的16位數(shù)據(jù)聲明*1~3字節(jié)對象的地址任務(wù)二閃爍燈C語言程序基本構(gòu)架

#include<reg52.h>//引用S52單片機頭文件Voidmain(void)//主程序main函數(shù){/*在主程序中設(shè)置死循環(huán)程序,保證主程序的運行*/While(1){/*此處添加控制程序*/}}任務(wù)二閃爍燈單片機I/O口輸出控制

C語言中“=”運算符是賦值運算,作用是把“=”右邊的值賦給“=”左邊的變量。實現(xiàn)單片機P0.0置低電平,寫程序P0^0=0即可;實現(xiàn)單片機P0.0置高電平,寫程序P0^0=1即可。任務(wù)二閃爍燈C語言while的使用

While一般有兩種形式形式1:While(判斷條件){執(zhí)行語句},先進(jìn)行判斷,再運行執(zhí)行語句。執(zhí)行語句執(zhí)行完,自動返回繼續(xù)判斷While中的條件是否符合,若符合,則繼續(xù)運行執(zhí)行語句;不符合,則退出循環(huán)。形式2:do{執(zhí)行語句}while(判斷條件),先執(zhí)行語句,再進(jìn)行while條件判斷,如果符合條件,則返回繼續(xù)執(zhí)行do后的執(zhí)行語句,由此形成循環(huán)。while(1){}表示判斷條件一直為1(C語言中1為真),所以一直在這個循環(huán)中重復(fù)運行。任務(wù)二閃爍燈延時程序

unsignedinti;for(i=0;i<50000;i++);//延時一段時間任務(wù)二閃爍燈程序

LED閃爍C語言程序#include<reg52.h>sbitLED=P1^0;//延時函數(shù),含有輸入?yún)?shù)unsignedintx,無返回值unsignedint是宏定義無符號整型變量,其值的范圍是0~65535

voiddelay(unsigned

intx)

{

while(x--);

}

//主函數(shù)

voidmain(void)

{

while(1)//無限循環(huán)

{

LED=0;//P1.0輸出低電平,點亮LED燈

delay(2000);//調(diào)用延時函數(shù),更改X值,相當(dāng)于更改LED燈閃爍的頻率

LED=1;//P1.0輸出高電平,熄滅LED燈

delay(2000);//調(diào)用延時函數(shù),更改X值,相當(dāng)于更改LED燈閃爍的頻率

}

}任務(wù)三廣告燈的左移與右移

任務(wù)提出任務(wù)分析相關(guān)知識編寫程序任務(wù)三廣告燈的左移與右移

任務(wù)提出用單片機控制一組八只發(fā)光二極管燈的左右移動

任務(wù)三廣告燈的左移與右移C語言的位操作位運算是指按二進(jìn)制進(jìn)行的運算。在系統(tǒng)軟件中,常常需要處理二進(jìn)制位的問題。C語言提供了6個位操作運算符。這些運算符只能用于整型操作數(shù),即只能用于帶符號或無符號的char,short,int與long類型,見表1-3-1任務(wù)三廣告燈的左移與右移

任務(wù)提出用單片機控制一組八只發(fā)光二極管燈的左右移動

表1-3-1位操作符表運算符含

義運算符含

義&按位與~取反|按位或《左移^按位異或

》右移1)&按位與如果兩個相應(yīng)的二進(jìn)制位都為1,則該位的結(jié)果值為1,否則為02)按位或兩個相應(yīng)的二進(jìn)制位中只要有一個為1,該位的結(jié)果值為13)^按位異或若參加運算的兩個二進(jìn)制位值相同則為0,否則為14)~取反~是一元運算符,用來對一個二進(jìn)制數(shù)按位取反,即將0變1,將1變05)<<左移用來將一個數(shù)的各二進(jìn)制位全部左移N位,右補06)>>右移將一個數(shù)的各二進(jìn)制位右移N位,移到右端的低位被舍棄,對于無符號數(shù),高位補0任務(wù)三廣告燈的左移與右移電路原理圖

任務(wù)三廣告燈的左移與右移系統(tǒng)板上硬件連線

把“單片機系統(tǒng)”區(qū)域中的P2.0-P2.7用8根線連接到“八路發(fā)光二極管指示模塊”區(qū)域中的L1-L8端口上,要求:P2.0對應(yīng)著L1,P2.1對應(yīng)著L2,……,P2.7對應(yīng)著L8。

任務(wù)三廣告燈的左移與右移程序設(shè)計

#include<reg52.h>unsignedchari;unsignedchartemp;unsignedchara,b;voiddelay(void){unsignedcharm,n,s;for(m=20;m>0;m--)for(n=20;n>0;n--)for(s=248;s>0;s--);}voidmain(void){while(1){temp=0xfe;P2=temp;delay();for(i=1;i<8;i++){a=temp<<i;b=temp>>(8-i);P2=a|b;delay();}for(i=1;i<8;i++){a=temp>>i;b=temp<<(8-i);P2=a|b;delay();}}}

任務(wù)提出任務(wù)分析相關(guān)知識編寫程序任務(wù)四數(shù)碼管顯示

任務(wù)提出用單片機按鍵控制數(shù)碼管靜態(tài)顯示數(shù)字0-9任務(wù)四數(shù)碼管顯示

任務(wù)分析要實現(xiàn)數(shù)碼管靜態(tài)顯示數(shù)字0-9,可以利用51單片機、1個獨立按鍵及1位7段數(shù)碼管等器件,設(shè)計一個單片機輸入顯示系統(tǒng),要求每按一下獨立按鍵數(shù)碼管顯示數(shù)據(jù)加1(數(shù)碼管初始值設(shè)為0,計到9后再加1,則數(shù)碼管顯示0)。本次設(shè)計采用12MHz的晶體振蕩器為單片機提供振蕩周期,外加獨立按鍵、復(fù)位電路和顯示電路組成。任務(wù)四數(shù)碼管顯示

數(shù)碼管基礎(chǔ)知識任務(wù)四數(shù)碼管顯示

數(shù)碼管基礎(chǔ)知識任務(wù)四數(shù)碼管顯示

數(shù)碼管可以分為共陽極與共陰極兩種,共陽極就是把所有LED的陽極連接到共同接點com,而每個LED的陰極分別為a、b、c、d、e、f、g及dp(小數(shù)點);共陰極則是把所有LED的陰極連接到共同接點com,而每個LED的陽極分別為a、b、c、d、e、f、g及dp(小數(shù)點),如上圖所示。圖中的8個LED分別與A~DP各段相對應(yīng),通過控制各個LED的亮滅來顯示數(shù)字。

數(shù)碼管基礎(chǔ)知識任務(wù)四數(shù)碼管顯示

顯示字型共陽極D7D6D5D4D3D2D1D0發(fā)光管DPGFEDCBA編碼011000000C0111000000F9211110001A4310110000B0410011001995100100109261000001082711111000F88100000008091001000090顯示字型共陰極D7D6D5D4D3D2D1D0發(fā)光管DPGFEDCBA編碼0001111113F100000110062010110115B3010011114F401100110665011011016D6011111017D700000111078011111117F9011011116F硬件電路原理圖

任務(wù)四數(shù)碼管顯示

電路元器件清單任務(wù)四數(shù)碼管顯示

元件標(biāo)號元件名稱所在庫AT89C5151單片機MCS805174HC245數(shù)據(jù)緩沖器74HC7SEG7段數(shù)碼管DISPLAYRES電阻DEVICEBUTTON按鍵ACTIVECAP電容DEVICECRYSTAL晶振DEVICE程序流程圖任務(wù)四數(shù)碼管顯示

結(jié)束返回重新檢測按鍵將單片機處理的數(shù)據(jù)進(jìn)行顯示單片機主控制電路向單片機申請顯示0計數(shù)加1,向單片機申請顯示該數(shù)值。Y是否按鍵?開始N程序任務(wù)四數(shù)碼管顯示

#include<reg52.h>#defineucharunsignedcharsbitkey=P1^0;//獨立按鍵的位定義ucharcodeduan[]={0x3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};ucharnum;//記錄按鍵的次數(shù)voiddisplay(uchar);//顯示函數(shù)聲明voiddelay(uchar);//延時函數(shù)聲明voidmain(){

ucharnum=0; while(1)//while大循環(huán)

{

if(key==0) { delay(80);//按鍵消抖

if(key==0)//重新檢測

{

if(num==9) num=0; else num++;

while(!key);//等待松手,松手后才能送去顯示

} }

display(num); }}voiddisplay(ucharx){ P2=duan[x]; delay(1);//在1位數(shù)碼管上顯示 }voiddelay(uchara){

uchar

y,z;

for(y=a;y>0;y--)

for(z=150;z>0;z--);}

任務(wù)提出任務(wù)分析相關(guān)知識編寫程序任務(wù)五數(shù)碼管響應(yīng)中斷

任務(wù)提出

用單片機通過中斷控制數(shù)碼管依次顯示數(shù)字0-9,要求每秒鐘數(shù)字變化一次。

任務(wù)五數(shù)碼管響應(yīng)中斷

任務(wù)分析要實現(xiàn)每秒鐘數(shù)碼管依次顯示數(shù)字0-9,可以通過中斷定時器控制1秒定時變化顯示數(shù)字,也可以循環(huán)等待1秒變化顯示數(shù)字,循環(huán)等待的缺點是循環(huán)等待期間不能進(jìn)行其他任何掃描程序,實踐應(yīng)用不可取,因此本次任務(wù)選擇中斷定時控制。任務(wù)五數(shù)碼管響應(yīng)中斷中斷定時器MCS-51單片機內(nèi)設(shè)置了兩個可編程的16位定時器T0和T1,通過編程,可以設(shè)定為定時器和外部計數(shù)方式。T1還可以作為其串行口的波特率發(fā)生器。定時器T0由特殊功能寄存器TL0和TH0構(gòu)成,定時器T1由TH1和TL1構(gòu)成,特殊功能寄存器TMOD控制定時器的工作方式,TCON控制其運行。定時器的中斷由中斷允許寄存器IE,中斷優(yōu)先權(quán)寄存器IP中的相應(yīng)位進(jìn)行控制。定時器T0的中斷入口地址為000BH,T1的中斷入口地址為001BH。任務(wù)五數(shù)碼管響應(yīng)中斷中斷定時器定時器的編程包括:置工作方式。置計數(shù)初值。中斷設(shè)置。啟動定時器。定時器/計數(shù)器由四種工作方式,所用的計數(shù)位數(shù)不同,因此,定時計數(shù)常數(shù)也就不同。在編寫中斷服務(wù)程序時,應(yīng)該清楚中斷響應(yīng)過程:CPU執(zhí)行中斷服務(wù)程序之前,自動將程序計數(shù)器PC內(nèi)容(即斷點地址)壓入堆棧保護(hù)任務(wù)五數(shù)碼管響應(yīng)中斷中斷定時器(但不保護(hù)狀態(tài)寄存器PSW,更不保護(hù)累加器A和其它寄存器內(nèi)容),然后將對應(yīng)的中斷矢量裝入程序計數(shù)器PC使程序轉(zhuǎn)向該中斷矢量地址單元中以執(zhí)行中斷服務(wù)程序。定時器T0和T1對應(yīng)的中斷矢量地址分別為000BH和001BH。中斷服務(wù)程序從矢量地址開始執(zhí)行,一直到返回指令“RETI”為止?!癛ETI”指令的操作一方面告訴中斷系統(tǒng)該中斷服務(wù)程序已經(jīng)執(zhí)行完畢,另一方面把原來壓入堆棧保護(hù)的斷點地址從棧頂彈出,裝入到程序計數(shù)器PC,使程序返回到被到中斷的程序斷點處,以便繼續(xù)執(zhí)行。任務(wù)五數(shù)碼管響應(yīng)中斷中斷定時器因此,在編寫中斷服務(wù)程序時注意。1.在中斷矢量地址單元放一條無條件轉(zhuǎn)移指令,使中斷服務(wù)程序可以靈活地安排在64K字節(jié)程序存儲器的任何空間。2.在中斷服務(wù)程序中應(yīng)特別注意用軟件保護(hù)現(xiàn)場,以免中斷返回后,丟失原寄存器、累加器的信息。3.若要使執(zhí)行的當(dāng)前中斷程序禁止更高優(yōu)先級中斷,可以先用軟件關(guān)閉CPU中斷,或禁止某中斷源中斷,在返回前再開放中斷。任務(wù)五數(shù)碼管響應(yīng)中斷程序流程圖

任務(wù)五數(shù)碼管

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論