马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
要求:将A/D转换结果分别以十进制及二进制方式显示 二进制已经会了,求如何稍微加一段小程序就可以弄出十进制的 代码如下: OUTBIT equ 0e101h ; 位控制口 CLK164 equ 0e102h ; 段控制口(接164时钟位) DAT164 equ 0e102h ; 段控制口(接164数据位) IN equ 0e103h ; 键盘读入口 LEDBuf equ 40h ; 显示缓冲 org 0000h
mov sp,#60h
mov dptr,#0e100h ;8155初始化
mov a,#03h
movx @dptr,a
mov 40h,#00h ;显示缓冲器初始化
mov 41h,#08h
mov 42h,#00h
mov 43h,#09h
mov 44h,#00h mov 45h,#00h LOOP1: MOV R7,#40 VI: lcall DISPLAY DJNZ R7,VI
mov a,#00h
mov dptr,#0a000h ;0809AD的通道开始转换吗?
movx @dptr,a
mov r7,#0fh
loop2:
djnz r7,loop2
movx a,@dptr
mov dptr,#0b000h ;将结果送DAC0832
movx @dptr,a
mov r0,#45h ;拆字
lcall ptds
sjmp loop1
ptds:
mov r1,a
lcall ptds1
mov a,r1
swap a
ptds1: anl a,#0fh
mov @r0,a
dec r0
ret
Delay: mov r7, #0 ; 延时子程序 DelayLoop: djnz r7, DelayLoop djnz r6, DelayLoop ret DISPLAY:setb 0d3h mov r0, #LEDBuf mov r1, #6 ; 共6个八段管 mov r2, #00100000b ; 从左边开始显示 Loop: mov dptr, #OUTBIT mov a, #00h movx @dptr, a ; 关所有八段管 mov a, @r0 mov dptr,#LEDmap movc a,@a+dptr mov B, #8 ; 送164 DLP: rlc a mov r3, a mov acc.0, c anl a,#0fdh mov dptr, #DAT164 movx @dptr, a mov dptr, #CLK164 orl a,#02h movx @dptr, a anl a,#0fDh movx @dptr, a mov a, r3 djnz B, DLP mov dptr, #OUTBIT mov a, r2 movx @dptr, a ; 显示一位八段管 mov r6, #1 call Delay mov a, r2 ; 显示下一位 rr a mov r2, a inc r0 djnz r1, Loop mov dptr, #OUTBIT mov a, #0 movx @dptr, a clr 0d3h ; 关所有八段管 ret LEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h
END
|