历史上的今天
返回首页

历史上的今天

今天是:2025年03月18日(星期二)

正在发生

2021年03月18日 | 用ADC0832制作数字电压表

2021-03-18 来源:elecfans

;**************************************************************
;*  描述:                                                                       *
;*          ADC0832数字电压表数码管显示                                         *
;*                                                                              *
;*          调节ADC0832旁边的电位器,数码管显示 ADC0832 转换值的大小            *
;*                                                                              *
;*                                                                              *
;******************************************************************


           AD_CLK EQU P1.0
           AD_DAT EQU P1.1
           AD_CS  EQU P3.4
        DISSTART  EQU   30H    ;显示单元首地址
        LED_DATA  EQU   P0     ;数码管数据定义
            ORG  0000H
            JMP  START

;--------------------------------------------------------
START:      MOV  SP,#60H
            MOV  A,#00H
            MOV  20H,A
            MOV  P0,#0FFH
            MOV  P2,#0FFH

START1:     CALL  AD_CONV
            CALL  AD_CHULI
            CALL  QUSHU
            CALL  ADPLAY
            JMP   START1
;---------------------------------------------------------
AD_CONV:                        ;ADC0832初始化
            SETB AD_CS          ;一个转换周期开始
            CLR  AD_CLK
            CLR  AD_CS           ;CS置0,片选有效
            SETB AD_DAT         ;DI置1,起始位
            SETB AD_CLK         ;第一个脉冲
            CLR  AD_DAT         ;在负跳变之前加一个DI反转操作
            CLR  AD_CLK
            SETB AD_DAT         ;DI置1,设为单通道
            SETB AD_CLK         ;第二个脉冲
            CLR  AD_DAT          ;***
            CLR  AD_CLK          ;
            CLR  AD_DAT           ;DI置0,选择通道0
            SETB AD_CLK         ;第三个脉冲
            SETB AD_DAT         ;***
            CLR  AD_CLK
            NOP
            SETB AD_CLK        ; 第四个脉冲
            MOV  R1,#08H       ;计数器初值,读取8位数据,
AD_READ:    CLR  AD_CLK        ;下降沿
            MOV  C,AD_DAT      ;读取DO端数据
            RLC A              ;C移入A,高位在前
            SETB AD_CLK        ;下一个脉冲
            DJNZ R1,AD_READ    ;没读完继续
            SETB  AD_CS
            MOV 20H,A          ;转换结果发给20H
            RET
;------------------------------------------------------
AD_CHULI:
            CLR  C
            MOV  R5,#00H    ;十进制转换的低位寄存器
            MOV  R4,#00H    ;十进制转换的高位寄存器
            MOV  R3,#08H    ;十进制调整的次数
            MOV  A,20H
AD_CHULI1:
            RLC  A
            MOV  R2,A
            MOV  A,R5
            ADDC  A,R5
            DA  A
            MOV  R5,A
            MOV  A,R4
            ADDC  A,R4
            MOV  R4,A
            MOV  A,R2
            DJNZ  R3,AD_CHULI1
            MOV  A,R5
            ADD  A,R5
            DA  A
            MOV  R5,A
            MOV  A,R4
            ADDC  A,R4
            DA   A
            MOV  R4,A
            RET
;-------------------------------------------------
QUSHU:      MOV  A,R5
            ANL  A,#0FH
            MOV  DISSTART,A
            MOV  A,R5
            ANL  A,#0F0H
            SWAP  A
            MOV  DISSTART+1,A
            MOV  A,R4
            ANL  A,#0FH
            MOV  DISSTART+2,A
            MOV  A,R4
            ANL  A,#0F0H
            MOV  DISSTART+3,A
            RET
;---------------------------------------------------
ADPLAY:     PUSH  PSW
            CLR   PSW.3
            SETB  PSW.4

            MOV R0,#DISSTART      ;开始填充显示单元
            MOV R2,#03H           ;共计填充 3 位
DISP1:      MOV A,@R0             ;获得当前位地址
            MOV DPTR,#TAB_NU      ;获得表头
            MOVC A,@A+DPTR        ;获得编码数据
            MOV @R0,A             ;保存编码数据
            INC R0                ;指向下一个带转换数据
            DJNZ R2,DISP1         ;继续转换,直到完成

            MOV R0,#DISSTART      ;获得显示单元首地址
            MOV R1,#07FH          ;从第一个数码管开始
            MOV R2,#03H           ;共显示3位数码管
DISP2:      MOV LED_DATA,@R0      ;读取显示单元数据
            MOV P2,R1             ;开始显示当前位
            MOV A,R1              ;准备显示下一位
            RR A                          ;
            MOV R1,A              ;下一位
            INC R0                ;取下一个单元地址
            JNB  ACC.5,DISP3      ;第三位数码管加小数点
            JMP  DISP4
DISP3:      MOV  A,@R0
            ANL  A,#7FH
            MOV  @R0,A
DISP4:      LCALL DELAY5MS        ;延时 2 MS
            DJNZ R2,DISP2         ;重复显示下一个
            POP  PSW
            RET                   ;显示完成,返回
;---------------------------------------------------
DELAY5MS:
         MOV  R6,#10
  DEL1:     MOV  R7,#100
            DJNZ  R7,$
            DJNZ  R6,DEL1
            RET
;-------------------------------------------------
TAB_NU:
    DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
    DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH

推荐阅读

史海拾趣

统宇电研(Coilmaster)公司的发展小趣事

统宇电研深知品质对于企业的重要性,因此一直将品质管理作为公司的核心竞争力之一。公司建立了严格的品质管理体系,从原材料采购到产品出厂的每一个环节都进行严格把关。同时,统宇电研还注重员工品质意识的培养和提高,通过培训和实践相结合的方式不断提升员工的品质素养。这些努力使得统宇电研的产品品质得到了客户的广泛认可。

Festo公司的发展小趣事

近年来,Festo在中国的发展步伐进一步加快。2021年4月,Festo济南全球生产中心正式全面投入运营。这个生产中心整合了本地的生产、研发、销售、物流等全价值链,形成了“研产销一体化”的格局。通过引进先进的生产设备和工艺,以及优化生产流程和管理体系,Festo济南全球生产中心在保障产品质量的同时,也大大提高了生产效率和响应速度。这一生产中心的建立不仅为Festo在中国市场的进一步发展提供了强有力的支持,也进一步巩固了Festo在全球气动自动化领域的领导地位。

以上五个故事从不同角度展示了Festo公司在电子行业中的发展历程和成就。作为一家以创新为驱动、以可持续发展为目标的公司,Festo将继续引领电子行业的发展方向,为全球客户提供更加优质的产品和服务。

ELESTA GmbH公司的发展小趣事

1997年,ELESTA继电器有限公司正式成立,专注于制造符合IEC 61810-3标准的强制导向触点继电器。这一战略举措进一步巩固了ELESTA在电子继电器领域的领先地位,并为公司的长期发展奠定了坚实的基础。

乔光电子(FTR)公司的发展小趣事

1997年,ELESTA继电器有限公司正式成立,专注于制造符合IEC 61810-3标准的强制导向触点继电器。这一战略举措进一步巩固了ELESTA在电子继电器领域的领先地位,并为公司的长期发展奠定了坚实的基础。

Coleman Cable Inc公司的发展小趣事

随着全球环保意识的不断提高,Coleman Cable积极响应绿色发展的号召,将环保理念融入公司的生产和经营中。公司研发出环保型电缆产品,采用环保材料和工艺,减少生产过程中的环境污染。同时,公司还加强废弃电缆的回收和处理工作,推动资源的循环利用,为行业的绿色发展做出了贡献。

Data Delay Devices公司的发展小趣事

在DDD公司的发展历程中,技术创新一直是其核心竞争力。公司不断投入研发资金,引进高端人才,推动产品升级换代。特别是在模拟和数字延迟线技术方面,DDD公司取得了多项重要突破。这些技术创新不仅提高了产品的性能和质量,也为公司赢得了更多客户的信任和认可。

问答坊 | AI 解惑

用J-LINK来调试 EK-LM3S8962 开发板吧!

收到 EK-LM3S8962 开发板的第一步,就是插上jlink.没想到啊没想到, j-link command居然提示没有目标板. 找出开发板的readme看了下,如果是版本B的EK-LM3S8962,这个jtag接头居然是双向的,也就是这个接头可以可以用来调试其他的 ...…

查看全部问答>

嵌入式低层开发比嵌入式应用开发的薪资要高很多?

做嵌入式是不是一定要会硬件,比如驱动开发,系统移殖。只做应用不算嵌入式?比如手机上的音视频?…

查看全部问答>

请教:关于Linux和Cpu相关的疑问。

那位能帮忙给说明一下呢? 1.linux目前都支持那些常用的微处理器,如powerPC、mips、ARM等。 2.是否如果linux能支持这些Cpu的话,那么在linux上的应用程序基本上也是可以移植到这些CPU的呢(除了那些用汇编写的程序)。例如,Gtk+、Qt等。也就是说 ...…

查看全部问答>

有偿求VS2005/2003+winCE5.0/4.2,2440开发板,串口通讯!

求高手指点VS2005/2003+winCE5.0/4.2环境,2440开发板的串口通讯模块! 现金有偿求! 电话:13759970064 本人在西安。外地的可以短信我,我打回去!…

查看全部问答>

求助,谁有IESAMPLE 或iesimple的源代码?

我在google上找了半天,没找到,谁有麻烦给我发一个,小弟不胜感激?我的邮箱jamiss@21cn.com。谢谢!…

查看全部问答>

申请TI LM3S8962 评估套件试用

申请TI LM3S8962 评估套件试用 [ 本帖最后由 lxiny25 于 2010-10-22 14:06 编辑 ]…

查看全部问答>

今年的题大概有哪些方向???

本帖最后由 paulhyde 于 2014-9-15 09:03 编辑 无线通信的没有啦!!!我们做的就是这个啊!!!咋么办呢“”“???  …

查看全部问答>