基于单片机的语音报数电子秤设计与实现Word下载.docx
- 文档编号:21098087
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:35
- 大小:595.39KB
基于单片机的语音报数电子秤设计与实现Word下载.docx
《基于单片机的语音报数电子秤设计与实现Word下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的语音报数电子秤设计与实现Word下载.docx(35页珍藏版)》请在冰豆网上搜索。
1.2电子秤的现状
随着科学技术和经济的发展,出售商品品种的增加,需要称量物品的设备也需要更新换代,人们对称重装置的要求也越来越高,同时商品种类的繁多和对服务更高的要求也促使电子秤的功能进一步扩展,而成为集度量、结算于一体的商业销售终端。
传统的机械秤由于容易坏,秤重精度低,已经濒临淘汰了。
近年来,随着电子技术的发展,电子秤也变得越来越多。
电子秤体积小、重量轻、使用简单、精度高而且稳定性也好,可以在各种环境中使用。
电子秤实现了重量显示数字化,还可以和计算机相连,实现生产过程自动化,提高了我们的工作效率。
语音报数电子秤是针对自动称重、计算价格进行研究和设计的。
系统以单片机作为控制核心,结合语音电路的设计,突出语音报数的特点。
作为仪器的处理器,单片机由运算器,控制器和存储器等构成。
它是近年来发展成熟和应用广泛的一种芯片,许许多多简单的控制都可以用到它,它不但使用简单,而且成本也低,市面上的单片机型号更是繁多,可以让设计人员根据自己的需求去选择。
单片机和计算机相比,单片机缺少了外围设备等。
概括的讲:
一块芯片就成了一台计算机。
由于单片机的需求大,现在已经有8位、16位、32位的单片机,其中作为8位单片机的51单片机最为成功,因为其简单可靠而性能不错获得了很大的好评。
近年来传感器技术突飞猛进,为我们的生活带来了生活的便捷。
传感器技术也应用在各个行业,例如汽车上的雷达报警,以及手机的重力传感器。
在设计电子秤的同时,我们也会使用到各种传感器。
1.3论文构成
论文将从硬件和软件两个方面去设计一款基于单片机的语音报数电子秤。
硬件方面从单片机到传感器逐一讨论,选取最优的方案。
软件将采用C语言编写,介绍每个功能的流程图。
最后将介绍调试的过程和结果。
2总体设计
2.1设计框图
本设计的设计框图如图2.1所示
图2.1设计框图
2.2设计要求
1.熟练掌握单片机的用法与最小系统的搭建;
2.完成语言报数电子秤的硬件与软件设计;
3.要求是最大量程为5KG,分辨率为小数点后两位;
4.要求液晶屏显示重量并语音提示;
5.在制作的单片机系统上实现所设计的功能,并完成演示;
6.其他可扩展功能。
2.3电子秤原理
2.3.1电子秤的基本结构
电子秤均由以下三部分组成:
(1)承重、传力复位系统
该系统承载器、秤桥结构和吊挂连接部件以及限位减振机构。
(2)称重传感器
它是电子秤的核心,作用是把质量或重量转换成电量的转换元件。
称重传感器要有较高的灵敏度;
对被称物体的状态的影响要小;
能在较差的工作条件下工作;
有较好的频响特性;
稳定可靠。
(3)测量显示和数据输出的载荷测量装置
载荷测量装置包括放入器、模数转换、电流源或电压源、调节器、补尝元件、保护线路等。
2.4电子秤的工作原理
当商品放到秤盘上时,称重传感器产生和商品重量成线性关系的电信号,该电信号经放大电路放大后,送入A/D转换芯片进行模数转换,然后把得到的数据传输给处理器单片机,最后单片机产生一组满足显示要求的数据,送至显示电路显示出实际重量。
另一方面,商品单价通过键盘扫描电路送入单片机,经过数据处理,送至显示电路显示出商品单价。
物重与单价经过运算产生总价,也在显示电路上同时显示出来。
语音电路将根据单片机传输过来的数据,将实现录好的音组合起来通过喇叭播放声音,达到语音报数的功能。
2.5方案论证
2.5.1控制部分的方案选择
方案一:
采用传统的8位单片机,例如STC12C5A60S2作为控制核心。
该单片机是目前最流行以及开发平台最低的一种嵌入式控制芯片,目前已经广泛运用于市场上,高校的教学也有讲这方面的知识。
方案二:
采用FTC10F04单片机,还带有非易失性Flash程序存储器。
它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。
方案一成本比较低,适合做设计,方案二运算速度高,性能好,所以两种方案都有可取之处。
但是方案一做设计容易上手,方案比较通用,而且货源充足,有利于生产。
综合比较选用方案一
2.5.2显示模块的选择方案和论证
LED数码管动态扫描。
相对于液晶显示比较经济实惠,但液晶显示比数码管显示美观,LED数码管在操作上比较繁琐。
点阵显示。
用点阵显示美观,但是分辨率不高,而且需要的功率比较大,单个LED出现问题后会对整个点阵的显示产生影响。
方案三:
LCD1602液晶是一种具有8位并行接口方式的点阵图形液晶显示模块;
其显示分辨率为16x2。
LCD1602液晶技术成熟,应用非常广泛,相关资料丰富,非常的方便使用。
经过综合比较最终选择方案三,即选择LCD1602液晶显示屏。
2.5.3压力传感器的选择方案和论证
方案一:
压电传感器结构简单,工作可靠,但是价格昂贵。
方案二:
电阻应变式应用和测量范围广,结构小,而且技术成熟,价格比较便宜,可以满足比较基本的需求。
综上所述,选择方案二电阻应变式压力传感器。
3硬件设计
3.1各单元模块功能分析及模块电路设计
3.1.1单片机控制模块
本系统以STC12C5A60S2单片机为控制核心。
STC12C5A60S2系列1T单片机特点如下:
1.增强型8051CPU,1T,单时钟/机器周期
2.工作电压:
有5.5V-3.3V和3.6V-2.2V两种电压的单片机可以选择,可以最大的适应你所需要的设计需求
3.工作频率范围:
0-35MHz
4.用户应用程序空间选择多
5.片上集成1280字节RAM
6.通用I/O口(36/40/44个)
7.不用下载器和仿真器,可通过串口直接下载用户程序
8.有EEPROM功能
9.看门狗
10.内部集成MAX810专用复位电路
11.外部掉电检测电路
12.时钟源:
外部高精度晶体或者内部R/C振荡器
13.共4个16位定时器
引脚信号介绍:
P0.0~P0.7:
P0口8位双向口线
P1.0~P1.7:
P1口8位双向口线
P2.0~P2.7:
P2口8位双向口线
P3.0~P3.7:
P3口8位双向口线
P1口的第二功能如表3.1:
表3.1P1口第二功能表
引脚号
第二功能
P1.0
T2(定时器∕计数器T2的外部记数输入),时钟输出
P1.1
T2EX(定时器)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
MCK(在系统编程用)
P3口的第二功能如表3.2:
表3.2P3口第二功能表
P3.0
RXD(串行输入)
P3.1
TXD(串行输出)
P3.2
INT0(外部中断0)
P3.3
INT0外部中断0)
P3.4
T0(定时器0外部输入)
P3.5
T1(定时器1外部输入)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器写选通)
单片机电路如图3.1所示
图3.1单片机电路
3.1.2称重传感器电路设计
称重传感器其实也就是压力传感器,它的工作原理是基于某些材料受力后在其相应的特定表面产生电荷的压电效应,把物体的重量信号转换为电信号。
称重传感器的使用:
1、平行梁式称重传感器使用时要按悬臂梁方式安装。
2、传感器的变形量是很微小的,在安装、使用过程中要特别注意不要超载。
3、如果在外力撤除后不能恢复圆形状,发生塑性变形,则传感器就损坏了。
4、红线为电源正极输入,黑线为电源负极输入,白线为信号输出1,蓝(或者绿)线为信号输出2。
5、为保证精度,一般不要随意调整线长。
图3.2称重传感器
3.1.3AD芯片电路模块
HX711是一款24位A/D转换器芯片,它是专门高精度电子秤设计的。
该芯片集成了包括稳压电源、片内时钟振荡器,所以它具有更高的集成度,而且它具有响应速度快、抗干扰性强等优点,使用这款芯片降低了电子秤的整机成本,提高了整机的性能和可靠性。
芯片管脚图如图3.3所示。
图3.3HX711管脚定义
HX711电路如图3.4所示。
图3.4HX711电路图
3.1.4显示模块
1602在单片机系统中很常见,优点就不再叙述,它的特点如下:
显示质量高,数字式接口,体积小、重量轻,功耗低,而且它可以构建简单的人机交互界面,技术成熟,而且在网上的资料很多,所以容易使用和开发。
1602LCD主要技术参数:
显示容量:
16×
2个字符
工作电压:
4.5—5.5V
工作电流:
2.0mA(5.0V)
各引脚接口说明如下表所示:
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
3
VL
液晶显示偏压
11
D4
4
RS
数据/命令选择
12
D5
5
R/W
读/写选择
13
D6
6
E
使能信号
14
D7
7
D0
15
BLA
背光源正极
8
D1
16
BLK
背光源负极
第1脚:
接地
第2脚:
接5V。
第3脚:
VL为液晶显示器对比度调整端
第4脚:
RS为寄存器选择
第5脚:
R/W为读写信号线
第6脚:
E端为使能端
第7~14脚:
D0~D7数据线。
第15脚:
背光源的正极。
第16脚:
背光源的负极。
1602LCD的指令说明及时序
如下表所示:
序号
指令
清显示
光标返回
*
输入模式
I/D
S
显示开/关控制
D
C
B
字符移位
S/C
R/L
置功能
DL
N
F
置字符发生存贮器的地址
字符发生存贮器地址
置数据存贮器的地址
显示数据存贮器地址
读忙标志或地址
BF
计数器地址
写数据到CGRAM或DDRAM)
要写的数据内容
从CGRAM或DDRAM读数
读出的数据内容
与HD44780相兼容的芯片时序表如下:
读状态
输入
RS=L,R/W=H,E=H
输出
D0—D7=状态字
写指令
RS=L,R/W=L,D0—D7=指令码,E=高脉冲
无
读数据
RS=H,R/W=H,E=H
D0—D7=数据
写数据
RS=H,R/W=L,D0—D7=数据,E=高脉冲
该模块在本次设计中的电路如图3.5所示:
图3.5LCD1602电路图
图3.6ISD4004引脚排列图
3.1.5语音芯片模块
本设计语音电路采用ISD4004集成芯片。
它是美国ISD公司制造的一种新款语音芯片。
ISD4004采用SPI通信,它的工作电压为3V,适用于移动电话及其它便携式电子产品中。
ISD4004的引脚排列如图3.6所示,
各引脚功能如下:
1、电源(VCCA,VCCD):
模拟和数字电路使用不同的电源总线。
2、地线(VSSA,VSSD):
模拟和数字电路使用不同的地线。
3、同相模拟输入(ANAIN+):
录音信号的同相输入端。
4、反相模拟输入(ANAIN-):
录音信号的反相输入端。
5、音频输出(AUDOUT):
提供音频输出。
6、片选(SS):
此端为低,即向该ISD4004芯片发送指令。
7、串行输入(MOSI):
此端为串行输入端。
8、串行输出(MISO):
ISD的串行输出端。
9、串行时钟(SCLK):
ISD的时钟输入端。
10、中断(INT):
本端为漏极开路输出。
中断状态在下一个SPI周期开始时清除。
中断状态也可用RINT指令读取。
OVF标志用来指示ISD的录、放操作已到达存储器的末尾。
11、行地址时钟(RAC):
漏极开路输出。
图3.7为ISD4004与单片机接口电路图
图3.7ISD4004与单片机接口
4软件设计
在单片机设计中,可以使用C语言和汇编语言。
由于C语言通俗易懂,移植性好,所以本次设计使用C语言来设计程序。
4.1系统的总体软件流程
系统的软件部分采用C语言编程,总体软件框图如图4.1所示。
系统上电开始工作后,首先进行一些变量定义、程序初始化等操作,之后程序将配置单片机内部的A/D转换器,并调用A/D转换子程序,启动转换。
A/D转换启动后,程序将等待A/D转换结束,A/D转换结束后,程序将读入A/D转换结果。
然后系统将扫描键盘,判断确认称重键是否按下,若此按键不按下,系统将一直循环启动A/D转换,等待A/D转换结束并读取转换结果。
不断更新称重数据,直到使用者按下称重确认键为止。
称重确认键按下后系统将处理A/D转换数据,将数据转换成重量值,并与商品原单价相乘,得出商品的总重。
这样做的好处是如果使用者称的是同一种商品,则无需更改商品的单价,直接给出商品的总价。
计算结束后,软件将称得的重量值,商品的单价以及计算的总价送到LCD1602,将以上三个数值显示出来。
之后程序将对P3.7口的电平高低状态,根据P3.7口的电平高低状态不同分为两种情况执行。
当P3.7口为高电平时,表示系统进入的是称重工作模式。
此时,按下报数按键,表示确认此次称重,这时系统将启动ISD4004,并根据商品的总价,读出各位数据对应地址存储的语音。
组合成商品总价的语音,通过扬声器向外播放。
如果所称的是不同商品或者商品的单价与原来设定单价不同,则需要修改商品的单价。
此时,系统将调用按键扫描程序,对原单价进行修改,并重新计算总价。
之后,系统将判断商品的总价或者商品的称重有没有变化,若这些数值发生变化,将再次读出商品总价数值。
本次称重过程结束后,软件返回重新启动A/D转换,重复上述过程。
开始下一称重计算过程。
当P3.7口为低电平时,表示系统进入语音工作模式。
系统等待语音录入键按下,当语音录入键按下时,ISD4004将上电、启动。
通过按键键值的不同,系统将录入各段语音,包括0、1、2……9,元、角等。
录音完成按键按下后,ISD4004将掉电、停止工作。
随后程序将根据音量增减按键的调整修改ISD4004录音、放音音量的强度。
4.1系统主程序流程
4.2语音电路ISD4004的软件编程
前面我们已经设计了ISD4004的硬件电路,这里介绍ISD4004的软件编程。
ISD4004工作于SPI串行接口。
SPI端口控制位如图4.2所示。
图4.2SPI端口控制位
在本设计中,要实现语音的录制/播放控制流程图如图4.3
图4.3语音部分软件流程
4.3液晶模块LCD1602的软件编程
1602LCD显示模块的各个程序模块比较常用,其流程图如图4.4所示:
图4.4LCD1602流程图
4.4KEIL软件使用
本设计的软件设计是在Keil3中完成的,下面就来介绍一下他的使用步骤。
打开Keil软件,在菜单栏中选择“Project”—“NewProject”,选择目标路径,在“文件名”栏中输入项目名后,如图4.5所示。
图4.5“CreateNewProject”对话窗口
点击“保存(S)”按钮,弹出“SelectDeviceforTarget”。
在此对话窗口的“Database”栏中,在其子类中选择“AT89C51,确定CPU类型,如图4.6所示。
图4.6选择CPU
在KeilμVision3的菜单栏中选择“File”一“New”命令,新建文档,在“文件名(N)”一栏中,为此文本命名,注意要填写扩展名“.c”,如图4.7所示。
图4.7保存文件
程序编写完后,再次保存。
在Keil中“ProjectWorkspace”子窗口中,单击“Targetl”前的“+”号,展开此目录。
在“SourceGroup1”文件夹上单击鼠标右键,在右键菜单中选择“AddFiletoGroup‘GroupSourcel’”,“ProjectWorkspace”子窗口如图4.8所示。
图4.8“ProjectWorkspace”子窗口
在“ProjectWorkspace”窗口中的“Target1文件夹上单击鼠标右键,在弹出的右键菜单中选择“OptionforTarget”选项,这时会弹出“OptionsforTarget”对话窗口,在本设计中,根据实际需要,需要将时钟频率变为12.0MHz并生成HEX文件。
在此对话窗口中选择“Output”选项卡,选中“CreateHEXFile”选项,如图4.9所示。
图4.9“OptionsforTarget”对话窗口
在Keil的菜单栏中选择“Project'
”一“BuildTarget”命令,编译源文件。
如果编凋成功,则在Keil的“OutputWindow”子窗口中会显示如图4.10所示的信息;
如果编译不成功,双击“OutputWindow”窗口中的错误信息,则会在编辑窗口中指示错误的语句。
图4.10编译源文件
5调试与测试
经过初步的分析和设计完成后,系统的软件和硬件调试是分不开的。
在后面的调试中,我们会发现,许多的硬件故障时在调试软件的时候才慢慢的发现的,如果我们先排除掉系统中一些较为明确的硬件故障,然后再对其进行然间测试,这样就可以调高测试的效率,减少测试的时间,使测试的可靠性更加好。
在我们进行系统调试的时候,我们要先对各个模块进行调试,避免系统调试的时候,因为模块故障而无法继续调试下去。
学会排除,是设计成功的一大因素。
5.1硬件的调试
本次设计的调试不问分为下面几个部分:
(1)逻辑错误调试
成品模块的逻辑错误是由于在设计过程中,模块的排布安装等问题造成的,这类错误包含:
连接错线、短路、开
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 语音 报数 电子秤 设计 实现