proteus仿真電路圖附在結(jié)尾
QQ圖片20190109162739.png (15.77 KB, 下載次數(shù): 34)
下載附件
2019-1-9 16:28 上傳
程序
- ORG 0000H
- SJMP MAIN
- ORG 0003H
- LJMP PINT0
- MAIN:MOV 50H,#19H
- MOV 54H,#78H
- MOV DPTR,#7FF8H
- MOV 51H,DPH
- MOV 52H,DPL
- MOV R0,#04H
- MOV 53H,#00H
- MOV R7,#00H
- SETB EA
- SETB IT0
- SETB EX0
- L4: MOV R1,#00H ;R1 存放十六進(jìn)制轉(zhuǎn)換成十進(jìn)制后的低兩位
- MOV R2,#00H ;R2 存放十六進(jìn)制轉(zhuǎn)換成十進(jìn)制后的高兩位
- MOV R3,#0FFH ;循環(huán)顯示十進(jìn)制數(shù)
- MOV R4,#00H ;存放 A/D 轉(zhuǎn)換后的十六進(jìn)制數(shù)
- MOV R5,#00H ;存放 0.5 相加后的數(shù)
- MOVX @DPTR,A ;開始 A/D 轉(zhuǎn)換
- LCALL DELAY ;調(diào)用延時(shí)大于 A/D 轉(zhuǎn)換的時(shí)間
- MOVX A,@DPTR ;取 A/D 轉(zhuǎn)換后的十六進(jìn)制數(shù)
- INC DPTR ;A/D 轉(zhuǎn)換芯片的地址加一
- PUSH DPL ;壓入堆棧
- PUSH DPH
- DEC R0 ;4 路轉(zhuǎn)換的次數(shù)減一
- JZ SB2 ;判斷是否是 0V
- MOV R4,A
- L1:MOV A,R1 ;進(jìn)行十六進(jìn)制到十進(jìn)制的調(diào)整
- ADD A,50H ;每次加 19
- DA A
- MOV R1,A
- JC L2 ;如果溢出則跳轉(zhuǎn)到 L2
- MOV A,R5 ;進(jìn)行 0.5V 相加
- ADD A,54H
- DA A
- MOV R5,A
- JC L3 ;如果溢出則跳轉(zhuǎn)到 L3
- SB1:DJNZ R4,L1 ;判斷十六進(jìn)制數(shù)是否轉(zhuǎn)換完成,如果沒有則循環(huán)
- MOV A,R5
- SWAP A
- ANL A,#0FH
- MOV B,R1
- ADD A,B
- DA A
- MOV R1,A
- SB2:LCALL DISP
- LCALL DJW
- DJNZ R3,SB2
- POP DPH
- POP DPL
- MOV A,53H
- INC A
- MOV 53H,A
- CJNE R0,#00H,L4
- LJMP MAIN
- L2: CLR C
- MOV A,R2
- ADD A,#01H
- DA A
- MOV R2,A
- LJMP SB1
- L3: CLR C ;0.5V 相加溢出后進(jìn)位
- MOV A,R1
- ADD A,#01H
- DA A
- MOV R1,A
- LJMP SB1
- DISP:MOV A,R1 ;顯示電壓子程序
- SWAP A
- ANL A,#0FH
- MOV DPTR,#TAB1
- MOVC A,@A+DPTR
- CLR P3.0
- MOV P1,A
- LCALL DELAY
- SETB P3.0
- MOV A,R2
- ANL A,#0FH
- MOV DPTR,#TAB1
- MOVC A,@A+DPTR
- CLR P3.1
- MOV P1,A
- LCALL DELAY
- SETB P3.1
- MOV A,R2
- SWAP A
- ANL A,#0FH
- MOV DPTR,#TAB2
- MOVC A,@A+DPTR
- CLR P3.4
- MOV P1,A
- LCALL DELAY
- SETB P3.4
- RET
- DJW:MOV A,53H ;顯示第幾路轉(zhuǎn)換電壓子程序
- MOV DPTR,#TAB1
- MOVC A,@A+DPTR
- CLR P3.5
- MOV P1,A
- LCALL DELAY
- SETB P3.5
- RET
- INTV: PUSH ACC ;只顯示其中一路中斷
- PUSH 53H
- MOV 53H,#00H
- CX2: MOV R1,#00H
- MOV R2,#00H
- MOV R3,#0FFH
- MOV R4,#00H
- MOV DPH,51H
- MOV DPL,52H
- MOVX @DPTR,A
- LCALL DELAY
- MOVX A,@DPTR
- MOV R4,A
- JZ SB22
- L11: MOV A,R1
- ADD A,50H
- DA A
- MOV R1,A
- JC L22
- MOV A,R5 ;進(jìn)行 0.5V 相加
- ADD A,54H
- DA A
- MOV R5,A
- JC L33
- SB11:DJNZ R4,L11
- MOV A,R5
- SWAP A
- ANL A,#0FH
- MOV B,R1
- ADD A,B
- DA A
- MOV R1,A
- SB22:LCALL DISP
- LCALL DJW
- JNB P3.3,EXIT
- DJNZ R3,SB22
- JNB P3.2,CX1
- LJMP CX2
- L22:CLR C
- MOV A,R2
- ADD A,#01H
- DA A
- MOV R2,A
- LJMP SB11
- L33:CLR C
- MOV A,R1
- ADD A,#01H
- DA A
- MOV R1,A
- LJMP SB11
- CX1:INC R7
- MOV A,53H
- INC A
- MOV 53H,A
- MOV DPH,51H
- MOV DPL,52H
- INC DPTR
- MOV 51H,DPH
- MOV 52H,DPL
- CJNE R7,#04H,CX2
- MOV R7,#00H
- MOV 53H,#01H
- MOV DPTR,#7FF8H
- MOV 51H,DPH
- MOV 52H,DPL
- LJMP CX2
- EXIT:POP 53H
- POP ACC
- RETI
- DELAY:MOV R6,#1H ; 延時(shí)子程序
- D1:MOV R5,#50H
- D2:NOP
- NOP
- DJNZ R5,D2
- DJNZ R6,D1
- RET
- TAB1:DB 3FH,06H,5BH,4FH,66H ;碼表
- DB 6DH,7DH,07H,7FH,6FH
- TAB2:DB 0BFH,86H,0DBH,0CFH,0E6H ;小數(shù)點(diǎn)的段碼表
- DB 0EDH,0FDH,87H,0FFH,0EFH
- END
復(fù)制代碼 全部資料51hei下載地址:
基于單片機(jī)的數(shù)字電壓表.zip
(29.46 KB, 下載次數(shù): 32)
2019-1-9 16:29 上傳
點(diǎn)擊文件名下載附件
|