基于压力传感器的可计算价格电子秤

上传人:QQ15****706 文档编号:52450348 上传时间:2018-08-21 格式:DOCX 页数:37 大小:246.02KB
返回 下载 相关 举报
基于压力传感器的可计算价格电子秤_第1页
第1页 / 共37页
基于压力传感器的可计算价格电子秤_第2页
第2页 / 共37页
基于压力传感器的可计算价格电子秤_第3页
第3页 / 共37页
基于压力传感器的可计算价格电子秤_第4页
第4页 / 共37页
基于压力传感器的可计算价格电子秤_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《基于压力传感器的可计算价格电子秤》由会员分享,可在线阅读,更多相关《基于压力传感器的可计算价格电子秤(37页珍藏版)》请在金锄头文库上搜索。

1、2016 年小学期单片机设计实验报告年小学期单片机设计实验报告题目:基于压力传感器的可计算价格电子秤题目:基于压力传感器的可计算价格电子秤班班 级:级: 班内序号:班内序号: 实验组号:实验组号: 学生姓名:学生姓名: 指导教师:指导教师: 期中检查教师评语指导教师签字:年 月 日基于压力传感器的可计算价格电子秤基于压力传感器的可计算价格电子秤实验摘要本次我们制作的基于压力传感器的可计算价格电子秤具有如下功能:1.显示物体的质量;2.输入物品的单价;3.根据输入的单价及质量计算总价格。在器件的选择上,微控制器采用了 Microchip 公司的 PIC16F877A,核心器件采用压力传感器。在具

2、体实现过程中,重物的压力使压力传感器产生模拟电信号,将模拟电信号通过 PORTA0 端口输入给 PIC16F877A,并进行数模转换;用 PORTA1-PORTA3 作为数字输出端口控制显示屏的使能;用 PORTB 作为数字输入端口,连接 4*4 键盘输入重物的单价;PORTC 作为数字输出端口连接液晶屏,显示重物的种类,单价和总价。AbstractIn this experiment,the electric scale based on the pressure sensor has the functions as follows:1.gaining the weight of the

3、subject on it;2.Setting the price of per kilogram of the goods;3.Calculating the total price according to the weight and the price.As for the selection of the devices,the production of the Microchip cord-PIC16F877 is chosen as the microcontroller and the core device follows on the pressure sensor.In

4、 the aspect of making the system work,the pressure of the subject activates the pressure sensor to produce an analog signal,which is sent to the microcontroller through PORTA0 and then is converted to digital signals.We realize the digital enable output port to control the screen with PORTA1-PORTA3,

5、 using PORTB as the digital input port to connect the 4*4 keyboard input weight unit, using PORTC as the digital output port to be connected with the LCD screen, displaying the weight categories, unit price and total value.关键字单片机microcontroller 芯片CMOS chip压力传感器pressure sensor模数转换analog-digital conve

6、rsion1.实验论证与比较1.压力传感器模块电子称利用压力传感器先将压力信号转化为模拟电信号,再借由单片机自身的功能将其转化为数字电信号并进行输出以达到显示重物重量的功能。压力传感器 MPX2100 是压力传感器模块的核心,要用 5V 的电压进行供电。初次之外,压力传感器还要用一个LM324 作为差分放大装置将获得的 mV 为单位的电信号放大到以 V 为单位的模拟电信号,要用12V 的直流电作为驱动。最终得到的模拟信号从 LM324 的 8 管脚传送到PIC16F877A 的 PORTA0 进行模数转换。最后通过一个 1M 的电位计对电源电压进行分压以达到调零的目的,另有一个 1K 的电位计

