基于51单片机压力检测系统Word格式.docx
- 文档编号:21165832
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:20
- 大小:531.20KB
基于51单片机压力检测系统Word格式.docx
《基于51单片机压力检测系统Word格式.docx》由会员分享,可在线阅读,更多相关《基于51单片机压力检测系统Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
在理论上表明,得到所要求的前端增益(由RG来决定),而不增加共模增益和误差,即差分信号将按增益成比例增加,而共模误差则不然,所以比率〔增益(差分输入电压)/(共模误差电压)〕将增大。
最后,由于结构上的对称性,输入放大器的共模误差,如果它们跟踪,将被输出级的减法器消除。
这包括诸如共模抑制随频率变换的误差。
2.3A/D转换器
模拟量输入通道的任务是将模拟量转换成数字量。
能够完成这一任务的器件称之为模数转换器,简称A/D转换器。
本次设计的中A/D转换器的任务是将放大器输出的模拟信号转换位数字量进行输出。
2.3.1PCF8591A/D转换器
PCF8591是一种具有I2C总线接口的8位A/DD/A转换芯片,在与CPU的信息传输过程中仅靠时钟线SCL和数据线SDA就可以实现。
I2C总线是Philips公司推出的串行总线,它与传统的通信方式相比具有读写方便,结构简单,可维护性好,易实现系统扩展,易实现模块化标准化设计,可靠性高等优点。
2.3.2引脚功能描述
2.3.3片内可编程功能设置
PCF8591内部的可编程功能控制字有两个,一个为地址选择字,另一个为转换控制字PCF8591采用典型的I2C总线接口的器件寻址方法。
Philips规定A/D器件高四位地址为1001,低三位地址为引脚地址A0A1A2,由硬件电路决定,地址选择字格式具体描述如图
因此I2C系统中最多可接23=8个具有总线接口的A/D器件,地址的最后一位为方向位R/W,当主控器对A/D器件进行读操作时为1,进行写操作时为0总线。
操作时,由器件地址引脚地址和方向位组成的从地址为主控器发送的第一字节。
D0:
读写控制位,对转换器件进行读操作时为1,进行写操作时为0。
D1,D2,D3:
引脚硬件地址设置位,由硬件电路设定该PCF8591的物理地址。
D7,D6,D5,D4:
器件地址位固定为1001。
PCF8591的转换控制字存放在控制寄存器中,用于实现器件的各种功能总线操作时为主控器发送的第二字节转换控制字的格式功能具体描述如图
D0,D1:
通道选择位。
00:
通道0;
01:
通道1;
10:
通道2;
11:
通道3。
D2:
自动增量允许位,为1时,每对一个通道转换后自动切换到下一通道进行转换,为0时不自动进行通道转换,可通过软件修改进行通道转换。
D3:
特征位,固定位0。
D4,D5:
模拟量输入方式选择位。
00:
输入方式0,四路单端输入;
01:
输入方式1,三路差分输入;
10:
输入方式2,二路单端输入,一路差分输入;
输入方式3,两路差分输入。
D6:
模拟输出允许位,A/D转换时设置为(地址选择字D0位此时设置为1),D/A转换时设置为1(地址选择字位此时设置为)。
D7:
特征位,固定为0。
2.3.4PCF8591的A/D转换
PCF8591的A/D转换亦使用的是I2C总线的读方式操作完成的。
其数据操作格式如图所示。
其中data0~datan为A/D的转换结果,分别对应于前一个数据读取期间所采样的模拟电压。
A/D转换结束后,先发送一个非应答信号位A再发送结束信号位P。
灰底位由主机发出,白底位是由PCF8591产生。
上电复位后控制字节状态为00H,在A/D转换时须设置控制字,即须在读操作之前进行控制字节的写入操作。
逻辑操作波形时序图如图所示。
2.4液晶显示器1602LCD
显示容量:
16×
2个字符,芯片工作电压:
4.5—5.5V,工作电流:
2.0mA(5.0V),模块最佳工作电压:
5.0V,字符尺寸:
2.95×
4.35(W×
H)mm。
2.4.1引脚功能说明
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如图
编号
符号
引脚说明
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
背光源负极
2.4.21602LCD的指令说明及时序
序号
指令
清显示
光标返回
*
置输入模式
I/D
S
显示开/关控制
D
C
B
光标或字符移位
S/C
R/L
置功能
DL
N
F
置字符发生存贮器地址
字符发生存贮器地址
置数据存贮器地址
显示数据存贮器地址
读忙标志或地址
BF
计数器地址
写数到CGRAM或DDRAM)
要写的数据内容
从CGRAM或DDRAM读数
读出的数据内容
1602液晶模块内部的控制器共有11条控制指令,如图
2.4.31602LCD的一般初始化(复位)过程
延时15mS
写指令38H(不检测忙信号)
延时5mS
以后每次写指令、读/写数据操作均需要检测忙信号
写指令38H:
显示模式设置
写指令08H:
显示关闭
写指令01H:
显示清屏
写指令06H:
显示光标移动设置
写指令0CH:
显示开及光标设置
三、系统设计
3.1控制系统总体结构
四、软件设计
4.11602LCD程序设计流程如图所示
4.2A/D转换程序设计流程如图所示
4.3主程序设计流程如图所示
五、程序清单
5.1过压判断语句
CJNER3,#200,NOOP
NOOP:
JNCOVERWEIGHT
LJMPLCDSTART
5.2LCD显示主程序
LCDSTART:
MOVSP,#60H;
设置堆栈的长度为60Hbyte
MOV42H,#10;
显示"
K"
MOV43H,#11;
G"
LCALLDD1;
LCD初始化
MOVDPTR,#TABLE1
LCALLDD2
LCALLPPP
5.3开启I2C总线
ADSTART:
SETBSDA
SETBSCL
NOP
CLRSDA
NOP
CLRSCL
RET
5.4主机发送子程序
FA:
MOVR0,#08;
--传8个数
MOVA,R1;
地址、读写状态
LOOP:
CLRSCL
RLCAMOVSDA,C
SETBSCL
DJNZR0,LOOP
CLRSCL
5.5AD应答
AD_ACK:
SETBSDA
NOP
SETBSCL
CLRSCL
RET
5.6主机接收子程序
REC:
MOVR0,#08
SETBSDA
LOP:
CLRSCL
SETBSCL
MOVC,SDA
RLCA
DJNZR0,LOP
CLRSCL
SUBBA,#10;
把收到的数据减去基本电压(二进制数)
MOVR3,A
5.7AD数据处理子程序
DAT:
MOVA,R3;
R3存采集的二进制数
MOVB,#5;
需要计算,二进制转电压再转压力
DIVAB;
除完以后,A为商代表压力
MOVB,#10;
拆位准备
此时A为高位,B为低位
MOV40H,A;
高位送到40H单元
MOV41H,B;
低位送到41H单元
5.8LCD初始化
DD1:
MOVLCDDATA,#01H;
写指令01H,清屏
LCALLENABLE
MOVLCDDATA,#38H;
写指令38H,设定LCD为16*2显示,5*7点阵,8位数据接口
MOVLCDDATA,#0CH;
写指令0CH,显示ON,光标OFF,闪烁OFF
LCALLENABLE
MOVLCDDATA,#06H;
写指令06H,光标输入方式增量移位
;
***********LCD第一行***********
DD2:
MOVLCDDATA,#80H;
第一行的开始位置
LCALLWRITE1;
到TABLE1取码
***********LCD第二行***********
DD3:
MOVLCDDATA,#0C0H;
第二行的位置
LCALLWRITE1
LCD第二行显示RAM中单元中的数据
PPP:
MOVLCDDATA,#0C0H;
LCALLENABLE
MOVDPTR,#TABLE2;
显示
LCALLWRITE3;
到TABLE2取码
5.9主机非应答
MA_NCK:
5.10写指令子程序
ENABLE:
CLRRS
CLRRW
CLRE
LCALLDELAY1
SETB
六、设计总结
本课题是基P89C51RD2单片机的测量与显示,通过压力传感器将压力转换为电信号,再经过INA128运算放大器进行信号放大,送至PCF8591,将模拟信号转换成单片机可以识别的数字信号,再经过单片机转换成1602LCD显示器可以识别的信息,显示输出。
在显示过程中设定了过压值40KG,当超过此临界值将会报警。
本次课设,使用protel软件进行硬件电路设计,我们组内成员通过仪器讨论,分工合作,并研究解决一个一个问题。
此外,进行了INA128电路的设计及焊接。
接着通过查阅资料,熟悉了芯片管脚以及芯片引脚功能。
在此基础上,需要对系统进行设计编程,通过查阅大量资料,我们攻克了一个个难关,从1602CD显示,到I2C接口协议等等。
最后对硬件及软件进行了调试,最终完成了本课题设计。
七、参考文献
【1】李朝青编著.单片机原理及接口技术.北京[M]:
北京航天航空大学出版社,1994
【2】何立民编著.单片机应用系统设计.北京[M]:
【3】潘新民,王燕芳编著.微型计算机与传感器.北京[M]:
人民邮电出版社,1998
【4】徐爱卿,孙涵芳编著MCS-51单片机原理及应用.北京[M]:
北京航天航空大学出版社,1993
【5】于时亮,张友德编著.单片微机控制技术.上海[M]:
复旦大学出版社,1994
【6】李华主编.MCS-51系列单片机及实用接口技术.北京[M]:
【7】吴勤勤主编,电动控制仪表及装置.上海[M]化学工业出版社,1990
【8】王化祥,张淑英,传感器应用及原理.天津[M]:
天津大学出版社,1991
【9】杨振江等编著.智能仪器与数据采集系统中的新器件及应用[M].西安电子科技大学出版社.
【10】8位串行A/D转换器0832[J].电子世界,2002,
【11】何立民.单片机应用技术选编[M].北京航空航天大学出版社,2003
【12】朱定华.单片机原理及接口技术[M].北京:
电子工业出版社,2001.6
八、附录
硬件原理图
专用周总结钟乾鹏
从12月2日开始,我们班在开始了为期两周的微机原理与接口技术专用周。
一转眼,两周已经完了。
在这两周我学到了很多东西,获益匪浅。
我们这个小组选择的课题是压力检测,以51单片机为核心实现智能化压力测量仪的设计。
利用压力传感器获取被控对象指标,通过压力传感器将需要测量的位置的压力信号转化为电信号,再经过运算放大器进行信号放大,送至A/D转换器,然后将模拟信号转换成单片机可以识别的数字信号,再经单片机转换成显示器可以识别的信息,最后显示输出。
在一开始,我们就分工合作,画了与该课题相关的硬件原理图,分析单片机的个端口的使用情况,然后进行程序设计的分析,写流程图,并按照流程图,进行程序段的编写,最后把所有的程序段组合在一起,就是我们课题的整个的主程序。
最后下载到单片机上进行硬件调试。
在这整个过程当中,我们遇到了很多的困难。
但是都在老师的指导下和我们的合作之下迎刃而解了。
首先是画流程图的时候,由于分析的不是很透彻,而写的不怎么正确,不是很清楚程序的所有步骤。
然后是写程序的时候思路不是很清晰,由于考虑的太多而感觉混乱,有杂乱无章的感觉,而且由于程序太长,不知道怎么把所有的程序段融合在一起。
我们面临两大难关,1602LCD显示,I2C接口协议。
这些问题,都在我和同伴的努力下,顺利的解决了,尤其是雷老师们对我们的帮助,让我总有一种豁然开朗的感觉。
在这个过程中,我们都觉得对单片机知识有更深刻的理解,对于知识的灵活运用更熟练了。
前面几天的程序编写完成之后,我们都以为最困难的部分已经结束了,接下来只要把程序下到小车单片机上就可以了。
结果让我们大失所望,首先是显示始终为0。
我们分析了硬件,即电路连接、放大倍数调试,最后利用双电源后放大器能正常工作了。
其次是软件程序,我们通过精简程序,绕过矛盾点,最后成功把程序设计好了。
再次是调试问题,虽然能让显示随压力变化,但是精度不高,测量范围不好,我们通过优化程序、稳定输入电压、适当调节放大倍数,最后成功攻克难关。
期间,期间我们遇到最大的困难是AD转换器不工作,最后发现是协议没写好,通过多次研究其时序,最终成功编写出了AD转换器驱动程序,这极大的锻炼了我的耐心。
这次实训,让我知道了学习单片机不是只要学好怎样写程序就可以了,还要对硬件有所了解,要把软件与硬件相结合才可以,期间还要经过多次的调试与修改,这就还需要相当的耐心。
才能真正正确的做完一个课题。
在此,我要特别感谢雷刚老师、施芸老师给我的指导以及搭档的帮助。
这次实训让我学会了很多以前不会或者是不知道的知识,让我更加理解单片机,更想学好单片机知识。
在以后,我定会把这次实训积累的经验落实到学习中去。
姓名:
钟乾鹏
学号:
201112020247
班级:
2011级通信技术1班
专用周总结刁丽
时间真快,两周专用周的时间就已经结束了,在这两周的实训时间里面,我学到了书本上所学不到的知识。
我们这组选择的实验课题项目是高精度压力检测,主要内容是给压力检测器施加一个压力,让这个压力精确的显示在LCD显示器上面。
其扩展实验增加一个按键即可。
这个课题项目却不是特别好做,我们分别要分析I2C协议以及它的软件程序,LCD的接口及软件程序清单,AD芯片接口,8051单片机相关的接口及程序等等。
大致了解了这个课题项目我们需要做哪些重要程序之后,我们开始分配做的事情了。
第一周主要就是把这个课题所涉及到的硬件电路全部画出来。
之后就是做这个课题项目的软件流程清单,要做好这个软件程序可费了我们不小的尽力啊。
一个是I2C协议的程序,在开始的时候完全是无从下手了,我们在网上查询了很多关于I2C的相关资料,看了看相关的知识还是不是很明白,看看老师也比较忙,都在尽量帮其他同学解决困惑。
我们组和有几个做温控项目同样遇到了I2C协议瓶颈,我们琢磨了半天还是没有琢磨出来,就询问了老师,老师给我们讲了AD7416芯片的大概程序之后就叫我们自己下去思考,这个过程锻炼了我们的耐心和毅力。
我们这组对于第一个LCD显示器的软件很快就做出来了,然而对于I2C的软件程序却思考了将近有三、四天的时间。
这个过程我们试了很多次,程序也是先写了流程图,写了很长一片,思考了很久,程序也写了很久,在试的过程中基本上屡败屡战,我们这个项目相比去其他组的项目来说硬件方面要简单许多,但在软件方面却是所有项目中是最难理解的,也是最难写的。
我们是先把各个模块的软件分别写出来,特别是I2C的程序清单,我们屡次修改。
LCD上始终是显示的我们编写静态的程序数据,我们施加了压力显示屏上的数据没有任何的变化,当时的心情真的是很悲伤。
而且时间也还有最后一天半了,尽管我们的程序是做出来了,但显示屏上的数据一点也不改变。
我们冥思苦相,程序修改了又修改,还是不行,最后我的搭档利用数学知识及物理知识算了下压力的范围和1牛顿的压力,终于算出来了。
当我们试验的时候发现LCD显示上的数据很闪。
我们以为是电压不稳定,就把电压器调整了一下,结果还是数据很闪。
最后想了想可能就是延时时间太短了,然后又修改了下延时程序,之后就完全不闪了。
施加压力时,LCD上的数据也是在准确的变化着,看到这个结果后我们都很高兴。
这次实训,让我知道了学习单片机不是只要学好写程序,还要对硬件有所了解,要把软件与硬件相结合才可以更完美,期间还要经过多次的调试与修改,这就还需要相当的耐心才能真正正确的做完一个课题项目。
我要特别感谢带我们这次实训的老师给我的指导以及搭档的帮助,让我学会了很多以前不会和懂的知识,让我更加理解单片机,要想学好单片机这门课程不仅要对程序命令熟悉还要对硬件了解,这样才能把这门课程学的更好。
在以后的学习中,我会更认真的学好这门课程。
姓名:
刁丽
201112020007班级:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 压力 检测 系统