单片机原理与接口技术课程设计成绩评定表设计课题基于89c51的自身断电保护系统设计学院名称:电气工程学院专业班级:自动1002学生:秦凯新学号: 7指导教师:王黎臧海河周刚设计地点:31-505 设计时间:2012-12-17~2012-12-28单片机原理与接口技术课程设计课程设计名称:基于89c52的压力监测系统设计专业班级:自动1002学生姓名:秦凯新学号: 7指导教师:王黎臧海河周刚课程设计地点:31-505课程设计时间:2012-12-17~2012-12-28单片机原理与接口技术课程设计任务书目录1 引言 (6)2 总体方案设计 (6)2.1硬件组成 (6)2.2 方案论证 (6)2.3 总体方案 (7)3 硬件电路设计 (9)3.1 时钟电路 (9)3.2复位电路 (10)3.3 AD简介与原理分析 (10)3.4 声光报警接口电路 (15)3.5 显示及键盘接口电路 (15)3.7 电源电路 (2)4 系统软件设计 (3)4.1 主程序设计 (3)4.3 部分主要子程序的设计 (6)5 系统调试与总结 (6)5.1 系统功能测试 (6)5.2 技术指标测试 (6)6心得体会 (7)6.1 为何不采用8255了? (7)6.2为何不采用A/D0809? (7)6.3在帮助同学的过程中我学到了什么? (7)6.4在单片机领域我的规划?7参考文献 (8)附录A 系统原理图 (9)附录B 源程序 (10)压力监测普遍用于工业领域,并对国家的发展产生了深厚的影响,小到体重计,大到工业中反应炉的气压声电报警。
甚至航空航天,智能仪表。
以及机器人。
本设计就是工业中最普遍的气压监测报警系统。
所以,这个系统采用自动检测反应炉中的压力大小,通过传感器,并实时进行在液晶1602上进行显示,还有在液晶上进行参考上限电压值的设置和参考下限电压值的的设置。
并通过在单片机部进行比较计算,来实现整个压力监测系统的声光电报警。
本系统的设计基于A/D0804芯片和AT89C52单片机,并采用液晶1602作为显示输出,系统虽小却包含了工业要求的各个方面,作为声电报警模块,主要用到蜂鸣器和发光二极管。
当监测压力低于下限值和高于上限值就会进行声光报警。
此次系统设计就是针对工业的反应炉的压力监测,甚至可做体重计到最小的方面。
本设计纯为个人设计。
程序也在开发板验证成功,如有任何疑问,都可通过实验调试验证。
2 总体方案设计2.1硬件组成1.控制器。
控制器是系统的核心部分,可以用工业计算机PLC、或者单片机。
2. A /D转换器。
A/D转换器可以把测得的模拟量转换成数字量输出,可以直接读取。
3.继电器。
继电器在电路中起到断电保护作用,是系统的安全保障。
其种类很多,有电流继电器、电压及电器、速度继电器等等。
4.键盘。
通过键盘可以设置限制电流大小。
5.液晶显显示。
液晶可以显示设置电流以及实时电流值大小。
2.2 方案论证控制器选择STC 89C51RC 40C单片机来控制温度的测量显示。
目前国外使用较多的微控制器是以51核扩展出的单片机,51单片机的使用已经发展到很高的一个层次,编程多以C语言为主,操作简单,用途广泛,易于控制。
下面通过标号STC 89C51RC 40C的解释来对该单片机进行详细的介绍:STC:前缀,表示芯片为STC公司生产的产品。
8:表示该芯片为8051核芯片9:表示部含Flash EEPROM存储器。
C:表示该器件为CMOS产品,CMOS常指保存计算机基本启动信息的芯片,可由主板的电池供电,即使系统掉电,信息也不会丢失。
5:固定不变1:表示该芯片部程序存储空间的大小,1为4KB,2为8KB,3为12KB等,程序空间的大小决定了一个芯片所能装入的执行代码的多少。
RC:表示STC单片机部RAM(随机读写存储器)为512KB。
40:表示该芯片外部晶振最高可接入40MHz。
C:产品级别,表示该芯片使用温度围,C表示商业级,温度围为0度--+70度。
该单片机的存储器相对设计任务来说,对程序代码的储存足够了,所以无需再加外围的扩展存储器。
2.A/D转换器模数转换器是该电路中的重要组成部分,其工作效率直影响到系统的效率。
ADC0809转换器模拟输入电压围0~+5V,不需零点和满刻度校准,而且能耗低,工作温度围宽,所以可以作为该系统的转换器。
2.3 总体方案按照上述方案论证的结果,首先通过键盘设定电流值,然后检测电流值,转换成数字量通过数码管显示出来。
当电流过大时继电器动作,切断电路,保护用电器。
如图2.1所示。
图2.1 总体方案框图图2.2 系统流程图3 硬件电路设计3.1 时钟电路单片机片有一个高增益的反相放大器,反相放大器的输入端为XTAL1,输出端为XTAL2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式。
在部方式时钟电路中,必须在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,通常C1和C2一般取30pF,晶振的频率取值在1.2MHz~12MHz之间。
对于外接时钟电路,要求XTAL1接地,XTAL2脚接外部时钟,对于外部时钟信号并无特殊要求,只要保证一定的脉冲宽度,时钟频率低于12MHz即可。
晶体振荡器的振荡信号从XTAL2端送入部时钟电路,它将该振荡信号二分频,产生一个两相时钟信号P1和P2供单片机使用。
时钟信号的周期称为状态时间S,它是振荡周期的2倍,P1信号在每个状态的前半周期有效,在每个状态的后半周期P2信号有效。
CPU就是以两相时钟P1和P2为基本节拍协调单片机各部分有效工作。
如图3.1所示。
图3.1单片机时钟电路3.2复位电路在上电或复位过程中,控制CPU的复位状态:这段时间让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。
单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
单片机系统的复位方式有:手动按钮复位和上电复位。
复位方式有手动复位、上电复位和积分型复位。
如图3.2所图3.2 复位电路3.3 AD简介与原理分析模拟/数字转换就是我们通常所说的A/D转换,它将输入的模拟信号(如电压)转换成控制芯片(如单片机,ARM)所能识别的二进制形式,然后经过运算,既可以还原出输入模拟信号的值。
A/D转换是一种非常重要的技术手段,是单片机等控制芯片与外界信号的接口部分,如图3.3所示。
图3.3外界信号:外界信号的围十分广泛,自然界的一切信号,比如声音,温度甚至是血糖浓度等都可以规类为外界信号。
传感器:因为大多数外界信号都不是电信号,因此需要通过各种传感器将这些外界信号转换成电信号,例如:通过热电耦可以将温度转换成一个电压值。
模拟电路:设计模拟电路的原因主要有以下两点1.由于外界信号的复杂性,使得传感器直接输出的电信号可能会存在一些问题(如不稳定),这些不稳定信号如果直接送到A/D 芯片进行采样,则最终结果可能使得最后的显示值来回乱跳,而无法确定待测的外界信号到底是多少。
因此,可能需要设计一套模拟电路对传感器输出的不稳定电信号进行滤波等处理,去除干扰,使得进入A/D 转换芯片的电压值为一个稳定的信号。
2.每一个A/D 转换芯片都有一个参考电压,只有输入的模拟电压值在这个参考电压的围才能进行正确的转换,例如:本试验将ADC0804芯片的参考电压设置成0V ~5V ,因此如果输入的电压值大于5V ,则转换出的结果永远为0xFF,若输入的电压值小于0V,则转换出的结果永远为0,这样便无法正确的还原出被测信号的大小。
基于上述原因,我们可能需要设计一套模拟电路,传感器的输出电压值进行一些变换(放大,缩小),使得送到A/D 转换芯片的电压值在转换芯片的参考电压围。
A/D 转换芯片:即模拟/数字转换芯片,它将输入的模拟电压信号转换成单片机等控制处理器能够识别的数字二进制形式。
处理器芯片:处理器芯片有很多中(比如51单片机,ARM或者是PC 上的奔腾处理器,AMD处理器)这些处理器虽然架构不一样,但是有个共同的特点,就是它们能够运行程序,因此它们能通过程序对A/D芯片送入的二进制形式的电压值进行处理,通过运算将其还原成待测的外界信号值,控制显示部件(如LCD,八段数码管)将这个值显示出来。
例如:假如ADC0804输出的二进制值0x80,则根据A/D转换公式可以推出ADC0804的输入电压大小为(0x80/0x100)*5V=2.5V。
假设信号经过模拟电路缩小了8倍,则可以推出传感器的输出电压为2.5V*8=20V,再根据传感器的转换公式(一般手册会给出)即可得到输入的外界信号的值。
显示:显示的作用是将计算出的待测外界信号的值展示给测量人员,显示的形式有很多种,如LCD,八段数码管,上位机软件等。
通过上面的介绍,大家一定对这种基于A/D芯片的嵌入式设计模式有了一个大致的了解,其实现时中很多应用都是遵循了这种设计模式,比如常用的数字万用表,数字温度测量仪,血糖测量仪等。
本试验也遵循了这种设计模式,只不过它省略了传感器和模拟电路部分,首先通过滑动变阻器调节输入到ADC0804芯片的电压值(ADC0804芯片的参考电压调节成0V~5V,而滑动变阻器产生的电压围也为0V~5V,因此没有必要设计额外的模拟电路),然后通过51单片机进行运算处理得到这个输入电压值,最后再控制八段数码管将这个电压值显示出来,实际上是实现了一个简易的数字电压测量表。
如图3.4所示。
图3.4图3.5 ADC0804规格及引脚分配图本试验采用的A/D芯片为ADC0804,它是CMOS 8位单通道逐次渐近型的模/数转换器,其规格及引脚图如图3.5所示,根据手册我们可以得到各个引脚的大致功能如上:/CS:芯片片选信号,低电平有效,即/CS=0,该芯片才能正常工作,在外接多个ADC0804芯片时,该信号可以作为选择地址使用,通过不同的地址信号使能不同的ADC0804芯片,从而可以实现多个ADC通道的分时复用。
/WR:启动ADC0804进行ADC采样,该信号低电平有效,即/WR信号由高电平变成低电平时,触发一次ADC转换。
/RD:低电平有效,即/RD=0时,可以通过数据端口DB0~DB7读出本次的采样结果。
UIN(+)和UIN(-):模拟电压输入端,模拟电压输入接UIN(+)端,UIN (-)端接地。
双边输入时UIN(+)、UIN(-)分别接模拟电压信号的正端和负端。
当输入的模拟电压信号存在“零点漂移电压”时,可在UIN(-)接一等值的零点补偿电压,变换时将自动从UIN(+)中减去这一电压。
VREF/2:参考电压接入引脚,该引脚可外接电压也可悬空,若外界电压,则ADC的参考电压为该外界电压的两倍,如不外接,则Vref与Vcc共用电源电压,此时ADC的参考电压即为电源电压Vcc的值。