毕业设计基于压力传感器的可计算价格电子秤.docx

上传人:b****3 文档编号:629443 上传时间:2022-10-11 格式:DOCX 页数:44 大小:219.39KB
下载 相关 举报
毕业设计基于压力传感器的可计算价格电子秤.docx_第1页
第1页 / 共44页
毕业设计基于压力传感器的可计算价格电子秤.docx_第2页
第2页 / 共44页
毕业设计基于压力传感器的可计算价格电子秤.docx_第3页
第3页 / 共44页
毕业设计基于压力传感器的可计算价格电子秤.docx_第4页
第4页 / 共44页
毕业设计基于压力传感器的可计算价格电子秤.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

毕业设计基于压力传感器的可计算价格电子秤.docx

《毕业设计基于压力传感器的可计算价格电子秤.docx》由会员分享,可在线阅读,更多相关《毕业设计基于压力传感器的可计算价格电子秤.docx(44页珍藏版)》请在冰豆网上搜索。

毕业设计基于压力传感器的可计算价格电子秤.docx

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

 

2016-年小学期单片机设计实验报告

题目:

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

 

班级:

班内序号:

实验组号:

学生姓名:

指导教师:

 

 

期中检查

 

教师评语

 

指导教师签字:

 

年月日

 

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

实验摘要

本次我们制作的基于压力传感器的可计算价格电子秤具有如下功能:

1.显示物体的质量;2.输入物品的单价;3.根据输入的单价及质量计算总价格。

在器件的选择上,微控制器采用了Microchip公司的PIC16F877A,核心器件采用压力传感器。

在具体实现过程中,重物的压力使压力传感器产生模拟电信号,将模拟电信号通过PORTA0端口输入给PIC16F877A,并进行数模转换;用PORTA1-PORTA3作为数字输出端口控制显示屏的使能;用PORTB作为数字输入端口,连接4*4键盘输入重物的单价;PORTC作为数字输出端口连接液晶屏,显示重物的种类,单价和总价。

Abstract

Inthisexperiment,theelectricscalebasedonthepressuresensorhasthefunctionsasfollows:

1.gainingtheweightofthesubjectonit;2.Settingthepriceofperkilogramofthegoods;3.Calculatingthetotalpriceaccordingtotheweightandtheprice.

Asfortheselectionofthedevices,theproductionoftheMicrochipcord--PIC16F877ischosenasthemicrocontrollerandthecoredevicefollowsonthepressuresensor.

Intheaspectofmakingthesystemwork,thepressureofthesubjectactivatesthepressuresensortoproduceananalogsignal,whichissenttothemicrocontrollerthroughPORTA0andthenisconvertedtodigitalsignals.WerealizethedigitalenableoutputporttocontrolthescreenwithPORTA1-PORTA3,usingPORTBasthedigitalinputporttoconnectthe4*4keyboardinputweightunit,usingPORTCasthedigitaloutputporttobeconnectedwiththeLCDscreen,displayingtheweightcategories,unitpriceandtotalvalue.

关键字

单片机——microcontroller芯片——CMOSchip

压力传感器——pressuresensor

模数转换——analog-digitalconversion

 

一.实验论证与比较

1.压力传感器模块

电子称利用压力传感器先将压力信号转化为模拟电信号,再借由单片机自身的功能将其转化为数字电信号并进行输出以达到显示重物重量的功能。

压力传感器MPX2100是压力传感器模块的核心,要用5V的电压进行供电。

初次之外,压力传感器还要用一个LM324作为差分放大装置将获得的mV为单位的电信号放大到以V为单位的模拟电信号,要用±12V的直流电作为驱动。

最终得到的模拟信号从LM324的8管脚传送到PIC16F877A的PORTA0进行模数转换。

最后通过一个1M的电位计对电源电压进行分压以达到调零的目的,另有一个1K的电位计调整LM324的放大倍数以达到压力传感器的校准功能。

图1为压力传感器模块的内部电路。

图1压力传感器模块电路

在电子称工作时,将压力传感器一端固定在万用板上,将重物放在它的另一端,使压力传感器内部的电阻应变片发生形变,从而改变压力传感器的电阻大小,进而改变通过压力传感器的电流大小,获得随重物质量而改变的模拟电信号。

但是由于压力传感器的量程有限,只能称重0~3kg的重量,同时8位二进制数只能表示0~255,所以必须还要对获得的数字信号进行量化后进行输出。

选取的分度值为12。

2.键盘模块

我们利用了小键盘的0~9以及A、B这12个按键。

数字按键用来输入单价,而A、B两个按键分别用来清除已输入的单价和确定已输入的单价。

键盘工作的原理是先将键盘所用的按键每个赋予一个键位码,存在从40H开始的连续地址单元中。

在无按键按下时,键盘输出均为低电平,而当有按键按下时,对应的输出将会对应高电平。

在工作时利用取反扫描法,检测键盘是否有按键按下,一旦有按键按下,查找其键位码对应的地址,利用间接寻址法,减去40H即可获得输入的按键,再转而输入到LCD上。

图2为4*4键盘电路图。

 

图24*4键盘电路图

3.LCD显示屏模块

我们用128*64LCD显示屏显示重物的重量、单价、以及计算后的总价。

显示屏的输出不仅要用8条地址线传输输出输入内容,还要利用其RS、RW、E三个端口控制其输入输出。

因为传输的内容有可能是数据也有可能是指令,所以先要用RS来设定传输的内容;LCD液晶屏之间是双向传输的,所以要用RW来决定LCD的输入输出;最后的E相当于使能端,决定何时传输内容。

在此程序中,LCD屏只用来输出,所以可以将RW直接接地,而RS、E要连接对应的端口。

 

二.系统总体设计

 

系统模块总体框图如下:

 

键盘模块框图

默认的设置单价为两位数,所以当输入数字时系统会自动检测已经输入的数字的个数,另外如果想单价为一位数,那么可以在输入一个数字后按下B键确认。

另外,在每按下一个数字时,都会先检测是否按下的为A,如果是,则清空已经输入的数字,再重新输入单价。

图3为键盘模块流程图。

 

 

图3键盘输入流程图

总价的计算

计算总价时,要先将储存单价的8421码转化成8421BCD码。

计算总价时用的为乘法计算,我们选择将乘法分解成加法并循环计算的方式。

并且在显示总价时,会先检测总价的不是零的第一位再开始显示总价,避免了像000.000元这样的数字出现。

我们的总价最多可以计算4位数乘2位数,结果可达6位数。

图4为计算总价的流程图。

 

 

图4总价计算流程图

 

三.硬件连接

压力传感器模块连接

压力传感器内部有电阻应变片,其阻止大小会随形变的多少而改变,从而产生随压力而变的电信号,再通过查分放大电路放大电信号。

因此,压力传感器输出的是模拟信号。

想要能够得到数字信号,必须利用PIC16F877A自身的A端口所带的模数转换功能。

因此,必须先设置PORTA的一个端口为模拟端口。

又由于我们要用LCD液晶屏必须令PORTA有三个数字端口,经过查阅,决定另PORTA0为模拟端口。

另外在接PORTA0之前必须接一个分压电路,来决定模拟信号的分度值,使输出的数字信号能在想要的范围内。

键盘和单片机连接

在使用键盘时,必须接上拉电阻。

单片机的PORTB端口有自带的弱上拉功能,所以选取PORTB作为键盘的输入端口。

同时为保险起见,在键盘和PORTB相连之前,也接了4个上拉电阻。

3.LCD屏和单片机连接

LCD显示屏的连接较为复杂。

其管脚如图5所示。

使用时,1、15、20管脚均接地;2、17、19管脚接电源电压,4、5、6管脚分别接PORTA1、PORTA2、PORTA3;7~14管脚分别接PORTB0~PORTB7;3管脚用来调节液晶屏亮度,需要在3端口接两个电阻分别接电源和地进行分压,在实际操作时先用电位计调节到合适阻值后用定值电阻代替,最后选取接电源盒地的电阻分别为6.8k欧姆和3.3k欧姆。

