




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、. . . . 毕业设计(论文)题 目 :单片机电机测试系统的研制-上位机监控系统设计姓 名 学 号 :指 导 教 师 :年级专业班级:2008过程控制自动化 教 师 职 称 :副教授 所 在 学 院 :电气信息学院2012年 6 月 6 日目 录摘要1Abstract11绪言41.1课题背景41.2课题任务需求分析61.3论文结构72系统方案论证72.1基于Labview上位机调试方案82.2基于VB上位机调试方案82.3基于Matlab上位机调试方案92.4方案选择93系统设计103.1界面设计113.2测速程序设计133.3电机控制程序设计213.4后台文件存取程序设计283.5底层通信
2、程序设计293.5.1制定串行通信协议293.5.2MATLAB实现串行通信的程序设计303.5.3单片机实现串行通信的程序设计344试验测试与分析364.1 测试方法364.1.1T法测速374.1.2 PI调节394.1.3输出转速信号转换成PWM输出464.2 开环调试414.2.1开环调试结果414.3闭环调试424.3.1闭环PID参数整定424.3.2闭环调试结果分析43结束语.45致.46参考文献.47附录.4850 / 53单片机电机测试系统的研制-上位机监控系统设计摘要:随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,要为现代
3、人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。然而现代化集中管理需要对现场数据进行统计、分析、制表、打印、绘图、报警等,同时,又要求对现场装置进行实时控制,完成各种规定操作,达到集中管理的目的。加之单片机的计算能力有限,难以进行复杂的数据处理。因此在功能比较复杂的控制系统中,通常以PC机为上位机,单片机为下位机,由单片机完成数据的采集与对装置的控制,而由上位机完成各种复杂的数据处理与对单片机的控制。文章提出了一种基于MATLAB和单片机的直流电机变频调速测控系统方案,主要利用MATLAB的serial设备控制箱访问串口设备实现上位机和
4、下位机之间的串行通信,借助MATLAB友好的图形界面和单片机可直接面向设备的特点,实现对电机转速的监测和闭环PID调节控制。用单片机对电机转速进行采样,并将转速信号上传给上位机;在上位机利用MATLAB设计图形用户界面,在界面上输入电机给定转速和PID参数;MATLAB通过串口发送数据给单片机;单片机进行PID运算后控制变频器,最终控制电机转速,实现电机转速闭环,这就是本系统的工作流程。关键词: MATLAB用户图形界面;单片机;GUI;串行通信;数字PID调节器;PWM;闭环变频调速;Single-chip testing system-motor control software desi
5、gnAbstract:with the continuous improvement of people's living standard, SCM control is one of the goals that people pursue, it brings convenience to also cannot be negative, for modern people work, scientific research, life, provide better and more convenient facilities needs from SCM technology
6、 proceed with, all to the digital control, intelligent control direction.Modernization of centralized management of on-site data statistics, analysis, tabulation, print, drawing, alarm, at the same time, and the requirements of field device for real-time control, complete the various provisions of t
7、he operation, to achieve the purpose of centralized management. Coupled with microcontroller with limited computational power, it is difficult to carry out complex data processing. Therefore in the function of complex control system, usually with PC as a host computer, single-chip machine, composed
8、of a single chip microcomputer data acquisition and control of the apparatus, and the PC to complete all kinds of complex data processing and on the single chip microcomputer control.This article proposed one kind based on the Matlab and AC motor variable frequency speed control system, the main use
9、 of Matlab serial device control box access serial port equipment to achieve the position machine and the lower position machine serial communication between Matlab, with friendly graphic interface and the chip can be directly facing the equipment characteristics, to achieve motor speed monitoring a
10、nd closed loop pid control. Chip on the motor speed is sampled, and the speed signal is sent to computer; in the pc using Matlab to design a graphical user interface, the interface input motor given speed and pid parameters; Matlab through the serial port to send data to the scm; scmpid algorithms t
11、o control the frequency converter, the ultimate control of motor speed, motor speed closed-loop, this is the work flow of the system.Key words: Matlab graphical user interface; Single chip microcomputer; GUI; Serial communication; Digital pid adjuster; PWM; Closed loop variable frequency speed regul
12、ation;分享到翻译结果重试抱歉,系统响应超时,请稍后再试· 支持中英、中日在线互译 · 支持网页翻译,在输入框输入网页地址即可 · 提供一键清空、复制功能、支持双语对照查看,使您体验更加流畅1 绪论目前,随着数字控制技术的以与电机控制发展,可检测,可显示,集成,大型,安全,方便简易的装备越来越被使用到工业控制中,如汽车的流水线作业,污水处理,小车的在线模拟控制等等发展,利用单片机上位机系统可以解决生活中一些可靠精度高,又不复杂,可以方便检查和管理的系统运行情况!1.1课题背景:由于直线电机具有结构简单、无接触、无磨损、噪声低、速度快、精度高等优点。基于直线电机
13、自身独特的优势,在汽车,伺服器,航天,能源动力等领域都有很大应用,许多的国家开展了对直线电机的专题研究,越来越多的相关优质产品出现。在直流电机问世一百四十多年的历史中,在设计和制造技术领域有很大突破, 新材料、新技术的应用以与整流电源的普与, 促进了一般工业用直流电机的不断扩大, 品种的日益繁多。从小至数瓦, 大到万余千瓦, 广泛地用于冶金、矿山、煤炭、起重运输、机床制造、纺织印染等各个部门中, 特别是近几年电子计算技术广泛应用在直流电机设计制造中。从直流电动机的演变历史, 也可以纵观直流电动机的发展历史和动向、从四十年代后期到五十年代的前期, 直流电动机的电源主要是采用M-G电动发电机组,六
14、十年代初, 电动发电机组电源已被水银整流器逐渐代替, 到六十年代后期, 由于可控硅整流装置的出现, 并得到迅速发展, 可控硅整流电源已占统治地位。由于直流电源供电方式的不断更新换代, 特别是在最近的十几年期问, 进一步促使了直流电动机的单机功率、转速不断提高, 目前朝着高速、大功率方向发展。另外, 由于绝缘技术和分析技术的进步, 直流电动机已迅速向小型轻量, 低惯量方面发展。随着各种技术的进步和研究的展开,诸多高质量的直线电机产品和科研成果纷纷出现。1985年,美国Ingersol铣床公司生产了采用永磁同步直线电机的HVM600高速加工中心,它最大进给速度达到76.2m/min。而在1997年
15、,汉诺威12.EMO展览会上有20多家公司展出了直线电机传动装置,如德国Trumpf公司的激光机床,法国Renault automation公司的加工中心等,展出的直线电机最大速度达150200 m/min。这些被称为最有前途的展品表明,在高速度机床的进给机构中愈来愈多的采用直线电机。新型磁性材料和控制技术、冷却方法的出现,为应用经济高速高动力直线电机创造了条件。 这些技术应用经济(1)在交通运输业中。可由直线电机驱动的磁悬浮列车、高速高动力直线电机创造了条件。如 Indramat公司研制了最地铁等,具有高速、舒适、安全、无污染等优点,将在新兴交通完整系列的直线电机,包括无罩壳同步直线电机,无
16、罩壳异步输送工具中发挥重要作用。直线电机和封闭式异步直线电机。直线电机的控制系统有标(2)在工业中。直线电机在直线传动和物料输送等方面具准接口,可保证与各种改型的数字变换器和程序控制器的兼有独特的优势,如分拣输送线、升降机等。在各种工业机床中容性。也可广泛使用直线电机代替旋转电机,主要是利用其速度快。在我国,直线电机的研究和应用发展起步较晚,从 20世精度高的特点,如直线电机驱动的冲压机、压铸机、电火花成纪 70年代初开始。1972年,大学首先翻译了直线感应形机等。电动机译文集。之后,大学、中科院电工所等又编译了一(3)在民用方面。一些生活用品如家电(空调、冰箱等)动门等都可用上直线电机,日本
17、的日东工器公司制造的工程与其自动化研究。常成熟的产品。因此应用领域相当广泛!(4)在军事方面。由于直线电机的速度极高,利用这点可将其应用于导弹、火箭和大炮中,这也是完全可能的。直线电机有其独特的特点,但也有其自身的缺点,在实际应用研究中,应该权衡利弊,选择能充分发挥直线电机自身优势的场合。通过直线电机的应用,推动各个领域技术的进步。目前,我们正尝试将直线电机应用于电火花成形机,通过将直线伺服系统先进的最近技术融入到成熟的电火花加工技术中,从而使电火花成形加工的性能得到较大的提高。 电机测试意义:电机测试科学技术的发展对电机性能和质量指标提出了越来越高的要求,电机测试技术的发展与电机工业的发展是
18、密切相关的。电机试验是对电机装配质量与技术性能综合评价的重要环节,是电机制造和生产的重要工序。传统的试验设备和方法由于操作时间长,需观测的仪器多,人工读取测试数据和进行数据分析、计算,在一定程度上影响了电机试验的质量和精度。随着目前电机设计水平、工艺水平的进一步提升,以与电机原材料的性能不断提高,电机的性能和质量指标有了很大的提高。因此,对电机测试技术的要求也日益提高。 国外电机测功机发展现状:基本上都是采用电机试验台、电机试验系统、电机综合试验台、电机综合试验系统、直流电机综合试验台、直流电机综合试验台. 测量方式:采用微机测量测量柜配置电流、电压传感器,中间环节采用信号调理接口模块,由计算
19、机完成信号采集和测量任务。 1.控制方式:采用汽车级MCU直接控制采用德国西门子公司汽车级的微型控制器进行联锁控制,联锁程序可根据用户的要求定制、修改,控制系统性能稳定、系统可扩展性好。 2.操作方式:手动操作和自动操作方式并存为避免微机故障时影响试验工作,采用手动控制(面板按钮操作)和自动控制(计算机键盘/鼠标操作)并存的方式,不便采用自动控制或微机出现故障,可以采用手动操作进行试验。 3.试验数据处理:试验结果保存工控机或服务器微机试验台配置国外知名品牌原装工业计算机,自动试验的结果数据直接保存在试验工控机硬盘中,手动测量的数据可由人工输入到试验软件界面,再保存在存储器,提供本机数据库功能
20、,可以进行试验数据的本机查询访问,设计有试验报告自动生成功能并提供输出打印功能(配置惠普多功能激光打印机)1.2课题任务需求分析课题基于Matlab上位机仿真测试平台,主要完成对直流电机的转速采样,PID的控制以与监控数据图像显示!MATLAB_GUI界面测控系统可以方便直观地完成电机运行工况的实时监测以与电机转速、正反转、启动停止、开闭环运行的实时调节控制。界面相关控件包括电机给定转速的输入,PID调节之比例系数、积分系数和微分系数的输入,电机正反转和停止控制按钮,电机开环/闭环运行控制按钮,以与开启和关闭系统的按钮,此外还包括显示电机转速变化情况的坐标轴和文本框,以与保存和查看相关数据和信
21、息历史记录的菜单项。1.3论文结构本课题讨论了上位机调试平台有基于Labview上位机调试方案, 基于VB上位机调试方案, 基于Matlab上位机调试方案,这些测试平台要完成设备控制箱访问串口设备实现上位机和下位机之间的串行通信,借助MATLAB友好的图形界面和单片机可直接面向设备的特点,实现对电机转速的监测和闭环PID调节控制。用单片机对电机转速进行采样,并将转速信号上传给上位机;在上位机利用MATLAB设计图形用户界面,在界面上输入电机给定转速和PID参数;MATLAB通过串口发送数据给单片机;单片机进行PID运算后控制变频器,最终控制电机转速,实现电机转速闭环,最后开环闭环调试分析结果,
22、这就是论文的大致结构。2系统结构方案论证2.1基于Labview上位机调试方案采用LabVIEW作为软件的开发平台,是因为图形化编程环境LabVIEW,满足建立灵活的可扩展式测试测量和控制应用系统的要求,同时满足以最小成本最快速地开发系统的需求。LabVIEW支持多任务,同时对外设有C语言接口。但是使用数据流程图(data flow diagram),这表明LabVIEW的所有用户都必须以某种特定方式编程。图3 基于Lab view开发的模型车监控平台2.2.基于VB开发的模型车监控平台VB是使用较为广泛的工具软件,可以作为上位机监控平台,具有界面明晰、编程简易方便的优点,功能比较强大,然而由
23、于VB作为面向对象的编程工具不够完全,效率比VC低,提供的命令语言环境较弱,通过串口设备一次最多只能交换16B的数据,对较大数据量的传输存在很大的局限性,很难实现较为复杂的数据处理!2.3.基于Matlab开发的模型车监控平台MATLAB是一套功能强大的商业数学软件,在信号处理、语音处理、数据采集、数值运算、图像处理、电子仿真、金融分析等领域应用广泛,程序操作极其简单,用Matlab不仅能提高工作效率,处理数据的能力足够对模型车上传的数据进行即时处理、分析!图2 .基于Matlab开发的模型车监控平台 摘自与非网2.4方案选择2.4.1上位机编程方案选择在上位机软件编程语言的选择上,着重考虑的
24、是便于界面的编写与可进行方便的串行通讯。在控制系统中,上位机与下位机之间实现通信的方法和应用平台很多. 目前 ,以VB 和 VC开发的通信软件较多,这类软件虽然功能完善 ,但是数据采集到计算机后要进行各种处理例如滤波、系统辨识、曲线拟合等就显得不方便 ,编程比较复杂. MATLAB 具有强大的数据处理能力与功能丰富的工具箱 ,被广泛地应用于信号处理、自动控制等领域. 它编程语言简单易学 ,利用简单的命令就可以代替复杂的代码 ,极提高了开发效率。Matlab有专门面向仪器的 Instrument Control Toolbox工具箱 ,该工具箱提供了对仪器仪表的直接访问,通过 serial po
25、rt、GPIB、VISA 或 TCP和 UDP等接口访问外部设备 ,读取数据和信息,该能极拓展了Matlab在工程控制领域的应用 ,也为用户更好地使用 Matlab 计算功能进行数据处理与分析提供了方便。此外,Matlab为用户提供了丰富的Windows图形界面设计方法,使用户能够在利用其强大数值计算功能的同时设计出友好的图形界面。在编程效益、可读性、可移植性和可扩充性上,Matlab有着自己独特的优势。因此,本文将介绍一种基于MATLAB和单片机的调速测控系统,该系统通过MATLAB的Serial设备控制箱访问串口设备实现上位机和下位机之间的通信,借助MATLAB友好的图形界面和单片机直接面
26、向设备的特点实现对直流变频调速系统的监测和电机转速的开闭环控制,将图档呼叫出来作深入的分析。3系统设计本系统软件的整体结构如图4-1所示。上位机串口通信程序下位机串口通信程序数据处理数据处理转速计算子程序PID调节子程序PWM波输出子程序电机运行状态控制子程序PCAT0T1INT0中断初始化子程序转速等实时数据显示转速等实时数据存储转速等历史数据查看和显示给定转速kpkikd参数设定和开闭环控制电机运行状态控制串口参数设置和工作状态控制图4-1 直流调速测控系统软件整体结构框图由上图可知,本系统的软件部分由串行通信程序、单片机程序和MATLAB程序三大部分构成,显然,串行通信程序负责实现上位机
27、和下位机之间的实时通信;单片机程序负责实现对电机开闭环控制等具体控制过程,直接面向控制对象,协调上位机和控制对象之间的关系;MATLAB程序完成用户图形界面的设计、完成用户设定信息和命令的接受与发送、完成数据的存贮、分析和显示,从而实现用户与本测控系统的良好信息交互本系统是由单片机和MATLAB软件相结合搭建的直流电机变频调速测控系统,能够对电机的转速、正反转进行调节控制。3.1界面设计MATLAB_GUI测控界面:本界面构成的测控系统可以方便直观地完成电机运行工况的实时监测以与电机转速、正反转、启动停止、开闭环运行的实时调节控制。界面相关控件包括电机给定转速的输入,PID调节之比例系数、积分
28、系数和微分系数的输入,电机正反转和停止控制按钮,电机开环/闭环运行控制按钮,以与开启和关闭系统的按钮,此外还包括显示电机转速变化情况的坐标轴和文本框,以与保存和查看相关数据和信息历史记录的菜单项。用户从GUI界面中直接给定电机转速给定值、PID调节参数值并电机运行控制命令;MATLAB软件通过串行口将相关参数和命令传给单片机;单片机将这些数据和命令接收后,处理相关数据、执行相关命令。比如根据上位机发送来的调节参数、转速给定值和单片机测量的实际转速值进行PID运算,然后利用单片机所附带的PWM功能和简单的外围电路,将运算结果转换成模拟电压量传输给变频器,控制变频器输出频率,改变电机转速,实现电机
29、转速闭环运行;比如测量和上传实时转速;又比如执行正反转、停止命令,通过单片机数据口结合简单的外围电路将该信号传输给变频器,以控制变频器的运行状态,从而使电机正转、反转或停止。此外,上位机实时接收单片机上传的转速信号,用波形图和数字的方式在GUI界面上显示出来,以供监测。MATLAB用户图形界面(GUI)是程序的图形化界面。它提供用户一个常见的界面,还提供一些控件,例如,按钮,列表框,滑块,菜单等。应用matlab的用户图形界面设计向导GUID设计了本系统的人际交互界面效果图如图4-7所示。该用户界面由给定参数设定、串口设置、电机运行状态控制、转速和时间显示、显示实时转速变化曲线的坐标轴以与标准
30、菜单选项等部分组成。在编写各个控件的回调函数之前先在GUI的OPENNING_FUCTION里定义保存用户在界面上输入的参数和发布的命令的数组command,这些数据和命令正是将要由上位机通过串行通信发送给下位机的15字节数据包;command数组格式:1握手信号,2上传转速命令,3给定转速高8位,4给定转速低8位,5开闭环控制命令,6正反转控制命令,7停止控制命令,8KP高8位,9KP低8位,10KI高8位,11KI低8位,12KD高8位,13KD低8位,14采样时间常数T高8位,15采样时间常数T低8位。图4-7 基于matlab和单片机的变频调速测控系统用户界面效果图1. 给定参数设置可
31、直接在面板上的相应文本框输入转速给定值,比例系数、积分系数、微分系数和下位机采样周期5个PID调节参数,开闭环控制由“开闭环”开关按钮实现,将开关按钮的状态转换成表示开闭环命令的一个字节数据保存在comand数组的第5位即可。在“点击确定“按钮的回调函数里用get函数分别获取5文本框的“string”属性值,并将每个参数转换成2字节数据存贮到command数组相应位置从而完成了用户给定参数的保存。 2.串口设置“上位机采样周期”文本框用于接受用户设定的采样周期值,“端口选择”列表框列出了用户可选择的端口号,“打开串口”开关按钮用于打开和关闭串口通信也即启动和关闭系统的按钮,在该按钮的回调函数里
32、用get函数获取“上位机采样周期”文本框“string”属性值以设定串口事件之Timer事件的定时时间间隔;用get函数获取“端口选择”列表框“value”属性值以设定串口对象的端口号;用get函数获取“打开串口”开关按钮“value”属性值,其值为0时用fclse函数关闭串口对象,不为0时用fopen函数打开串口对象。3电机运行状态控制用于控制电机的正转、反转和停止。这是一组相互排斥的单选按钮,当点击其中一个时另外两个按钮无效。用两个字节数据表示电机运行状态,(0 255)表示正转,(255 255)表示正转,(255 0)表示停止转,在“正转按钮”响应函数里将(0 255)存入comman
33、d的第6、7位即完成用户发布正转命令的存储;以此类推,即可完成用户发布的“反转”或“停止”命令的存储。4实时转速显示无论是转速的变化曲线在坐标轴上的显示还是实时转速值在静态文本框里的显示都是在EveBytesAvailable串口事件的中断函数里实现。每当下位机发送来五个字节数据时就会触发EveBytesAvailable事件,系统将执行EveBytesAvailableCallback函数,用Plot函数对串口接收到的实时转速值、用户给定的转速值以与系统的实际时间在坐标轴绘图,并用set函数将实时转速值和PID调节输出的转速值显示在“实际转速”静态文本框和“PID调节器输出转速”静态文本框。
34、3.2测速程序设计#include <reg51.h>#define XTAL 11059200 / CUP 晶振频率#define baudrate 9600 / 通信波特率#define uchar unsigned char#define uint unsigned intsbit DQ = P33; / 定义速度传感端口DQ sbit BEEP = P37;unsigned char presence ;unsigned char code LEDData1 =0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0xff;un
35、signed char code LEDData = 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff;unsigned char data temp_data2 = 0x00,0x00;unsigned char data display5 = 0x00,0x00,0x00,0x00,0x00;unsignedchar code ditab16 =0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;void beep(); s
36、bit DIN = P07; / 小数点bit flash=0; / 显示开关标记bit flag_zf=0; / 正负转速标志/*/void Delay(unsigned int num)/ 延时函数 while( -num );/*/uchar Init_DS18B20(void) / 初始化ds1820 DQ = 1; / DQ复位 Delay(8); / 稍做延时 DQ = 0; / 单片机将DQ拉低 Delay(90); / 精确延时 大于 480us DQ = 1; / 拉高总线 Delay(8); presence = DQ; / 如果=0则初始化成功 =1则初始化失败 Dela
37、y(100); DQ = 1; return(presence); / 返回信号,0=presence,1= no presence/*/uchar ReadOneChar(void) / 读一个字节unsigned char i = 0;unsigned char dat = 0;for (i = 8; i > 0; i-) DQ = 0; / 给脉冲信号dat >>= 1;DQ = 1; / 给脉冲信号 if(DQ) dat |= 0x80; Delay(4); return (dat);/*/void WriteOneChar(unsigned char dat) /
38、写一个字节 unsigned char i = 0;for (i = 8; i > 0; i-) DQ = 0; DQ = dat&0x01; Delay(5); DQ = 1; dat>>=1; /*/void Read_SPEED(void)/ 读取转速 Init_DS18B20(); if(presence=1) beep(); flash=1; / DS不正常,蜂鸣器报警 else flash=0;WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动转速转换Init_DS18B20();WriteOn
39、eChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0xBE); / 读取转速寄存器temp_data0 = ReadOneChar(); / 转速低8位temp_data1 = ReadOneChar(); / 转速高8位 /*/void Disp_SPEED()/ 显示转速 unsigned char n=0; display4=temp_data0&0x0f; display0=ditabdisplay4; / 查表得小数位的值 display4=(temp_data0&0xf0)>>4)|(temp_data1&0x0f)&l
40、t;<4); display3=display4/100; display1=display4%100; display2=display1/10; display1=display1%10; if(!display3) / 高位为0,不显示 display3=0x0a; if(!display2) / 次高位为0,不显示 display2=0x0a; P0 = 0xc6; / 显示 C P2 = 0xfe; / 位选线为P2.7口,LED为共阳极显示,当位选线为低电平时选通 Delay(300); P0 = 0x9c; / 显示 ° P2 = 0xfd; / 选中P2.6口
41、Delay(300); P0 =LEDDatadisplay0 ; / 显示小数位 P2 = 0xfb; /p2.5 Delay(300); P0 =LEDData1display1; / 显示个位 P2 = 0xf7; Delay(300); P0 =LEDDatadisplay2; / 显示十位 P2 = 0xef; Delay(300); P0 =LEDDatadisplay3; / 显示百位 P2 = 0xdf; Delay(300); P2 = 0xff; / 关闭显示/*/void beep(void) unsigned char i; for (i=0;i<100;i+)
42、Delay(60); BEEP=!BEEP; / BEEP取反 BEEP=1; / 关闭蜂鸣器/*/void init(void) EA = 1; / "中断总允许" TMOD = 0x20; / 定时器1工作于8位自动重载模式, 用于产生波特率 TH1=(unsigned char)(256 - (XTAL / (32L * 12L * baudrate); TL1=(unsigned char)(256 - (XTAL / (32L * 12L * baudrate); / 定时器0赋初值 SCON = 0x50; / 设定串行口工作方式 PCON &= 0x0
43、0; / 波特率不倍增 TR1 = 1; / 启动定时器1 IE = 0x00; / 禁止任何中断/*/void send_char(void)/ 传送十六位的转速数据,低位在前 unsigned i=0; while (i < 2) SBUF = temp_datai; while (!TI); / 等特数据传送 TI = 0; / 清除数据传送标志 i+; /*/void main(void) uchar receive; init(); while(1) Read_SPEED(); / 读取转速 if (flash=0) Disp_SPEED(); / 显示转速 else P2 =
44、 0x00 ; / DQ不正常,关闭显示 if (RI) / 是否有数据到来 RI = 0; receive = SBUF; if (receive = 49) / 是否开始采集转速 send_char(); / 传送采集的转速 3.3电机控制程序设计说明(MSB)结束(0x50)、数据域(右电机参数(1字节),左电机参数(1字节)、命令(1字节)、地址(1字节)、校验码(2字节)(LSB)例:0x50、数据(N字节)、0x34、0x10、0xbd(高位)、0xc0(低位)0xbd、0xc0:CRC码010x10:单片机地址20x34:显示电机状态与PWM参数命令3命令集:0x36:显示电机速
45、度数据域:左电机参数(0x02正转,0x04反转,0x00停止)40x50:告诉单片机数据已经传输完毕了6程序如下:Dim ga_byRcvBuf(0 To 15) As Byte '接收数据存储器Dim gi_byRcvCount As Byte '接收计数器,也是下标Dim g_ucRcvCrcLow As ByteDim g_ucRcvCrcHigh As ByteDim g_uCrcLow As ByteDim g_uCrcHigh As BytePublic gc_BufCount As BytePrivate Sub Command1_Click(Index As
46、Integer) If MSComm1.PortOpen = False Then On Error GoTotOpenCom If Combo1.Text = "COM1" Then MSComm1 mPort = 1 ElseIf Combo1.Text = "COM2" Then MSComm1 mPort = 2 ElseIf Combo1.Text = "COM3" Then MSComm1 mPort = 3 ElseIf Combo1.Text = "COM4" Then MSComm1 mPort
47、= 4 ElseIf Combo1.Text = "COM5" Then MSComm1 mPort = 5 ElseIf Combo1.Text = "COM6" Then MSComm1 mPort = 6 ElseIf Combo1.Text = "COM7" Then MSComm1 mPort = 7 End If MSComm1.PortOpen = True MsgBox ("串口打开完毕!") Else MsgBox ("串口已打开!")cntOpenCom: MsgBox (&
48、quot;错误描述:" & Err.Description) End IfEnd SubPrivate Sub Command2_Click() If MSComm1.PortOpen = False Then MsgBox ("串口未打开!") Else MSComm1.PortOpen = False MsgBox ("串口关闭成功!") End IfEnd Sub'可用CRC校验码Function bCRC(data() As Byte, le As Byte) As Long'数组指针计数器 Dim mc_bPt
49、r As Byte'unsigned char i; Dim i As Byte'unsigned int crc=0; Dim crc As Long LSres = le crc = 0 mc_bPtr = 0 '<-CRC计算入口 Do While (le <> 0) le = le - 1'for(i=0x80; i!=0; i/=2) Dim c As Byte '模拟i=0x80 c = &H80 For i = 0 To 7 If (crc And &H8000) <> 0) Then crc = crc And &H7FFF crc = CLng(crc) * 2 crc = C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国乳酸行业投资价值研究报告
- 2025年中国朝天辣椒粉市场调查研究报告
- 2025年中国数码仪表市场调查研究报告
- 襄阳科技职业学院《信息可视化》2023-2024学年第二学期期末试卷
- 肇庆市实验中学高中生物:伴性遗传第课时的集体备课教案模版
- 2025至2031年中国继电耦合型接线端子排行业投资前景及策略咨询研究报告
- 新疆体育职业技术学院《汽车专业英语》2023-2024学年第二学期期末试卷
- 2025-2030年中国ORC发电行业发展深度测评及投资可行性预测研究报告
- 新疆医科大学《英语视听二》2023-2024学年第二学期期末试卷
- 信阳艺术职业学院《职业定位发展》2023-2024学年第一学期期末试卷
- 综合管理部门车辆安全生产职责模版(2篇)
- 《西游记》讲解学习
- DB33 766-2015 工业气体空分产品单位综合电耗限额及计算方法
- 办公楼拆除施工方案
- 江苏省苏州市(2024年-2025年小学六年级语文)部编版小升初真题(下学期)试卷及答案
- 职业技能鉴定培训方案
- 电力系统继电保护课后习题解析(第二版)-张保会-尹项根主编
- 《针刺伤预防与处理》团体标准解读与实践 课件
- 手铐的课件教学课件
- 体育场馆消防设施提升施工方案
- 【工程法规】王欣 教材精讲班课件 40-第6章-6.5-施工生产安全事故的应急救援和调查处理-6.6-政府主管部门安全生产监督管理
评论
0/150
提交评论