首页 理论教育 ADC0809与MCS-51单片机接口:设计与实训

ADC0809与MCS-51单片机接口:设计与实训

时间:2023-11-16 理论教育 版权反馈
【摘要】:1 接口电路设计如图6-38所示是MCS-51与ADC0809构成的简易数字电压表的接口电路原理图。被测电压(≤5V)从ADC0809的第0道模拟信号端IN0输入。用P2.0口控制ADC0809的启动。从电路可知,ADC0809的地址为FEFFH。ADC0809的EOC端通过反相器接到单片机的外中断INT1端上。查询方式ADC0809的EOC端与单片机的任一位I/O接口相连。延时方式可断开ADC0809的EOC端与INT1端的连接电路。

ADC0809与MCS-51单片机接口:设计与实训

1 接口电路设计

如图6-38所示是MCS-51与ADC0809构成的简易数字电压表的接口电路原理图。被测电压(≤5V)从ADC0809的第0道模拟信号端IN0输入(输入通道选择位ADD-A、ADD-B、ADD-C三端直接接地)。用P2.0口控制ADC0809的启动。转换结果显示在两个数码管上。从电路可知,ADC0809的地址为FEFFH(无关位为1时)。

(1)中断方式

中断方式是最方便、最及时、效率最高的方式。但必须占用一个外中断资源。ADC0809的EOC端通过反相器接到单片机的外中断INT1端上。在程序设计中开启中断,该系统便成为工作在中断方式下的A-D转换。

(2)查询方式

ADC0809的EOC端与单片机的任一位I/O接口相连。启动A-D后,不断查询此I/O接口,直到EOC变为高电平,转换结束,再读A-D的值。把INT0脚当作普通I/O接口的一位,不开通中断,程序中不断查询此端口,系统便工作在查询方式下。

(3)延时方式

可断开ADC0809的EOC端与INT1端的连接电路。启动A-D后延时一段时间直接读A-D的值。延时时间一定要不小于A-D转换器的转换时间。若延时太短,A-D转换尚未结束,得到不正确的转换结果。

978-7-111-54295-7-Chapter06-67.jpg

图6-38 MCS-51与ADC0809的接口电路原理图

2 接口程序设计

可用三种方式编写ADC0809转换程序,即中断方式、查询方式和延时方式。本程序采用延时方式。程序如下:

ORG 0000H

LJMP MAIN

ORG 100H

MAIN:MOV DPTR,#0FEFFH;P2.0控制A/D的开始

LOOP:SETB P3.4;关数码管显示

SETB P3.5;关数码管显示

MOVX @DPTR,A;启动ADC0809,与A中内容无关

MOV R6,#34H;ADC0809编程方式为延时,12MHz,延时104μs

DJNZ R6,$

MOVX A,@DPTR;读A-D转换数

MOV 30H,A;暂存RAM 30H单元

ANL A,#0FH;屏蔽高4位,显示低4位

LCALL SEG7;查出显示码(www.xing528.com)

SETB P3.4;关显示高位

CLR P3.5;开显示低位

MOV P1,A;显示低位

LCALL DELAY;延时6ms

MOV A,30H;将转换数重新存入累加器

ANL A,#0F0H;屏蔽低4位,显示高4位

SWAP A;累加器A的高低4位互换

LCALL SEG7;查出显示码

SETB P3.5;关显示低位

CLR P3.4;开显示高位

MOV P1,A;显示高位

LCALL DELAY;调转到延时程序

SJMP LOOP;重复显示

SEG7:INC A;查表位置调整

MOVC A,@A+PC;查显示码

RET;返回

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H

DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH;共阳段码

DELAY:MOV R5,#2;延时

DEL1:MOV R6,#249

DEL2:DJNZ R6,DEL2

DJNZ R5,DEL1

RET

END

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