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