《单片机课程设计自动称重控制系统.doc》由会员分享,可在线阅读,更多相关《单片机课程设计自动称重控制系统.doc(19页珍藏版)》请在三一办公上搜索。
1、目录第一章 设计总括1.1控制系统的设计要求 11.2控制系统的用途. 1第二章 系统方案设计2.1方案论证. 12.2微控制器8031以及最小系统设计. 2第三章 硬件设计3.1报警系统部分.33.2键盘/显示器部分8155.33.3A/D转换. 43.4键盘显示和传感器部分 63.5输出执行装置. 7第四章 元件设计 4.1软件程序设计方法. 84.2总体程序流程图. 84.3程序清单. 114.4所用器件清单. 16第五章 设计感想. 17参考文献. 18附件 硬件布线图第一章 设计总括1.1控制系统的设计要求微控制器选用MCS-51系列单片机8031,其中内含4K ROM,可以外扩RO
2、M,以降低成本。系统配有8位LED显示(可扩16位)16位键盘,有09共十个数字键,一个ENTER单价输入确认键,一个RESTE复位键,电源开关等组成,其余键为功能扩展备用键。系统需调用8位显示LED中的4位做重量显示,从0500克。将传过来的重量信号通过8155芯片的Pc5的高底电位的变化控制异步电机初进料和步进电机的精进料。1.2控制系统的用途自动称重控制系统在民用、商业、工业中都有着广泛的应用,它是一个准机电一体化的产品。随着微电子技术的发展,特别是单片微型计算机的出现,对重量的称量采用功能强,体积小,称量准确,可进行简单数据处理及数据交换,和控制包装的精度,提高包装程度的机器化,具有智
3、能化的特点,目前和将来将会全面取代人工,成为民用、商业、工业包装以及其他需要自动称重控制系统和要求称重智能化要求高的地方。第二章 系统方案设计2.1 方案论证根据设计要求和成本等因素综合考虑,选用8031作为系统的微控制器,处理,称重传感器,键盘输入等外部信号,以及作为主控制程序的存储地。键盘/显示部分采用集成化程度高、扩展功能强的8155可编程接口芯片。8155芯片有两部分功能:键盘扫描与输出动态显示。这样可大大减轻CPU在扫描键盘或刷新显示时的负担,也简化了应用软件的编写。它最多可直接驱动16位LED显示,88=64键(8位LED),816=128键(16位LED),键盘操作。传感器采用N
4、S-TH5系列称重传感器。NS-TH5系列称重传感器,采用优质铝合金制作,具有良好的抗腐蚀性和长期稳定性。由于异步电机进料快,所以在精进料方面采用了异步初进料电机;由于步进电机可以很好的控制进料的多少以及控制精度高,进料小,所以在精进料方面采用了步进电机。并且用8155芯片的Pc5高地电位的变化来控制。硬件方面,由于选用了高度集成化的元器件和模块,所以总体硬件方面较为简单,主要功能由软件去完成,而且在硬件方面做通用化设计,全是大众化的芯片,在市场上很容易找到,而且价格也不高,使自动称重系统的成本不会太高,能广泛进行民用,容易推广到市场上。2.2微控制器8031以及最小系统设计在本设计中,应用了
5、8031的内ROM1.5K左右,4个并行I/O口,一个外中断等,没有使用其定时/计数器,总的应用如下:第三章 硬件设计3.1报警系统部分上图是8031与外部键盘/显示组件及A/D转换器间的简单借口原理。在此8031作为主要的微控制中心,对多位数据的输入输出进行运算和控制。其中P2.5口作为称重传感器超重称量的报警输出线,内部由软件进行比较数值后输出信号,其报警线路采用语言芯片的语言报警系统,这样直观明了。报警电路如下:扬声器& P2.5+5_图3.2 报警接线图 3.2键盘/显示器部分8155当某一键按下时,该键在阵列中的地址(6位编码)被送入8155内部88FIFO RAM,同时8155的中
6、断请求线IRQ变为高电平,向单片机请求中断,(8051外中断INT0)把FIFO RAM中的内容读入8051,由其内部调用键值对应的子程序执行电子称单价输入和输出确认功能。显示部分:8155的输出动态显示:CPU将要显示的数据送入8155内部的显示RAM区(168RAM),而显示RAM的输出线(DA0DA3,DB0DB3端)与显示扫描配合,不断从显示RAM读显示信息,同时轮流驱动被选种的显示器件。在以上键盘扫描最多可接64个(8位LED)或128个(16位LED),本设计采用74LS138三线/八线译码器,只接8位LED,16个按键。其中有09共十个数字键和一个输入确认键,其它为扩展功能键。在
7、程序的编制上,由于要求LED显示三种不同的数据,所以采用分段扫描的显示方式,键盘/显示方式设置命令字,D7D6D5=110为清除FIFO RAM和显示RAM中信息;D7D6D5=010为读FIFO/传感器RAM命令字,其它命令字在程序中体现。显示过程是有程序改变要显示字符的初始位和扫描位数一次显示一个字,并按程序规定扫描位数扫描。键盘的数字键功能及程序在前面已叙述,在此主要提一下ENTER确定键。在按下此键后,程序便会扫描在此之前按下的值传给8051,有其去执行其后的运算,否则不传送.3.3A/D转换MC14433是双积分式AD转换器,尽管转换速度低, 但具有抗干扰能力强,精度高等优点,故常用
8、于对速度要求不高的场合中。 A.主要性能指标: 转换精度:3位半(相当11位AD) 转换速度:310次/秒 电压量程:01.999V/ 199.9V 片内具有自动极性转换、自动调零、提供时钟发生 电路,输出锁存等功能。 B.引脚信号说明 a. VDD:+5V VEE:-5V VSS:数字地 VR:基准电压(2V/200mV) VX:被测电压输入(1.999V/199.9mV) VAG:模拟地(VR VX的地) b. RI:积分电阻输入, 通常取470K(2V) 27K(200MV) CI:积分电容输入(通常取0.1f) RI/CI:RI,CI公共连接端 C01,C02:接失调补偿电容C0( 0
9、.1f)CLK1,CLK0:钟频调节电阻RC,典型值300K OR:过量程状态信号,VX VR时,OR有效。A/D转换器MC14433与放大电路连接较简单,运放接成比例放大形式,放大倍数可调,总体A/D转换与MC14433接口电路如下:图3.5 A/D转换原理图A/D转换电路在使用时可以微调TL082上的47K可调电阻来调整其放大倍数,调整电桥电阻可调整传感器具体的微量变化参数。A/D转换由程序具体控制,整体电路可扩展。当ADDA、B、C换上373锁存器之后,只要对软件稍加修改便可变成8路A/D转换,则功能更强大,可作为集中称量处理。3.4键盘显示和传感器部分此部分为本设计的重点,其中包括硬件
10、和软件两大部分。键盘部分:8279的键盘为扫描工作方式,扫描线SL0SL2经过138译码器后得出8根键扫描线接至键盘。它与回扫线KL0KL7线成键阵列,作为整个系统的主要单价参数输入系统。当某一键按下时,该键在阵列中的地址(6位编码)被送入8155内部88FIFO RAM,同时8155的中断请求线IRQ变为高电平,向单片机请求中断,(8051外中断INT0)把FIFO RAM中的内容读入8051,由其内部调用键值对应的子程序执行电子称单价输入和输出确认功能。显示部分:8155的输出动态显示:CPU将要显示的数据送入8155内部的显示RAM区(168RAM),而显示RAM的输出线(DA0DA3,
11、DB0DB3端)与显示扫描配合,不断从显示RAM读显示信息,同时轮流驱动被选种的显示器件。在以上键盘扫描最多可接64个(8位LED)或128个(16位LED),本设计采用74LS138三线/八线译码器,只接8位LED,16个按键。其中有09共十个数字键和一个输入确认键,其它为扩展功能键。如要提高电子称的称量计价精度,则可换用74LS154四线/十六线译码器,此时可接16位LED,而且再加入小数位键和其它功能键子程序便可进一步扩大电子称的使用范围以及增加其精度和通用性。传感器采用NS-TH5系列称重传感器。NS-TH5系列称重传感器,采用优质铝合金制作,具有良好的抗腐蚀性和长期稳定性。它结构小巧
12、、美观、安装方便; 技术指标 技术参数 单位 技术指标 额定载荷 kg 2、5、10、15、20、25 额定输出 mV/V 1.5 非线性 %F.S 0.05 滞后 %F.S 0.05 重复性 %F.S 0.05 零点输出 %F.S 1 零点温度系数 %F.S/ 0.005 绝缘电阻 M2000供桥电压 VDC 10 允许过载 %F.S 150 备 注 可设计成05V或420mA信号输出 结构尺寸 3.5输出执行装置 用8155中Pc5口的高低电平控制异步电机初进料和进步电机精进料.即是当高电平的时候设定异步电机初进料,当高电平的时候设定进步电机精进料.第四章 软件设计方法自动称重控制系统的硬
13、件追求简单,明了,低成本,高扩展性,所以在数据处理上,主要由各程序去执行,具体分为:系统初始化程序,主程序,8155键盘经INT1中断处理程序,8155显示程序,键盘散转分类程序,键值功能子程序,A/D转换子程序组成。4.1 软件程序设计方法首先上电复位,初始化后执行8155程序,判断是否有按键按下。如有则键值自动进入8155FIFO RAM 中,然后IRQ=1,向INT1申请中断,中断程序中,CPU向8155写入读FIFO RAM命令字40H,再读出键值送入A中,中断返回;如果用户按下ENTER键,则执行键盘分类程序,此过程为数字单价输入确认,如果IRQ1,则程序把单价值默认为初始值0,再执
14、行以后程序,以上过程中,不管按任何键值,CPU都分向显示RAM中写命令字及数据,使LED显示对应键值。接下来进行A/D转换程序,并查询A/D转换是否完成,否则继续转换,当转换完成后,P1.0=1则进行转换后数值与最大值5(63H)比较,如果大于则使使P2.0口输出报警超重,否则继续执行以下程序。CPU读A/D转换值送入显示RAM,并指定显示初始位和显示位数,使LED重量位显示物体重量。接下来进行乘法运算,结果存入R3中,然后由CPU调用并传至8155显示RAM中,再由程序指定显示初始位和显示位数,使LED显示。4.2 总体程序流程图系统初始化程序流程图如下:开 始关CPU 中断建立堆栈指针置8
15、155输入清除命令置8155键盘显示方式对8155时钟分类允许8031INT中断A/D转换器初始化图4.1 系统初始化程序流程图主程序流程图如下:开 始8155初始程序有键按下吗? IRQ=1?NY8155键盘中断处理子程序 显示单价指定单价初址位数至A/D转换子程序并查询其转换完否?P1.0=1?NY比较判断过量程否?Y读A/D数据值R0N8155显示重量,指定重量初址、位数乘法程序结果存入R3总价显示、初址位数结 束图4.2 主程序流程图键盘中断程序流程图如下:开 始 读FIFO RAM命令字8155 40H(7FFFH)读按键输入值A 键值送8031片内RAM暂存中断返回图4.3 键盘中
16、断程序流程图显示子程序流程图如下:开 始 向8155送写显示RAM命令字写入显示数据个数置初值将写入待显示数据查表变为段选码写入8279计数器减1=0?N返 回 图4.4 显示子程序流程图4.3 程序清单以上是几个主要的程序流程图。A/D转换程序,较简单,所以只写出其程序,乘法程序在主程序中体现。总的程序执行过程如下:以下是电子秤主程序及子程序。初始化主程序: ORG 0000H LJMP START ORG STARTSTART: MOV SP,#50H ;设置堆栈指针 MOV DPTR,#7FFFH ;指向8279命令口地址 MOV A,#0D1H ;总清显示RAM命令字 MOVX DPT
17、R,A ;总清命令字写入8279LP1: MOVX A,DPTR ;读8279内状态字 JB ACC.7,LP1 ;等待清除显示RAM MOV A,#00H ;设置键盘/显示工作方式命令字 MOVX DPTR,A ;命令字写入8279 MOV A,#34H ;对CLK20分频为100KHz命令字 MOVX DPTR,#DISBH ;显示提示符,“-”代码表首地址 LCALL DIS ;转提示符显示子程序 MOV 20H,80H ;20H为键盘数据缓冲 SETB IT1 ;INT1下降沿触发中断 SETB EA ;开放CPU中断 SETB EX1 ;允许INT1中断ATD: MOV B,#03H
18、 ;扩展入口地址表间隔RDKEY: MOV A,20H ;取键盘数据缓冲器内容 JNB ACC.7,K0 ;ACC.7=0,已有键盘值按K0 SETB EA MOV R0,#30H ;A/D转换值存放区首地址LOOP: MOVX DPTR,A ;启动A/D转换P2.7=0,WR=0HER: JNB P1.0,HER ;查询A/D转换未完,接着查 MOVX A,DPTR ;A/D转换完,EOC=1,读A/D转换值 MOV R0,A ;A/D转换值放入R0中比较BJ: ORG 1000H 报警 LJMP DX ORG DXDX: MOV 31H,#63H ;5放入31H为被数 MOV A,31H
19、;5放入A中 CJNE A,20H ;5与20H中内容不等转移 SJMP FZW: JNC FZ MOV P2.0,#01H ;CY=1是,P2.0=1报警输出“超重”FZ: MOV R4,R0 ;读A/D转换值放入R4中 SJMP DIS SJMP CF乘法CF: MOVX A,RS ;把键数值放入A中做单价MOV B,R4 ;重量值放入B中MUL AB ;AB相乘,A放低8位,B放高8位MOV R3,BLJPP DISMOV R6,ALJMP DISENDSJMP RDKEY ;键盘数据缓冲单元20H等待按键中断K0: MOV 20H,#80H ;键盘数据缓冲单元悬空标志,D7=1CLR
20、EA ;关CPU中断,处理键值分类MOV DPTR,#K1 ;K1为键功能程序入口地址表首地址MUL ABJMP A+DPTR ;键功能程序散转按键后IRQ=1,向INT1=0申请中断,CPU执行下面键值中断服务程序:ORG 0013H ;INT1中断矢量LJMP INT1 ORG INT1 INT1: MOV A,#40H ;读FIFO RAM键命令字 MOV DPTR,#7FFFH ;8279命令口地址 MOVX DPTR,A ;命令字写入8279 MOV DPTR,#7EFEH ;指向8279数据口地址 MOVX A,DPTR ;将FIFO RAM中键值读入A中 MOV 20H,A ;键
21、值送缓冲单元20H,D7=0 MOV R5,20H ;键值送R5 RET1A/D转换 SJMP DIS LJMP STAD8 ;转主程序实际入口地址 ORG STAD8STAD8: MOV DPTR,#0000H ;选IN0通道地址P2.7=0K1: LJMP GENT ;转ENT确认键处理程序入口GENT: MOV R5,20H显示子程序:DIS: PUSH DPH ;提示符显示代码地址入栈保护 PUSH DPL MOV R2,08H ;显示器LED位数地址数值送R2 MOV A,90H ;写显示RAM命令字 MOV DPTR,#7FFFH ;8279命令口地址 MOVX DPTR,A ;命
22、令字写入8279 POP DPL ;回复地址 POP DPHT1: MOV A,#00H ;采用固定偏移量查提示符表 MOVC A,A+DPTR ;查提示符代码表 PUSH DPH PUSH DPL MOV DPTR,#TAB ;指向段选码表首地址 MOVC A,A+DPTR ;取段选码送A MOV DPTR,#7EFFH ;指向8279数据口地址 MOVX DPTR,A ;段选码写入8279显示RAM中 POP DPL POP DPH INC DPTR ;指向下一个提示符代码地址 DJNZ R2,T1 ;8位LED未显示完,继续送 RET ;送完返回提示符“ ”段选码表DISBH:17H,1
23、7H,17H,14H,17H,14H,17H,14H显示字符换码表:TAB: DB 3FH ;对应于字符0 DB 06H ; 1 DB 5BH ; 2 DB 4FH ; 3 DB 66H ; 4 DB 6DH ; 5 DB 7DH ; 6 DB 07H ; 7 DB 7FH ; 8 DB 6FH ; 9 DB 79H ; E DB 00H ;熄灭显示LED END START控制步进电机的程序:#include#define REFIN P1-5;#define M2 P1-4;#define M1 P1-3;#define CW P1-2;#define CLK2 P1-1;#define
24、CLK1 p1-0;Void ClockIrqHandler(void)interrupt3/定时器1中断程序 CLK2=!CLK2;TH0=Oxef;TL0=0xff; void main() P0=0x00; TMOD=0x00; EA=1; ET1=1; TR1=1; REFIN=0; M2=0; M1=1; CLK1=1; CW=1; For(;); 4.4 本次课程设计所用器件清单如下:IC1 8051 5V 40引脚 微控制器CPU、RAM、ROMIC2 8279 5V 40引脚 键盘/显示控制器IC3 0809 5V、5V基准 28引脚 8路8位A/D转换IC4 74LS373
25、5V 20引脚 8路锁存器IC5 74LS138 5V 16引脚 3线/8线译码器IC6 8708 5V 18引脚 8路驱动器IC7 LM386 318V 8引脚 功放芯片IC8 TL082 15V/12V 8引脚 双通道运算放大器IC9 74LS04 5V 12引脚 非门门电路芯片 LED数码管称重传感器 05V 5kg NS-TH5系列 第五章 设计感想通过这一个星期的单片机课程设计实习使我对单片机的认识更加深了一步。以前对于单片机方面的很多知识很不甚了解,尤其对于芯片的具体功能和实际工作方面存在着很大的疑惑。现在终于对以前存在的疑惑和不了解的地方得到了一些解答,尤其是在老师的指导下和帮助
26、下,使我很难明白的地方变得通透一些了。对于这一次设计,还使我认识到,一项设计的完成决不是一个人的事情,还需要队友的帮助和研讨,还要不断的反复查阅资料,并且还要注意每一个细节上的问题,对于单片机的每一项功能,尤其是每一个管脚的功能要知道得非常清楚的。还有在接线的时候要特别仔细。通过这次课程设计,使我所学的知识有所巩固的同时还使我认识到了自己的不足与缺陷,这激励着我应该多学习单片机方面的知识,对于不懂的地方要多看书和多问老师,使自己的知识提高。这次单片机课程设计还是我看到了自动称重控制系统在实际工作中的工作原理,尤其是里面各个芯片的功能,和各个芯片组合在一起能实现的功能,这对我以后的生活与工作有很
27、大的帮助。参考文献1 孙和平、杨宁、白金编著,单片微机原理与接口技术,北京:冶金工业出版社,2003年2 徐惠民、安德宁编著,单片微型计算机原理、接口、应用,北京:北京邮电学院出版社,1990年3 张毅刚等编著,MCS-51单片机应用设计,哈尔滨:哈尔滨工业大学出版社,1990年4 何立民编著,MCS-51系列单片机应用设计、系统配置与接口技术,北京:北京航空航天大学出版社,1990年5 其希林、陈嘉庆主编,多国单片计算机实用设计,北京:电子工业出版社,1992年6 赵依军、胡戎主编,单片微机接口技术,北京:人民邮电出版社,1989年7 孙和平、白金、李正熙,提高8098单片机双极性输入A/D转换器分辨率的设计方法,电器自动化,1997年