欢迎来到天天文库
浏览记录
ID:6407238
大小:190.50 KB
页数:13页
时间:2018-01-12
《毕业设计(论文)有关材料》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、子情境七:用ADC0809实现电压表7.1子情境内容:利用单片机AT89C52和ADC0809设计一个数字电压表,能够测量0-5V之间的电压值,用四位数码管显示。7.2子情境目标:(1)掌握PROTEUS中电压探针和电压表的使用方法(2)通过制作简易电压表,学会AD转换芯片在单片机应用系统中的硬件接口技术和编程方法。7.3知识点链接了解ADC0809芯片的功能以及使用方法(1)功能:ADC0809芯片为8通道模/数转换器,可以和单片机直接接口,将IN0~IN7任何一通道输入的模拟电压转换成八位二进制数,在时钟为500KHZ时,一次变换时间约为100us。(2)使用方法:2
2、8脚双列直插式封装如图5-39所示,各引脚功能如下:图5-39ADC0809引脚图IN0~IN7:8个通道的模拟量输入端。可输入0~5V待转换的模拟电压。本实例中采用IN0通道。ADDA、ADDB、ADDC:为地址输入线,用于选通IN0~IN7上的一路模拟量输入,通道选择表如表5-1所示。在本实例中直接将ADDA、ADDB、ADDC接地,选通IN0通道。地址码输入通道ADDCADDBADDA000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7表5-10809输入通道地址CLK:外部时钟信号输入端。ADC0809的典型时钟频率为6
3、40kHz,转换时间约为100μs。本实例中产生时钟信号的方法由软件来提供。START:启动转换信号输入端。在START上升沿时,所有的内部寄存器清零,在下降沿时,开始进行A/D转换;A/D转换期间,START应保持低电平。D0~D7:8位转换结果输出端。三态输出,D7是最高位,D0是最低位。EOC:ADC0809自动发出的转换状态端,EOC=0,表示正在进行转换;EOC=1,表示转换结束;OE:转换数据允许输出控制端。OE=0,表示禁止输出;OE=1,表示允许输出。REF(-)、REF(+):参考电压输入端。ADC0809的参考电压为+5V。ALE:为高电平时,通道地址
4、输入到地址锁存器中,下降沿将地址锁存,并译码。所以本实例中将ALE与START相连。由于ALE和START连在一起,因此ADC0809启动转换同时也在锁存通道地址。7.4任务步骤7.4.1步骤一:PROTEUS电路设计,利用单片机AT89C52和ADC0809设计一个数字电压表的原理图如图5-40所示。图5-40ADC0809与单片机的接口电路1、选取元器件①单片机:AT89C52②电阻:RES*③4位共阴极的数码管:7SEG-MPX4-CC④A/D转换芯片:ADC0808(代替0809)⑤电位器:POT-LOG⑥瓷片电容:CAP⑦晶振:CRYSTAL2、放置元器件、放置
5、电源和地、连线、元器件属性设置数字电压表的原理图如图5-40所示,整个电路设计操作都在ISIS平台中进行。与子情景3相似,故不详述。(1)电压探针和电压表单击工具栏中中的电压探针按钮,连接到要实时监控的电路上,以便仿真时观察该处电压的实时变化。见图5-40所示。单击工具栏中的按钮(虚拟仪器),在对象选择器列表中选择DCVOLTMETER(直流电压表),在ISIS编辑窗口中合适位置单击就可以将电压表放置好了。通过电压表可以观察到电位器电压的实时变化。(2)ADC0809与单片机的接口电路需要做些说明ADDA、ADDB、ADDC:在本实例中直接将ADDA、ADDB、ADDC接
6、地,选通IN0通道。CLK:在图5-40所示的电路中,CLK与P3^3口相连,单片机通过软件的方法在P3^3口输出时钟信号供ADC0809使用。START:在图5-40所示的电路中,START与P3^0口相连。D0~D7:8位转换结果输出端。在图5-40所示的电路中,与P0口相连,从P0口读出转换结果。EOC:ADC0809自动发出的转换状态端,在图5-40所示的电路中,EOC与P3^2口相连。OE:转换数据允许输出控制端,在图5-40所示的电路中,OE与P3^1口相连。ALE:在图5-40所示的电路中将ALE与START相连。由于ALE和START连在一起,因此ADC0
7、809启动转换同时也在锁存通道地址。7.4.2步骤二:源程序设计与目标代码文件生成(1)程序流程图开始位,变量,子程序声明启动ADC0809读取,转换数据送数码管显示主程序启动ADC0809子程序启动ADC0809设定time0,CLK取反Time0中断图5-41电压表流程图(2)源程序设计#include#defineuintunsignedint#defineucharunsignedcharucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07
此文档下载收益归作者所有