介绍一种高精度位置环系统
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输出程序、实时报警程序、数据采集程序等。