AD_ALLAN~~~~~.ASM
上传用户:qzt189
上传日期:2020-08-05
资源大小:1k
文件大小:4k
- ad_buf equ 30h
- org 0
- ljmp display ;显示子程序
- org 3 ;中断0的入口地址
- ljmp int00
- display:
- setb ea ;开放所有的中断
- setb ex0 ;开放0中断
- mov r5,#0AAh
- RUN_display: mov p0,#0
- mov a,#80h
- mov p0,a
- lcall sel1
- lcall delay
- lcall sel5
- lcall delay
- dec r5
- JC FLOT
- mov r0,#ad_buf ;R0指向经转换的数据
- mov a,@r0
- mov dptr,#tab
- movc a,@a+dptr
- mov p0,a
- lcall sel2
- lcall delay
- inc r0
- mov a,@r0
- mov r1,a ;从31h取两次数,
- swap a ;将高低位对调
- anl a,#0fh ;取出次高位的值 来
- movc a,@a+dptr
- mov p0,a
- lcall sel3
- lcall delay ;在LED2上显示次高位的值
- mov a,r1 ;将保存在12中的值再倒回来
- anl a,#0fh ;取出最低位的值来
- movc a,@a+dptr
- mov p0,a
- lcall sel4
- lcall delay
- cjne r5,#1h,qqq
- ljmp display
- qqq :
- ajmp RUN_display
- ;*****************************************************************************************
- sel1:
- clr p2.7
- clr p2.6
- clr p2.5
- ret
- sel2: setb p2.7
- clr p2.6
- clr p2.5
- ret
- sel3: clr p2.5
- setb p2.6
- clr p2.7
- ret
- sel4: clr p2.5
- setb p2.6
- setb p2.7
- ret
- sel5: setb p2.5
- clr p2.6
- clr p2.7
- ret
- delay:
- mov r4,#022
- lloop3: mov r3,#022
- lloop4: djnz r3,lloop4
- djnz r4,lloop3
- ret
- FLOT: mov a,#80h
- mov p0,a
- lcall sel2
- lcall delay
- lcall sel3
- lcall delay
- lcall sel4
- lcall delay
- LJMP DISPLAY
- ;********************************************************************
- int00: push a ;保护A
- clr ea
- clr ex0 ;让INT0和中断不能进来
- mov r0,#ad_buf
- ad1: clr p2.0
- clr p2.1
- mov a,p1 ;读高8位的值
- setb p2.1
- mov c,acc.4
- anl a,#0fh ;把A的低4位取出来,实际是将AD最高四位值求出
- mov @r0,a
- inc r0 ;r0指向下一个单元31H
- clr p2.2
- mov a,p1
- setb p2.2 ;关低位的读入
- setb p2.0
- mov @r0,a
- pop a
- reti
- tab: db 7eh,0ch,0b6h,9eh,0cch,0dah,0fah,0eh,0feh,0deh,0eeh,0f8h,72h,0bch,0f2h,0e2h,80H
- ;0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F