关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 智能温室控制器的开发

智能温室控制器的开发

作者:时间:2009-08-11来源:网络收藏

4、串口扩展
由于要分别与上位机和下位机进行通信,而89c52只有一个串口,所以必须再扩展一个串口满足需要。8251是一个将并口扩展为串口的芯片,用其作为串口扩展芯片可以实现与485的通信。
8251是把并口p0扩展为串口,所以将p0口接在8251的D0-D7上。用74LS373作为地址锁存器,可以对8251进行寻址。由于接收器准备好信号RXRDY高电平有效,所以为了产生中断,接了一个非门芯片7404。波特率发生器是电路中极其重要的部分,CD4040芯片的最低分频数为1,也就是说可以把频率分为1/2。晶振采用2.4576M有缘晶振。有缘晶振无需外围电路,通电即可起振。把晶振产生的频率输入CD4040。将频率分为1/2后接到工作时钟CLK,分为1/27后变成19200hz作为输入输出时钟。8251与89c52连接的硬件原理框图如图5所示:

本文引用地址:http://www.eepw.com.cn/article/163655.htm


4 软件设计
在单片机软件过程中, 编制的程序要合理使用各种中断机制。本系统就算法来说,有实时性要求, 任务复杂:有中断、定时任务、循环执行任务等, 并且人机交互操作还通常会动态地改变程序的运行模式, 尤其是人机界面――液晶的显示输出需要占用大量CPU 时间, 与此同时又不允许丢失重要的数据。还要随时准备向上位机发送数据。因此,需要综合采用消息机制与状态转移法来统一地处理好CPU 的任务安排。
在中断服务程序中, 向主程序的消息队列添加相应的消息, 来达到将中断服务程序中的数据处理部分分离出来的目的。本系统主要有两个中断:上位机中断和键盘中断。中断服务程序返回主程序后, 主控程序只处理消息循环, 判断并为消息处理对象发送所需处理的消息, 而接受消息的对象则以消息响应函数的方式出现, 当接收到主程序发来的消息后, 消息响应函数获得控制权, 做完相应的处理后将控制权交还给主程序继续消息循环的处理。用户的输入及对象的请求仅是向消息队列中添加相应的消息。
主控程序还需要查询消息队列也就是时间,根据时间的不同, 调用相应的消息处理函数, 在本系统中, 时间表现为一个变量, 通过给该变量置不同值来反映不同的消息。对于由中断触发的消息, 由于消息处理函数已经脱离了中断处理过程, 所以系统对消息处理不再象中断服务程序那样, 在时间上有十分苛刻的要求; 同时, 在消息处理过程中, 用户仍可通过键盘中断来与系统进行交互。
5 结束语
本项目是一个自动化技术与农业结合的课题, 以89c52 单片机为核心的嵌入式,通过8251扩展一个串口后和单片机原有的串口一起分别和上位机和下位机通讯,从下位机收集到的数据先存入数据存储器,在接收到上位机的命令后再把数据传到上位机进行管理。并在控制器上加入键盘和显示的功能,能控制器能直接控制下位机。该控制器结构合理, 经济实用, 具有较高的推广价值。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