用AT90S8515單片機實現(xiàn)LED數(shù)碼顯示
一、電路
附圖是AT90S8515控制數(shù)碼顯示的電路略圖(圖中只畫出了與數(shù)碼管接口的電路,其余接線略)。單片機的PBO~PB7接LED共陰數(shù)碼管的a~h腳,控制段碼;單片機的PDO—PD5分別接六只LED數(shù)碼管DO~D5的共陰極,控制位碼。其中PDO~PD5是通過SL-AVR開發(fā)實驗器上的LED數(shù)碼管短路塊DLED接至數(shù)碼管DO—D5的。
二、字符8右循環(huán)移位顯示程序
在SL-AVR開發(fā)實驗器LED上實現(xiàn)字符8右循環(huán)移位顯示的源程序清單如下:
第1行表示程序中包含定義AT90S8515特殊功能寄存器的頭文件8515def.inc,指明所用器件為AT90S85150接著定義寄存器r16、r22分別為暫存器temp、scndp。在程序前面用偽指令equ為寄存器賦予能幫助編程者識別數(shù)據(jù)用途的符號,提高了程序的可讀性,便于程序的修改,讀者也應(yīng)養(yǎng)成用這種方法編程的習(xí)慣。程序中其他語句的功能見注釋。
本程序在SL-AVR開發(fā)實驗器的隨機光盤中的文件名為SLAVR731.ASM。
三、編輯、匯編、串行下載和運行
1.編輯、匯編
運行匯編程序wavr.asm,編輯SIJAVR731.ASM。
執(zhí)行Assemble命令對SLAVR731.ASM程序進行匯編,生成SLAVR731.EEP、SLAVR731.OBJ、SLAVR731.HEX、SLAVR731.LST文件。
2.串行下載和運行
用串行下載線將SL-AVR的C22與AT3接好,將單片機AT90S8515插入鎖緊插座并鎖緊。將SL-AVR開發(fā)實驗器與PC機串口連接好,接上電源,開電源,運行串行一F載程序Avl'Prog,將SLAVR731.
HEX文件下載到SL-AVR開發(fā)實驗器中的AT90S8515中。按復(fù)位鍵,程序開始運行,符號8從塊接至左側(cè)的發(fā)光二.極管,因此,程序運行時鎖綮插座左側(cè)對應(yīng)于PD0一PD5輸出狀態(tài)指示的發(fā)光二極管也在同時循環(huán)顯示。
四、修改顯示程序練習(xí)
1.修改、顯示字符
共陰數(shù)碼管顯示0—F,所對應(yīng)的段碼為3FH、06H、SBH、4FH、66H、6DH7DH、07H、7FH、6FH、77H、7CH、39H、5EH、79H、71H、F3H、76H.如欲點亮小數(shù)點;則要將最高位高位寫為1.$修改顯示字符只需修改源程序中的指令$lclitemp,穢’o如要循環(huán)顯示字符A,則將“l(fā)ditemp,7f”改成“l(fā)ditemp,77”。tSL-AVR開發(fā)實驗器的隨機光盤中的SLAVR731.ASM為只讀文件。先將其屬性改為“正?!薄缎薷奈募傩缘牟僮魅缦拢哼x中待改文件SLAVR731.ASM,從顯示框的左邊可見文件屬性為“只讀”。單擊鼠標(biāo)右鍵,,彈出選擇菜單,點擊“屬性”彈出屬性顯示框,取消屬性顯示選擇框中只讀欄的黑點,按“確定”鍵,就將SLAVR731.ASM文件的屬性改為“正常”了。此時,從顯示框的左邊可見文件屬J為“正常”)。運行匯編程序wavr.a(chǎn)$ni,打開文件SLAV$731.ASM,將指令“l(fā)ditemp.7f”改成“l(fā)dlitemp.‘77”。按第三條進行匯編,串行“下載,并運行程序,顯示的字符就改變了。
2.顯示2位字符
置顯示初值指令“l(fā)discndp,Ob11()11111”中的二進制數(shù)Ob11011111的低6位對應(yīng)LED數(shù)碼管的顯示。
狀態(tài)。其O的個數(shù)表示顯示字符的個數(shù)。因此,最簡單的方法是修改Ob11011111來改變同時顯示的字符數(shù)。如要同時顯示2位數(shù),可將Ob11011111改成Ob11001111。但應(yīng)當(dāng)注意的是,由于數(shù)碼管DO~D5的a—h直接接到單片機的PBO—PB7,同時顯示的位數(shù)多了,會增加口線的負(fù)載電流,必須考慮單片機的口線驅(qū)動能力,故用此法同時顯示的位數(shù)不宜多。
采用動態(tài)掃描的方式顯示兩位數(shù)若干次后,再向右循環(huán)顯示下兩位數(shù),依此類推,則可根據(jù)需要同時顯示任意位數(shù)的字符。
3.改變字符移動的方向
將指令“l(fā)discndp,Ob11011111”改為“l(fā)discndp,Ob11111110”,指令“rors.cndp”改為“r1scndp”,便可以將字符移動的方向改成從右向左。
4.改變字符移動的$速度
將指令“l(fā)ditemp,40”中的立即數(shù)40改大,字右到左循環(huán)顯示。由于SL-AVR中的PDO~PD5用短路符移動的.速度變慢,反之字符移動的速度變快。
以上為同一字符的移動顯示,也可以:過程序進行修改,增加查表程序,實現(xiàn)字符O~F交替循環(huán)移動,還可以先將欲顯示的字符存到指定的顯示緩沖區(qū),用查表的方式取出對應(yīng)的段碼,再進行動態(tài)顯示。
通過以上實驗,讀者對AVR單片機的指令系統(tǒng)、AVR匯編軟件、AVR串行下載軟件,以及SL-AVR開發(fā)實驗器的硬件環(huán)境有了進一步的了解,同時熟悉了利用SL-AVR開發(fā)實驗器隨機光盤中提供的程序進行編程實驗的方法。
SL-AVR開發(fā)實驗器隨機光盤中的實驗程序很多,讀者可以自選程序進行實驗,通過此法掌握AVR單片機的設(shè)計開發(fā)方法。