电子秤的设计单片机课程设计Word格式.docx
《电子秤的设计单片机课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《电子秤的设计单片机课程设计Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
![电子秤的设计单片机课程设计Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/23/2a4e3b21-a432-4f71-b9bc-860cc32199f8/2a4e3b21-a432-4f71-b9bc-860cc32199f81.gif)
本文设计的电子秤以单片机为主要部件,用汇编语言进行软件设计,硬件则以半桥传感器为主,测量0~500g电子秤,随时可改变上限阈值,并达到阈值报警的功能。
称重传感器输出的电量是模拟量,数值比较小达不到A/D转换接收的电压范围。
所以送A/D转换之前要对其进行前端放大、整形滤波等处理。
然后,A/D转换的结果才能送单片机进行数据处理并显示。
其数据显示部分采用LCD显示,成本低且能很好地实现所要求的功能。
1.1本设计的任务和主要内容
设计的主要内容如下
(1)设计一款电子秤,用LED液晶显示器显示被称物体的质量
(2)可以设定该秤所称的上限
(3)当物体超重时,能自动报警
(4)写出详细的实验报告
第二节电子秤的硬件设计
2.1传感器的选择
2.1.1应变式电阻传感器的测量原理。
应变式电阻传感器的工作原理:
当导体或半导体受到外力作用时,会产生机械变形,从而导致阻值变化。
导体与半导体的电阻与电阻率及其几何尺寸有关。
当导体受外力作用时,电阻率及几何尺寸的变化会引起电阻的变化。
因此,通过测量电阻值的大小,就可以反映外界力的大小。
电阻型应变片传感器的测量电路可采用桥式测量电路。
桥式测量电路有四个电阻,其中任何一个电阻均可以是应变片。
图2.1.1桥式测量电路图
如能恰当的选择个桥臂的电阻,可以消除电桥的恒定输出,使输出电压只与应变片的电阻有关。
2.1.2传感器的分类和选择
应变片式电阻传感器按其测量电路(桥式)可分为单臂式、半桥式、全桥式三种。
所谓半桥,即将电桥的四臂接入四应变片。
其中:
一片受拉,一片受压,另外两应变片不受力。
全桥是两片受拉,两片受压,故灵敏度比半桥式的大一倍。
本方案采用半桥式传感器。
2.2放大电路的设计
传感器输出电压为毫伏级,而A/D转换器所能处理的电压是0~5V,所以必须在A/D转换器前加入一个前置差动放大电路以实现电压的放大,放大倍数为100~200倍,使输出电压为0~5V。
由于单运放在应用中要求外围电路匹配精度高、增益调整不便、差动输入阻抗低,故采用三运放结构。
三运放结构具有差动输入阻抗高、共膜抑制比高、偏置电流低等优点,且有良好的温度稳定性,低噪单端输出和和增益调整方便,适于在传感器电路中应用。
如图3-2所示,图中为增益调节电阻,整个芯片仅为外接电阻,而运放为增益为1的差动输入放大器。
图2.2.1放大电路硬件原理图
2.3采集电路的设计
2.3.1数据采集系统的组成
数据采集系统的核心是计算机,他对整个系统进行控制和数据处理,他由采样/保持器,放大器,A/D转换器,计算机组成。
2.3.1数据采样系统框图
2.3.2数据采样保持器
进行模数变换时,从启动变换到变换结束的数字量输出,需要一定的时间,即A/D转换的孔径时间。
当输入信号频率较高,由于孔径时间的存在,会造成较大的转换误差;
为了防止误差需在中间加一个功能器件采样/保持器,进行有效、正确的数据采集。
采样/保持器通常由保持电容器、模拟开关和运算放大器组成。
其中对于低速场合可以采用继电器作为开关以减小开关漏电流的影响;
在高速场合也可以用晶体管、场效应管来作为开关。
采样保持器的原理:
如图,当开关闭合时,V1通过限电流电阻向电容C充电,在电容值合理的情况下,V0随Vi的变化而变化;
当K断开时,由于电容C有一定的容量,此时输出V0保持输入信号再开断开瞬间的电平值。
图2.3.2采样保持原理图
在模拟信号输入通道中,是否需要加采样/保持器,取决于模拟信号的变化频率和A/D转换器的孔径时间;
对快速过程信号,当最大孔径误差超过允许值时,必须在A/D转换器前加采样/保持器。
但如果输入模拟量是直流量或者被测信号模拟量随时间变化非常缓慢,采样/保持(S/H)电路可以省去。
2.3.3A/D转换器
设计中A/D转换器用的是ADC0809A/D转换器,它是8路8位逐次逼近式转换器,结果为8位二进制数据,转换时间短(一般在级),满足题目要求的“实时采样”,并且它的转换精度在0.1%上下,比较适中,适用于一般场合。
由图2.3.3可见,单片机通过读控制线WR和0809片选线控制启动A/D转换及输入通道地址锁存,写控制线WR与ADC0809片选线控制输出允许。
由于ADC0809具有通道地址锁存功能,通道选择ADD.A、ADD.B、ADD.C直接接单片机的数据口。
模拟电压由IN0通道输入,A/D采样电压在0~5v之间变化。
所模拟通道IN0地址口为0AOOOH,但是ADC0809无内置时钟,所以CLOCK由外部时钟信号控制。
图2.3.3A/D转换器和单片机的接口电路
2.4显示电路的设计
显示部分可以将处理得出的信号在显示器上显示,让人们直观的看到被测体的质量,也可以进行报警提示。
LCD液晶显示器是一种极低功耗显示器,从电子表到计算器,从袖珍时仪表到便携式微型计算机以及一些文字处理机都广泛利用了液晶显示器。
本设计采用的显示模块是128×
64点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。
可与CPU直接接口,提供两种界面来连接微处理机:
8-位并行及串行两种连接方式。
具有多种功能:
光标显示、画面移位、睡眠模式等。
2.5键盘电路的设计
利用键盘可选择电子秤工作模式、设定测量上限等。
键盘部分采用矩阵式的键盘,采用这种结构的特点是把检测线分为两组,一组为行线,一组为列线,按键放在行线和列线的交叉点上。
矩阵式的键盘的优点是需要的测试线的数量少,对于一个M×
N的矩阵键盘与主机连接只需要M+N条测试线,这样键盘的规模越大,矩阵时键盘的有点越显著,当需要的按键数目大于8时,一般都采用矩阵式键盘。
图2.5.1矩阵式键盘结构图
2.6报警电路的设计
报警电路是超过设定的范围,单片机输出信号驱动蜂鸣器发声警报,如图所示,当BDLL端为低电平时,有电流通过蜂鸣器,蜂鸣器报警,反之不报警,这里设定当超过质量的上限时通过软件使8031的P1.0口清零,再过P1.0口出来的低电平信号连接到BELL端蜂鸣器发声报警。
图2.6.1报警电路
第三节电子秤的软件设计
3.1监控程序的设计
智能仪器的设计既要满足设定的功能的完成如计算等功能的任务功能程序,也要有可以监控仪器仪表正工作,保证其可靠性方面的监控程序。
整个智能仪器的测量都是智能仪器自动完成的,所以设计一套功能完备的监控程序是必须的也是必要的。
监控程序的主要作用是实时的响应来自系统的各种信息,按信息的类别进行处理;
当系统出现故障时,能自动的采取有效的措施,消除故障,保证系统能够继续进行正常工作。
3.2数据处理子程序的设计
数据处理子程序是整个程序的核心。
主要用来调整输入值系数,使输出满足量程要求。
另外完成A/D的采样结果从十六进制数向十进制数形式转化。
3.2.1系数调整
在IN0输入的数最大为5V,要求的质量500g对应的是4.8V,为十六进制向十进制转换方便,将系数放大100倍。
并用小数点位置的变化体现这一过程。
因而系数为:
3.2.2数制转换
数制之间的转换:
在二进制数制中,每向左移一位表示数乘二倍。
以每四位作为一组对数分组,当第四位向第五位进位时,数由8变到16,若按十进制数制规则读数,则丢失6,所以应进行加六调整。
DA指令可完成这一调整。
可见数制之间的转换可以通过移位的方法实现。
其中,移出数据的保存可以通过自乘再加进位的方法实现,因为乘二表示左移一位,左移后,低位进一,则需加一。
否则,加零。
而通过移位已将要移入的尾数保存在了进位位中,所以能实现。
图3.2.2数据处理原理框图
3.3数据采集子程序的设计
数据采集用A/D0809芯片来完成,主要分为启动、读取数据、延时等待转换结束、读出转换结果、存入指定内存单元、继续转换(退出)几个步骤。
ADC0809初始化后,就具有了将某一通道输入的0~5模拟信号转换成对应的数字量00H—FFH,然后再存入8031内部RAM的指定单元中。
在控制方面有所区别。
可以采用程序查询方式,延时等待方式和中断方式。
图3.3.1数据采样原理框图
3.4显示子程序的设计
显示子程序是字符显示,首先调用事先编好的8279的键盘显示子程序。
调用8279初始化命令,然后输出写显示命令。
在显示过程中一定要调用延时子程序。
当输入通道采集了一个新的过程参数,或仪表操作人员键入一个参数,或仪表与系统出现异常情况时显示管理软件应及时调用显示驱动程序模块,以更新当前的显示数据显示符号。
图3.4.1显示原理框图
3.5键盘扫描子程序的设计
如图3.4.1所示:
键盘电路设计成4X4矩阵式,由键盘编码方式可以得出0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F各键对应的键值:
0D8H,0D0H,0D1H,0D2H,0C8H,0C9H,0CAH,0C0H,0C1H,0C2H,0C3H,0CBH,0D3H,0DBH,0DAH,0D9H。
在程序中可以先判断按键编码,然后根据编码将键盘代表的数值送到相应的存储单元,再进行功能选择或数据处理。
图3.5.1键盘扫描原理框图
3.6报警子程序的设计
由于要求要键盘设定阈值,所以要求有报警电路,报警电路可以有声报警也可有光报警,将设定的阈值与实时显示的值进行比较,如果设定值小于实时显示的值,则将P1.0置为1,将发光二极管点亮,或使蜂鸣器发出声音。
这就需要一段比较程序以及一小段置1清0程序。
图3.6.1报警原理框图
第四节设计总结
随着集成电路和计算机技术的迅速发展,使电子仪器的整体水平发生巨大变化,传统的仪器逐步的被智能仪器所取代。
智能仪器的核心部件是单片机,因其极高的性价比得到广泛的应用与发展,从而加快了智能仪器的发展。
而传感器作为测控系统中对象信息的入口,越来越受到人们的关注。
传感器好比人体“五官”的工程模拟物,它是一种能将特定的被测量信息(物理量、化学量、生物量等)按一定规律转换成某种可用信号输出的器件或装置本次课设中的半桥电子秤就是在以上仪器的基础上设计而成的。
因此,只有充分了解有关智能仪器、单片机、传感器以及各部分之间的关系才能达到要求。
首先是传感器的精密度,它将直接影响电子秤的称重准确度。
课设时由于传感器发出的信号不是很稳定,所以称重时误差很大。
如果使用精密度较高的传感器,效果会好的多。
其次是数据采集处理阶段,此阶段是对传感器发出的信号进行量化、采集,主要分为信号放大、采集,然后进行A/D转换。
该阶段需注意的地方是对传感器输出的信号进行放大时,应选取合适的运算放大电路。
最好是预先计算好应放大的倍数,以便选取。
还有就是进行数据处理时,选取适当的数据转换系数,使输出满足量程要求。
参考文献
1.赵茂泰.智能仪器原理及应用.电子工业出版社,2004:
2.张毅刚.MCS-51单片机应用设计.哈尔滨工业大学出版社,2003:
3.贾伯年,俞朴.传感器技术.东南大学出版社,2000:
4.单成祥.传感器理论设计基础及其应用.国防工业出版社,1999:
5.李道华,李玲,朱艳.传感器电路分析与设计.武汉大学出版社,2000:
程序附图
定义中文LCD液晶128X64的地址
W_C_GLCDXDATA0E000H
W_D_GLCDXDATA0E001H
R_B_GLCDXDATA0E002H
R_D_GLCDXDATA0E003H
;
-------------------------------------------------------
TIMER0DATA30H;
延时时间的初值
TIMER1DATA31H;
调用延时子程序的次数
DATA1DATA32H;
点阵显示的变量1
DATA2DATA33H;
点阵显示的变量2
XDATA34H;
X方向的位置
YDATA35H;
Y方向的位置
COUNTERDATA36H;
计数器
NDATA37H;
行数变量
D1DATA38H;
点变量1
D2DATA39H;
ADDRDATA3AH;
起始的显示位置
ADDR1DATA3BH;
起始的显示位置临时变量
N1DATA3CH;
行数的临时变量
*******************************************************
*主程序开始
ORG0000H
AJMPSTART
ORG0030H
START:
CLRP1.0
SETBP1.1
MOVSP,#60H
LCALLINITIAL_GLCD;
调用LCD初始化
LCALLKAIJI;
显示开机画面
LCALLDELAY500
LCALLTISHI;
显示主界面
LCALLINI_8279
------------------------------------------------
;
判断是否继续
------------------------------------------------------------------
KEY-A:
MOVDPTR,#8101H
MOVXA,@DPTR
ANLA,#07H
CJNEA,#00H,LP1
SJMPKEY-A
MOVDPTR,@8100H
MOVXA,DPTR
CJNEA,0DBH,KEY-A
AJMPK1
LCALLYUZHI
LCALcelianjieguo
LCALLCELINGJIEGUO
AJMP$
各界面显示内容
DHTABLE1:
DB"
欢迎使用"
DHTABLE2:
半桥电子秤"
DHTABLE3:
*********"
DHTABLE4:
DHTABLE5:
***********"
DHTABLE6:
设置警报上限"
DHTABLE7:
确定"
DHTABLE8:
请按D键"
DHTABLE9:
"
DHTABLE10:
报警上限重量:
DHTABLE11:
.g"
DHTABLE12:
确定(E)"
CELIANG1:
电子秤"
CELIANG2:
重量是:
CELIANG3:
CELIANG4:
DB"
返回(F)"
=======================================================
开机界面子程序
KAIJI:
MOVADDR1,#00H;
第一行显示
MOVN1,#08H;
数量8个
MOVDPTR,#DHTABLE1;
需要显示的汉字位置
CALLDHZ;
调用汉字子序
MOVADDR1,#10H;
第二行显示
MOVN1,#08H
MOVDPTR,#DHTABLE2
CALLDHZ
MOVADDR1,#08H;
第三行显示
MOVDPTR,#DHTABLE3
MOVADDR1,#18H;
第四行显示
MOVDPTR,#DHTABLE4
RET
提示界面子程序
TISHI:
LCALLCLEAR_GLCD;
清除LCD显示屏幕
MOVADDR1,#00H
MOVDPTR,#DHTABLE5
MOVADDR1,#10H
MOVDPTR,#DHTABLE6
MOVADDR1,#08H
MOVDPTR,#DHTABLE7
MOVADDR1,#18H
MOVDPTR,#DHTABLE8
SHEDING:
LCALLCLEAR-GLCD
MOVN1,08H
MOVDPTR,#DHTALBE9
MOVDPTR,#DHTALBE10
MOVDPTR,#DHTALBE11
MOVDPTR,#DHTALBE12
测量界面子程序
Celiangjieguo:
MOVDPTR,#DHTABLE1
END