650 likes | 1.04k Views
輸出入埠進階應用. 第四章. 本章內容. 硬體部分 : 8051 的省電模式 。 74138 、 7447 、 4×4 鍵盤、七節顯示器模組等 。 指令部分: 詳細說明算術運算指令 。 程式與實作部分: 鍵盤掃瞄程式、七節顯示器掃瞄程式、編碼與查表法等 。. 8051 之時鐘脈波電路. 8051 之省電模式. 閒置模式. 8051 之省電模式. 功率下降模式. 8051 之省電模式. PCON 暫存器. 4x4 鍵盤之內部結構. tack switch 之結構. 由 tack switch 所構成之 4 4 鍵盤. 連接提升電阻. 4x4 鍵盤.
E N D
輸出入埠進階應用 第四章 例說8051
本章內容 • 硬體部分:8051的省電模式 。74138、7447、4×4鍵盤、七節顯示器模組等 。 • 指令部分:詳細說明算術運算指令 。 • 程式與實作部分:鍵盤掃瞄程式、七節顯示器掃瞄程式、編碼與查表法等 。 例說8051
8051之時鐘脈波電路 例說8051
8051之省電模式 閒置模式 例說8051
8051之省電模式 功率下降模式 例說8051
8051之省電模式 PCON暫存器 例說8051
4x4鍵盤之內部結構 例說8051
tack switch之結構 例說8051
由tack switch所構成之44鍵盤 例說8051
連接提升電阻 例說8051
4x4鍵盤 例說8051
市售一體成型之4x4鍵盤 例說8051
低態掃瞄-按下「0」鍵 例說8051
高態掃瞄-按下「0」鍵 例說8051
認識MM74C922/MM74C923 例說8051
MM74C922/MM74C923資料傳輸模式 例說8051
MM74C922/MM74C923資料傳輸模式 例說8051
七節顯示器掃瞄 例說8051
認識七節顯示器 例說8051
共陽極七節顯示器 例說8051
共陰極七節顯示器 例說8051
多個七節顯示器 例說8051
七節顯示模組 例說8051
七節顯示模組 例說8051
市售四位數七節顯示器模組 例說8051
市售四位數七節顯示器模組 例說8051
7446、7447、7448、7449之接腳 例說8051
7447/7448輸出 例說8051
7447/7448應用範例 例說8051
編 碼 TABLE: ; abcdefgx DB 00000011B ;共陽極之0 DB 10011111B ;共陽極之1 DB 00100101B ;共陽極之2 DB 00001101B ;共陽極之3 DB 10011001B ;共陽極之4 DB 01001001B ;共陽極之5 DB 01000001B ;共陽極之6 DB 00011111B ;共陽極之7 DB 00000001B ;共陽極之8 DB 00001001B ;共陽極之9 例說8051
認識74138/74139 例說8051
算術運算指令 • 加法運算指令 例說8051
算術運算指令 • 減法運算指令 例說8051
算術運算指令 • 加1/減1運算指令 例說8051
算術運算指令 • 乘法運算指令:MUL AB • 除法運算指令:DIV AB 例說8051
算術運算指令 • BCD調整運算指令 例說8051
實例演練(4-5-1) • 連接電路 例說8051
實例演練(4-5-1) • 流程圖 例說8051
Ch4-1.asm-1 ORG 0 ;程式從0位址開始 START: MOV P1, #1EH ;將最右邊數字顯示1 CALL DELAY ;延遲4ms MOV P1, #5DH ;將右邊第二個數字顯示5 CALL DELAY ;延遲4ms MOV P1, #0BH ;將右邊第三個數字顯示0 CALL DELAY ;延遲4ms MOV P1, #87H ;將最左邊數字顯示8 CALL DELAY ;延遲4ms JMP START ;從頭開始掃瞄 例說8051
Ch4-1.asm-2 ;=========延遲約4ms=(即2usxR7xR7)============= DELAY: MOV R7, #10 D1: MOV R6, #200 DJNZ R6, $ DJNZ R7, D1 RET END 例說8051
自我練習 • 連接電路 例說8051
實例演練(4-5-2) • 連接電路 例說8051
實例演練(4-5-2) • 流程圖 例說8051
Ch4-2.asm-1 ORG 0 ;程式從0位址開始 START: MOV P1, #FFH ;關閉所有數字 MOV P2, #10011001B ;輸出「4」的七節顯示碼 MOV P1, #11111110B ;點亮最右邊位數 CALL DELAY ;延遲4ms ;========================================== MOV P1, #FFH ;關閉所有數字 MOV P2, #00000011B ;輸出「0」的七節顯示碼 MOV P1, #11111101B ;點亮右邊第二個位數 例說8051
Ch4-2.asm-2 CALL DELAY ;延遲4ms ;============================================= MOV P1, #FFH ;關閉所有數字 MOV P2, #00000011B ;輸出「0」的七節顯示碼 MOV P1, #11111011B ;點亮右邊第三個位數 CALL DELAY ;延遲4ms ;============================================= MOV P1, #FFH ;關閉所有數字 MOV P2, #00100101B ;輸出「2」的七節顯示碼 MOV P1, #11110111B ;點亮最左邊位數 例說8051
Ch4-2.asm-3 CALL DELAY ;延遲4ms JMP START ;從頭開始掃瞄 ;==========延遲約4ms=(即2usxR7xR7)============ DELAY: MOV R7, #10 D1: MOV R6, #200 DJNZ R6, $ DJNZ R7, D1 RET END 例說8051
實例演練(4-5-3) • 連接電路 例說8051
實例演練(4-5-3) • 流程圖 例說8051
Ch4-3.asm-1 • COUNTS EQU 50H ;每組字顯示時間 • SCAN EQU 01110111B ;掃瞄信號 • ORG 0 ;程式從0位址開始 • START: MOV DPTR, #DISP1 ;指定第一組字位置 • CALL DISPLAY4 ;呼叫顯示字組副程式 • MOV DPTR, #DISP2 ;指定第二組字位置 • CALL DISPLAY4 ;呼叫顯示字組副程式 • MOV DPTR, #DISP3 ;指定第三組字位置 • CALL DISPLAY4 ;呼叫顯示字組副程式 • JMP START ;重新開始 例說8051
Ch4-3.asm-2 • ;============= 顯示一組字副程式================== • DISPLAY4: MOV R4, #COUNTS ;指定顯示次數 • LOOP1: MOV R3, #SCAN ;載入掃瞄信號 • MOV R2, #4 ;顯示字數 • MOV R1, #0 ;指定偏移值 • LOOP2: MOV A, R1 ;偏移值放入ACC • MOVC A, @A+DPTR ;取出所要顯示的字 • INC R1 ;偏移值加1 • CALL DISPLAT1 ;點亮最右邊位數 • DJNZ R2, LOOP2 ;是否已顯示四個字? • DJNZ R4, LOOP1 ;是否完成顯示次數? • RET ;返回 例說8051