点击【
大 中
小 】,可以选择字体的大小,以便你阅读.
系统功能模块图见图2和图3。
图2 上位机模块
图3 下位机模块
(2) 通讯流程图
l 主程序
实现下位机即单片机8051系统的初始化,8255初始化,设置单片机串行口控制寄存器SCON,电源控制寄存器PCON,定时器T1初始化,开中断。
系统不停的对键盘和RxD线进行监测,当通过扫描发现有按键输入时,经过按键处理后就启动该模块向上位机PC端发送所检测到的键码;当单片机8051监测到RxD线上有数据到时就启动该子程序对PC发来的数据进行接收,同时经过BCD转换送单片机系统的LED进行显示以方便和PC机发送的数据进行比较,以确认通信是否正确。流程图见图4。
图4 主程序流程图
图5 数据队列发送流程图
l 数据队列发送子程序
当单片机8051键盘已有4次输入时,就启动该模块向上位机PC端发送所检测到的键码。流程图见图5。
l 键码发送子程序
当单片机8051检测到键盘有输入时,就通过按键处理启动该模块向上位机PC端发送所检测到的键码。流程图见图6。
图6 键码发送流程图
图7 数据接收流程图
图8 BCD转换流程图
l 数据接收子程序
当8051监测到RxD线有数据到时就启动子程序对PC发来的数据进行接收。流程图见图7。
l BCD码转换子程序
该程序通过把#DATABUF中的十进制数值除以100(64H),得到的商就是百位数的BCD码,然后把余数除以10(0AH)便可以得到十位和个位的BCD码,从而得到相应的三位BCD码。在该子程序中进行双字节无符号二进制数的除法时要用到前面介绍的多字节无符号二进制数的除法算法,由于原理相似,在此不再重述。流程图见图8。在此程序中因原来的接收数据存在于#DATABUF附近,为防止发生信息覆盖故使用了暂存单元来暂时寄存除法计算的中间值。
l LED显示子程序
该子程序实现对接收数据进行BCD码转换并输出到LED,采用动态显示的方式进行显示。流程图见图9:
图9 LED显示流程图
4 结束语
上位机与下位机通讯是一个应用性广,适用性强的基础设计,可以应用在变频器上。要真正做好一个具有良好人机界面及交互性,使上位机和下位机能正常高效的通讯,需要设计人员具有很强的VB和单片机汇编语言的驾驭能力。同时,需要相当程度的设计经验,这样才能对设计中出现的问题采取行之有效的解方案。本文的研究对以后进一步深入奠定了基础。
参考文献
[1] 杨恢先,黄辉先. 单片机原理及应用. 长沙:国防科技大学出版社,2003.
[2] 白 鹏,莫卫东等. VB6.0高级编程技巧. 西安:西安交通大学出版社,2002.
作者简介
朱建林(1943-) 男 教授/博士生导师 研究方向为交流调速系统与电力电子技术,计算机控制技术。
郭有贵(1968-) 男 博士生 研究方向为交流调速系统与电力电子装置,计算机控制技术。