网站大量收购闲置独家精品文档,联系QQ:2885784924

设计题目数字电压表设计1设计目的掌握交直流电压.doc

设计题目数字电压表设计1设计目的掌握交直流电压.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计题目数字电压表设计1设计目的掌握交直流电压

一、设计题目:数字电压表设计。 设计目的 掌握交、直流电压测量方法; 掌握单片机A/D通道接口设计及软件编程方法; 掌握单片机应用系统的设计开发步骤。 设计内容 设计测量直流电压信号用的信号调理电路,要求对不同范围的输入信号分别设计,如:0-10mV、0-10V等,画出电路图; 设计一用于测量交流电压的交-直流转换电路,画出电路图; 在实验板上连接实现一直流电压测量电路; 编程实现上述算法,并在LED上显示出相应的电压值。 实验设备及器件 单片机开发系统一套、实验装置一台、电压信号发生器一台、直流稳压电源一台、LM324一片、电位器一支及电阻、电容。 设计流程图: 三、硬件芯片介绍: 1、ADC0809原理和应用: ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。 IN0-IN7:8条模拟量输入通道 ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。 数字量输出及控制线:11条 ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0为数字量输出线。 CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ 2、8155原理和应用 AD0~AD7:三态的地址/数据总线。与单片机的低8位地址/数据总线(P0口)相连。单片机与8155之间的地址、数据、命令与状态信息都是通过这个总线口传送的。 RD:读选通信号,控制对8155的读操作,低电平有效。 WR:写选通信号,控制对8155的写操作,低电平有效。 CE:片选信号线,低电平有效。 IO/M :8155的RAM存储器或I/O口选择线。当IO/M =0时,则选择8155的片内RAM,AD0~AD7上地址为8155中RAM单元的地址(00H~FFH);当IO/M =1时,选择 8155的I/O口,AD0~AD7上的地址为8155 I/O口的地址。 ALE:地址锁存信号。8155内部设有地址锁存器,在ALE的下降沿将单片机P0口输出的低8位地址信息及 ,IO/ 的状态都锁存到8155内部锁存器。因此,P0口输出的低8位地址信号不需外接锁存器。 五、程序源代码: #includereg51.h #includeabsacc.h #includeintrins.h #define uchar unsigned char #define com8155 XBYTE[0xff20] #define pa8155 XBYTE[0xff21] #define pb8155 XBYTE[0xff22] #define ad0809 XBYTE[0x8000] //********************************************* //MON51必须用到的 code unsigned char stop[3] _at_ 0x3b; //********************************************* void delay(unsigned int i) { unsigned int j,k; for(k=0;ki;k++) for(j=0;j100;j++); } void main(void) { uchar idata disbuf[3]={0,8,0}; uchar code table1[6]={ 0x40,0x79,0x24,0x30,0x19,0x12 }; uchar code table[20]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; com8155=0x43; while(1) {uchar x,y=0x20,m

文档评论(0)

ailuojue + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档