单片机电机测试系统的研制-上位机监控系统设计(5)

2019-02-15 16:06

武汉工程大学毕业设计(论文)说明书

P0 =LEDData[display[0]] ; // 显示小数位 P2 = 0xfb; //p2.5 Delay(300);

P0 =LEDData1[display[1]]; // 显示个位 P2 = 0xf7; Delay(300);

P0 =LEDData[display[2]]; // 显示十位 P2 = 0xef; Delay(300);

P0 =LEDData[display[3]]; // 显示百位 P2 = 0xdf; Delay(300);

P2 = 0xff; // 关闭显示 }

/*********************************************************/ void beep(void) {

unsigned char i; for (i=0;i<100;i++) {

Delay(60);

BEEP=!BEEP; // BEEP取反 }

BEEP=1; // 关闭蜂鸣器

18

武汉工程大学毕业设计(论文)说明书

}

/*********************************************************/ 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 &= 0x00; // 波特率不倍增 TR1 = 1; // 启动定时器1 IE = 0x00; // 禁止任何中断 }

/*********************************************************/ void send_char(void)

// 传送十六位的转速数据,低位在前 {

unsigned i=0; while (i < 2) {

SBUF = temp_data[i];

while (!TI); // 等特数据传送 TI = 0; // 清除数据传送标志 i++; } }

19

武汉工程大学毕业设计(论文)说明书

/*********************************************************/ void main(void) {

uchar receive; init(); while(1) {

Read_SPEED(); if (flash==0) {

Disp_SPEED(); } else {

P2 = 0x00 ; }

if (RI) { RI = 0; receive = SBUF;

if (receive == 49) {

send_char(); } } } } // 读取转速 // 显示转速 // DQ不正常,关闭显示 // 是否有数据到来 // 是否开始采集转速 // 传送采集的转速 20

武汉工程大学毕业设计(论文)说明书

3.3电机控制程序设计

说明(MSB)结束(0x50)、数据域(右电机参数(1字节),左电机参数(1字节))、命令(1字节)、地址(1字节)、校验码(2字节)(LSB)

例:0x50、数据(N字节)、0x34、0x10、0xbd(高位)、0xc0(低位) 0xbd、0xc0:CRC码[0][1] 0x10:单片机地址[2]

0x34:显示电机状态及PWM参数命令[3] 命令集:

0x36:显示电机速度 数据域:

左电机参数(0x02正转,0x04反转,0x00停止)[4] 0x50:告诉单片机数据已经传输完毕了[6] 程序如下:

Dim ga_byRcvBuf(0 To 15) As Byte ' 接收数据存储器 Dim gi_byRcvCount As Byte '接收计数器,也是下标 Dim g_ucRcvCrcLow As Byte Dim g_ucRcvCrcHigh As Byte Dim g_uCrcLow As Byte Dim g_uCrcHigh As Byte Public gc_BufCount As Byte

Private Sub Command1_Click(Index As Integer) If MSComm1.PortOpen = False Then On Error GoTo cntOpenCom If Combo1.Text = \ MSComm1.CommPort = 1 ElseIf Combo1.Text = \ MSComm1.CommPort = 2 ElseIf Combo1.Text = \

21

武汉工程大学毕业设计(论文)说明书

MSComm1.CommPort = 3 ElseIf Combo1.Text = \ MSComm1.CommPort = 4 ElseIf Combo1.Text = \ MSComm1.CommPort = 5 ElseIf Combo1.Text = \ MSComm1.CommPort = 6 ElseIf Combo1.Text = \ MSComm1.CommPort = 7 End If

MSComm1.PortOpen = True MsgBox (\串口打开完毕!\ Else

MsgBox (\串口已打开!\cntOpenCom:

MsgBox (\错误描述:\ End If End Sub

Private Sub Command2_Click()

If MSComm1.PortOpen = False Then MsgBox (\串口未打开!\ Else

MSComm1.PortOpen = False MsgBox (\串口关闭成功!\ End If End Sub

'可用CRC校验码

Function bCRC(data() As Byte, le As Byte) As Long

22


单片机电机测试系统的研制-上位机监控系统设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:安全检查表应用培训计划和内容 - 图文

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

马上注册会员

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