整个系统连接模块如下:

 

 

四.调试过程

第一次接触单片机,我在软硬件调试过程中遇到了很多的困难及麻烦,通过查找资料,翻阅参考书,如:

《PIC单片机实用教程基础篇》、《PIC实用教程提高篇》,上网查找资料,询问老师和同学等方式,解决了很多困难也学到了很多知识。

在调试过程中,我既能够独立思考又能够与同学交流,实现自我进步与共同进步。

在交流过程中,我能够将自己的探索结果与同学分享,并帮助其他同学查找问题,改进软件方案。

在调试过程中我遇到了如下的问题,问题与解决方案如下:

1.在线仿真与脱机烧写的问题:

在本实验的初期阶段,由于我对PIC单片机的仿真不是很熟悉,几次调试过程中均采用在线仿真的方式,但是LCD显示屏并无反应,在确认连线无误后,我决定尝试脱机烧写的方式进行仿真。

果然,采用脱机烧写的方式,电子秤系统能够启动。

由此,我认为当实验进行遇到阻碍时,应该换一种方法或思维。

2.开机乱码问题

开机乱码问题主要原因是时延不一致导致乱码的出现。

LCD显示屏上电复位需要时间,而如果这一时间还没到单片机就将指令传输给LCD屏幕,那么传给LCD屏幕的指令显然就会出现错误,因而出现乱码。

这一问题不好检测和调试。

因为在调试过程中可以一条一条语句分步执行,自然就会有充足的延时,在调试时根本不会出现问题,但是在运行时候就会出现问题了。

对于这种问题只能不断的在将向LCD屏幕传送数据之前人工加一个时延程序或者适当执行几条NOP指令,直到最后不再有乱码出现为止,过程较为繁琐。

最终,我采用加196ms延时的方法。

这个方法对于整个系统有利有弊,优点是LCD屏幕不在出现乱码,缺点是每次启动需要等待一段时间,用户体验略差。

需要改进该缺点还需要进一步学习单片机知识,最终改善用户体验差的问题。

3.小键盘键位码的确定

最初我们直接借鉴《PIC单片机实用教程》中的小键盘代码进行调试,发现有的按键能够正常输入并在LCD上显示,而有的代码却在屏幕上会显示‘z’字样,最初我们困惑不解。

后来我们改变小键盘的连接线接线方法,发现按键情况发生了改变。

我们意识到是键盘的键位码出现了问题。

于是,我们着手解决键盘码的问题。

我们根据书上的原理,并根据已经正确的按键的键值进行推断,最终将键盘码确定。

最终实现了按键并显示的功能。

4.输入后清除功能的调试

在实验过程中,我发现在清除已经输入的单价时,只能清除单价的十位,无法清除单价个位。

虽然在下一次输入时单价的个位并不影响显示和总价的计算,但出于对产品的负责与严谨治学的态度,我决定改进按键的清除功能。

在多次实验过程中,发现清除的位置不同,会清除不同的内容,有的会对程序体验造成影响,最终选择了刷新屏幕的方法,此方法可以一次性清除输入错误的个位与十位,清除彻底,兼顾功能与用户体验。

5.压力传感器模拟信号的处理

本实验,我们小组选取的是学校提供的压力传感器,该传感器是将重物的压力转换为模拟信号,这样很考验我们处理信号的能力。

考虑到电子秤的功能要求,我们需要将电子秤产生的模拟信号量转换为数字信号。

根据《PIC单片机实用教程提高篇》中关于A\D部分的介绍,除RA0外所有的PORTA的端口均为数字信号,只有RA0为模拟信号,我选取PORTA0作为压力传感器的信号输入端口,利用PIC16F877A自带的数模转换功能将压力传感器的模拟信号转换为数字信号。

6.分页问题的解决

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1