论文(5 - 23)- 终结版 - 图文 下载本文

基于单片机的数字采控器设计

4.3 寄存器程序设计

移位寄存器在本设计中主要是起到I/O口扩展的作用,由于本设计要求是16路输入、输出。若将16路输入、输出和本机地址和波特率设置都接单片机的I/O,显然单片机的I/O口肯定不够,通过寄存器的扩展能达到设计的要求。本设计输入电路采用74HC165寄存器,输出采用74HC595寄存器(寄存器程序设计流程图如图4-3所示)。

串口初始化串口初始化缓冲区初始化缓冲区初始化数据辨别数据辨别接受数据接受数据完毕?完毕?Y数据校验数据校验N正确?正确?YN数据处理数据处理返回主程序返回主程序

图4-3 寄存器程序流程图

24

盐城工学院本科生毕业论文(毕业设计说明书) 2012

4.4 串口通信程序设计

本系统中单片机负责数据采集、处理和控制,通信协议采用半双工串行通信方式,选用RS-485通信进行收发转换,传输数据采用二进制数据。RS-485采用平衡发送和差分接收,具有抑制共模干扰的能力,发送信号需由使能信号加以控制(程序流程如图4-4所示)。

串口通信中断入口串口通信中断入口获取中断状态获取中断状态消除等待响应的中断消除等待响应的中断N是接受中断吗?是接受中断吗?Y向向FIFOFIFO中写发送数据中写发送数据从从FIFOFIFO中读接收数据中读接收数据NN数据写完了吗?数据写完了吗?Y数据发送完成标志置位数据发送完成标志置位数据读完了吗?数据读完了吗?Y保存接受数据保存接受数据RS-485RS-485通信控制置接受状通信控制置接受状态态接受缓冲区指针归零接受缓冲区指针归零接受完成标志置位接受完成标志置位串口通信中断返回串口通信中断返回

图4-4 串口通信流程图

25

基于单片机的数字采控器设计

5 系统调试

5.1 硬件调试

A. 实物正面

B. 实物反面

C. 运行中

26

盐城工学院本科生毕业论文(毕业设计说明书) 2012

由于笔记本没有串口,条件收到限制,所示实物没有485部分的设计。 5.2 软件调试

软件调试结果: A. 本地控制

A)波特率设置(如图5-1所示)

波特率设置是由两个自锁开关完成的。 B)本机地址设置(如图5-2所示)

本机地址是由8位拨码开关设置的,可设置成256个设备地址:0~255。 C)本地控制继电器(如图5-3所示)

当拨动输入端的拨码开关时,输出端对应的继电器会动作,与继电器串联的发光二极管也会导通发光。

B. RS-485通信设置(x-本地地址;y-校验和;z-继电器状态;m-波特率设置;n-地址设置)

RS-485通信是由PC机发送指令,完成以下任务:改变波特率、本机地址、控制继电器动作、上传单片机的I/O口的状态和继电器的状态。当用户选择用485通信控制时,此时本地控制必须禁止,指令为0x01。若要回复本地控制,则需将命令设置为0x00。(系统启动时,可以进行本地直接控制。485通信控制时,地址和波特率初始值都是采用的本地设置值)

A)通信测试(如图5-4所示) 指令为:AA 01 x 00 y

B)I/O口信息上传(如图5-5所示) 指令为:AA 02 x 00 y

27