《單片機(jī)應(yīng)用技術(shù) 》中職配套PPT課件,單片機(jī)應(yīng)用技術(shù) ,《單片機(jī)應(yīng)用技術(shù),》中職配套PPT課件,單片機(jī),應(yīng)用技術(shù),配套,PPT,課件
I/O并行口直接驅(qū)動(dòng)LED顯示
1. 實(shí)驗(yàn)任務(wù)
如圖1所示,利用AT89S51單片機(jī)的P0端口的P0.0-P0.7連接到一個(gè)共陰數(shù)碼管的a-h(huán)的筆段上,數(shù)碼管的公共端接地。在數(shù)碼管上循環(huán)顯示0-9數(shù)字,時(shí)間間隔0.2秒。
2. 電路原理圖
圖1
3. 系統(tǒng)板上硬件連線
把“單片機(jī)系統(tǒng)”區(qū)域中的P0.0/AD0-P0.7/AD7端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個(gè)數(shù)碼管的a-h(huán)端口上;要求:P0.0/AD0與a相連,P0.1/AD1與b相連,P0.2/AD2與c相連,??,P0.7/AD7與h相連。
4. 程序設(shè)計(jì)內(nèi)容
(1)LED數(shù)碼顯示原理
七段LED顯示器內(nèi)部由七個(gè)條形發(fā)光二極管和一個(gè)小圓點(diǎn)發(fā)光二極管組成,根據(jù)各管的極管的接線形式,可分成共陰極型和共陽極型。
LED數(shù)碼管的g~a七個(gè)發(fā)光二極管因加正電壓而發(fā)亮,因加零電壓而不以發(fā)亮,不同亮暗的組合就能形成不同的字形,這種組合稱之為字形碼,下面給出共陰極的字形碼見表2 “0” 3FH “8” 7FH “1” 06H “9” 6FH “2” 5BH “A” 77H “3” 4FH “b” 7CH “4” 66H “C” 39H “5” 6DH “d” 5EH “6” 7DH “E” 79H “7”
07H “F” 71H
(2). 由于顯示的數(shù)字0-9的字形碼沒有規(guī)律可循,只能采用查表的方
式來完成我們所需的要求了。這樣我們按著數(shù)字0-9的順序,把每個(gè)數(shù)字的筆段代碼按順序排好!建立的表格如下所示:TABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
5.程序框圖
如圖2所示。
圖2
6. 匯編源程序 ORG 0
START: MOV R1,#00H NEXT: MOV A,R1 MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,A LCALL DELAY INC R1
CJNE R1,#10,NEXT LJMP START
DELAY: MOV R5,#20 D2: MOV R6,#20 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 DJNZ R5,D2 RET
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END
7. C語言源程序
#include
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char dispcount;
void delay02s(void) {
unsigned char i,j,k; for(i=20;i>0;i--) for(j=20;j>0;j--) for(k=248;k>0;k--); }
void main(void) {
while(1) {
for(dispcount=0;dispcount<10;dispcount++) {
P0=table[dispcount]; delay02s(); } } }