2023-04-09 (1).png (358.65 KB, 下載次數: 48)
下載附件
2023-4-9 21:56 上傳
單片機源程序如下:
- TEMP EQU 20H
- NUMB EQU 25H
- ORG 0000H
- LJMP MAIN
- ORG 0003H
- LJMP INTX0 ;外部中斷0
- ORG 0030H
- ;======================================
- ;主程序
- MAIN:
- MOV R0,#30H
- SETB PT0 ;設置定時器0為高優先級
- SETB IT0 ;INT0為下降沿觸發
- SETB EA ;開系統中斷
- SETB EX0 ;開外部中斷0
-
- MOV DPTR,#7FF8H ;DPTR指向0808通道0
- MOV A,#00H
- MOVX @DPTR,A ;端口地址送DPTR,P2.7=0,鎖定通道0并啟動轉換
- WAIT:
- SJMP [ DISCUZ_CODE_3 ]nbsp; ;等待中斷
-
- INTX0:
- MOV DPTR,#7FF8H
- MOVX A,@DPTR ;讀取A/D轉換結果
- MOV NUMB,A ;將結果送到30H
- LCALL CONVERT
- LCALL DISP
- MOV A,#00H
- MOVX @DPTR,A ;重啟ADC0808對INT0的轉換
- RETI
- DISP:
- MOV R0,#TEMP
- MOV R2,#00H
- DISP1:
- MOV A,R2
- MOV DPTR,#TAB1
- MOVC A,@A+DPTR
- MOV P2,A
- MOV A,@R0
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P0,A
- MOV R5,#5
- LCALL DELAY
- INC R0
- INC R2
- CJNE R2,#3,DISP1
- MOV P0,#00H
- RET
-
- CONVERT:
- MOV A,NUMB
- MOV B,#10
- DIV AB
- MOV TEMP+2,B
- MOV B,#10
- DIV AB
- MOV TEMP+1,B
- MOV TEMP,A
- RET
- //延時子程序
- DELAY:
- MOV R6,#1
- DELAY0:
- MOV R7,#100
- DJNZ R7,$
- DJNZ R6,DELAY0
- DJNZ R5,DELAY
- RET
- TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH
- TAB1: DB 0FDH,0FBH,0F7H ;位選信號,后三個數目管
- END
復制代碼
|