📄 tx-1bad测试程序.asm
字号:
adrd bit P3.7; //IO口定义
adwr bit P3.6;
diola bit P2.5;
dula bit P2.6;
wela bit P2.7;
bai_c equ 40h
sh_c equ 41h
g_c equ 42h
adval equ 44h
org 0000h
ajmp main
main:mov adval,#0
clr diola
main1: clr adwr; ;AD写入(随便写个什么都行,主要是为了启动AD转换)
nop
setb adwr;
clr adrd
mov adval,P1 ;AD数据读取
setb adrd
mov a,adval
mov b,#100
div ab
mov bai_c,a ;分出百,十,和个位
mov a,b;
mov b,#10
div ab
mov sh_c,a;
mov g_c,b;
mov r1,#20 ;r1 不能太小 达到延时的作用 ad反应时间有限
loop1:call display;送去显示各位。
djnz r1,loop1
ajmp main1
display: ;显示程序
MOV DPTR,#TABLE
clr dula;
mov a,bai_c
MOVC a,@A+DPTR
mov p0,a ;显示百位
setb dula;
clr dula;
clr wela;
mov P0,#7eh;
setb wela;
clr wela;
mov 50h,#5h
call delayxms
clr dula;
mov a,sh_c
MOVC a,@A+DPTR
mov p0,a ; ;显示十位
setb dula;
clr dula;
clr wela;
mov P0,#7dh;
setb wela;
clr wela;
mov 50h,#5h
call delayxms
mov a,g_c
MOVC a,@A+DPTR
mov p0,a ; ;显示个位
setb dula;
clr dula;
mov P0,#7bh;
setb wela;
clr wela;
mov 50h,#4h
call delayxms
ret
delayxms:mov 52h,#4 ;50h,51h,52h用于延时 50h为参数x 延时1*x ms
delaya: mov 51h,#60
djnz 51h,$
djnz 52h,delaya
djnz 50h,delayxms
ret ;延时返回
table:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,
db 7fh,6fh,77h,7ch,39h,5eh,79h,71h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -