基于ADC0809与单片机制作的数字电压表

基于ADC0809与单片机制作的数字电压表,第1张

     8位A/D转换器ADC0809

  A/D转换器是模拟信号源与计算机或其它数字系统之间联系的桥梁,它的任务是将连续变化的模拟信号转换为数字信号,以便计算机等数字系统进行处理、存储、控制和显示。在工业控制和数据采集及许多其它领域中,A/D转换器是不可缺少的重要组成部分,它的应用已经相当普遍。目前用软件的方法虽然可以实现高精度的A/D转换,但占用CPU时间长,限制了应用。8位A/D转换器ADC0809作为典型的A/D转换芯片,具有转换速度快、价格低廉及与微型计算机接口简便等一系列优点,目前在8位单片机系统中得到了广泛的应用。

     基于ADC0809与单片机的数字电压表设计

  从ADC0809的通道IN3输入0-5V之间的模拟量,通过ADC0809转换成数字量在数码管上以十进制形式显示出来,如下图3.1所示。ADC0809的REFV接+5V电压。

  基于ADC0809与单片机制作的数字电压表,基于ADC0809与单片机制作的数字电压表,第2张

  图3.1 数字电压表电路

  其中CD4013由两个相同的、相互独立的触发器构成。每个触发器有独立的数据、置位、复位、时钟输入和Q及Q输出。此器件可用作移位寄存器,且通过将Q输出连接到数据输入,可用作计数器和触发器。如前所述,使用CD4013目的就是对单片机ALE引脚输出的时钟频率2MHz进行4分频,以提供0809合适的时钟信号。引脚图及具体单元电路图如图3.2所示。

  基于ADC0809与单片机制作的数字电压表,基于ADC0809与单片机制作的数字电压表,第3张

  硬件连线是:把单片机系统区域中的P1.0-P1.7与动态数码显示区域中的A、B、C、D、E、F、G、H端口用8芯排线连接。P2.0-P2.7与动态数码显示区域中的S1——S8端口用8芯排线连接。P3.0与模数转换模块区域中的ST端子用导线相连接。P3.1与模数转换模块区域中的OE端子用导线相连接。P3.2与模数转换模块区域中的EOC端子用导线相连接。IN3端用导线连接到三路可调电压模块区域中的VR1端子上。P0.0-P0.7用8芯排线连接到模数转换模块区域中的D0——D7端上。因为ADC0809的参考电压REFV=CCV,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。实际显示的电压值(D/256REFV),其中D为转换成的数字量。[8]

  程序设计时注意,进行A/D转换时,采用查询EOC标志信号来检测A/D转换是否完毕,若完毕则把数据通过P0口读入,经数据处理后在数码管上显示。进行A/D转换之前,要启动转化的方法:ABC=110选择第三通道,ST=0,ST=1,ST=0产生启动转换的正脉冲信号。

  汇编源程序如下

  CH EQU 30H 。

  DPCNT EQU 31H

  DPBUF EQU 33H

  GDATA EQU 32H

  ST BIT P3.0

  OE BIT P3.1

  EOC BIT P3.2

  ORG 00H

  LJMP START

  ORG 0BH

  LJMP T0X

  ORG 30H

  START: MOV CH,#0BCH

  MOV DPCNT,#00H

  MOV R1,#DPCNT

  MOV R7,#5

  MOV A,#10

  MOV R0,#DPBUF

  LOP: MOV @R0,A

  INC R0

  DJNZ R7,LOP

  MOV @R0,#00H

  INC R0

  MOV @R0,

  #00H INC R0 MOV @R0,#00H

  MOV TMOD,#01H

  MOV TH0,#(65536-4000)/256

  MOV TL0,#(65536-4000) MOD 256

  SETB TR0

  SETB ET0

  SETB EA

  WT: CLR ST

  SETB ST

  CLR ST

  WAIT: JNB EOC,WAIT

  SETB OE

  MOV GDATA,P0

  CLR OE

  MOV A,GDATA

  MOV B,#100

  DIV AB

  MOV 33H,A

  MOV A,B

  MOV B,#10

  DIV AB

  MOV 34H,A

  MOV 35H,B

  SJMP WT

  T0X: NOP

  MOV TH0,#(65536-4000)/256

  MOV TL0,#(65536-4000) MOD 256

  MOV A,DPCNT

  ADD A,#DPBUF

  MOV R0,A

  MOV A,@R0

  MOVC A,@A+DPTR

  MOV P1,A

  MOV DPTR,#DPBT

  MOV A,DPCNT

  MOVC A,@A+DPTR

  MOV P2,A INC DPCNT

  MOV A,DPCNT

  CJNE A,#8,NEXT

  MOV DPCNT,#00H

  NEXT: RETI

  DPCD: DB 3FH,06H,5BH,4FH,66H

  DB 6DH,7DH,07H,7FH,6FH,00H

  DPBT: DB 0FEH,0FDH,0FBH,0F7H

  DB 0EFH,0DFH,0BFH,07FH

  END

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2705490.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-16
下一篇 2022-08-16

发表评论

登录后才能评论

评论列表(0条)

保存