物理与电子科学学院电子类专业专业实习文件
四位半多功能数字表
一.基本要求:在Proteus平台上
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
并仿真实现一台四位半多功能数字电压表
直流电压测量,并具有极性判断和自动量程转换功能。
1. 直流电压测量:每秒等效采样次数≥3次
推荐档位:
I档(20mV档):最小电压分辨率:2μV
II档(200mV档):最小电压分辨率:20μV
III档(2V档):最小电压分辨率:0.2mV
IV档(20V档):最小电压分辨率:2mV
2. *交流电压测量:最高频率<=10KHz的正弦波
I档(20V档):最小电压分辨率:20mV
II档(200V档):最小电压分辨率:200mV
3. *交流参数测量:频率、有效值、峰值
4. 第1项为基本要求
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
,带有“*”的2、3项为选做内容。
5. 只能采用通用A/D、集成运放IC、51单片机等器件,不准使用专用电压测量集成电路完成系统设计。
6. 推荐一个参考的系统组成框图如下:
其中第一级的前置放大级推荐采用AD8551自稳零斩波运算放大器。
设计过程:包括元器件选型依据(如前置放大器的设计、A/D分辨率的选择、放大器及滤波器设计、采样率计算、电源设计等)、理论分析及参数计算、系统设计(
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
面)。
系统框图、元件选型、理论计算、模块电路设计
二 系统框图
整体框图
数字电路部分和模拟电路量程初判模块整体电路:
1 .电压极性
检测
工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训
电路
电压极性检测电路采用过零比较器检测负电压的方式实现的,运算放大器LM324的反向端接地,同向端通过100K电阻接输入信号。当输入的测量信号为负时比较器翻转,输出端经过电平转换成TTL信号后送给单片机PA7端口检测,通常情况下输出为高电平,为正电压状态。
2. 电压范围粗测电路
为了粗略地得到被测量的电压范围我们采用多组比较器的方式,通过阶梯式比较的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
确定输入电压的范围。其具体电路如下图(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
#include
#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;x>0;x--)
for(y=110;y>0;y--);
}
//-------------------------------
bit lcd_bz()
{
bit result;
RS = 0;
RW = 1;
E = 1;
_nop_();
_nop_();
_nop_();
_nop_();
result = (bit)(P2 & 0x80);
E= 0;
return result;
}
//-----------------写命令----------------
void lcd_wcmd(unsigned char cmd)
{
while(lcd_bz());//判断LCD是否忙碌
RS= 0;
RW = 0;
E = 0;
_nop_();
_nop_();
P2 = cmd;
_nop_();
_nop_();
_nop_();
_nop_();
E = 1;
_nop_();
_nop_();
_nop_();
_nop_();
E = 0;
}
//-------------------写数据-----------------
void lcd_wdat(unsigned char dat)
{
while(lcd_bz());//判断LCD是否忙碌
RS = 1;
RW = 0;
E = 0;
P2 = dat;
_nop_();
_nop_();
_nop_();
_nop_();
E = 1;
_nop_();
_nop_();
_nop_();
_nop_();
E = 0;
}
//---------------------液晶初始化-------------
void lcd_init()
{
lcd_wcmd(0x38);
delay(1);
lcd_wcmd(0x0c);
delay(1);
lcd_wcmd(0x06);
delay(1);
lcd_wcmd(0x01);
delay(1);
}
void lcd_pos(unsigned char pos)
{
lcd_wcmd(pos + 0x80);
}
//ADS7825读函数
uint ADS7825_READ()
{
uchar temp1,temp2;
CS = 0;
RC = 1;
RC = 0;
RC = 1;
while(BUSY==0);
RC = 1;
BYTE = 0;
temp1 = P0;
if((temp1 & 0X80)==0)
{
temp1 = P0;
BYTE = 1;
temp2 = P0;
CS = 1;
sys=1;
}
else
{
temp1 = ~P0;
BYTE = 1;
temp2 =~P0;
CS = 1;
sys=0;
}
return (int)((temp1<<8)|temp2);
}
void HEXTOBCD()
{
//uint temp;
temp = (unsigned long )(ADS7825_READ()*addo*1000000);
//temp11=temp;
num1[0] = temp/10000000+0X30;
num1[1] = temp%10000000/1000000+0X30;
//
num1[2] ='.';
num1[2] = temp%1000000/100000+0X30;
num1[3] = temp%100000/10000+0X30;
num1[4] = temp%10000/1000+0X30;
num1[5] = temp%1000/100+0x30;
num1[6] = temp%100/10+0X30;
num1[7] = temp%10+0X30;
}
//-----------------------主函数------------------
void main(void)
{
unsigned char i;
S1=0;
S2=0;
lcd_init(); // 初始化LCD
delay(20);
//设置显示位置
lcd_pos(0x00);
while(i<16)
{lcd_wdat(num2[i]);delay(2);i++;}
while(1)
{
uchar flage=0; //flage=0为档位不合适
i = 0;
S1=0;
S2=0;
HEXTOBCD();
if (flage==0)
{
if((temp>200000))
{
lcd_pos(0x40);
//delay(2);
lcd_wdat('1');//显示字符
lcd_pos(0x43);
//delay(2);
if(sys==0)
{lcd_wdat('-');
delay(2);}
else if (sys==1)
lcd_wdat('+');
delay(2);
//lcd_wdat(num1[0]);//显示字符
delay(2);
lcd_wdat(num1[1]);//显示字?
delay(2);
lcd_wdat(num1[2]);//显示字符
delay(2);
lcd_wdat('.');//显示字符
delay(2);
lcd_wdat(num1[3]);//显示字符
delay(2);
lcd_wdat(num1[4]);//显示字符
delay(2);
lcd_wdat(num1[5]);//显示字符
delay(2);
lcd_wdat(num1[6]);//显示字符
delay(2);
lcd_wdat(num1[7]);//显示字符
delay(2);
lcd_wdat('v');
flage=1;
}
else {S1=0;S2=1;}
}
delay(50);
HEXTOBCD();
if (flage==0)
{
if((temp>200000)&&(temp<2000000))
{
lcd_pos(0x40);
//delay(2);
lcd_wdat('2');//显示字符
lcd_pos(0x43);
lcd_pos(0x43);
if(sys==0)
{lcd_wdat('-');
delay(2);}
else if (sys==1)
lcd_wdat('+');
delay(2);
lcd_wdat(num1[0]);//显示字符
delay(2);
lcd_wdat(num1[1]);//显示字?
delay(2);
lcd_wdat('.');//显示字符
delay(2);
lcd_wdat(num1[2]);//显示字符
delay(2);
lcd_wdat(num1[3]);//显示字符
delay(2);
lcd_wdat(num1[4]);//显示字符
delay(2);
lcd_wdat(num1[5]);//显示字符
delay(2);
lcd_wdat(num1[6]);//显示字符
delay(2);
lcd_wdat(num1[7]);//显示字符
delay(2);
lcd_wdat('v');
flage=1;
}
else {S1=1;S2=0;}
}
delay(50);
HEXTOBCD();
if (flage==0)
{
if((temp>200000)&&(temp<2000000))
{
lcd_pos(0x40);
//delay(2);
lcd_wdat('3');//显示字符
lcd_pos(0x43);
lcd_pos(0x43);
if(sys==0)
{lcd_wdat('-');
delay(2);}
else if (sys==1)
lcd_wdat('+');
delay(2);
lcd_wdat(num1[1]);//显示字?
delay(2);
lcd_wdat(num1[2]);//显示字符
delay(2);
lcd_wdat(num1[3]);//显示字符
delay(2);
lcd_wdat('.');//显示字符
delay(2);
lcd_wdat(num1[4]);//显示字符
delay(2);
lcd_wdat(num1[5]);//显示字符
delay(2);
lcd_wdat(num1[6]);//显示字符
delay(2);
lcd_wdat(num1[7]);//显示字符
delay(2);
lcd_wdat('m');
delay(2);
lcd_wdat('v');
flage=1;
}
else {S1=1;S2=1;}
}
delay(50);
HEXTOBCD();
if (flage==0)
{
if((temp<2000000))
{
lcd_pos(0x40);
//delay(2);
lcd_wdat('4');//显示字符
lcd_pos(0x43);
lcd_pos(0x43);
if(sys==0)
{lcd_wdat('-');
delay(2);}
else if (sys==1)
lcd_wdat('+');
delay(2);
//
lcd_wdat(num1[0]);//显示字符
delay(2);
lcd_wdat(num1[1]);//显示字?
delay(2);
lcd_wdat(num1[2]);//显示字符
delay(2);
lcd_wdat('.');//显示字符
delay(2);
lcd_wdat(num1[3]);//显示字符
delay(2);
lcd_wdat(num1[5]);//显示字符
delay(2);
lcd_wdat(num1[6]);//显示字符
delay(4);
lcd_wdat(num1[7]);//显示字符
delay(2);
lcd_wdat('m');
delay(2);
lcd_wdat('v');
flage=1;
}
else {S1=0;S2=0;}
}
}
}
� EMBED Visio.Drawing.11 ���
_1371130342.vsd
前置放大级
直流放大器
档位选择、
极性转换
A/D转换
MCU
电源系统