7、调整 LM324 的放大倍数以达到压力传感器的校准功能。图 1 为压力传感器模块的内部电路。在电子称工作时,将压力传感器一端固定在万用板上,将重物放在它的另一端,使压力传感器内部的电阻应变片发生形变,从而改变压力传感器的电阻大小,进而改变通过压力传感器的电流大小,获得随重物质量而改变的模拟电信号。但是由于压力传感器的量程有限,只能称重 03kg 的重量,同时 8 位二进制数只能表示 0255,所以必须还要对获得的数字信号进行量化后进行输出。选取的分度值为图 1 压力传感器模块电路12。2.键盘模块我们利用了小键盘的 09 以及 A、B 这 12 个按键。数字按键用来输入单价,而 A、B 两个按

8、键分别用来清除已输入的单价和确定已输入的单价。键盘工作的原理是先将键盘所用的按键每个赋予一个键位码,存在从 40H 开始的连续地址单元中。在无按键按下时,键盘输出均为低电平,而当有按键按下时,对应的输出将会对应高电平。在工作时利用取反扫描法,检测键盘是否有按键按下,一旦有按键按下,查找其键位码对应的地址,利用间接寻址法,减去 40H 即可获得输入的按键,再转而输入到 LCD 上。图 2 为 4*4 键盘电路图。3.LCD 显示屏模块我们用 128*64LCD 显示屏显示重物的重量、单价、以及计算后的总价。显示屏的输出不仅要用 8 条地址线传输输出输入内容,还要利用其 RS、RW、E 三个端口控

9、制其输入输出。因为传输的内容有可能是数据也有可能是指令,所以先要用 RS 来设定传输的内容;LCD 液晶图 2 4*4 键盘电路图屏之间是双向传输的,所以要用 RW 来决定 LCD 的输入输出;最后的 E 相当于使能端,决定何时传输内容。在此程序中,LCD 屏只用来输出,所以可以将 RW 直接接地,而 RS、E 要连接对应的端口。二.系统总体设计系统模块总体框图如下:键盘模块框图默认的设置单价为两位数,所以当输入数字时系统会自动检测已经输入的数字的个数, 另外如果想单价为一位数,那么可以在输入一个数字后按下 B 键确认。另外,在每按下一个 数字时,都会先检测是否按下的为 A,如果是,则清空已经

10、输入的数字,再重新输入单价。图 3 为键盘模块流程图。总价的计算计算总价时,要先将储存单价的 8421 码转化成 8421BCD 码。计算总价时用的为乘法计算,我们选择将 乘法分解成加法并循环计算的方式。并且在显示总价时, 会先检测总价的不是零的第一位再开始显示总价,避免 了像 000.000 元这样的数字出现。我们的总价最多可以 计算 4 位数乘 2 位数,结果可达 6 位数。图 4 为计算总价的流程图。否u开始是否有按键按下找到对应的键位码转换成对应的数字的代码在 LCD 屏幕输出是否已输入两次是否u按下是否为 A是 是按下是否为 B否u否u是图 3 键盘输入流程图三.硬件连接压力传感器模

11、块连接压力传感器内部有电阻应变片,其阻止大小会随形变的多少而改变,从而产生随压力而变的电信号,再通过查分放大电路放大电信号。因此,压力传感器输出的是模拟信号。想要能够得到数字信号,必须利用 PIC16F877A 自身的 A 端口所带的模数转换功能。因此,必须先设置 PORTA 的一个端口为模拟端口。又由于我们要用 LCD 液晶屏必须令 PORTA 有三个数字端口,经过查阅,决定另 PORTA0 为模拟端口。另外在接 PORTA0 之前必须接一个分压电路,来决定模拟信号的分度值,使输出的数字信号能在想要的范围内。键盘和单片机连接在使用键盘时,必须接上拉电阻。单片机的 PORTB 端口有自带的弱上

12、拉功能,所以选取 PORTB 作为键盘的输入端口。同时为保险起见,在键盘和 PORTB 相连之前,也接了 4 个上拉 电阻。3.LCD 屏和单片机连接图 4 总价计算流程图LCD 显示屏的连接较为复杂。其管脚如图 5 所示。使用时,1、15、20 管脚均接地; 2、17、19 管脚接电源电压,4、5、6 管脚分别接 PORTA1、PORTA2、PORTA3;714 管脚分别 接 PORTB0PORTB7;3 管脚用来调节液晶屏亮度,需要在 3 端口接两个电阻分别接电源和地 进行分压,在实际操作时先用电位计调节到合适阻值后用定值电阻代替,最后选取接电源盒 地的电阻分别为 6.8k 欧姆和 3.3

13、k 欧姆。整个系统连接模块如下:4.调试过程第一次接触单片机,我在软硬件调试过程中遇到了很多的困难及麻烦,通过查找资料, 翻阅参考书,如:PIC 单片机实用教程 基础篇、PIC实用教程 提高篇,上网查找资 料,询问老师和同学等方式,解决了很多困难也学到了很多知识。在调试过程中,我既能够单片机 PIC16F877LCD 显示屏压力传感器模块小键盘PORTCRA0PORTBRA1RA3独立思考又能够与同学交流,实现自我进步与共同进步。在交流过程中,我能够将自己的探 索结果与同学分享,并帮助其他同学查找问题,改进软件方案。在调试过程中我遇到了如下的问题,问题与解决方案如下:1.在线仿真与脱机烧写的问

14、题:在本实验的初期阶段,由于我对PIC单片机的仿真不是很熟悉,几次调试过程中均采用在 线仿真的方式,但是LCD显示屏并无反应,在确认连线无误后,我决定尝试脱机烧写的方式 进行仿真。果然,采用脱机烧写的方式,电子秤系统能够启动。由此,我认为当实验进行遇到阻碍时,应该换一种方法或思维。 2.开机乱码问题开机乱码问题主要原因是时延不一致导致乱码的出现。LCD显示屏上电复位需要时间, 而如果这一时间还没到单片机就将指令传输给LCD屏幕,那么传给LCD屏幕的指令显然就会出 现错误,因而出现乱码。 这一问题不好检测和调试。因为在调试过程中可以一条一条语句分步执行,自然就会有 充足的延时,在调试时根本不会出

15、现问题,但是在运行时候就会出现问题了。对于这种问题 只能不断的在将向LCD屏幕传送数据之前人工加一个时延程序或者适当执行几条NOP指令,直 到最后不再有乱码出现为止,过程较为繁琐。最终,我采用加196ms延时的方法。这个方法 对于整个系统有利有弊,优点是LCD屏幕不在出现乱码,缺点是每次启动需要等待一段时间, 用户体验略差。需要改进该缺点还需要进一步学习单片机知识,最终改善用户体验差的问题。3.小键盘键位码的确定最初我们直接借鉴PIC 单片机实用教程中的小键盘代码进行调试,发现有的按键能够 正常输入并在LCD上显示,而有的代码却在屏幕上会显示z字样,最初我们困惑不解。后 来我们改变小键盘的连接

16、线接线方法,发现按键情况发生了改变。我们意识到是键盘的键位 码出现了问题。于是,我们着手解决键盘码的问题。我们根据书上的原理,并根据已经正确 的按键的键值进行推断,最终将键盘码确定。最终实现了按键并显示的功能。 4.输入后清除功能的调试在实验过程中,我发现在清除已经输入的单价时,只能清除单价的十位,无法清除单价个 位。虽然在下一次输入时单价的个位并不影响显示和总价的计算,但出于对产品的负责与严 谨治学的态度,我决定改进按键的清除功能。在多次实验过程中,发现清除的位置不同,会 清除不同的内容,有的会对程序体验造成影响,最终选择了刷新屏幕的方法,此方法可以一 次性清除输入错误的个位与十位,清除彻底,兼顾功能与用户体验。 5.压力传感器模拟信号的处理 本实验,我们小组选取的是学校提供的压力传感器,该传感器是将重物的压力转换为模拟信 号,这样很考验我们处理信号的能力。 考虑到电子秤的功能要求,我们需要将电子秤产生的模拟信号量转换为数字信号。 根据PIC单

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 论文指导/设计

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号