實習六 掃描四個七段顯示器
目的﹕了解多工掃描顯示原理及程式設計。
使用材料﹕8051微電腦一片、3kΩ電阻四個及330Ω8個
9012電晶體四個、共陰七段顯示器四個
功能說明﹕四個七段顯示器依序顯示〝0〞,〝1〞,〝2〞,〝3〞。
電路圖:
說明﹕
1. J47接P3.0~P3.3
2
. J50接P1.0~P1.7
3. 四個七段顯示器(共陰極)的〝P〞連在一起,經過330Ω電阻及
電流放大晶體9012,再串接一個基極電阻。
4. 當P1.7=0時,且P3.0=0時,圖上最右邊顯示器的〝P〞段會亮,
P1.7維持〝0〞,移動〝0〞電位到P3.1,則右邊第二顯示器會亮,其餘以此類推。
程式流程圖:
主程式流程圖:
程式及說明﹕
1. ORG 0000H
2. START﹕MOV DPTR , # TABLE : 將七段顯示碼之表格所在位址輸入資料指標
暫存器DPTR中。
3. ACALL SCAN1 : 呼叫中斷程式。
4. AJMP START : 返回 START。
5. SCAN1﹕MOV R5 , # 11110111B 5~7 : 設定個暫存器 R0、R4及R5之初值 。
6. MOV R4 , # 04
7. MOV R0 , # 00
8. LOOP﹕MOV A , R0 8~11 : 將堆疊中之資料分別依次送到 P1。
9. MOVC A , @ A+DPTR
10. MOV P1 , A
11. INC R0
12. MOV P3 , R5 12~13 : 將 R5 之資料送到 P3,來選擇哪一個七段
顯示器顯示 P1 所送出之資料,並且延遲 。
13. ACALL DELAY
14. ORL P3 , # 11111111B : 為了要避免下一個七段顯示器造成上一個
七段顯示器所造成之殘留資料。
15. MOV A , R5 15~17 : 設定 R5 。
16. RR A
17. MOV R5 , A
18. DJNZ R4 , LOOP : 將 R4 減一,若 R4 是 0,繼續一個指
令,若 R4= 1,則跳到 LOOP。
19. RET : 返回主程式。
20. DELAY﹕MOV R6 , # 5 20~23 : 延遲副程式。
21. DL1﹕MOV R7 , #200
22. DL2﹕DJNZ R7 , DL2
23. DJNZ R6 , DL2
24. TABLE﹕ DB 0C0H 24~27 : 設定資料。
25. DB 0F9H
26. DB 0A4H
27. DB 0B0H
28. END : 組譯到此結束。