[毕业论文]基于单片机的照明控制系统(8)

2019-02-16 00:58

上海交通大学自学考试毕业论文 若SM2被设为0,则无论是地址帧还是数据帧都将产生RI=1中断标志,数据装入SBUF。利用这一功能,可以按照如下步骤进行数据通信: (1) 将所有SM2位置1,使其处于只接收地址帧的状态。 (2) 主机发送一帧地址信息,其中前8位数据位表示通信的从机地址,第9位为1,表示当前帧为地址帧。 (3) 从机接收到地址帧后,如果是广播地址帧,则所有从机都将其SM2位置0,准备接收主机发送的数据或命令;如果不是广播地址帧,则将本机地址与帧中地址进行比较。如果地址相同,则将其SM2位置0,并发送本机地址帧,然后准备接收数据。如果地址不同,则丢弃当前数据,SM2位不变。 (4) 主机发送数据帧,相应的从机接收,其他从机则不受影响。 (5) 当主机需要与其他从机通信时,可以再次发出地址帧寻呼从机,重复这一过程。 主机在发送数据时,按照表4-2的数据格式进行传输。 表4-2字节数n数据1数据2数据n字节奇偶校验 在程序中,第9位发送数据位SCON中的TB8位,第9位接收数据位为SCON的RB8位,因此,发送数据前,可以通过对TB8位置1或0来确定要发送的是地址帧还是数据帧。而接收数据时,对地址帧的判断则是通过读取RB8位来获得的,RB8=1,当前帧为地址帧,RB8=0,当前帧为数据帧。 单片机的串口工作在方式3下,其波特率由定时器1(T1)的溢出率决定,计算公式为: 波特率=SMOD232T1的溢出率 定时器T1的溢出率的计算公式为: 溢出率=则波特率的公式变为: 波特率=fosc32k的初值 )÷( 2 - T1 SMOD232×fosc32k的初值 )÷( 2 - T1 系统所采用的晶振频率为11.0592MHz,T1工作在模式3下,波特率=9600b/s。 36 上海交通大学自学考试毕业论文 4.5.1 主机部分通信程序设计 系统中的主机通信程序分为4个部分,分别为预定义及全局变量部分、程序初始化部分、数据通信流程和发送数据部分。主机的数据通信的基本流程如下: (1) 主机首先向所有从机发送地址帧对要通信的从机进行呼叫,发送地址帧时需将TB8位置1。 (2) 发送地址帧后,如果发送的是广播地址帧,则不需要从机应答,待延迟一段时间后,调用发送函数发送数据;如果发送的是非广播地址帧,主机则要接收应答,若应答信号中的地址与前面发送的地址并不相同,主机将重新发送地址帧呼叫,否则调用发送函数发送数据。 (3) 发送完数据后,主机等待从机的校验信号,如果接收到0X0F数据,表示发送成功,通信结束,否则主机将重新发送数据,直至发送成功。 该部分程序对应的流程图如图4.12所示。 开始发送地址帧等待从机应答N是广播地址吗Y应答信息与发送的地址相符吗YN调用发送函数发送数据等待从机应答N发送成功吗Y结束 图4.12 主机数据通信流程图 4.5.2 从机部分通信程序设计 从机通信程序也被分为预定义及全局变量部分、程序初始化部分、数据通信流程和接收数据部分4个部分。从机部分的数据通信过程受主机控制,其基本的流程如下: 37 上海交通大学自学考试毕业论文 (1) 初始化完成后,从机设置SM2位为1,串口只接收第9位数据位为1的地址帧,数据帧将被直接抛弃。 (2) 如果串口有数据接收(收到地址帧),则从机会将该帧中的地址信息先与广播地址进行比较,如果是广播地址,则做好接收数据的准备,如果是其它地址,则与本机地址比较,如果相同,则发送应答信息,应答信息内容应为本机地址,否则丢弃当前数据,从机继续处于等待呼叫状态。 (3) 程序调用接收函数接收主机发送的数据部分并作出应答,接收到的数据保存至Buf指向的缓冲区中。如果接收函数返回0xff,表示数据校验失败,程序等待主机重新发送数据。如果函数返回值为0xfe,表示从机在数据接收过程中发现主机发送地址帧,程序将放弃当前接收过程,将SM2位重新置1,开始下一通信过程。如果函数返回0,表示数据被成功接收,向主机发送成功信号,随后,程序将SM2位置1,重新开始下一个数据通信流程。 该部分程序对应的流程图如图4.13所示。 开始将SM2位置为1只接收地址帧串口有数据接收N是广播地址吗Y接收的地址与本机地址相同吗Y发送应答信号信号内容为本机地址调用接收函数接收数据Y接收函数返回值为0xffNY接收函数返回值为0xfeN向主机发送成功信号 图4.13 从机数据通信流程图 38 上海交通大学自学考试毕业论文 4.6 无线数传通信程序设计 这里所设计的无线数据传输系统是采用主从式通信方式,主控制器设为主站,所有分控制器设为从站,所有从站都编一个唯一的地址。通信的协调完全由主站控制,主站先发送地址帧,所有从站都接收,如果是接收的是广播地址码,则所有从站都做好接收主机发送数据或命令的准备,然后主机发送数据或命令;如果接收的是其它地址码,则从站将接收到的地址帧与本地地址码相比较,若不同则将数据全部丢掉,不做任何响应;若地址码相同,则证明是呼叫本站,从站将自己的地址码发送回去,主站收到自己刚发出去的地址码后,接着发送数据或命令。这些工作都需要通信协议来完成,可保证在任何一个瞬间,通信网中只有一个模块处于发送状态,避免相互干扰。 SRWF-1模块在使用之前要进行无线信道、接口类型、接口速率、接口参数等的设定,在设置完成后便可以进行数据传输,当模块收到单片机发来的第一个数据后自动进行无线网络连接、数据同步等工作,因此第一个数据将在5个字节时间延迟后从接收方串口输出。如要传送1个数据帧,此时间延迟将逐渐减少。当最后一个数据被发送后,模块将处于等待状态直到模块所设置的接收等待时间延迟之后,模块将自动通知所有接收设备断开无线网络连接、转入空闲状态。 当发送方最后一个数据被发送后需延迟6-8个字节才能接收空中其他模块的数据。其他模块在此时间内也不能向空中发射数据,即使有用户数据输入也是被缓冲在模块中,而没有发送到无线链路中,以避免引起数据通讯混乱。 无线数传的通信协议与流程基本上与RS485通信程序相同,因此主机和从机的数据通信程序流程图分别如图4.12与4.13所示。 4.7 本章小结 本章主要阐述了照明控制系统的软件设计,该系统的软件程序主要由照明启停控制程序、照明亮度控制程序、照明定时控制程序、人机交互程序、串行通信程序等组成。而照明启停控制、亮度控制以及定时控制程序又分为全部控制和单独控制两部分,人机交互程序由键盘扫描程序与LED显示程序组成,而串行通信程序由RS485通信程序和无线数传程序组成。在这里分别对每个子程序的工作流程、工作原理以及过程都做了详细的论述。 39 上海交通大学自学考试毕业论文 第五章 实验及总结 本文研究了基于AT89C51与AT89C2051单片机的智能照明控制系统的设计原理与实现方法,包括硬件设计与软件设计。首先根据设计要求用Protel DXP软件绘制出原理图,然后依据原理图选择元器件,在实验板上布置元器件并连接线路,对硬件电路进行测试,检查串行口是否选错,测量电源是否正常,复位电平是否正确,单片机是否起振等等。接着就要按照功能要求编制程序,这里采用Keil C编程工具,需先根据要求划分模块,优化结构;再根据各模块特点确定何为主程序,何为子程序,何为中断服务程序,相互间如何调用;再根据各模块性质和功能将各模块细化,设计出程序流程图;最后才根据各模块流程图编制具体程序。调试时应先调主程序,实现最基本最主要的功能,在此基础上再将各模块功能往主程序上堆砌,直至各模块联调、统调,实现全部功能。 在实验过程中,首先通过主控制器上的键盘输入地址号,地址号是由数字组成的,在输入完毕后,然后按下确认键,信号经过网络传输后,分控制器将收到的地址进行比较确认后,然后执行下一步的程序。经过实验的验证,在输入广播地址后,所有的分控制器都正确地执行了后续的命令,实现了灯泡的启停、亮度调节、定时关闭功能;在输入某个分机地址后,该分机也正常地执行了相应的命令,同样达到了所要求的功能。 由于系统采用的是RS485通信与无线数传通信方式,如果使用在现场环境中必然存在干扰的问题,所以抗干扰与可靠性设计就显得尤为重要。虽然系统已经考虑了可靠性设计问题,如看门狗技术、复位电路、光电耦合等在电路设计中的应用,但这也只是针对部分问题做了解决,一些详细的设计还有待于解决。该系统还只是试验室的调试系统,离真正的现场应用还有一定的距离。软件部分的编制也是力求简单实用,即本着实用、有效、方便的原则进行编制。但一个较好的和较完善的应用软件不是在短时间内就可以完成的,它需要不断的完善和发展,需要我们做大量的工作和时间的检验。现在的系统还没有达到真正的智能化,还需要增加很多新的功能和先进的科学技术,才能达到真正意义上的智能化控制。 40


[毕业论文]基于单片机的照明控制系统(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:铁路工程概预算编制办法(定稿)113号文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: