基于单片机的选频表自动变步长的设计实现

时间:2023-03-19 23:00:42 计算机毕业论文 我要投稿
  • 相关推荐

基于单片机的选频表自动变步长的设计实现

唐如松(合肥工业大学计算机与信息学院)

摘 要:关键词: 

在小规模话路、基群、超群载波通讯中广泛使用电频振荡器和选频表来测量载波通讯设备与线路的电平、增益、衰减、防卫度等特性。现在振荡器和选频表已经基本上利用数字化器件产生频率,得到高精度的正弦波信号,再对其进行必要的处理送给输出或乘法器。但由于传统的仪器采取的是模拟器件产生频率,并采取转动转轮来改变频率达到使用目的,为了满足传统用户的使用习惯和要求,故必须在新的数字化设备上实现此功能。现在有的数字化设备上已经实现此功能,但转轮必须配合步长键来使用,即用户只能先设置合适的步长,然后转动转轮才能达到合适的变化量,在大频率的调节当中用户觉得很不方便, 我们在设计中实现了转动转轮时能够根据转轮的转动速度自动调节步长功能:速度越快,频率变化的步长越大;速度越慢,则频率变化的步长越小。这样在调节频率时,须大范围变化时可快速转动转轮,而细调时则慢慢的转动转轮,达到微调效果。在实际的使用中证明:此种调节方法比较符合操作人员的习惯,因此具有较好的使用价值。

此方法采取发射接收对管加转轮实现变步长,如图1所示,电路的采样部分由一个圆形的扇叶和两组红外发射接收对管组成(扇叶按图2所示做成,空隙和叶片的宽度为1:1)。由于一组红外发射接收对管检测扇叶转动时,只能检测出轮轮是否在转动,而无法判断出它的转向,所以必须采用两组红外发射接收对管。令两组红外发射接收对管分别为A和B(A和B两点间的距离要保证小于叶片或空隙的宽度),当红外发射接受对管工作时,若对管之间是空隙(无叶片),则接收管的输出为”0”, 若对管之间是叶片,则接收管的输出为“1”。

现在分析如何判断出转轮的转向。如图2所示,在任意时刻,A和B的输出只存在四种状态: 0 0 , 0 1 , 1 0 , 1 1。以A和B处于 1 1状态为例,如果转轮正转时,即扇叶顺时针转动,A和B的下一个状态必然为 1 0 ;如果转轮倒转时,扇叶逆时针转动,A和B的下一个状态必然为0 1 。由此我们可判断出转轮的转向。在正常工作时,先检测A和B的状态,并将该状态保存下来,然后一直检测A和B的状态,一旦状态发生变化即转轮开始转动,读出A和B的状态,按表中所示的变化规律,得出转轮的转向,从而进行相应的处理,然后返回,刷新状态保存,并继续检测,即在转动过程中不断检测出A和B的状态,更新状态保存,并根据下一个状态不断进行转向判断。由于通常单片机的指令执行时间只有us数量级, 所以A和B的状态一旦发生变化时,立刻就会被检测出来,因此状态变化情况都被包括在表1中,而不会出现从1 1变化到0 0之类情况。实践当中,我们采用AMD公司的PIC16C74A单片机,使用4.000MHZ的晶振,指令的执行时间为1us,检测的状态变化情况都如表1所示,没有出现异常现象。

状态变化表

下面简介如何自动判断步长,这主要由单片机的软件实现:当A和B的状态发生变化时,记录下来从一状态变化到另一状态所需的时间,设定一定的时间门限值,状态变化时间越短,转轮转动速度越快,步长越大;相反,状态变化时间越长,转轮转动速度越慢,步长越小。根据状态变化所需的时间,判断出属于哪一类步长,调用相应处理即可达到自动变步长的效果。在具体的实现过程中,从开始读A和B的状态并保存状态时开始启动单片机的内部计时器,一旦判断出A和B的状态发生变化时,关断计数器,读出计数器的值,算出所需的时间,然后由此时间判断出在哪一个门限值之间,从而设置正确的步长,达到自动变步长的目的。为了使单片机尽可能地把时间花在检测转轮的变化上,所以在内部计数器的设置上我们采取分频数选大一点的措施,即执行128条指令时内部计数器中断一次。图3给出程序的框图。

图 3

在实际产品中,也有采用直流电机来实现变步长功能的方法。对于永磁式直流电机而言,当转动电动机的转子时,电动机的线圈中会流过一定的电流,表现在电动机的接线端口上就有一定的电压,当电动机的转子正转时,电机输出为正

【基于单片机的选频表自动变步长的设计实现】相关文章:

基于minigui的网真机界面的实现08-05

都市频道制作网的设计与实现05-29

基于dsp三相变流器滑模变结构控制(c)06-03

探讨基于多种通信方式并存的配网自动化通信系统06-01

基于web的异地并行设计与制造系统研究06-02

基于胜任力的企业个体绩效管理流程设计06-03

基于CS管理的房地产企业开发设计06-04

基于PLC的断路器型式试验系统设计03-10

基于工业机器人的自动化生产技术研究论文04-14

城市旅游网站的设计与实现论文(精选6篇)05-07