一、電路圖
按照下圖購(gòu)買元器件及面包板,在面包實(shí)驗(yàn)板上參考右圖搭成電路。將已經(jīng)固化好最簡(jiǎn)程序的AT89C2051單片機(jī)芯片插到實(shí)驗(yàn)板中縫左右。
LC3911BH型LED數(shù)碼管高約13mm,寬10mm,引線排列在兩側(cè),正好能騎插在面包實(shí)驗(yàn)板中縫左右。然后用細(xì)硬線按照?qǐng)D2將數(shù)碼管與單片機(jī)Pl口連接好,并接入電阻、電容、晶振、按鈕開關(guān)等。
下圖中LED數(shù)碼管公共陽(yáng)極接了1只限流電阻。
顯示0—9共10個(gè)阿拉伯?dāng)?shù)字,顯示1時(shí)段數(shù)最少為2個(gè)。設(shè)每段電流最大為5mA,則2段總電流I=2×5mA =10 mA,公共限流電阻R=(UCC-ULED)/I=(5V-2V)/10 mA =300Ω
顯示8時(shí)段數(shù)最多為7個(gè),每段電流最小為10/7=1.43mA,顯得較暗。
由于LED電流大時(shí)正向壓降亦大些,故顯示數(shù)字在0~9之間變化時(shí),亮度變化不是預(yù)期那樣厲害。因此,下圖電路數(shù)碼管每段電流在1.5~5mA之間。公共限流電阻方案適合于業(yè)余制作。
下圖中AT89C2051晶振頻率為6MHz。沒有兩個(gè)33p電容,由于面包板的分布電容,單片機(jī)仍然能起振并工作。0.1μ電容功能是防高頻干擾。1μ電容、10k電阻與lk電阻組成最常用的復(fù)位電路。
AT89系列51單片機(jī)要求直流電源電壓3—6V。目前有下列電源可供選用:
●萬能手機(jī)充電器4.3-5V
二、固定字符顯示的程序編制
普通數(shù)字電子電路都有特定功能,如與、或、非邏輯功能。計(jì)算機(jī)包括單片機(jī)本身沒有特定功能,只有執(zhí)行特定指令的能力,指令讓它干什么,它就干什么;沒有指令組成的程序,它什么也不能干。沒有配備任何程序的計(jì)算機(jī)叫做“裸機(jī)”。“裸機(jī)什么事情也不能做。
普通數(shù)字電子電路功能單一,計(jì)算機(jī)用執(zhí)行程序模式所能完成的任務(wù)卻是無限的。關(guān)鍵是選指令編制程序。計(jì)算機(jī)能執(zhí)行的所有特定指令就叫做指令系統(tǒng)。
計(jì)算機(jī)芯片設(shè)計(jì)時(shí)已經(jīng)配備了指令系統(tǒng),包括數(shù)據(jù)傳送、算術(shù)運(yùn)算、邏輯運(yùn)算、指令轉(zhuǎn)移等應(yīng)有盡有。
編程并不復(fù)雜。選指令就像兒童選積木,編程就像兒童搭積木。編程前只要簡(jiǎn)單地熟悉所用計(jì)算機(jī)的指令系統(tǒng)就可以,編程時(shí)再根據(jù)自己的任務(wù)去琢磨如何選合適的指令。一個(gè)計(jì)算機(jī)編程老手,也很難說指令系統(tǒng)中的所有指令都用過了,新手更是要慢慢來。
計(jì)算機(jī)的優(yōu)點(diǎn)是快,其實(shí)很多人也被計(jì)算機(jī)的“快”搞暈了。但是編程或分析程序時(shí),完全可以認(rèn)為計(jì)算機(jī)執(zhí)行一條條指令時(shí),就像我們?nèi)俗卟揭粯佑袟l不紊。實(shí)際上AT89C2051單片機(jī)確實(shí)可以慢慢地運(yùn)行,1秒鐘甚至更長(zhǎng)時(shí)間才執(zhí)行l(wèi)條指令,就像影視節(jié)目中的慢鏡頭一樣。“慢到”如此慢,每個(gè)人都有足夠時(shí)間來分析計(jì)算機(jī)一步步究竟在于什么,硬件電路有什么反應(yīng)。
還有,分析指令執(zhí)行過程時(shí),只需要關(guān)心其已知條件和執(zhí)行結(jié)果。把計(jì)算機(jī)復(fù)位即自動(dòng)進(jìn)行的硬件初始化后的狀態(tài)作為第一條指令的已知條件,把第一條指令的執(zhí)行結(jié)果作為第二條指令的已知條件……把第n條指令的執(zhí)行結(jié)果作為第n+l條指令的已知條件。就這樣用熟悉的已知、求、解、答的模式,就能知道程序功能。
上圖所示屬于單片機(jī)最小系統(tǒng)。其任務(wù)是顯示某固定字符,如顯示“2”,只要把“2”的字模二進(jìn)制數(shù)“10100100B”送到P1口,然后停止機(jī)器即可。用助記符“MOV P1,#10100100B”表示。匯編程序把MOV P1,#10100100B的助記符匯編成機(jī)器碼,以寫進(jìn)程序存儲(chǔ)器中讓計(jì)算機(jī)執(zhí)行。這種助記符編寫的程序也稱為匯編語(yǔ)言程序,簡(jiǎn)稱為匯編語(yǔ)言。
二進(jìn)制數(shù)“10100100B”送到P1口之后,需要使機(jī)器停止。但2051單片機(jī)沒有專用的停止指令。
全部程序如下:
MOV P1.#10100100B
HERE: SJMP HERE
該最簡(jiǎn)程序已經(jīng)寫在圖2中的單片機(jī)符號(hào)中。像右圖這樣既有完整的硬件又有完整的軟件,就是一個(gè)典型的單片機(jī)最小系統(tǒng)。
用C語(yǔ)言編制該程序如下:
include
main0
{P1=0xa4;
while(1);}
改變P1賦值,觀察顯示狀態(tài)有什么變化,把程序編譯后固化到2051中,圖3中間黑色長(zhǎng)條就是AT89C2051單片機(jī),單片機(jī)右邊發(fā)白的小長(zhǎng)條是晶振,單片機(jī)下方是復(fù)位電容及按鈕,面包板右側(cè)紅色長(zhǎng)方塊是一塊手機(jī)鋰電池,用兩根兩端接有帶塑皮套的夾子線,通稱雙夾線,可以很方便地給單片機(jī)系統(tǒng)加上電源。該系統(tǒng)工作情況見下圖(略)。
整個(gè)電路搭好后,上電即能顯示“2”。按壓復(fù)位鍵,顯示全部熄滅,可以驗(yàn)證復(fù)位后單片機(jī)口線均為高電平,本設(shè)計(jì)屬于低電平驅(qū)動(dòng),所以復(fù)位期間顯示全部熄滅。手壓復(fù)位鍵時(shí)間不限,可以充分觀察復(fù)位期間口線輸出的高電平。
電路保持不變,修改控制程序,就能用本電路制成一塊一位LED秒表。LED秒表參考匯編語(yǔ)言程序如下:
字庫(kù)(讀者可改為16進(jìn)制字庫(kù)做試驗(yàn))
本制作的目的僅僅是演示單片機(jī)工作原理,因此采用了方便插拔的面包實(shí)驗(yàn)板。
-
led
+關(guān)注
關(guān)注
242文章
23479瀏覽量
665765 -
AT89C2051
+關(guān)注
關(guān)注
7文章
170瀏覽量
66500
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
AT89C2051單片機(jī)做節(jié)日彩燈控制電路程序
基于AT89C2051單片機(jī)的數(shù)字電容表設(shè)計(jì)
AT89C2051單片機(jī)在步進(jìn)電機(jī)控制中的應(yīng)用
AT89C2051單片機(jī)時(shí)鐘程序源代碼
AT89C2051單片機(jī)的比較器的應(yīng)用
AT89c2051單片機(jī)介紹

基于AT89C2051單片機(jī)的GPS時(shí)鐘系統(tǒng)
單片機(jī)AT89C2051制作計(jì)時(shí)器

使用AT89C2051實(shí)現(xiàn)流水燈的PCB原理圖免費(fèi)下載

如何使用AT89C2051單片機(jī)實(shí)現(xiàn)節(jié)日彩燈控制電路的程序
利用單片機(jī)AT89C2051制作的電子琴電路

評(píng)論