![北邮小学期电子秤实验报告_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/90c18c5a-5975-480c-bc3f-1a03a8d8a5c0/90c18c5a-5975-480c-bc3f-1a03a8d8a5c01.gif)
![北邮小学期电子秤实验报告_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/90c18c5a-5975-480c-bc3f-1a03a8d8a5c0/90c18c5a-5975-480c-bc3f-1a03a8d8a5c02.gif)
![北邮小学期电子秤实验报告_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/90c18c5a-5975-480c-bc3f-1a03a8d8a5c0/90c18c5a-5975-480c-bc3f-1a03a8d8a5c03.gif)
![北邮小学期电子秤实验报告_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/90c18c5a-5975-480c-bc3f-1a03a8d8a5c0/90c18c5a-5975-480c-bc3f-1a03a8d8a5c04.gif)
![北邮小学期电子秤实验报告_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/90c18c5a-5975-480c-bc3f-1a03a8d8a5c0/90c18c5a-5975-480c-bc3f-1a03a8d8a5c05.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 2013211119班28号曾霜霜单片机设计实验报告2015年小学期单片机设计实验报告题目:计价电子秤 班 级: 20 班内序号: 实验组号: 学生姓名: 指导教师: 期中检查教师评语指导教师签字: 年 月 日计价电子秤2013211119班 曾霜霜实验摘要 本次我们制作的是基于压力传感器的既可显示重物质量又可输入单价计算总价的计价电子秤。整个系统中,微控制器采用了Microchip公司的PIC16F877A,软件设计中涉及PORTA0作为模拟量输入端;用PORTB作为数字量输入端,连接键盘输入重物的单价;PORTA1-3作为数字输出端口连接液晶屏使能端,PORTC作为数字输出端口连接液晶屏
2、,最终显示重物的种类,单价和总价。概括的说,本实验是通过压力传感器形变后产生的模拟信号经过数模转换、量化、显示获得重物质量,然后输入单价后进行乘法运算的过程。AbstractIn this experiment, we made a denominated electronic scale based on the pressure sensor, which can automatically display the weight of the heavy, input the unit price and even calculate the total price of the heav
3、y. Throughout the system, the production of the Microchip cord-PIC16F877A is used as the microcontroller. Software design involves PORTA0 as simulation input port, the analog signal to the microcontroller and digital to analog conversion, as a digital enable output port to control the screen with PO
4、RTA1-PORTA3, using PORTB as the digital input port, connect the 4*4 keyboard input weight unit, PORTC as the digital output port is connected with the LCD screen, display the weight categories, unit price and total value.In summary, this experiment was carried out by the analog signal generated by t
5、he pressure sensor deformation after digital to analog conversion, quantization to get the weight display quality, and then enter the unit price after the multiplication process.关键字单片机microcontroller 芯片CMOS chip 计价price calculating压力传感器pressure sensor 模数转换analog-digital conversion一 实验论证与比较1. 压力传感器模块
6、1.1设计思想压力传感器是本实验的核心部分。压力传感器利用形变先将压力信号转化为模拟电信号输出到单片机,再由单片机自身的AD转换功能将其转化为数字电信号,从而显示出重物的质量。1.2具体实现1.2.1压力传感器此次选用的是外购的电阻应变式压力传感器,电源电压为5V。使用时,将压力传感器一端固定在万用板上,将重物放在它的另一端,使压力传感器内部的电阻应变片发生形变,从而改变压力传感器的电阻大小,进而改变通过压力传感器的电流大小,获得随重物质量而改变的模拟电信号。1.2.2差分放大电路由于压力传感器输出电压过小,为mV级,于是增加了差分放大电路来将输出电压放大到V级,该电路由一个LM324作为差分
7、放大装置,需用12V的直流电作为驱动,最终放大后的模拟信号从LM324的8管脚传送到PIC16F877A的RA0端口进行模数转换。此外,该电路通过一个1M的电位计对电源电压进行分压以达到调零的目的,另有一个1K的电位计通过调整LM324的放大倍数以达到压力传感器的校准功能。1.2.3数模转换及量化 经单片机AD转换后,05V的模拟电信号被量化成了0255的八位二进制数。对应电子秤的量程5.000kg,将5000分成256份,于是分度值取20g.2. 键盘模块2.1设计思想 矩阵键盘的操作分为两个部分:一是检测是否有键被按下;二是识别被按下的键是哪一只。我们采用“反转扫描法”同时实现上述两个部分
8、。基本思想是:先让行线全部输出逻辑0,接着读取列线,得到与按键横向位置对应的4位列码。如果有键被按下,对应的列线必然会读回逻辑0,;若无键按下,则读取的列码必定为全1。当有键按下时,将从列线上读取的列码,再从列线输出,然后再读取行线,得到与按键纵向位置对应的4位行码。最后,将先后两次读到的行码和列码组合到一起,构成可以准确确定按键位置的位置码。2.2具体实现我们利用小键盘的09以及A、B这12个按键。数字按键用来输入单价,键A和键B两个按键分别用来清除已输入的单价和确定已输入的单价。键盘工作的原理是先将键盘所用的按键每个赋予一个键位码,存在从40H开始的连续地址单元中。在无按键按下时,键盘输出
9、低电平,而当有按键按下时,对应的输出对应高电平。利用取反扫描法,检测键盘是否有按键按下,一旦有按键按下,查找其键位码对应的地址,利用间接寻址法,减去40H即可获得输入的按键,再转而输入到LCD上。3. 液晶显示屏模块3.1程序设计思想通常所说的12864LCD显示块是所说的点阵液晶显示模块,就是由128*64个液晶显示点组成的一个128列*64行的阵列,所以也就叫成了12864。每个显示点都对应着有一位二进制数,0表示灭,1表示亮。存储这些点阵信息的RAM被称为显示数据存储器。如果要显示某个图形或汉字就是将相应的点阵信息写入到对应的存储单元中。图形或汉字的点阵信息是由自己设计,这时候问题的关键
10、是显示点在液晶屏上的位置与其在存储器中的地址之间的关系。3.2具体实现本实验采用128*64LCD显示屏显示重物的重量、单价、以及计算后的总价。RS,R/W,E分别为命令数据选择控制端口,读写控制端口,使能控制端口,将这三个管脚分别连接到单片机的端口PORTA1-PORTA3,从而实现单片机对LCD12864的控制,并口数据DB0-DB7连接到单片机的PORTC0-PORTC7口,实现相互通信。二 系统总体设计框图系统模块总体框图如下: 三 软件设计介绍1. AD转换及量化由于压力传感器输出的是模拟信号,需要通过单片机自身的ADC模块将其转换成数字信号。在开始AD转换前,选取PORTA0为模拟
11、输入通道。只有当模拟信号采集过程完成之后,AD转换才能开始。获取到数字信号后,再进行量化进行BCD码存储。1.1流程图1.2代码分析1.2.1数模转换部分ADtrans NOP NOP BSF ADCON0,GO ;开始AD转换,在AD转换后,ADIF位被置1ADWAIT BTFSC ADCON0,GO ;等待AD转换过程结束 GOTOADWAIT;如果没有转换完毕,则返回继续检测MOVF ADRESH,W ;如果转换完毕,则把AD结果读到W MOVWF RESULT ;将AD转换的结果用一个字节存起来 CALL BCD ;进行量化1.2.2量化部分BCDCLRF BAICLRF SHICLR
12、F GE ;三位数量化准备MOVF RESULT,FSKPNZ ;RESULT不为0,则跳到QIUBAIRETURN QIUBAIMOVLW D100 ;对百位进行量化SUBWF RESULT,0BTFSS STATUS,C ;判断量化是否完成 GOTO QIUSHI ;已完成则量化十位 MOVWF RESULT INCF BAI ;百位加一 GOTO QIUBAI ;量化十位以及个位同理QIUSHI MOVLW D10 SUBWF RESULT,0 BTFSS STATUS,C GOTO QIUGE MOVWF RESULT INCF SHI GOTO QIUSHIQIUGE MOVF RE
13、SULT,0 MOVWF GE RETURN2. 键盘输入模块框图 系统默认输入的单价为099之间的整数(即两位整数),当输入单价后,按A键可清除之前输入的数字,按B键则为确认,表示输入单价结束。2.1流程图2.2代码分析;- 检查输入 -CHECK CALL KEYSCAN COMF VALUE,0 ;位置码取反送W BTFSC STATUS,2 ;测试有按键按下否?有,跳过下条指令 GOTO CHECK CALL DELAY1 CALL KEYSCAN COMF VALUE,0 BTFSC STATUS,2 GOTO CHECK CALL TRANSLATE ;有按键按下,调用键值翻译子程
14、序 RETURN;- 扫描键盘和按键识别子程序-有按键按下时寄存器VALUE=按键位置码;无按键按下时VALUE=0FFHKEYSCAN BCF STATUS,RP1 BSF STATUS,RP0 BCF OPTION_REG,7 ;启动B口上拉电阻 MOVLW 0FH MOVWF TRISB ;将端口B设为高4位输出,低4位输入 BCF STATUS,RP0 ; MOVLW 00H ;行线全部输出0(高4位) MOVWF PORTB NOP NOP MOVF PORTB,0 ANDLW 0FH MOVWF VALUE XORLW 0FH ;列码是否全为1? BTFSC STATUS,Z GO
15、TO NOKEY ;是,无按键按下 BSF STATUS,RP0 MOVLW 0F0H MOVWF TRISB;将端口B设为高4位输入,低4位输出 BCF STATUS,RP0 MOVF VALUE,0 MOVWF PORTB NOP NOP MOVF PORTB,0 ANDLW 0F0H;屏蔽掉低4位 IORWF VALUE,1;行码和列码组合起来并放入VALUE RETURN NOKEY MOVLW 0FFH MOVWF VALUE RETURN;- 扫描键盘和按键识别子程序-有按键按下时寄存器VALUE=按键位置码;无按键按下时VALUE=0FFHKEYSCAN BCF STATUS,R
16、P1 BSF STATUS,RP0 BCF OPTION_REG,7 ;启动B口上拉电阻 MOVLW 0FH MOVWF TRISB ;将端口B设为高4位输出,低4位输入 BCF STATUS,RP0 ; MOVLW 00H ;行线全部输出0(高4位) MOVWF PORTB NOP NOP MOVF PORTB,0 ANDLW 0FH MOVWF VALUE XORLW 0FH ;列码是否全为1? BTFSC STATUS,Z GOTO NOKEY ;是,无按键按下 BSF STATUS,RP0 MOVLW 0F0H MOVWF TRISB;将端口B设为高4位输入,低4位输出 BCF STA
17、TUS,RP0 MOVF VALUE,0 MOVWF PORTB NOP NOP MOVF PORTB,0 ANDLW 0F0H;屏蔽掉低4位 IORWF VALUE,1;行码和列码组合起来并放入VALUE RETURN NOKEY MOVLW 0FFH MOVWF VALUE RETURN;-将键盘位置码翻译成对应的数字-TRANSLATE MOVLW 40H;地址指针FSR设置表头地址 MOVWF FSR ;通过寻址访问存放对应字符的码表LOOPT1 MOVF 0,0 XORWF VALUE,0 BTFSC STATUS,2 GOTO LOOPT2 INCF FSR,1 BTFSS FSR
18、,4 GOTO LOOPT1 RETURNLOOPT2 BCF FSR,6 RETURN 3. 计价功能模块3.1 关键思想阐述计价功能的实现,是软件设计的关键。此过程涉及到的关键量包括量化后的重物的质量、键盘输入的单价以及最后输出在显示屏的总价。其间关键的算法就是乘法计算。对于重物的质量,获得的是5.000以内的小数,在此做去小数点处理,即为四位整数,转成BCD码后用四个地址分别存储四位。对于输入的单价,先将输入的数码转成对应的数值,然后和重物的质量进行乘法计算获取总价。3.2流程图 3.2.1总价计算253.2.2乘法运算数字都是通过BCD码的形式逐位存储的。由于本实验最多只会涉及四位数和
19、两位数的乘法计算,故所有乘法计算都是通过循环累加来实现的。3.3代码分析;-BCD量化-ZHUAN MOVLW .19 ;分度值为20 MOVWF MULTI2;19次累加完成*20的整数乘法运算B2 ;逐位累加的过程 MOVF GE,0 ADDWF GE2,0 MOVWF GE2 MOVLW .10 SUBWF GE2,0 BTFSC STATUS,C CALL GEJINYI MOVF SHI,0 ADDWF SHI2,0 MOVWF SHI2 MOVLW .10SUBWF SHI2,0BTFSC STATUS,C CALL SHIJINYIMOVF BAI,0 ADDWF BAI2,0
20、MOVWF BAI2 MOVLW .10 SUBWF BAI2,0 BTFSC STATUS,CCALL BAIJINYIMOVF QIAN,0ADDWF QIAN2,1DECFSZ MULTI2,1GOTO B2RETURN;-进位处理-GEJINYI MOVWF GE2 INCF SHI2 RETURNSHIJINYI MOVWF SHI2 INCF BAI2 RETURNBAIJINYI MOVWF BAI2 INCF QIAN2 RETURN(算总价的乘法运算与称重部分的同理,在此不再赘述)4. LCD液晶显示模块 4.1流程图 4.2代码分析 ;-初始化LCD -INITIALLCD
21、;调用延时,刚上电LCD复位不一定有PIC(196MS)CALL DELAY ;清屏命令,数据指针清零,所有显示清零MOVLW 01HMOVWF PORTC ;调用写命令程序CALL ENABLE MOVLW 38H MOVWF PORTC CALL ENABLE MOVLW 0CH MOVWF PORTCCALL ENABLE MOVLW 06H MOVWF PORTC CALL ENABLE RETURN;- 显示要求输入的信息-SHOWREQUEST MOVLW 80H MOVWF PORTC CALL ENABLE CALL WRITE MOVLW 90H MOVWF PORTC CA
22、LL ENABLE CALL WRITE1 MOVLW 88H MOVWF PORTC CALL ENABLE CALL WRITE2 MOVLW 98H MOVWF PORTC CALL ENABLE CALL WRITE3 RETURN;- 显示欢迎界面 -WELCOME MOVLW 91H MOVWF PORTC CALL ENABLE CALL WRITE11 MOVLW 89H MOVWF PORTC CALL ENABLE CALL WRITE22 RETURN;-显示第三行- WRITE3CLRF COUNT WRITE3_A MOVF COUNT,W BSF PCLATH,4
23、CALL T3 BCF PCLATH,4MOVWF TMP1 ;送暂存器 INCF COUNT,1 ;偏移地址加1 MOVF TMP1,W ;判断是否显示完所有数据(约定表格做后一个00H做为结束标志) XORLW 00H BTFSC STATUS,Z GOTO ET3 ;全部显示完成 MOVF TMP1,W BSF PCLATH,3 BSF PCLATH,4;没有显示完,把当前查表所得数据送LCD显示CALL SEND_INS GOTO WRITE3_A ;调用显示程序ET3 NOP RETURN ;子程序返回四 硬件系统设计1. 系统总体设计 1.1管脚分布图 1.2系统总体连接 1.3硬
24、件设计电路连接图2. 压力传感器模块2.1压力传感器与单片机的连接问题压力传感器内部有电阻应变片,其阻值大小会随形变大小而改变,从而产生随压力而变的电信号,再通过差分放大电路放大电信号。因此,压力传感器输出的是模拟信号。想要能够得到数字信号,必须利用PIC16F877A自身的RA端口所带的模数转换功能。经过查阅,决定选取PORTA0为模拟端口。另外在接PORTA0之前必须接一个分压电路,来决定模拟信号的分度值,使输出的数字信号能在想要的范围内。 2.2差分放大电路图 3. LCD液晶显示模块 2.1液晶显示模块 液晶显示模块由LCD板(液晶显示板),PCB板(印刷电路板)和控制驱动电路三部分组
25、成。 2.2与单片机的连接LCD显示屏与单片机的连接较为复杂,使用时,1、15、20管脚均接地;2、17、19管脚接电源电压,4、5、6管脚分别接RA1RA3,714管脚分别接RC0RC7;3管脚用来调节液晶屏亮度,需要在3端口接两个电阻分别接电源和地进行分压,在实际操作时先用电位计调节到合适阻值后用定值电阻代替,最后选取接电源和接地的电阻分别为6.8k和3.3k。具体连接图如下: 4. 键盘模块 4.1 键盘行列键值的确定当无键按下时,各行线和各列线相互断开,各列线保持高电平,当有键按下时,则相应的行线和列线相连,识别是哪一个键被按下,通常用行扫描法,即依次对每一行进行扫描,先使被扫描的行为
26、低电平,其它所有的行均为高电平,接着检测各列线的状态(称为列码)。若各列均为高电平,则所按的键不在此行,继续扫描下一行,若列线不全为高电平,则被按的键在此行。根据行码和列码,就可知被按的键的坐标值(又称位置码),根据位置码通过查表就可得到它的键值。 4.2与单片机的连接图五 调试过程 本实验是由小组成员分工合作完成的。无论是分块编写还是整合后的整体运行,都伴随着不断地调试。在调试的过程中,虽然遇到了许多的问题,但是也正是这些解决问题的过程,加深了我们对于单片机各模块以及汇编语言的连接。下面列举出一些在调试过程中所遇到的问题。1. LCD液晶显示屏的显示问题1.1 时延不一致导致的冲突 LCD显
27、示屏上电复位需要时间,但是未等到显示屏复位完成单片机就将下一指令传输给LCD屏幕,那么LCD液晶屏就会显示乱码。 起初,面对此问题我们毫无头绪,多次单步调试都能正常显示,然而运行却会出现乱码。因为单步调试的过程中或有充足的时延,并不会引起冲突。我们在图书馆里借的书中有对于LCD液晶屏的介绍,了解到液晶屏上电复位的属性之后,就在程序中添加一个196ms时延,从而解决了冲突的问题,屏幕能够正常显示。1.2按键后显示屏显示乱码由于实验中涉及到键盘输入显示数字的部分,期间出现了很多问题。起初,由于是直接参考课外书中关于LCD液晶屏控制的代码,并没有搞懂代码的意义,尤其是对于使能端的控制,错误的“搬运”
28、代码,导致屏幕无法正常显示。在程序中,控制像液晶屏传输数据和传输指令的程序是不同的,RS分别设置为1和0。于是我们认真地研究了一下书中的代码,并与网上查找的代码综合理解了一下。重新开始检查我们输入的代码,在检查的过程中,我们发现许多地方在调用了像液晶屏送数据显示的程序后又不小心加上了向LCD显示屏送指令的语句,这样造成的后果就是把数字对应的编码作为指令传输给了LCD屏幕,如果正巧数据对应的八位二进制数存在相应的LCD显示屏控制指令,便会发生意想不到的结果。删除调用的第二个函数即可。此后,在按键输入时,发现输入两个相同的数字以后,屏幕只会显示一个,经过多次调试后,我们在输入程序的部分加入了对于输
29、入数字个数的判定,便解决了这个问题。2. 键位码的选取问题刚开始使用的是实验箱的键盘,由于在键盘部分使用的都是指导书提高篇上的代码,在连接线时,用彩虹线直接连接后按键显示的值与键值不对应。附近的小组都是逐线逐端口对应连接。我们嫌麻烦,于是生出了改代码键值的念头,成功的解决了这一问题,在最后焊接的时候也修改过依次键值。3. 代码整合后分页问题的解决起初我们都是分别完成代码,但是整合到一起之后,并不能正常运行,调试整个代码时,发现程序执行到一半就停止了,在用监视窗观察了之后,发现时PCLATH指针自动回到了第一句。各种尝试后仍然没有解决问题。参考了往年做同样题目的学长的代码后,发现学长也遇到了类似
30、的问题,他们增加的翻页。用到了第3页和第4页。我们只能死马当活马医,照着学长的代码修改自己的程序。结果问题解决了。不过我们的程序并未超长,为何会出现此问题,至今仍感到困惑。此外,由于是新添加的分页,导致代码比较混乱,可读性较差。4. 数模转换部分的问题由于我们组只有两个女生,丘老师建议我们购买数模转换的模块,从而能够减少AD转换软件编写的难度,同时也避免了差分放大电路的焊接。我们外购的模块是HX711数模转换模块。 网上针对此模块的资料较少,起初我打算学习提高篇上的串口通信来写这一部分的代码,但是并不了解此模块工作的机制以及输出的串行信号的形式。可能是由于我对于串口通信学习理解并不到位,在寄存
31、器中始终没有接收到信号,经过多天的修改尝试也始终无果。最后只能被迫使用单片机自身的数模转换功能。参考提高篇上的介绍以及代码,我们组的数模转换部分完成的比较顺利。5. 软硬件综合调试我们组的焊接相对比较顺利。不过刚开始在焊接电源的时候遇到了一些麻烦,电压输出始终为13V,并没有起到变压的效果。我们用万用表逐点测量排查,发现由于在板子后面走线烫到胶皮导致未接到地线。于是整个焊接大部分采用的是板子上方走线的方法。最后,在焊接压力传感器放大电路的部分前,我们现在电路板上进行了预实验。在最后的整体调试时,电子秤的称重时钟没有达到预想的结果,无法调零,且灵敏度较低。因为运算放大器LM324需要正负12V的电源供电,然而实验室只能提供13V的电源,而且压力传感器输出的模拟信号太小,容易受到干扰。六 实验心得体会通过这次综合实验,我们小组有很多的心得体会,有些关于单片机的,更多的是有关于人与人之间关系方面的。从开始接触题目到系统的实现,再到设计说明书的完成,每走一步对我来说都是新的尝试与挑战。这次课程设计经历颇多,受益颇多,既让我巩固了学过的知识,又获得了很多新的知识。本次实验我们做的是计价电子秤,我负责的部分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度高品质牛头梗犬繁殖基地合作协议
- 《PLC应用技术(西门子 下册)(第二版)》课件 课题二 PLC综合应用技术
- 2024年12月浙江武义县社会福利院公开招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 烹饪工艺学(第2版) 课件 单元9调色和调香工艺
- 第二单元 习作【知识精研】写读后感【知识精研】【知识精研】五年级语文下册单元作文能力提升(统编版)
- 《世界奇花异草》课件
- 《责任心培训》课件
- 2025届高考【应试策略】化学
- 《电磁波的发现》课件
- (高清版)DB37∕T 3023.4-2017 工作场所空气有毒物质测定 第4部分:马拉硫磷 气相色谱法
- 管理学专业:管理基础知识试题库(附含答案)
- 五年级上册美术第10课上海弄堂沪教版课件
- 广西基本医疗保险门诊特殊慢性病申报表
- 小区旧楼外墙翻新修饰等工程施工技术专项方案及报价
- 部编人教版五年级下册小学语文第八单元全套教学课件 (含口语、习作及园地课件)
- 酒店精装修工程施工组织设计策划方案
- 2022年三级安全教育塔吊司机类试题及答案
- 教科版小学一年级科学下册全册教案(最新)
- 低压开关柜基础知识和IP防护等级具体要求
- 高考语文一轮复习文学类文本阅读(小说阅读)教案
- iso13485-《医疗器械质量管理体系-用于法规的要求》
评论
0/150
提交评论