另外,设计中还要求能够对模型进行速度的控制。控制电动机的运行速度,实际上就是控制系统发出时钟脉冲的频率或着是换相的周期,即在升速过程中,使脉冲的输出频率逐渐增加;在减速过程中,使脉冲的输出频率逐渐减少。脉冲信号的频率可以用软件延时和硬件中断两种方法来确定:
①采用软件延时,一般是根据所需的时间常数来设计一个子程序。该程序包含一定的指令,设计者要对这些指令的执行时间进行精确的计算,以便确定延时时间。在每次确定前进方向之后调用一个延时子程序,待延时结束以后再执行换向,这样周而复始就可以发出一定频率的CP脉冲或换向周期。延时子程序的延时时间与换向程序所用的时间和,就是CP脉冲的周期。该方法简单,占用资源少,全部由软件实现,调用不同的子程序就可以实现不同速度的运行;但是,若占用CPU的时间过长,就不能在运行时处理其他的工作,因此它比较适合简单的控制过程。
②使用单片机中的定时器直接对系统时钟脉冲或某一固定频率的时钟脉冲进行计数,计数值由编程决定。定时器启动后,定时器从装载的初值开始对系统及其周期进行加计数。当定时器溢出时,定时器产生中断,系统转去执行定时中断子程序,将电机换向子程序放在定时中断服务程序中,定时中断一次,电机换向一次,从而实现电机的速度控制。用定时中断方式来控制电动机的速度,实际上是不断改变定时器装载值的大小。
2.3 单片机程序设计
由于单片机的各个引脚都有很多功能,因此在软件程序设计中要特别注意它们的定义和对片内特殊功能寄存器的初始化设置,以便实现相应的功能。在初始化设置完成之后,开始接收第1通道数据,同时必须使接收单片机同步接收通道数据,相隔一定时间查询第1通道当前电压A/D转换的结果是否与查询之前的结果相同。如果相同,则继续发送下一个通道的数据;反之,则立即向接收机发送该通道的通道号和相应的A/D转换结果,且在延时10 ms后准备发送下一个通道的数据。全部数据发送完毕后再重新开始新一轮的数据查询和发送。延时的目的在于给接收单片机留出一定的处理时间。图4(a)所示为发射单片机程序设计流程。