基于单片机及VC++的步进电机控制系统设计
3.4 串行通信电路
在PC机内接有PC16550(和8250兼容)串行接口、EIA-TTL的电平转换器和RS-232C连 接器,除鼠标占用一个串行口外,还留有两个串行口给用户,这就是COM1(地址3F8H-3FFH) 和COM2(地址2F8H-2FFH),通过这两个口,可以连接串行通信设备,如单片机、仿真机 等。由于单片机的串行发送和接收线TXD和RXD是TTL电平,而PC的COM1或COM2的 RS-232C连接器(D型9针插座)是EIA电平,因此单片机需加接MAX232芯片,通过串行电 缆线和PC相连接。本文所设计的串行通信电路如图4所示。
3.5 下位机显示电路
液晶采用显示容量为2行16个字的1602液晶,1602采用标准的16脚接口,内部的字符发 生存储器(CGROM)已经存储了160个不同的点阵字符图形,每一个字符都有一个固定的 代码[5]。设计电路图如图5所示。
4 软件设计
软件设计可分为两个部分:上位机软件设计和下位机软件设计。上位机软件设计包括: 上位机控制环境设计、上位机通信程序设计以及上位机程序的封装发布;下位机软件设计包 括:键盘扫描程序、下位机通信程序、主驱动程序、测试部分程序、显示部分程序。
4.1 上位软件设计
Visual C++设计了一套基础类库(Microsoft Foundation Class Library, MFC), MFC把编 程规范中的大多数内容封装成为各种类,使程序员从繁杂的编程中解脱出来[6]。根据系统设 计需要,设计一个基于对话框的应用程序即可,如图6所示。
为实现上位机与下位机通信,利用Microsoft提供的串行通信ActiveX控件。该控件的相 应文件是MSCOMM32.OCX。在基于对话框的程序中使用控件,需要进行以下几方面操作: 拖动控件图标到窗口上,创建控件ID。在对话框头文件中声明CMSComm类的变量及引用控 件类头文件。创建CMSComm类的实例。建立控件事件响应代码框架[7]。
在电机状态改变后,由下位机将代表各状态的数据发送给上位机,上位机接收到后存入 一个数组内,根据此数组内容刷新各编辑框内容,以达到实时显示的目的。此处共有五个数 据,放入rxdata数组中,分别代表励磁状态、转动方向、速度、测试1计数、测试2计数。上 位机MSComm控件SetRThreshold属性设置为5,则当下位机将五个数据发送完后,上位机立 即触发OnComm事件,进行接收[8]。
陀螺仪相关文章:陀螺仪原理
评论