- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
四位半多功能数字表
一.基本要求:在Proteus平台上设计并仿真实现一台四位半多功能数字电压表
直流电压测量,并具有极性判断和自动量程转换功能。
直流电压测量:每秒等效采样次数≥3次
推荐档位:
I档(20mV档):最小电压分辨率:2μV
II档(200mV档):最小电压分辨率:20μV
= 3 \* ROMAN III档(2V档):最小电压分辨率:0.2mV
= 4 \* ROMAN IV档(20V档):最小电压分辨率:2mV
*交流电压测量:最高频率=10KHz的正弦波
= 1 \* ROMAN I档(20V档):最小电压分辨率:20mV
= 2 \* ROMAN II档(200V档):最小电压分辨率:200mV
*交流参数测量:频率、有效值、峰值
第1项为基本要求内容,带有“*”的2、3项为选做内容。
只能采用通用A/D、集成运放IC、51单片机等器件,不准使用专用电压测量集成电路完成系统设计。
推荐一个参考的系统组成框图如下:
其中第一级的前置放大级推荐采用AD8551自稳零斩波运算放大器。
设计过程:包括元器件选型依据(如前置放大器的设计、A/D分辨率的选择、放大器及滤波器设计、采样率计算、电源设计等)、理论分析及参数计算、系统设计(书面)。
系统框图、元件选型、理论计算、模块电路设计
二 系统框图
整体框图
数字电路部分和模拟电路量程初判模块整体电路:
1 .电压极性检测电路电压极性检测电路采用过零比较器检测负电压的方式实现的,运算放大器LM324的反向端接地,同向端通过100K电阻接输入信号。当输入的测量信号为负时比较器翻转,输出端经过电平转换成TTL信号后送给单片机PA7端口检测,通常情况下输出为高电平,为正电压状态。
???????????????????????????????????????????????????????
??2. 电压范围粗测电路为了粗略地得到被测量的电压范围我们采用多组比较器的方式,通过阶梯式比较的方法确定输入电压的范围。其具体电路如下图(2.2.5)所示。
3. 量程切换电路量程切换电路包括电压放大电路和无零漂小信号放大电路。电压变换电路电压变换电路由衰减电阻、切换继电器和运算放大器组成,对应的是衰减1/2、1/3、1/4和无零漂放大50倍,切换电路如图(2.2.7)所示。电压变换到0-5V标准信号后,再由A/D转换进行采样,最后由单片机算法还原。
4.差分放大电路:对输入的电压进行去除同模干扰。
5.50hz陷波器:
电路设计,目的是滤去工频交流点,因为电表多由工频电源提供,在50HZ频率段电压干扰很大,所以要滤去。
陷波器的频谱分析图:绿色为幅频响应,红色为相位。运放模块
1|2放大电路;100倍放大器:
测试输出:
输入10V:
输入5V
输入2V:
2V
输入800mv
800mv
输入80mv:
输入8mv:
单片机外围电路
2.
软件程序流程图单片机控制系统软件流程如图所示。??
三 使用器件
单片机系统是以89C51单片机为核心;信号采集与量程转换电路是由0P一07和模拟开关CD4051所组成;积分比较与自动回零电路是由双积分型A/D转换器和过零比较器所组成;开关逻辑控制电路主要元件是模拟开关CD4051;显示采用了1602字符型液晶显示器:基准电压是由TL431稳压所得。采用双电源可以实现的数模隔离。
/*
作品 :
*/
#include reg51.h
#include intrins.h
#define addo (20.0/65535.0)
#define uchar unsigned char
#define uint unsigned int
unsigned long temp;
bit sys=0;
sbit RS = P1^0;
sbit RW = P1^1;
sbit E = P1^2;
sbit CS = P3^0;
sbit BYTE=P1^3;
sbit BUSY=P1^4;
sbit RC = P1^5;
sbit S1 =P1^6;
sbit S2 =P1^7;
unsigned char num1[8] = {0};
unsigned char num2[] = {Voltage: };
//-------------延时----------------
void delay(int ms)
{
int x,y;
for(x=ms;x0;x--)
for(y=110;y0;y--);
}
//-------------------------------
bit lcd_bz()
{
bit result;
RS = 0;
RW = 1;
E = 1;
_nop_();
_n
文档评论(0)