您的位置 首页 分销

ADC0832数字电压表数码管显现(示例程序)

;********************************************************************************描述:ADC0832数字电压表数码管显

;********************************************************************************

描绘:

ADC0832数字电压表数码管显现

调理ADC0832周围的电位器,数码管显现ADC0832转化值的巨细
;*******************************************************************************

**********************************************************************************
AD_CLKEQUP1.0
AD_DATEQUP1.1
AD_CSEQUP3.4
DISSTARTEQU30H;显现单首脑地址
LED_DATAEQUP0;数码管数据界说
ORG0000H
JMPSTART

;——————————————————–
START:MOVSP,#60H
MOVA,#00H
MOV20H,A
MOVP0,#0FFH
MOVP2,#0FFH

START1:CALLAD_CONV
CALLAD_CHULI
CALLQUSHU
CALLADPLAY
JMPSTART1
;———————————————————
AD_CONV:;ADC0832初始化
SETBAD_CS;一个转化周期开端
CLRAD_CLK
CLRAD_CS;CS置0,片选有用
SETBAD_DAT;DI置1,开端位
SETBAD_CLK;第一个脉冲
CLRAD_DAT;在负跳变之前加一个DI回转操作
CLRAD_CLK
SETBAD_DAT;DI置1,设为单通道
SETBAD_CLK;第二个脉冲
CLRAD_DAT;***
CLRAD_CLK;
CLRAD_DAT;DI置0,挑选通道0
SETBAD_CLK;第三个脉冲
SETBAD_DAT;***
CLRAD_CLK
NOP
SETBAD_CLK;第四个脉冲
MOVR1,#08H;计数器初值,读取8位数据,
AD_READ:CLRAD_CLK;下降沿
MOVC,AD_DAT;读取DO端数据
RLCA;C移入A,高位在前
SETBAD_CLK;下一个脉冲
DJNZR1,AD_READ;没读完持续
SETBAD_CS
MOV20H,A;转化成果发给20H
RET
;——————————————————
AD_CHULI:
CLRC
MOVR5,#00H;十进制转化的低位寄存器
MOVR4,#00H;十进制转化的高位寄存器
MOVR3,#08H;十进制调整的次数
MOVA,20H
AD_CHULI1:
RLCA
MOVR2,A
MOVA,R5
ADDCA,R5
DAA
MOVR5,A
MOVA,R4
ADDCA,R4
MOVR4,A
MOVA,R2
DJNZR3,AD_CHULI1
MOVA,R5
ADDA,R5
DAA
MOVR5,A
MOVA,R4
ADDCA,R4
DAA
MOVR4,A
RET
;————————————————-
QUSHU:MOVA,R5
ANLA,#0FH
MOVDISSTART,A
MOVA,R5
ANLA,#0F0H
SWAPA
MOVDISSTART+1,A
MOVA,R4
ANLA,#0FH
MOVDISSTART+2,A
MOVA,R4
ANLA,#0F0H
MOVDISSTART+3,A
RET
;—————————————————
ADPLAY:PUSHPSW
CLRPSW.3
SETBPSW.4

MOVR0,#DISSTART;开端填充显现单元
MOVR2,#03H;合计填充3位
DISP1:MOVA,@R0;取得当时位地址
MOVDPTR,#TAB_NU;取得表头
MOVCA,@A+DPTR;取得编码数据
MOV@R0,A;保存编码数据
INCR0;指向下一个带转化数据
DJNZR2,DISP1;持续转化,直到完结

MOVR0,#DISSTART;取得显现单首脑地址
MOVR1,#07FH;从第一个数码管开端
MOVR2,#03H;共显现3位数码管
DISP2:MOVLED_DATA,@R0;读取显现单元数据
MOVP2,R1;开端显现当时位
MOVA,R1;预备显现下一位
RRA;
MOVR1,A;下一位
INCR0;取下一个单元地址
JNBACC.5,DISP3;第三位数码管加小数点
JMPDISP4
DISP3:MOVA,@R0
ANLA,#7FH
MOV@R0,A
DISP4:LCALLDELAY5MS;延时2MS
DJNZR2,DISP2;重复显现下一个
POPPSW
RET;显现完结,回来
;—————————————————
DELAY5MS:
MOVR6,#10
DEL1:MOVR7,#100
DJNZR7,$
DJNZR6,DEL1
RET
;————————————————-
TAB_NU:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/276163.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部