|
IMG_2616.PNG (245.11 KB, 下載次數(shù): 56)
下載附件
2017-12-8 20:30 上傳
單片機匯編語言源程序如下:
- LED_0 EQU 30H ;存放三個數(shù)碼管的段碼
- LED_1 EQU 31H ;十位
- LED_2 EQU 32H ;百位
- LED_3 EQU 33H ;千位
- ADC EQU 35H ;存放轉(zhuǎn)換后的數(shù)據(jù)
- CLOCK BIT P1.4 ;定義0809時鐘位
- ST BIT P1.5
- OE BIT P1.7
- EOC BIT P1.6
- ORG 00H
- SJMP START
- ORG 0BH
- LJMP INT_T0
- ORG 30H
- START: MOV LED_0,#00H
- MOV LED_1,#00H
- MOV LED_2,#00H
- MOV DPTR,#TABLE ;送段碼表首地址
- MOV TMOD,#02H
- MOV TH0,#245
- MOV TL0,#00H
- MOV IE,#82H
- SETB TR0
- WAIT: CLR ST
- SETB ST
- CLR ST ;啟動轉(zhuǎn)換
- JNB EOC,$ ;等待轉(zhuǎn)換結(jié)束
- SETB OE ;允許輸出
- MOV ADC,P2 ;暫存轉(zhuǎn)換結(jié)果
- CLR OE ;關(guān)閉輸出
- MOV A,ADC ;將AD轉(zhuǎn)換結(jié)果轉(zhuǎn)換成BCD碼
- MOV R7,A
- MOV LED_3,#00H
- MOV LED_2,#00H
- MOV A,#00H
- LOOP1: ADD A,#20H ;一位二進制碼對應(yīng)20mv電壓值
- DA A
- JNC LOOP2
- MOV R4,A
- INC LED_2
- MOV A,LED_2
- CJNE A,#0AH,LOOP4
- MOV LED_2,#00H
- INC LED_3
- LOOP4: MOV A,R4
- LOOP2: DJNZ R7,LOOP1
- ACALL BTOD1
- LCALL DISP
- SJMP WAIT
- ORG 200H
- BTOD1: MOV R6,A
- ANL A,#0F0H
- MOV R5,#4
- LOOP3: RR A
- DJNZ R5,LOOP3
- MOV LED_1,A
- MOV A,R6
- ANL A,#0FH
- MOV LED_0,A
- RET
- INT_T0: CPL CLOCK ;提供0809時鐘信號
- RETI
- DISP: MOV A,LED_0 ;數(shù)碼顯示子程序
- MOVC A,@A+DPTR
- CLR P1.3
- MOV P0,A
- LCALL DELAY
- SETB P1.3
- MOV A,LED_1
- MOVC A,@A+DPTR
- CLR P1.2
- MOV P0,A
- LCALL DELAY
- SETB P1.2
- MOV A,LED_2
- MOVC A,@A+DPTR
- CLR P1.1
- MOV P0,A
- LCALL DELAY
- SETB P1.1
- MOV A,LED_3
- MOVC A,@A+DPTR
- CLR P1.0
- MOV P0,A
- LCALL DELAY
- SETB P1.0
- RET
- DELAY: MOV R6,#10 ;延時5毫秒
- D1: MOV R7,#250
- DJNZ R7,$
- DJNZ R6,D1
- RET
- TABLE: DB 3FH,06H,5BH,4FH,66H ;共陰極數(shù)碼管七段值
- DB 6DH,7DH,07H,7FH,6FH
- END
復(fù)制代碼
|
|