深圳鼎盛合科技代理中微全系列芯片产品,可为客户提供软硬件方案设计开发,并提供免费取样服务
点击上方“蓝色字”可关注我们实用干货下载:关注我们“单片机系列”,回复“资料”获取单片机相关资料一起走向智能工业革命时代,单片机DIY、基于c语言/汇编的编程持续更新中······1 总体方案设计本设计由以下几部分组成:电阻应变传感器、信号放大器、模数转换、单片机、显示器。
其结构图如下所示
由电阻应变式传感器感受被测物体的质量,通过电桥输出电压信号,通过放大电路将输出信号放大,而后送入A/D转换单元进行模数转换,将转换后的数字信号送给单片机;单片机接收数据后,对数据进行处理,将其转换为对应的重量
信息,送液晶显示模块进行显示单片机同时也可以进行去皮调零操作,因此单片机还需查寻键盘是否有输入,执行相应的功能2 硬件电路设计2.1电阻应变传感器电阻应变式传感器是将被测量的力,通过它产生的金属弹性变形转换成电阻变化的元件。
由电阻应变片和测量线路两部分组成电阻应变片产生的误差,主要来源于温度的影响,本设计主要在实验室内进行,温度的影响暂不处理
在电桥测量电路中,将一对变化相反的应变片接入电桥一臂,另一臂接两个相同的阻值作为基准值;当桥臂电阻初始值R1=R2=R3=R4=350时平衡,其变化值为ΔR1=ΔR2=ΔR3=ΔR4=d时,其桥路输出电压
Uout与d成正比。
2.2放大电路设计 由于传感器输出的信号比较微弱,必须通过一个放大器对其进行放大,才能满足A/D转换器对输入信号电平的要求本设计中选用由三运放构成的具有高输入阻抗,高共模抑制比的仪表放大器作为前级,再接一个反相比例放大器作为后级输出。
。另外,仪表放大电路中电阻Rw1可用于微调放大倍数;而后级放大器原接地端现在通过Rw2接入一电压值,可以对输出电平进行平移。
2.3单片机电路设计2.3.1单片机最小系统对51系列单片机来说,最小系统一般应该包括单片机、晶振电路和复位电路。下面给出一个51单片机的最小系统电路图。
复位电路:由电容串联电阻构成,一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平.晶振电路:典型的晶振取11.0592MHz(
因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的us级时歇,方便定时操作)2.3.2模数转换与单片机接口ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的
CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。(1)引脚说明:
IN0-IN7:8条模拟量输入通道,要求信号单极性,电压范围是0-5V;地址输入和控制线:4条 数字量输出及控制线:11条 CLK为时钟输入信号线:所需时钟信号必须由外界提供;VREF(+),VREF(-)
:参考电压输入(2)工作过程:请参考ADC0809时序图ST为转换启动信号,当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平EOC为转换结束信号当EOC为高电平时,表明转换结束。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0为数字量输出线。
(3)接口电路:
ADC0809的时钟由51 ALE信号给出;数字量输出和51 P0口直接相接;地址控制线同样使用P0口,用一片74373锁存地址,然后连入ADDA~ADDC,373的使能由51 ALE控制;ADC0809
各个使能端们由P2.0和读写标志口共同控制,任意写一个数时允许AD ALE并启动转换(AD START端);读入时应该使AD读端口使能(AD ENABLE端);数字量传输使用中断方式,将AD EOC接入
51 INT0,转换完成后可以触发51执行中断程序这样连接的ADC由于使用51 P2.0口和AD IN0,地址应该是0xFEF8;实际使用的实验箱中有唯一地址译码器,地址为0xcfa0;另外,实验箱部分电路已经连好,包括。
51最小系统和AD、显示输出的必要连线,Vref也已经连为5V不能改变2.3.3显示输出单元与单片机接口利用8279键盘显示接口电路和实验箱上提供的数码显示,可以完成该功能利用8279可实现对键盘/显示器的自动扫描,以减轻
深圳鼎盛合科技代理中微全系列芯片产品,可为客户提供软硬件方案设计开发,并提供免费取样服务
CPU的负担,且具有显示稳定、程序简单、不会出现误动作等特点8279操作命令字较多,根据需要来灵活使用实验箱中数码显示地址为0xcfe8,将七段显示编码送入即可;显示控制单元地址为0xcfe9,可以控制输出到哪一位数码显示块上。
2.3.4去皮清零键与单片机的接口将一手动控制的高低电平信号(手动单脉冲)送入单片机P1.0口,通知单片机进行去皮操作。
2.4 Protel与PCB制版使用Protel进行PCB制版时应遵循相应的步骤。(1)连接原理图,选好参数以及封装,还可以对放大部分进行仿真
(2)电器检查(3)新建pcb图(4)创建NET表,导入/更新pcb图(5)排位置,自动布线
(6)手动修补,完成设计3软件与算法设计3.1数据采集与放大倍数传感器输入:选择一个合适的电桥基准电压,传感器电桥输出电压为300.50mV~301.45mV,对应0~20g重物,平均每克变动不到0.1mV
;由于它的变动范围很小,因而设计300mV的偏移量,不让其在0 mV上下变动,以减少运放零漂的影响输出到AD:ADC0809的Vref在实验箱内已经设定为5V,因而其分辨率约为5V/256=20mV这样,信号的放大倍数应该在
200~400左右为了使输出更准确,使用+/-15V电源给集成运放供电,最后采用分压电阻使其符合0~5V的AD输入根据选取的参数值以及Rw1所调的阻值1k,总的放大倍数为25/1*47/5.1*33/10*1/3=253。
。
3.2数字量的处理放上秤盘,调节Rw2,使放大器输出约为0.5V这时放上重物200g,放大器输出约2.7V左右根据放大器输出电压对应的数字值,以及重物重量(输出显示值),可以确定它们的关系砝码个数012
345678910数字量值314355597188104112119131139重量显示020406080100120140160180200
Linear model Poly1: f(x) = p1*x + p2Coefficients (with 95% confidence bounds): p1 = 1.784 (1.66, 1.908)
p2 = -54.37 (-65.95, -42.8)式中的常数可以通过去皮清零键补偿,比例系数可以通过单片机进行乘法运算调整3.3单片机程序设计单片机程序主要是输出显示和去皮清零两大部分。
输出显示时需要做乘法运算,同时换成相应的十进制数;去皮清零时需要根据操作者的指示预存一个数字信号设计的程序如下#include #include #define
Led_datXBYTE[0xcfe8]#defineLed_ctlXBYTE[0xcfe9]#definead_portXBYTE[0xcfa0] unsigned char table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; /*0-9 */
unsigned char resig=0,renow=0,vbase=0;void Display_byte(unsigned char loc,unsigned char dat)/*将ad转换的数字值处理并显示为十进制
*/ { unsigned int m; unsigned char tab[3]; loc &=0xf; m=dat*1.75;/*换算倍数关系,根据3.2节中p1 = 1.784*/
tab[0]=m/100; //计算各位 tab[1]=m/10; tab[1]=tab[1]%10; tab[2]=m%10; Led_ctl = loc|0x80; Led_dat = table1[tab[0]]; /*
显示由ad转换得到数(对应的十进制数)的高位*/ loc++; Led_ctl = loc|0x80; Led_dat = table1[tab[1]]; /*显示由ad转换得到数(对应的十进制数
)的中位*/ loc++; Led_ctl = loc|0x80; Led_dat = table1[tab[2]]; }void delay(unsigned int t) { for(;t>0;t--);
}void main(void) { Led_ctl = 0xd1;//init while((Led_ctl&0x80)==0x80); Led_ctl = 0x31; while(1)
{ ad_port = 0;//准备读ad while(INT0); while(!INT0); renow=P1; if(renow!=resig)//
清零按键 { vbase=ad_port; resig=renow; } else {//输出显示 Display_byte(0,ad_port-vbase); } delay(20000);
} }
长按识别图中二维码关注我们“单片机系列”看完的同时,请分享到朋友圈每天更新单片机各种知识,电子 制作DIY,及电子行业最新资讯 衷心的感谢您的支持
深圳鼎盛合科技代理中微全系列芯片产品,可为客户提供软硬件方案设计开发,并提供免费取样服务