1、 单片机原理与接口技术课程设计1Q1MPS6534Q2MPS6534Q3MBTA13Q4MBTA13+8.8D1DIODED2DIODED3DIODED4DIODER14.7k R24.7kU2NOTU3NOTU4NOTR34.7k R44.7kR610k5v单片机原理与接口技术课 程 设 计成绩评定表设计课题 基于 89c51 的自身断电保护系统设计学院名称 : 电气工程学院 专业班级 : 自动 1002 学生姓名 : 秦凯新 单片机原理与接口技术课程设计2学 号 : 201046820427 指导教师 : 王黎 臧海河 周刚 设计地点 : 31-505 设计时间 : 2012-12-172
2、012-12-28 指导教师意见:成绩:签名: 年 月 日单片机原理与接口技术课程设计3单片机原理与接口技术课 程 设 计课程设计名称: 基于 89c52 的压力监测系统设计 专 业 班 级 : 自 动 1002 学 生 姓 名 : 秦凯新 学 号 : 201046820427 指 导 教 师 : 王黎 臧海河 周刚 课程设计地点: 31-505 课程设计时间: 2012-12-172012-12-28 单片机原理与接口技术课程设计4单片机原理与接口技术 课程设计任务书学生姓名 秦凯新专业班级自动1002学号201046820427题 目 基于 89c52 的压力监测系统设计课题性质 工程设计
3、 课题来源 自拟指导教师 王黎、臧海河、周刚主要内容(参数)89C52 的压力检测保护系统可以实现以下功能:1.实现开机后自动恢复供电;2压力超过上限值或下限制会自动报警;3采用电流互感,采集电路电流来控制继电器常闭点的断开和闭合从而控制回路断开和闭合;4采用声光报警,使用者可以及时发现和处理电路事故。任务要求(进度)第 1-2 天:熟悉课程设计任务及要求,查阅技术资料,确定设计方案。第 3-4 天:按照确定的方案设计单元电路。要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。第 5-6 天:软件设计,编写程序。第 7-8 天:实验室调试。第 9-10 天:撰写课程
4、设计报告。要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。主要参考资料1 张迎新单片微型计算机原理、应用及接口技术(第 2 版)M北京:国防工业出版社,20042伟福 LAB6000 系列单片机仿真实验系统使用说明书3阎石数字电路技术基础(第五版) 北京:高等教育出版社,20064单片机开发板的原理图及系统。审查意见系(教研室)主任签字: 年 月 单片机原理与接口技术课程设计5日 目 录1 引言 62 总体方案设计 62.1 硬件组成 62.2 方案论证 .72.3 总体方案 .83 硬件电路设计 103.1 时钟电路 .103.2 复位电路 113.3 AD 简介与
5、原理分析 123.4 声光报警接口电路 183.5 显示及键盘接口电路 .193.7 电源电路 24 系统软件设计 34.1 主程序设计 .34.3 部分主要子程序的设计 .65 系统调 试与总结 65.1 系统功能测试 .65.2 技术指标测试 .76 心得 体会 .76.1 为何不采用 8255 了? 76.2 为何不采用 A/D0809? .86.3 在帮助同学的过程中我学到了什么? .86.4在单片机领域我的规划? 8参考文献 9附录 A 系统原理图 .9附录 B 源程序 .10单片机原理与接口技术课程设计61 引言压力监测普遍用于工业领域,并对国家的发展产生了深厚的影响,小到体重计,
6、大到工业中反应炉的气压声电报警。甚至航空航天,智能仪表。以及机器人。本设计就是工业中最普遍的气压监测报警系统。所以,这个系统采用自动检测反应炉中的压力大小,通过传感器,并实时进行在液晶 1602 上进行显示,还有在液晶上进行参考上限电压值的设置和参考下限电压值的的设置。并通过在单片机内部进行比较计算,来实现整个压力监测系统的声光电报警。本系统的设计基于 A/D0804 芯片和 AT89C52 单片机,并采用液晶1602 作为显示输出,系统虽小却包含了工业要求的各个方面,作为声电报警模块,主要用到蜂鸣器和发光二极管。当监测压力低于下限值和高于上限值就会进行声光报警。此次系统设计就是针对工业的反应
7、炉的压力监测,甚至可做体重计到最小的方面。本设计纯为个人设计。程序也在开发板验证成功,如有任何疑问,都可通过实验调试验证。2 总体方案设计2.1 硬件组成1. 控制器。控制器是系统的核心部分,可以用工业计算机PLC、或者单片机。2. A /D 转换器。A/D 转换器可以把测得的模拟量转换成数字量输出,可以直接读取。3. 继电器。继电器在电路中起到断电保护作用,是系统的安全保障。其种类很多,有电流继电器、电压及电器、速度继电器等等。4. 键盘。通过键盘可以设置限制电流大小。5. 液晶显显示。液晶可以显示设置电流以及实时电流值大小。单片机原理与接口技术课程设计72.2 方案论证1.控制器控制器选择
8、 STC 89C51RC 40C 单片机来控制温度的测量显示。目前国内外使用较多的微控制器是以 51 内核扩展出的单片机,51 单片机的使用已经发展到很高的一个层次,编程多以 C 语言为主,操作简单,用途广泛,易于控制。下面通过标号 STC 89C51RC 40C 的解释来对该单片机进行详细的介绍:STC:前缀,表示芯片为 STC 公司生产的产品。8:表示该芯片为 8051 内核芯片9:表示内部含 Flash EEPROM 存储器。C:表示该器件为 CMOS 产品,CMOS 常指保存计算机基本启动信息的 芯片,可由主板的电池供电,即使系统掉电,信息也不会丢失。5:固定不变1:表示该芯片内部程序
9、存储空间的大小,1 为 4KB,2 为 8KB,3 为 12KB等,程序空间的大小决定了一个芯片所能装入的执行代码的多少。RC:表示 STC 单片机内部 RAM(随机读写存储器)为 512KB。40:表示该芯片外部晶振最高可接入 40MHz。C:产品级别,表示该芯片使用温度范围,C 表示商业级,温度范围为 0度-+70 度。该单片机的存储器相对设计任务来说,对程序代码的储存足够了,所以无需再加外围的扩展存储器。2.A/D转换器模数转换器是该电路中的重要组成部分,其工作效率直影响到系统的效率。ADC0809 转换器模 拟 输 入 电 压 范 围 0 +5V, 不 需零 点 和 满 刻 度 校 准
10、 , 而 且 能 耗 低 , 工 作 温 度 范 围 宽 , 所 以 可 以 作 为 该 系 统 的转 换 器 。单片机原理与接口技术课程设计82.3 总体方案按照上述方案论证的结果,首先通过键盘设定电流值,然后检测电流值,转换成数字量通过数码管显示出来。当电流过大时继电器动作,切断电路,保护用电器。如图 2.1 所示。单 片 机 最 小 系 统8 9 c 5 2键 盘声光报警装置传 感 器模 数 转 换1 6 0 2液晶显示装置图 2.1 总体方案框图单片机原理与接口技术课程设计9扫描键值开始默认液晶显示功能选择数值减数值加实时显示A / D 切换模式数值减数值加图 2.2 系统流程图3 硬
11、件电路设计3.1 时钟电路单片机片内有一个高增益的反相放大器,反相放大器的输入端为XTAL1,输出端为 XTAL2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式。在内部方式时钟电路中,必须在 XTAL1 和 XTAL2 引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,通常 C1 和 C2 一般取30pF,晶振的频率取值在 1.2MHz12MHz 之间。对于外接时钟电路,要求XTAL1 接地, XTAL2 脚接外部时钟,对于外部时钟信号并无特殊要求,只要保证一定的脉冲宽度,时钟频率低于 12MHz 即可。晶体振荡器的振荡信号从XTAL2 端送入内部时钟电路,它将该振荡信号二
12、分频,产生一个两相时钟信号单片机原理与接口技术课程设计10P1 和 P2 供单片机使用。时钟信号的周期称为状态时间 S,它是振荡周期的 2倍,P1 信号在每个状态的前半周期有效,在每个状态的后半周期 P2 信号有效。CPU 就是以两相时钟 P1 和 P2 为基本节拍协调单片机各部分有效工作。如图3.1 所示。 XTAL218XTAL119ALE30 EA31 PSEN29RST9P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 3P0.7/AD7 32P1.01 P1.12 P1.23P1.34
13、 P1.45 P1.56P1.67 P1.78P3.0/RXD 10P3.1/TXD 1P3.2/INT0 12P3.3/INT1 13P3.4/T0 14P3.7/RD 17P3.6/WR 16P3.5/T115P2.7/A15 28P2.0/A8 21P2.1/A9 2P2.2/A10 23P2.3/A1 24P2.4/A12 25P2.5/A13 26P2.6/A14 27U1AT89C51C330pF C430pFX112MHz图 3.1 单片机时钟电路3.2 复位电路在上电或复位过程中,控制 CPU 的复位状态:这段时间内让 CPU 保持复位状态,而不是一上电或刚复位完毕就工作,防止
14、 CPU 发出错误的指令、执行错误操作,也可以提高电磁兼容性能。单片机在启动时都需要复位,以使 CPU 及系统各部件处于确定的初始状态,并从初态开始工作。单片机系统的复位方式有:手动按钮复位和上电复位 。复位方式有手动复位、上电复位和积分型复位。如图 3.2 所示。单片机原理与接口技术课程设计11XTAL218 XTAL119ALE30 EA31 PSEN29RST9P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 3P0.7/AD7 32P1.01 P1.12 P1.23 P1.34P1.45
15、 P1.56 P1.67 P1.78P3.0/RXD10P3.1/TXD1P3.2/INT0 12P3.3/INT1 13P3.4/T0 14P3.7/RD17P3.6/WR16P3.5/T1 15P2.7/A15 28P2.0/A8 21P2.1/A9 2P2.2/A10 23P2.3/A1 24P2.4/A12 25P2.5/A13 26P2.6/A14 27U1AT89C51C210uFR510k R720图3.2 复位电路3.3 AD 简介与原理分析模拟/数字转换就是我们通常所说的 A/D 转换,它将输入的模拟信号(如电压)转换成控制芯片(如单片机,ARM)所能识别的二进制形式,然后经
16、过运算,既可以还原出输入模拟信号的值。A/D 转换是一种非常重要的技术手段,是单片机等控制芯片与外界信号的接口部分,如图 3.3 所示。A / D 转 换芯 片( 如 A D C 0 8 0 4 )模拟电路处 理 器芯 片( 如 5 1 单片机 )显 示( 如八段数码管 , L C D , 上位机软件 )外界信号( 如声音 ,血糖浓度 ,温度 )电压值 二进制形式 控制信号传感器电压值图 3.3单片机原理与接口技术课程设计12外界信号:外界信号的范围十分广泛,自然界的一切信号,比如声音,温度甚至是血糖浓度等都可以规类为外界信号。传感器:因为大多数外界信号都不是电信号,因此需要通过各种传感器将这
17、些外界信号转换成电信号,例如:通过热电耦可以将温度转换成一个电压值。模拟电路:设计模拟电路的原因主要有以下两点1由于外界信号的复杂性,使得传感器直接输出的电信号可能会存在一些问题(如不稳定) ,这些不稳定信号如果直接送到 A/D 芯片进行采样,则最终结果可能使得最后的显示值来回乱跳,而无法确定待测的外界信号到底是多少。因此,可能需要设计一套模拟电路对传感器输出的不稳定电信号进行滤波等处理,去除干扰,使得进入 A/D 转换芯片的电压值为一个稳定的信号。2每一个 A/D 转换芯片都有一个参考电压,只有输入的模拟电压值在这个参考电压的范围内才能进行正确的转换,例如:本试验将 ADC0804 芯片的参
18、考电压设置成 0V5V,因此如果输入的电压值大于 5V,则转换出的结果永远为0xFF,若输入的电压值小于 0V,则转换出的结果永远为 0,这样便无法正确的还原出被测信号的大小。基于上述原因,我们可能需要设计一套模拟电路,传感器的输出电压值进行一些变换(放大,缩小) ,使得送到 A/D 转换芯片的电压值在转换芯片的参考电压范围内。A/D 转换芯片:即模拟/数字转换芯片,它将输入的模拟电压信号转换成单片机等控制处理器能够识别的数字二进制形式。处理器芯片:处理器芯片有很多中(比如 51 单片机,ARM 或者是 PC上的奔腾处理器,AMD 处理器)这些处理器虽然架构不一样,但是有个共同的特点,就是它们
19、能够运行程序,因此它们能通过程序对 A/D 芯片送入的二进制形式的电压值进行处理,通过运算将其还原成待测的外界信号值,控制显示部件(如 LCD,八段数码管)将这个值显示出来。例如:假如 ADC0804 输出的二进制值 0x80,则根据 A/D 转换公式可以推出 ADC0804 的输入电压大小为(0x80/0x100)*5V=2.5V。假设信号经过模拟电路缩小了 8 倍,则可以推出传感单片机原理与接口技术课程设计13器的输出电压为 2.5V*8=20V,再根据传感器的转换公式(一般手册会给出)即可得到输入的外界信号的值。显示:显示的作用是将计算出的待测外界信号的值展示给测量人员,显示的形式有很多
20、种,如 LCD,八段数码管,上位机软件等。通过上面的介绍,大家一定对这种基于 A/D 芯片的嵌入式设计模式有了一个大致的了解,其实现时中很多应用都是遵循了这种设计模式,比如常用的数字万用表,数字温度测量仪,血糖测量仪等。本试验也遵循了这种设计模式,只不过它省略了传感器和模拟电路部分,首先通过滑动变阻器调节输入到 ADC0804 芯片的电压值(ADC0804 芯片的参考电压调节成 0V5V,而滑动变阻器产生的电压范围也为 0V5V,因此没有必要设计额外的模拟电路) ,然后通过 51 单片机进行运算处理得到这个输入电压值,最后再控制八段数码管将这个电压值显示出来,实际上是实现了一个简易的数字电压测
21、量表。如图 3.4 所示。A / D 转 换芯 片( A D C 0 8 0 4 )处 理 器芯 片( 5 1 单片机 )显 示( 八段数码管 )电压值 二进制形式 控制信号滑动变阻器图3.4图3.5 ADC0804规格及引脚分配图单片机原理与接口技术课程设计14本试验采用的A/D芯片为ADC0804,它是CMOS 8位单通道逐次渐近型的模/数转换器,其规格及引脚图如图3.5所示,根据手册我们可以得到各个引脚的大致功能如上:/CS:芯片片选信号,低电平有效,即/CS=0,该芯片才能正常工作,在外接多个ADC0804芯片时,该信号可以作为选择地址使用,通过不同的地址信号使能不同的ADC0804芯
22、片,从而可以实现多个ADC通道的分时复用。/WR:启动ADC0804进行ADC采样,该信号低电平有效,即/WR信号由高电平变成低电平时,触发一次ADC转换。/RD:低电平有效,即/RD=0时,可以通过数据端口DB0DB7读出本次的采样结果。UIN(+)和UIN(-):模拟电压输入端,模拟电压输入接UIN(+)端,UIN(-)端接地。双边输入时UIN(+) 、UIN(-)分别接模拟电压信号的正端和负端。当输入的模拟电压信号存在“零点漂移电压”时,可在UIN(-)接一等值的零点补偿电压,变换时将自动从UIN(+)中减去这一电压。VREF/2:参考电压接入引脚,该引脚可外接电压也可悬空,若外界电压,
23、则ADC的参考电压为该外界电压的两倍,如不外接,则Vref与Vcc共用电源电压,此时ADC的参考电压即为电源电压Vcc的值。CLKR和CLKIN:外接RC电路产生模数转换器所需的时钟信号,时钟频率CLK = 1/1.1RC,一般要求频率范围100KHz1.28MHz。AGND和DGND:分别接模拟地和数字地。/INT:中断请求信号输出引脚,该引脚低电平有效,当一次A/D转换完成后,将引起/INT=0,实际应用时,该引脚应与微处理器的外部中断输入引脚相连(如51单片机的INT0,INT1脚) ,当产生/INT信号有效时,还需等待/RD=0才能正确读出A/D转换结果,若ADC0804单独使用,则可
24、以将/INT引脚悬空。DB0DB7:输出A/D转换后的8位二进制结果。AD外围电路图中Vin(+)接电位器的中间滑动端,Vin(-)接地,因为这两端可以输入差分电压,即它可以测量这两端之间的电压,此时,Vin(-)即为ADC0804的模拟输入电压。Vin(+)与电位器之间串联一个10欧电阻,目的是限单片机原理与接口技术课程设计15制电流。防止电流过大而烧坏芯片。如图3.6所示。rdwrcsVIN+6 VIN-7VREF/29CLK IN4 A GND8 RD2 WR3 INTR5CS1D GND10 DB7(MSB) 1DB6 12DB5 13DB4 14DB3 15DB2 16DB1 17D
25、B0(LSB) 18CLK R19VC 20U3ADC0804R210kC410pFR310kR410kR810kRV11kXTAL218XTAL119ALE30 EA31 PSEN29RST9P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 3P0.7/AD7 32P1.01 P1.12 P1.23P1.34 P1.45 P1.56P1.67 P1.78P3.0/RXD10P3.1/TXD1P3.2/INT0 12P3.3/INT1 13P3.4/T0 14P3.7/RD17P3.6/WR16
26、P3.5/T1 15P2.7/A15 28P2.0/A8 21P2.1/A9 2P2.2/A10 23P2.3/A1 24P2.4/A12 25P2.5/A13 26P2.6/A14 27U1AT89C51图3.6 AD外围设计原理图3.4 声光报警接口电路采用声光报警装置有一下几大优点,1.在远距离是可以可以通过声音及时通知2.在近距离可以通过视听觉做出反应3.在嘈杂的环境中可以通过视觉通知4.两种器件配合更加安全可靠具体外围电路如3.7所示。单片机原理与接口技术课程设计16rdwrcs rwXTAL218XTAL119ALE30 EA31 PSEN29RST9P0.0/AD0 39P0.1
27、/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 3P0.7/AD7 32P1.01 P1.12 P1.23P1.34 P1.45 P1.56P1.67 P1.78P3.0/RXD 10P3.1/TXD 1P3.2/INT0 12P3.3/INT1 13P3.4/T0 14P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28P2.0/A8 21P2.1/A9 2P2.2/A10 23P2.3/A1 24P2.4/A12 25P2.5/A13 26P2.6/A14 27U1AT89C51R610k
28、R21kQ1MPSA5 LS1SPEAKERR31kR81k D1LED-RED图3.7 声光报警装置3.5 显示及键盘接口电路在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED 数码管、液晶显示器。发光管和 LED数码管比较常用,软硬件都比较简单, 在单片机系统中应用晶液显示器作为输出器件有以下几个优点:显示质量高单片机原理与接口技术课程设计17由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,
29、恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。数字式接口液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。体积小、重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。功耗低相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动 IC 上,因而耗电量比其它显示器要少得多。液晶显示简介液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示
30、的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA 移动通信工具等众多领域。液晶显示器的分类液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(Active Matrix)三种。单片机原理与接口技术课程设计18液晶显示器各种图形的显示原理:线段的显示点阵图形式液晶由 MN 个显示单元组成,假设 LCD 显示屏有 64 行,每行有 128 列,每 8 列对应 1 字节的 8 位,即每行由 16 字节,共
31、168=128 个点组成,屏上 6416 个显示单元与显示 RAM 区 1024 字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由 RAM 区的 000H00FH 的 16 字节的内容决定,当(000H)=FFH 时,则屏幕的左上角显示一条短亮线,长度为 8 个点;当(3FFH)=FFH 时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H 时,则在屏幕的顶部显示一条由 8 段亮线和 8 条暗线组成的虚线。这就是 LCD 显示的基本原理。字符的显示用 LCD 显示一个字符时
32、比较复杂,因为一个字符由 68 或 88 点阵组成,既要找到和显示屏幕上某几个位置对应的显示 RAM 区的 8 字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在 LCD 上开始显示的行列号及每行的列数找出显示 RAM 对应的地址,设立光标,在此送上该字符对应的代码即可。1602LCD 主要技术参数:显示容量:162 个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V单片机原理与接口技术课程设计19字符尺寸
33、:2.954.35(WH)mm引脚功能说明1602LCD 采用标准的 14 脚(无背光)或 16 脚(带背光)接口,各引脚接口说明如表 1 所示:编号符号引脚说明 编号符号引脚说明1 VSS电源地 9 D2数据2 VDD电源正极 10D3数据3 VL液晶显示偏压11D4数据4 RS数据/命令选择12D5数据5 R/W读/写选择 13D6数据6 E 使能信号 14D7数据7 D0数据 15BLA背光源正极8 D1数据 16BLK背光源负极表 1:引脚接口说明表单片机原理与接口技术课程设计20第 1 脚:VSS 为地电源。第 2 脚:VDD 接 5V 正电源。第 3 脚:VL 为液晶显示器对比度调
34、整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度。第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第 5 脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS 和 R/W 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平R/W 为高电平时可以读忙信号,当 RS 为高电平 R/W 为低电平时可以写入数据。第 6 脚:E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。第 714 脚:D0D7 为 8 位双向数据线。第 15 脚:背光源正极。第 1
35、6 脚:背光源负极。1602LCD 的指令说明及时序1602 液晶模块内部的控制器共有 11 条控制指令,如表 2 所示:序号指令 RSR/WD7D6D5D4D3D2D1D01 清显示 0 0 0 0 0 0 0 0 0 12 光标返回 0 0 0 0 0 0 0 0 1 *单片机原理与接口技术课程设计213置输入模式0 0 0 0 0 0 0 1I/DS4显示开/关控制 0 0 0 0 0 0 1 D C B5光标或字符移位 0 0 0 0 0 1S/CR/L* *6置功能0 0 0 0 1DLN F * *7置字符发生存贮器地址 0 0 0 1字符发生存贮器地址8置数据存贮器地址 0 0
36、1显示数据存贮器地址9读忙标志或地址 0 1BF计数器地址10写数到 CGRAM或 DDRAM) 1 0要写的数据内容11从 CGRAM 或DDRAM 读数 1 1读出的数据内容表二与 HD44780 相兼容的芯片时序表如表 3 所示:读状态输入RS=L,R/W=H,E=H 输出D0D7=状态字写 输 RS=L,R/W=L,D0D7=指令 输 无单片机原理与接口技术课程设计22指令 入 码,E=高脉冲 出读数据输入RS=H,R/W=H,E=H 输出D0D7=数据写数据输入RS=H,R/W=L,D0D7=数据,E=高脉冲输出无表三1602LCD 的 RAM 地址映射液晶显示模块是一个慢显示器件,
37、所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表四是 1602 的内部显示地址。表四 1602LCD 内部显示地址例如第二行第一个字符的地址是 40H,那么是否直接写入 40H 就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位 D7 恒定为高电平 1 所以实际写入的数据应该是 01000000B(40H)+10000000B(80H)=11000000B(C0H)。单片机原理与接口技术课程设计23在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是
38、自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602LCD 的一般初始化(复位)过程延时 15mS写指令 38H(不检测忙信号)延时 5mS写指令 38H(不检测忙信号延时 5mS写指令 38H(不检测忙信号)以后每次写指令、读/写数据操作均需要检测忙信号写指令 38H:显示模式设置写指令 08H:显示关闭写指令 01H:显示清屏写指令 06H:显示光标移动设置写指令 0CH:显示开及光标不闪烁单片机原理与接口技术课程设计1(1) 显示器接口电路如图3.8所示Lc7Lc0Lc1Lc2Lc3Lc4Lc5Lc6enrsLc7enrsLc0Lc1Lc2Lc3Lc4Lc5
39、Lc6rwLc0Lc1Lc2Lc3Lc4Lc5Lc6Lc7D714D613D512D41D310D29D18D07E6RW5RS4VS1VD2VE3LCD1LM016LXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD63P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD1P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/
40、WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2.2/A1023P2.3/A1 24P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51234567891RP14.7k图 3.8 显示器接口电路图(2)键盘接口电路如图3.9所示单片机原理与接口技术课程设计2rdwrXTAL218XTAL119ALE30 EA31 PSEN29RST9P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 33P0.7/AD7 32P1.01 P1.12 P
41、1.23P1.34 P1.45 P1.56P1.67 P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT0 12P3.3/INT1 13P3.4/T0 14P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27U1AT89C51图3.9 键盘接口电路3.7 电源电路系统中使用的直流电源共有以下几组: +5VDC:供MCU及其外围电路、显示器与键盘接口电路的电源。 12VDC:供放大电路、V/F转换电
42、路等模拟电路电源,其中传感器的供桥电压+5VDC通过把+12VDC变换为+5VDC提供。 +12VDC:考虑到继电器通断时会产生干扰,输出控制电路使用一组独立的电源,以和模拟电路隔离。系统的供电电源是三相三线制交流电,线电压为380VAC,系统中使用的交流接触器的线圈额定电压为220VAC,因此,需要使用一个电源变压器把380V的交流电变为220V的交流电。CJX2-1210吸合时的线圈功率为70VA,保持时的线圈功率为8VA,考虑到系统的直流电源也需要通过220VAC供给,因此,把380VAC变为220VAC的变压器容量确定为150VA。稳压电路采用集成的三端稳压器,价格便宜,使用方便,内部
43、带有完善单片机原理与接口技术课程设计3的保护电路。电源电路如图3.10所示。1 2 3 4ABCD4321DCBA TitleNumber RevisionSizeA4Date: 19-Aug-2006 Sheet of File: D:DESIGN EXPLORER 99 SEEXAMPLESMyDesign.ddbDrawn By:T1150VAT250VA1234 RS3071234 RS3071234 RS307VinGND Vout7805VinGND Vout7812VinGND Vout7812Vin GNDVout7912220UF/25V104 1042200UF/35V22
44、00UF/35V2200UF/35V104104104104104 104AGAGSG+5V+12V-12V+12VL N380VAC 220VAC8VAC14VAC14VAC14VACUV图3.10 电源电路4 系统软件设计系统软件分为主程序、中断服务程序和子程序三部分。4.1 主程序设计主程序是系统上电或复位后首先要执行的程序,主程序主要完成系统的初始化、扫描显示、扫描键盘,AD转换等工作。主程序上电自动复位,也可手动复位;主程序执行时,分别进行键盘扫描,AD转化,以及液晶显示。分三步执行:第一:系统上电后,即开始在默认的设置最小下限参考电和最大参考电压的显示在第一行即:P-T Down:
45、25Up:60(参考压力的 上下限值)Real-time Pre:12(实时监测的压力)单片机原理与接口技术课程设计4(P-T)即Press Test( Real-time Pre)即Real time press第二:本设计设置4个功能键,第一个键S4:表示功能切换键 ,按第一下表示进行调节上下限 ,按第二下表示不再调表,开始进行AD转换。第二个键S1: 表示调节上限和下限值,按第一下表示调上限值液晶光标闪烁,按第二下液晶不再闪烁,表示调节结束。第三个键S2,在按下参考压力值递增,上限当超过90时复位为0,下限值当超过30时复位为0,液晶光标一直闪烁。第四个键S3在按下参考压力值递减,当上限
46、值减到0时置位为90,下限值减到0时置位为30, 液晶光标一直闪烁。第三:AD转换模块及显示模块,压力传感器检测到压力后,通过模拟量转换量,通过单片机计算,把数字量在1602液晶上显示出来。单片机原理与接口技术课程设计5S 4开启功能键S 2上限或下限增S 3上限或下限减S 1 第一次 S 1 第二次调整下限 调整上限 开启 A D终止开始显示数值显示上下限Y Y 最大或 最小值数值不再增减YNN N图4.1 主程序流程图单片机原理与接口技术课程设计64.3 部分主要子程序的设计系统主要子程序包括显示子程序、键处理子程序,显示子程序的设计。既包含三大模块:1,键盘扫描的子程序设计;2,A/D0
47、804的子程序设计3,1602液晶显示的子程序设计4,初始化液晶和单片机的子程序设计5 系统调试与总结系统研制完成后,首先在实验室进行了系统功能测试和技术指标测试。并力求完全达到工业要求的水准。5.1 系统功能测试系统上电后,显示正常,进行了以下测试。1.上电开始默认显示测试。2.按钮s1 功能键测试。3.按钮s2 数值增测试。4.按钮s3 数值减测试。6按钮S4 键的A/D切换与调节参考上下限的功能转换测试7.上下限最值测试。8.AD显示测试。9.AD转换结果测试。10.报警装置测试。上述测试结果最终与预期相符。5.2 技术指标测试1.硬件电路测试此次课程设计首先采用PROTEUS软件仿真,
48、而后进行硬件电路的设计。在软件仿真中初步形成了程序的调试与修改。此过程采用三个步骤, (1)了解各个功能模块的作用与联系。 (2)单独写出各个模块的控制程序,进行单独调试。 (3)各个模块进行有机组合,实现目的功能。此过程遇到的单片机原理与接口技术课程设计7问题比较少,但了解到了完成一个较大工程所需要具备的素质及技巧。完成此系统问题主要出现在硬件的调试6 心得体会 6.1 为何不采用 8255 了?我想这篇心得体会一定要加上的,忙碌了两个星期,终于在周五的晚上成功了。我做的这个系统是很复杂的,当初硬件电路设计时,我本想用 8255 作为扩展IO口使用,并用PC口做位寻址进行片选操作,同时用 P
49、A口控制 1602,PB口做输入接A/D0804,但是 8255 的操作复杂程度会使整个设计显得臃肿而且多余,最后我决定取消用 8255 作为整个电路的实现。6.2 为何不采用 A/D0809?最后敲定采用了单输入的A/D0804 作为A/D转换,之所以不采用 8 路输入的A/D0809 为我所要选的A/D转换器件,是因为这个 8 路输入进行片选输入有点浪费系统,而且,在帮同学解决难题的时候我都推荐使用了A/D0809,对于它的操作我也是非常熟悉的。但为了能够由硬件电路作为我的课程设计结果的证明。我采用了我自买板子的硬件资源。6.3 在帮助同学的过程中我学到了什么?整个课程设计下来,我积累了丰富的经验,分别帮同学做了断电保护系统,步进电机的正反转加速减速,还有数字音