- ;=================================================================
- ;程序編寫人:蘭建文
- ;編寫地點:51hei培訓機構
- ;時間:6月10日下午 星期三
- ;功能:本程序實現液晶的信息功能,顯示數模轉換讀
- ;來處理后的數據,精確到0.5。
- ;=======================開始初始化================================
- CS BIT P3.2 ;設置使能口
- SCLK BIT P3.4 ;設置時鐘脈沖口
- ADOUT BIT P3.5 ;設置數據輸出口
- PIANXUAN EQU P2 ;設置片選口
- ;========================系統程序==================================
- ORG 0000H
- JMP MAIN
- ORG 30H
- ;=========================主程序===================================
- MAIN:
- MOV A,#0H
- SETB ADOUT
- SETB SCLK
- CLR SCLK
- CLR CS
- CALL READ
- SETB CS
- CALL HBCD
- CALL DISPLAY
- JMP MAIN
- ;=========================讀子程序===========================
- ;輸入條件:待轉化的單字節十六進制整數在累加器A中。
- ;輸出信息:轉化后的BCD碼(十位和個位)仍在累加器A中,百位在R3中。
- ;影響資源:PSW、A、B、R3 堆棧需求:2字節
- ;============================================================
- READ:
- MOV R1,#08H
- LL:SETB SCLK ;設置下降沿
- MOV C,ADOUT
- RLC A
- CLR SCLK
- DJNZ R1,LL
- RET
- ;=====================BCD轉化子程序=========================
- ;輸入:"R2、R3、R6"
- ;輸出:"P0口"
- ;實現的功能:把R2、R3、R6的數輸出到P0口顯示
- ;============================================================
- HBCD:
- MOV B,#25
- DIV AB
- MOV B,#5
- MUL AB
-
- MOV B,#100 ;分離百位,放在R3中
- DIV AB
- MOV R3,A
- MOV A,#10 ;繼續分離十位和個位
- XCH A,B
- DIV AB
- MOV R2,A
- MOV R6,B
- RET
- ;========================顯示子程序==========================
- ;輸入:"A"
- ;輸出:"P0口"
- ;實現的功能:把A的數輸出到P0口顯示
- ;============================================================
- DISPLAY:MOV R0,#50
- CC: MOV A,R3
- MOV DPTR,#TAB0
- MOVC A,@A+DPTR
- MOV P0,A ;顯示百位
- MOV PIANXUAN,#03H
- CALL DELAY
- MOV P0,#0FFH
- MOV A,R2
- MOV DPTR,#TAB1
- MOVC A,@A+DPTR
- MOV P0,A ;顯示十位
- MOV PIANXUAN,#04H
- CALL DELAY
- MOV P0,#0FFH
- MOV A,R6
- MOV DPTR,#TAB0
- MOVC A,@A+DPTR
- MOV P0,A ;顯示個位
- MOV PIANXUAN,#05H
- CALL DELAY
- MOV P0,#0FFH
- DJNZ R0,CC
- RET
- ;========================延時程序============================
- ;輸入;無
- ;輸出: 無
- ;實現的功能:延時一段時間
- ;============================================================
- DELAY:MOV R4,#5
- MOV R5,#200
- D1: NOP
- DJNZ R5,$
- DJNZ R4,D1
- RET
- ;=======================共陽查表數據==========================
- TAB0:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
- TAB1:DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H
- ;=========================程序結束=================================
- END
復制代碼
|