预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共30页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

PAGE20一、题义分析与解决方案题义需求与分析由窑炉的工作原理可知本实验的工作流程是:首先是预设温度值,用户从小键盘输入一个预设的温度值,并把它显示在LED灯上,其次是加热过程,PC机通过控制芯片接口使发热电阻发热,一段时间延时后,温度传感器将其测量的温度值通过硬件接口传送到PC机,所测的温度数据经过处理后传送到LED现实,将所测得的温度值与预设温度值比较,如果小于等于它,继续控制发热电阻发热,否则停止加热。一段时间延时后再次将温度传感器所测得的值进行显示比较,使发热体的温度稳定在预设温度值的2℃范围内。由上分析可知在实验需要解决如下几个问题:需要发热电阻给窑炉加热,并应该预设温度值,预设温度值要显示出来。如何控制温度传感器检测温度,并将检测到的温度值显示出来。需要对检测到的温度值进行半段控制窑炉的加热过程。如何输入预设温度值。如何将检测到的温度值传送给CPU。如何运用PID算法实现对温度的只能控制。设定温度功能的范围,使得窑炉温度稳定在设置的温度范围内。如何将预设温度值和所测温度值显示出来。解决问题的思路及方法硬件部分首先需要发热电阻RT1给系统加热;至于温度测控问题,需有温度传感器DS18B20,DS18B20将温度信息传递给芯片8255A,然后8255A与芯片ES-PCI相连;当温度低于设定值时利用,为了演示比较明显的加热效果此处可增设一个功能放大电路,同时利用逻辑笔(B2区)来测量发热电阻的工作情况;实验需要从键盘设定温度值并通过LED显示温度值,同时需要芯片8279控制。综上所述列出硬件清单如下:硬件8255A8279DS18B20键盘LED灯发热电阻功能放大器主要功能控制温度传感器及发热电阻工作控制键盘和LED工作温度传感器,测量温度输入设定温度显示环境温度和设定值实现加热功能放大电路软件部分软件应该具备以下几个主要部分:对温度传感器DS18B20初始化、启动,读、写温度,温度转换、显示;对芯片8255A的控制及如下操作:读出DS18B20的温度,控制发热电阻通过加热升温;对通用控制芯片8279初始化,从键盘输入温度设定值,显示温度,清除显示等;对发热电阻RT1的操作(控制其加热与否);另外还要设置一定的延时程序以满足不同芯片及元器件的工作时序;进制之间的转换运算:运用PID算法,通过比例运算,积分运算和微分运算来使温控器更好地适合不同系统的要求。OUT=P*(e1)+(e1-e0)/I+D*(e1+e0);其中e0是前一次的误差.e1是当前误差。P,I,D是系数.二、硬件设计1.可编程并行接口芯片8255A(1)8255A的作用在本设计中8255A向温度传感器DS18B20发送操作指令并实现,诸如:初始化DS18B20,读取温度值,对温度值进行十进制转换以及其他一些必要操作;同时8255A控制着发热电阻RT1的工作情况。(2)8255A功能分析及技术参数8255A是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、B口和C口。三个端口都可以作为输入端口或输出端口。A口三种工作方式:即方式0、方式1和方式2,而B口只能工作在方式0或方式1下,C口通常作为联络信号使用。8255A的工作只有当片选CS效时才能进行。而控制逻辑端口实现对其他端口的控制。端口A:包含一个8位数据输出锁存器/缓冲器和一个8位数据输入锁存器,输入输出数据均受到锁存。端口B和C:都包含一个8位数据输入缓冲器和一个8位的数据输出锁存器/缓冲器,输出数据能锁存,输入数据不锁存。端口C:可分成两个4位端口,分别定义为输入或输出端口,还可定义为控制、状态端口,配合端口A和端口B工作。其内部结构如图所示:A组端口A8位RESETB组控制部件CSA0A1WRRDD7~D0双向PB7~PB0PC3~PC0PC7~PC4PaPA7~PA0B组端口C低4位A组控制部件B组端口B8位A组端口C高4位读/写控制部件数据总线缓冲器(3)8255A工作在方式0方式0的工作特点:这种方式通常不用联络信号,不使用中断,三个通道中的每一个都有可以由程序选定作为输入或输出。其功能为:两个8位通道:通道A、B。两个四位通道:通道C高4位和低四位;任何一个通道可以作输入/输出;输出是锁存的;输入是不锁存的;在方式0时各个通道的输入/输出可有16种不同的组合。方式0的使用场合:同步传送是在外设控制过程的各种动作时间为固定,且已知的条件下使用的。因此,传送中不要应答信号。输入时,执行程序只要给出IN指令;而输出时,也只给出OUT指令,就能实现数据的输入或输出。优点是程序简单