📄 ad09.asm
字号:
;AD 0804控制程序:转动电位器,数码管依次显示1-9,0,ABCDE,把8位数据255
;等分为16份,程序的后面用CJNE 比较指令,如果到了多少就显示某一个数字
;***************************************************************************
;* sxj1974@163.com (51c51 test web) www.8951.com *
;* Create by :石学军 www.51c51.com 更多例程请登陆网站 *
;***************************************************************************
;//定义ADC的连接端口
ad_cs equ P3.6 ;芯片选择
ad_wr equ P2.0 ;转换开始
ad_rd equ P3.7 ;RD=LOW,数字信号输出
ad_input_port equ p1 ;定义数据位
org 0000h
ajmp main
org 0030h
main:
lcall adc_demo
ajmp main
;//==========================================
;// 启动AD转换
;//==========================================
Adc_Start:
clr ad_cs
nop
clr ad_wr
nop
setb ad_wr
nop
setb ad_cs
nop
ret
;//==========================================
;// 读AD转换
;//==========================================
Adc_Read:
mov ad_input_port,#0ffh
clr ad_cs
nop
clr ad_rd
nop
nop
mov a,AD_INPUT_PORT
nop
setb ad_rd
nop
setb ad_cs
ret
;//==========================================
;// AD转换读取延时程序,显示读到的数值
;//==========================================
Adc_Demo:
lcall Adc_Start
lcall delay1ms
lcall adc_read
BIJIAO:
CLR P2.1 ;打开P2.1端口数码管的第一位显示
CJNE A,#10h,TT1
MOV P0,#7EH ;数码管显示1
TT1: CJNE A,#20h,T2
MOV P0,#0A2H ;数码管显示2
T2: CJNE A,#30h,T3
MOV P0,#62H ;数码管显示3
T3: CJNE A,#40h,T4
MOV P0,#74H ;数码管显示4
T4: CJNE A,#50h,T5
MOV P0,#61H ;数码管显示5
T5: CJNE A,#60h,T6
MOV P0,#21H ;数码管显示6
T6: CJNE A,#70h,T7
MOV P0,#7AH ;数码管显示7
T7: CJNE A,#80h,T8
MOV P0,#20H ;数码管显示8
T8: CJNE A,#90h,t9
MOV P0,#60H ;数码管显示9
T9: CJNE A,#0A0h,t10
MOV P0,#28H ;数码管显示0
T10: CJNE A,#0B0h,t11
MOV P0,#30H ;数码管显示A
T11: CJNE A,#0C0h,t12
MOV P0,#25H ;数码管显示b
T12: CJNE A,#0D0h,t13
MOV P0,#0a9H ;数码管显示C
T13: CJNE A,#0E0h,t14
MOV P0,#26H ;数码管显示d
T14: CJNE A,#0F0h,t15
MOV P0,#0a1H ;数码管显示E
T15:
ret
delay1ms: ;延时子程序
mov r7,#10
MM:mov r6,#50
djnz r6,$ ;2us
djnz r7,MM
ret
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -