指令3:当I/D=1的时候,进行数据读和写的操作后,光标右移,反之左移。当S=1的时候,进行数据读和写的操作后,显示屏整体右移1字符,反之,显示屏不移动。
指令4:当D=1的时候显示功能开,反之,关显示屏。当C=1的时候有光标,反之,无光标。当B=1的时候光标不闪烁,反之,光标闪烁。
指令5:设定光标、字符移动方向。当S/C和R/L的值为00H的时候光标右移一格。值是01H时光标左移一格。
指令6:当N=1有2显示,当N=0有1显示。DL=1的时候数据总线为8位,DL=0的时候数据总线为4位。
指令9:读取忙标志BF的值、AC的值。BF=1时显示屏忙,反之,表示显示屏准备好。
指令10:将数据写到RAM。 指令11:从RAM中读取数据。
将LCD1602的各端口与单片机相连好,如果E端为HL,此时的RS端为LL,同时R/W端为LL的时候,液晶显示屏就会显示出用户想要显示的数据。单片机与1602液晶显示屏的硬件连接图如图3-9所示。
图3-9 单片机与1602液晶显示屏硬件连线图
3.7压力感应电路
现代的传感技术发展的越来越快,大家都已经从用传统的杠杆原理去测量物体的重量,发展到至今的用电子秤电子称重,即利用压力传感器把压力的信号转变成为电信号,运用单片机本身的技术,根据电信号和重力信号的数学模型,就能够间接的计算出物体的重量,目前普遍使用的是电阻应变片式称重传感器。电
阻应变式压力传感器是把电阻应变计粘贴在弹性敏感元件上,然后以适当方式组成电桥的一种将力转换成电信号的转换元件[12]。
压力感应电路是由气压传感器MPX4115、A/D转换器等组成。如图3-9
图3-9 压力感应电路
3.7.1气压传感器MPX4115的原理
气压传感器MPX4115的管脚如图3-9 ,管脚说明如表3-4所示
图3-9 MPX4115实物图
表3-4 气压传感器MPX4115的管脚说明
1 VOUT 2 GND 3 VS 4 N/S 5 N/S 6 N/S
气压传感器MPX4114的特性参数如表3-5所示:
参数 符号 最小 典型 最大 单位
压力范围 供电电压 供电电流 最大压力偏置 (0℃~85℃) @Vs=5.0V 满量程输出 (0℃~85℃) @Vs=5.0V 满量程比例 (0℃~85℃) @Vs=5.0V 精度 (0℃~85℃) 灵敏度 响应时间((10%~90%) 上升报警时间 偏置稳定性 Pop Vs Lo Vpss 15 4.85 - 0.135 - 5.1 7.0 0.204 115 5.35 10 0.273 KPa Vdc mAdc Vdc Voff 4.725 4.794 4.863 Vdc VFSS 4.521 4.590 4.695 Vdc - - - ±1.5 %CPSS V/P tR - - - - - 45.9 1.0 20 ±0.5 - - - - mV/KPa ms ms %VFSS 3.7.2转换器ADC0808
转换器ADC0808构成引脚图如图3-9所示。
图3-9 ADC0808引脚图
(2) 转换器ADC0808工作原理
A、B和C为地址输入线,用于选通IN0~IN7上的一路模拟量输入。通道选择见表3-4。
表3-4 ADC0807通道选择表
C 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 选择的通道 INT0 INT1 INT2 INT3 INT4 INT5 INT6 INT7 3.8 电源电路
本实验所需要的工作电压为+5V,由于该系统不仅要接220V电压还有可能要与USB相连,USB的接口所需的电压为±12V。所以,先利用适配器把220V的交流电压通过降压、整流、滤波转变为少一点的直流电压。最后达到5V的电压供给整个电路 [13]。
变压器输出端的电压经桥式整流,电容滤波,在电容C6两端大约会有高一点的电压,如果在电容两端接上负载,如果出现负载变化或者交流电源有波动情况,那么会对C6电压产生较大的影响,所以,当你想要一个稳定的电压源就必须要接上一个稳压器。它是由若干电阻和三极管构成的一种集成电路元器件,在你研究电路的时候,可以把它当作是一个能够调节电阻大小的元件,如果经过负载的电流变大大,那么,其内部的电阻会变小,同样道理,如果电流变小,那么电阻就会变大。只有这样才能够使电压更加稳定。7805三端稳压集成电路有三个引脚,1号引脚是输入端,2号引脚是接地端,3号引脚是输出端。通过7805的个位数字我们可以知道输出电压是5V。
TR1是电源变压器,通过TR1把220v交流电变为12v交流电。然后再通过桥式整流电路,把12V交流电变为12V直流电。电路如图3-10所示。
图3-10 电源电路
3.9本章小结
本章简单的介绍了单片机的硬件部分的组成。并且介绍单片机选用了8051系列单片机里的AT89S52,按键的部分明智选择了矩阵键盘,液晶显示电路的部分则选择了LCD1602。
4 系统软件设计
该软件设计的大致思路是:根据自己所编写的程序对系统中的测量进行控制,使其自动完成逻辑判断以及重量的测量:本设计软件的主要的目标如下:(1)设置单价;(2)显示质量、单价及总价;(2)超量程指示。
4.1 编程语言及开发工具的选择
4.1.1编程语言的选择
对8051单片机而言,现在最常用的就是汇编语言和C语言。每种语言都有各自的优缺点。
在51系列单片机下,C语言和汇编语言相比,有很多的优点,具体叙述如下[14]:
(1) 不要求对单片机的指令系统有所了解,如需使用它只要对51系列单片机的存储器结构有简单了解就可以;
(2)寄存器分配、不同存储器的寻址及数据类型等细节可由编译器管理; (3)其本身所提供的库中有许多的程序,数据的处理有很强大的能力; (4)由于他本身的编程技术运用很便利,已经编写好的程序就可以很方便的复制粘贴去其他地方。
结合上面的几点叙述,本设计应该选择的编程语言为C语言,并且采用模块化编程方式进行编程。 4.1.2 开发环境的选择
单片机的开发环境是多种多样的,有很多家公司都研发了单片机的开发软件,如American Automation、瑞典的IAR、Avocet和Keil等。开发环境的优劣直接影响单片机应用产品的开发效率[7]。本设计基于51系列单片机AT89S52,而且选用C语言进行编程,因此选用来自德国的主流开发软件Keil进行编程。Keil在代码生成方面相比较于其它几款软件很显然是处于先前地位的,它能够产生最少的代码。
4.2 主程序设计
4.2.1 主程序设计思想
称重是电子秤最基础的功能,所以该程序设计的主要出发点就是一定要保证