上位机软件的流程如图12所示。
图12 上位机软件总程序
以上为上位机软件总程序,对于上位机的单片机初始化程序及主程序见附录1。
4.2 开关程序
由于整个程序运行不是很复杂,故这次程序的开关设计部分采用了循环扫描的方式,而没有采用中断的方式。键盘按照功能有以下几种:普通开关键,空调,选台,音量,调光键。普通键盘仅作为开关使用。空调键分为开和关二档。选台与音量键和空调键相近,也属于二档键。本设计中全部开关都用普通开关进行。“当开关按下之后,相对应的引脚由高电平转向低电平,这时输入有效,转到相应的程序。
普通的开关键有两种状态,要么开,要么关,所以它的程序编写较为简单。
程序流程如图13。
图13 开关程序流程图
4.3 下位机
“下位机是控制部分,当它接收上位机的信号之后才可控制相应得发光二级管来工作。所以下位机软件设计包含:通讯模块和控制模块。控制模块中,按接收的不同的键值,执行了不一样的控制,下位机则比较上位机发出的数据,按照比较的结果进行处理。在编写下位机的通讯程序时,定时器/计数器以及串口的工作方式和波特率要和上位机保持一致,否则通讯就不能进行。
下位机初始化程序及主程序见附录2。
4.4 延时和驱动软件部分
一,延时程序可以用来抗干扰和误操作,程序如下:
void Delay_200(uint n)
{
uint i,j;
for(i=n;i>0;i--);
for(j=100;j>0;j--);
}
二,LED驱动程序:
// 16进制变BCD码来提供4511显示
uchar hex_bcd(uchara)
{
//定义一个2个字节的B变量
uchar b;
b=a/10;
b=b<<4;
a=a%10;
b=b+a;
return(b);
}
5. 结束语
经过半年的努力,在老师和同学的帮助下我的毕业设计终于完成,在此期间首先要感谢我的指导老师李向东教授,半年来他对我的论文创作付出了大量的心血,提供了很多宝贵的意见
本设计是围绕单片机技术在生活中的应用开展的,着重于“智能化”和“开放性”。在设计开始时我对远程控制技术、单片机应用等技术等方面的资料进行了学习和研究。本设计是在平时常用的实验设备的基础上研究的,所以我对这些实验设备的硬件与软件环境较为熟悉,便于对本设计进行研究和剖析。因为在本系统中选用了结构简单但性能可靠的硬件电路来实现部分功能,以及性价比较高的芯片,但是资料芯片多是英文资料如以太网控制芯片RTL8019AS,使设计中的难度大大加大。经过相关知识的学习、强化,及设计总体方案的制定,硬件结构电路图绘制,完成了本的硬件电路设计和软件程序的编写。本设计设计中央处理部分采用了单片机AT89C51,以太网控制芯片RTL8019AS,同时采用了其他可靠元器件,如普通三极管、LED显示器件,二极管等。 51单片机远程家电控制系统的设计+电路流程图+源码(8):http://www.751com.cn/zidonghua/lunwen_909.html