比较,计算出增量△P并将之转换成对应的D/A输出数字量,在原来输出电压的基础上减去增量,迫使电机转速降下来,当测出的△P近似为零时停止调节,这样可将电机转速始终控制在允许的范围内。 3 硬件电路的实现 实际工作中由于伺服系统工作电流较大,对于微机干扰较大,故在硬件电路设计时应考虑到系统的隔离和干扰问题。由于选用的是串行D/A。信号的传输只用三根线,故采取隔离措施相对容易些。而光电编码器工作也容易受到干扰,因此除了正常的接地外,还要将光电编码器输出线中的地线可靠接地。光电编码器的A线做脉冲检测用,Z线作计数器用,速度输入用键盘输入数字,显示用液晶显示器。 4 软件 根据电路的连接情况,采用汇编语言编写了整个程序。现将部分阐述如下: 4. 1初始化 初始化内容包括定时器、中断系统及个单元内容的初始化 HSTART:MOV SP,#0E0H ;设置堆栈顶地址 MOV IE,#90H ;开中断及串行口中断允许 MOV IP,#5 ;将定时器1和串口中断设置高优先权 MOV TCON,#5 ;外中断0和外中断1全部为边沿触发方式 MOV TMOD,#21H ;定时器0为方式1定时器2为方式2 MOV PCON,#0 ;SMOD=0 MOV SCON,#0D8H ;串口设置成方式3,TB8=1,REN=1 MOV TH1,#0FDH ;设定定时器1重装时间常数 MOV TL1,#0FDH CLR ET1 SETB REN SETB ES MOV TH0,#2CH MOV TL0,#0 SETB TR0 SETB TR1 …… 4. 2定时器0中断子程序 CLOCK0:CLR ET0 ;保护现场指令 MOV TH0,#2CH ;重置时间常数 MOV TL0,#0 INC QSE0 MOV A,#14H ;判别1秒钟定时到否 CJNE A,QSE0,HCLZ MOV QSE0,#0 ;计数器清零 MOV A,QSEC ADD A,#1 ;秒单元加1 DA A MOV QSEC,A MOV A,#5 CJNE A,QSEC,HCLZ ;判5秒钟到否 MOV QSEC,#0 ;秒单元清零 CLR EX0 ;关中断0停止计数 HCLZ: 恢复现场指令 SETB ET0 RETI ;中断返回 4.3中断0计数程序 POST1:CLR EX0 保护现场指令 MOV A,QLLD ;计数器低位加1 ADD A,#1 MOV QLLD,A MOV A,QLLD+1 ADDC A,#0 MOV QLLD+1,A 恢复现场指令 SETB EX0 RETI 4. 4处理程序 处理程序包括加减运算程序、数字转换程序、D/A输出程序、实时报警程序、数据采集程序等。
|