實習五 七段顯示器
目的﹕瞭解七段顯示器之顯示碼推導方法。
使用材料﹕(1)單晶片8051 (2)共陽極七段顯示器×1
(3)排組×1。
功能說明﹕ 程式執行後,使接在輸出埠Port1之七段顯示器依序顯示0~9之
數字持續不斷。
流程圖:
電路圖:
說明﹕
(1) 當四個七段顯示器同時顯示一字時,J46和J47短路。
(2) 使用a~f顯示時,J50接Port1。
(3) 使用BCD碼輸入時,J49、J50短路,J48接Port1。
程式﹕
1. ORG 0H
2. START﹕MOV R3 , # 10 :設暫存器R3為10
3. MOV R4 , # 00H :設暫存器R4為 0
4. MOV DPTR , # TABLE :七段顯示碼之表格所在位址載入資料
指標暫存器 DPTR 中。
5. LOOP﹕MOV A , R4 5~7:取得相對應的七段碼,輸出到埠1
6. MOVC A , @A+DPTR
7. MOV P1 , A
8. CALL DELAY 8~10:顯示後延遲一下,指向下一位數字,若未顯
9 INC R4 示完 10 個數字,繼續;已顯示完 0~9 則重新
10 DJNZ R3 , LOOP 開始。
11 JMP START
12 DELAY﹕MOV R2 , # 2 12~18:延遲副程式,約零點多秒。以 R7、R6及
13 DD3﹕MOV R1 , # 200 DJNZ 指令即可完成延時。
14 DD2﹕MOV R0 , # 250
15 DD1﹕DJNZ R0 , DD1
16 DJNZ R1 , DD2
17 DJNZ R2 , DD3
18 RET
19 TABLE﹕DB 11000000B 19~29:0~9 的七段顯示碼一覽表,為配合硬體線
20 DB 11111001B 路,使用共陽段顯示器,所
21 DB 10100100B 以表中 "0" 使 LED 亮,"1"使 LED 滅。
22 DB 10110000B "B"符號表示二進制數 (Binary)。
23 DB 10011001B
24 DB 10010010B
25 DB 11000011B
26 DB 11111000B
27 DB 10000000B
28 DB 10010000B
29 END