




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、學習義務學習義務3 LED數碼管顯示接口及編程方法學習數碼管顯示接口及編程方法學習 學習內容學習內容LED數碼顯示器的構造數碼顯示器的構造LED數碼顯示器的顯示編碼原理數碼顯示器的顯示編碼原理單片機與單片機與LED數碼顯示器接口和編程數碼顯示器接口和編程學習目的學習目的了解了解LED數碼顯示器的構造數碼顯示器的構造掌握掌握LED數碼顯示器的顯示編碼原理數碼顯示器的顯示編碼原理學會單片機與學會單片機與LED數碼顯示器接口和編程方法數碼顯示器接口和編程方法一、一、 LED數碼顯示器的構造數碼顯示器的構造 LED數碼顯示器是數碼顯示器是1種由種由LED發光二極管組合顯示字符的發光二極管組合顯示字符的
2、顯示器件。它運用了顯示器件。它運用了8個個LED發光二極管,其中發光二極管,其中7個用于顯個用于顯示字符,示字符,1個用于顯示小數點,故通常稱之為個用于顯示小數點,故通常稱之為7段段(也有稱也有稱作作8段段)發光二極管數碼顯示器。其內部構造如圖發光二極管數碼顯示器。其內部構造如圖3-12所示。所示。 LED數碼顯示器有兩種銜接方法:數碼顯示器有兩種銜接方法: 1.共陽極接法共陽極接法 把發光二極管的陽極連在一同構成公共陽極,運用時公共把發光二極管的陽極連在一同構成公共陽極,運用時公共陽極接電源正端陽極接電源正端,每個發光二極管的陰極經過電阻與輸入每個發光二極管的陰極經過電阻與輸入端相連。端相連
3、。 2.共陰極接法共陰極接法 把發光二極管的陰極連在一同構成公共陰極,運用時公共把發光二極管的陰極連在一同構成公共陰極,運用時公共陰極接地。每個發光二極管的陽極經過電阻與輸入端相連。陰極接地。每個發光二極管的陽極經過電阻與輸入端相連。二、二、 LED數碼顯示器的顯示段碼數碼顯示器的顯示段碼 為了顯示字符,要為為了顯示字符,要為LED顯示器提供顯示段碼顯示器提供顯示段碼(或稱字形或稱字形代碼代碼),組成一個,組成一個“8字形字符的字形字符的7段,再加上段,再加上1個小數點個小數點位,合計位,合計8段,因此提供應段,因此提供應LED顯示器的顯示段碼為顯示器的顯示段碼為1個字個字節。各段碼位的對應關
4、系如下:節。各段碼位的對應關系如下:二、二、 LED數碼顯示器的顯示段碼數碼顯示器的顯示段碼 十六進制數的顯示段碼十六進制數的顯示段碼 三、三、 LED數碼顯示器的顯示方法數碼顯示器的顯示方法 LED數碼顯示器的顯示方法有靜態顯示和動態顯數碼顯示器的顯示方法有靜態顯示和動態顯示兩種。示兩種。 1.靜態顯示靜態顯示 所謂靜態顯示,就是在同一時辰只顯示所謂靜態顯示,就是在同一時辰只顯示1種字符,種字符,或者說被顯示的字符在同一時辰是穩定不變的。或者說被顯示的字符在同一時辰是穩定不變的。其顯示方法比較簡單,普通由一個其顯示方法比較簡單,普通由一個8位口銜接一位口銜接一位顯示的字型控制端,只需將顯示段
5、碼送至段碼位顯示的字型控制端,只需將顯示段碼送至段碼口,并把位控固定銜接即可。口,并把位控固定銜接即可。1.靜態顯示靜態顯示 例例3-9:運用共陰極構造的數碼管與單片機的:運用共陰極構造的數碼管與單片機的P2口銜接,口銜接,如圖如圖3-13。 執行執行 MOV P1,#3FH這一語句可在數碼管上顯示數字這一語句可在數碼管上顯示數字1。對應的對應的C言語語句是言語語句是P1=0 x3F;,;,3F是是1的共陰極顯的共陰極顯示代碼,同樣方法可使其顯示其他數字或字符。示代碼,同樣方法可使其顯示其他數字或字符。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.
6、1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51PROGRAM=GG.hexR110R2120R3120
7、R4120R5120R6120R7120靜態顯示優點:靜態顯示優點:穩定、亮度高、直穩定、亮度高、直缺陷:占用口線多、缺陷:占用口線多、不適用于多位顯示不適用于多位顯示1.靜態顯示靜態顯示例例3-10:1位數碼管顯示。位數碼管顯示。1在上圖中的顯示器上輪番顯示數字在上圖中的顯示器上輪番顯示數字0F。匯編言語程序如下:。匯編言語程序如下:DDD:MOV R1,#00H ;第一個數字值;第一個數字值 MOV R2,#10H ;顯示數字的個數設置;顯示數字的個數設置HH: MOV A,R1 ;取要顯示的數字;取要顯示的數字 MOV DPTR,#TAB ;字型表格首地址送;字型表格首地址送DPTR M
8、OVC A,A+DPTR ;查表,得到與;查表,得到與A中數對應的字型代碼中數對應的字型代碼 MOV P2,A ;送;送I/O口,靜態顯示口,靜態顯示 LCALL DEL ;延時;延時 INC R1 ;調整下一個要顯示的數;調整下一個要顯示的數 DJNZ R2,HH ;顯示計數器值減;顯示計數器值減1,未減完時進展下一個數,未減完時進展下一個數 LJMP DDD ;程序循環;程序循環TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;0F的字型代碼表的字型代碼表DEL: MOV R7,#0FFH
9、;延時程序;延時程序WW: MOV R6,#0FFH DJNZ R6,$ DJNZ R7,WW RET END1.靜態顯示靜態顯示2C言語程序:言語程序:/*聲明區聲明區*/#include#define LED P2void delayms(int);char TAB16= 0 x3f, 0 x06, 0 x5b, 0 x4f, 0 x66, 0 x6d, 0 x7d, 0 x07,0 x7f, 0 x6f, 0 x77, 0 x7c, 0 x39, 0 x5e, 0 x79, 0 x71;/*主程序主程序*/main() int i; while(1) /無限循環無限循環 for(i=0;
10、i16;i+) /個數設置個數設置 LED=TABi; /字型代碼由字型代碼由LED代表的代表的P2輸出輸出 delayms(100); /延時延時 /*延時函數延時函數*/void delayms(int x) int i,j; for(i=0;ix;i+) for(j=1;j=600;j+);1.靜態顯示靜態顯示 2位數碼管靜態顯示,只需將兩個位數碼管靜態顯示,只需將兩個8位位I/O口與數碼管銜接,口與數碼管銜接,分別驅動十位與個位。分別驅動十位與個位。 例例3-11:如圖:如圖3-14,在兩位數碼管上顯示,在兩位數碼管上顯示100以內的計數以內的計數值。值。XTAL218XTAL119A
11、LE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89
12、C51PROGRAM=1LED.HEXR1220R2220R3220R4220R5220R6220R7220R8220R9220R10220R11220R12220R13220R142201.靜態顯示靜態顯示1匯編言語程序匯編言語程序SS: MOV R2,#0 ;顯示初值;顯示初值JY : MOV A,R2 ;R2中的數送中的數送A,作為被除數,作為被除數MOV B,#10 ;設置;設置B存放器中的數作除數存放器中的數作除數DIV AB ;除法運算,用于分開數據的十位和個位;除法運算,用于分開數據的十位和個位MOV DPTR,#TAB MOVC A,A+DPTR ;除法運算的結果商在;除法運算
13、的結果商在A中,為十位數,查表中,為十位數,查表MOV P3,A ;字型代碼由;字型代碼由P3輸出輸出MOV A,B ;除法運算的結果余數由;除法運算的結果余數由B送送A,MOVC A,A+DPTR ;查表;查表MOV P2,A ;個位數顯示;個位數顯示LCALL DEL ;延時;延時INC R2 ;調整要顯示的數;調整要顯示的數CJNE R2,#100,JY ;顯示完否,未完轉到;顯示完否,未完轉到JY語句語句LJMP SS ;循環;循環DEL: MOV R7,#0FFH ;延時子程序;延時子程序LL: MOV R6,#0FFH DJNZ R6,$ DJNZ R7,LL RET TAB: D
14、B 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END1.靜態顯示靜態顯示2C言語程序言語程序/*聲明區聲明區*/#includevoid delayms(int x);char TAB10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/*主程序主程序*/main() Int k;k=0;while(1) P3=TABk/10; /十位顯示十位顯示P2=TABk%10; /個位顯示個位顯示delayms(100); /延時延時k=k+1; /數值加數值加1if(k=100)k=0;
15、/到到100時重回時重回0/*延時函數延時函數*/void delayms(int x) int i,j; for(i=0;ix;i+) for(j=1;j=600;j+);2. 動態顯示動態顯示 實踐運用的實踐運用的LED數碼顯示器位數較多,為了簡化線路、降數碼顯示器位數較多,為了簡化線路、降低本錢,大多采用以軟件為主的接口方法。對于多位低本錢,大多采用以軟件為主的接口方法。對于多位LED數碼顯示器,通常采用動態掃描顯示方法,即逐個地循環數碼顯示器,通常采用動態掃描顯示方法,即逐個地循環點亮各位顯示器。這樣雖然在任一時辰只需點亮各位顯示器。這樣雖然在任一時辰只需1位顯示器被位顯示器被點亮,但
16、是由于人眼具有視覺殘留效應,看起來與全部顯點亮,但是由于人眼具有視覺殘留效應,看起來與全部顯示器繼續點亮的效果根本一樣示器繼續點亮的效果根本一樣(在亮度上要有差別在亮度上要有差別),如圖,如圖3-15。 2. 動態顯示動態顯示 假設要在同一時辰顯示不同的字符,從電路上看,假設要在同一時辰顯示不同的字符,從電路上看,這是辦不到的。因此只能利用人眼對視覺的殘留這是辦不到的。因此只能利用人眼對視覺的殘留效應,采用動態掃描顯示的方法,逐個地循環點效應,采用動態掃描顯示的方法,逐個地循環點亮各位數碼管,每位顯示亮各位數碼管,每位顯示1ms左右,使人看起來左右,使人看起來就好象在同時顯示不同的字符一樣。就
17、好象在同時顯示不同的字符一樣。 在進展動態掃描顯示時,往往事先并不知道應顯在進展動態掃描顯示時,往往事先并不知道應顯示什么內容,這樣也就無從選擇被顯示字符的顯示什么內容,這樣也就無從選擇被顯示字符的顯示段碼。為此,普通采用查表的方法,由待顯示示段碼。為此,普通采用查表的方法,由待顯示的字符經過查表得到其對應的顯示段碼。的字符經過查表得到其對應的顯示段碼。2. 動態顯示動態顯示 下面引見動態掃描顯示程序編程方法。下面引見動態掃描顯示程序編程方法。 例例3-12:以下電路圖:以下電路圖3-16,共陰極數碼管銜,共陰極數碼管銜接時,利用動態掃描方法在六位數碼管上顯示出接時,利用動態掃描方法在六位數碼
18、管上顯示出穩定的穩定的123456。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014
19、P3.7/RD17P3.6/WR16P3.5/T115U180C51PROGRAM=6SMGDT.hexR1200R2200R3200R4200R5200R6200R7200R82002. 動態顯示動態顯示1匯編言語程序:匯編言語程序:DT:MOV P3,#0FFH ;每掃描一位每掃描一位前先關顯示前先關顯示MOV P2,#06H ;1的字型代碼的字型代碼由由P2口輸出口輸出MOV P3,#0FEH ;位控由位控由P3口口輸出輸出,以下每位控制左移一位以下每位控制左移一位LCALL DL ;每位顯示中短每位顯示中短暫停留暫停留MOV P3,#0FFHMOV P2,#5BHMOV P3,#0FD
20、HLCALL DLMOV P3,#0FFHMOV P2,#4FHMOV P3,#0FBHLCALL DLMOV P3,#0FFHMOV P2,#66HMOV P3,#0F7HLCALL DLMOV P3,#0FFHMOV P2,#6DHMOV P3,#0EFHLCALL DLMOV P3,#0FFHMOV P2,#7DHMOV P3,#0DFHLCALL DLLJMP DTDL: MOV R6,#0FFH ;每位停留每位停留延時延時 DJNZ R6,$ RET END 2. 動態顯示動態顯示2C言語程序:言語程序:/*聲明區聲明區*/ 2. 動態顯示動態顯示#include /51單片機頭文件
21、單片機頭文件#define uint unsigned int /宏定義宏定義#define uchar unsigned char /宏定義宏定義uchar code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77; /數碼管顯示編碼數碼管顯示編碼void delay(uint); /聲明延時函數聲明延時函數/*主程序主程序*/void main() while(1) P3=0 xff; /送位數據前封鎖一切顯示送位數據前封鎖一切顯示 P2=table1; /送段數據送段數據 P3=0 xfe;
22、/位控制位控制 delay(10); /每位顯示停留一段小延時每位顯示停留一段小延時,以下同以下同 P3=0 xff; P2=table2; P3=0 xfd; delay(10); P3=0 xff; P2=table3; P3=0 xfb; delay(10); P3=0 xff; P2=table4; P3=0 xf7; delay(10); P3=0 xff; P2=table5; P3=0 xef; delay(10); P3=0 xff; P2=table6; P3=0 xdf; delay(10);/*延時子函數延時子函數*/void delay(uint z) /延時子函數延時
23、子函數uint x,y;for(x=z;x0;x-)for(y=110;y0;y-); 本例顯示數據有本例顯示數據有6位,每位數碼管對應位,每位數碼管對應1位位有效顯示數據。在動態掃描顯示過程中,每有效顯示數據。在動態掃描顯示過程中,每位數碼管的有一個短暫的顯示時間,這由調位數碼管的有一個短暫的顯示時間,這由調用延時子程序來實現。用延時子程序來實現。2. 動態顯示動態顯示掃描中的位控制輸出可由移位方法處理,使程序更為簡化。掃描中的位控制輸出可由移位方法處理,使程序更為簡化。例例3-13 上例的簡化程序上例的簡化程序匯編言語程序匯編言語程序DT: MOV R5,#06 ;顯示位數顯示位數 MOV
24、 DPTR,#TAB ;取顯示代碼表道地址取顯示代碼表道地址 MOV R2,#1 ;首個顯示數值存在首個顯示數值存在R2 MOV R3,#0FEH ;第一位的位控制輸出保管在第一位的位控制輸出保管在R3中中XG: MOV A,R2 ;取出要顯示的數值取出要顯示的數值 MOVC A,A+DPTR ;運用查表指令找到對應的字型代碼運用查表指令找到對應的字型代碼MOV P3,#0FFH ;每掃描一位前先關顯示每掃描一位前先關顯示MOV P2,A ;字型代碼由字型代碼由P2口輸出口輸出MOV P3,R3 ;位控由位控由P3口輸出口輸出,LCALL DL ;每位顯示中短暫停留每位顯示中短暫停留INC R
25、2 ;調整顯示的數值調整顯示的數值MOV A,R3RL A ;每位控制左移一位;每位控制左移一位MOV R3,A ;位控制由;位控制由R3保管保管DJNZ R5,XG ;保證顯示位數保證顯示位數LJMP DTDL: MOV R6,#0FFH ;每位停留延時每位停留延時 DJNZ R6,$ RET TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END 2. 動態顯示動態顯示C言語程序言語程序/*聲明區聲明區*/#include /52單片機頭文件單片機頭文件#define uint unsigned int /宏定義宏定義#define ucha
26、r unsigned char /宏定義宏定義uchar code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f; /數碼管顯示編碼數碼管顯示編碼void delay(uint);/*主程序主程序*/void main()uchar i,wei; while(1) wei=0 xfe; /位控初始值位控初始值 for(i=1;i7;i+) /共共6位位P3=0 xff; /送位數據前封鎖一切顯示送位數據前封鎖一切顯示 P2=tablei; /送字型代碼送字型代碼P3=wei; /送段數據送段數據 wei=(w
27、ei0;x-) for(y=110;y0;y-); 2. 動態顯示動態顯示 例例3-14:六位數碼管顯示:六位數碼管顯示 匯編言語編程。匯編言語編程。 內存內存30H、31H、32H中的小于中的小于100的數依次在六的數依次在六位數碼管上顯示。位數碼管上顯示。 要顯示十進制數,就必需先將其進展進制轉換,要顯示十進制數,就必需先將其進展進制轉換,將其分解成十位數和個位數存于顯示緩沖區將其分解成十位數和個位數存于顯示緩沖區70H75H單元中,再查表得到其字形代碼送到顯單元中,再查表得到其字形代碼送到顯示器。示器。2. 動態顯示動態顯示MOV 30H,#XX ;先設置要顯示的數據給;先設置要顯示的數
28、據給3個內個內存單元存單元 MOV 31H,#XX MOV 32H,#XXJZZH: MOV A,30H ;取第一個內存單元的數;取第一個內存單元的數給給A存放器作為被除數存放器作為被除數 MOV B,#10 ;10送給送給B存放器,作為除數存放器,作為除數 DIV AB ;做除法;做除法 MOV 70H,A ;十位數商存入;十位數商存入70H單元單元 MOV 71H,B ;個位數余數存入;個位數余數存入71H單元單元JZZH1:MOV A,31H ;分解第二個單元的數;分解第二個單元的數 MOV B,#10 DIV AB MOV 72H,A MOV 73H,BJZZH2:MOV A,32H
29、;分解第三個單元的數;分解第三個單元的數 MOV B,#10 DIV AB MOV 74H,A MOV 75H,BDISP: MOV R0,#70H ;顯示緩沖區的第;顯示緩沖區的第1 個單個單元的地址給元的地址給R0 MOV R4,#6 ;R4作為顯示數據個數的計數作為顯示數據個數的計數存儲器存儲器 MOV R3,#0FEH ;顯示掃描位控制的初始值;顯示掃描位控制的初始值給給R3 MOV DPTR,#TABWW: MOV A,R0 ;間接尋址,取要顯示的數據;間接尋址,取要顯示的數據 MOVC A,A+DPTR ;查表,得到相應的字型碼;查表,得到相應的字型碼 MOV P3,#0FFH ;
30、關顯示;關顯示 MOV P2,A ;字型碼由;字型碼由P2口輸出口輸出 MOV A,R3 ;取位控制碼;取位控制碼 MOV P3,A ;由;由P3口輸出控制相應位顯示口輸出控制相應位顯示 RL A ;位控制字左移,指向下一位;位控制字左移,指向下一位 MOV R3,A ;存儲位控制字;存儲位控制字 INC R0 ;調整顯示緩沖單元指針;調整顯示緩沖單元指針 LCALL YS DJNZ R4,WW ;計數器內容減;計數器內容減1,完成一切,完成一切數據顯示掃描數據顯示掃描 LJMP JZZH ;反復掃描,得到穩定顯示;反復掃描,得到穩定顯示YS: MOV R7,#0FFH ;延時;延時 DJNZ
31、 R7,$ RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND2. 動態顯示動態顯示C言語編程言語編程將將a、b、c分別代表的時間時、分、秒顯示在分別代表的時間時、分、秒顯示在6位數碼位數碼管上。設時間為管上。設時間為15:30:25。/*聲明區聲明區*/#include /52單片機頭文件單片機頭文件#define uint unsigned int /宏定義宏定義#define uchar unsigned char /宏定義宏定義uchar code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f; /數碼管顯示編碼數碼管顯示編碼void delay(uint);/*主程序主程序*/void main() uchar w
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥理機制解析試題及答案
- 系統架構設計師的技術創新能力與考試導向試題及答案
- 瑪麗蘇測試題及答案
- 腦部小測試題及答案
- 系統規劃管理師考試內容分析試題及答案
- 激光設備選型討論試題及答案
- 教學活動面試題及答案
- 服裝工藝比賽試題及答案
- 激光技術對未來工業的影響試題及答案
- 心理咨詢師考試中職業倦怠現象的探討試題及答案
- 人教版高中數學選擇性必修第三冊8-1-1變量的相關關系【課件】
- 《應用文寫作》高職全套教學課件
- 綠城地產集團標準化運營手冊地產客服項目交付項目運營手冊之交付工作操作指引V1
- 風電項目風機吊裝專項施工方案
- GB 1499.1-2024鋼筋混凝土用鋼第1部分:熱軋光圓鋼筋
- 葉片維修工-B卷考試附有答案
- 小學一二年級必背古詩詞73首帶拼音
- 正壓式空氣呼吸器操作使用方法培訓課件
- 2024年信陽職業技術學院單招職業適應性測試題庫帶答案
- 五金材料采購投標方案(技術方案)
- 《電磁學》梁燦彬課后答案解析
評論
0/150
提交評論