APP下载

基于STC12C5A32S2同视机控制系统的设计

2018-04-17李会杰李俊廷任超越

长春工业大学学报 2018年1期
关键词:程序框图数码管子程序

李会杰, 李俊廷*, 任超越

(1.长春工业大学 机电工程学院, 吉林 长春 130012;2.长春工业大学 电气与电子工程学院, 吉林 长春 130012)

0 引 言

同视机又名大型弱视镜或斜视镜,是从Worth弱视镜演变过来的。同视机的主要功能是对双眼功能的检查,以及与视网膜相对应的斜视度数的测定,按照不同的诊断眼位斜视度变化规律,分析眼球的运动状况。而且能够针对患者的病情做相应的脱抑制训练、异常视网膜的矫正训练和弱视治疗。同视机是检查斜视、弱视的基本医疗设备,其主要的设计思想是运动结构能够围绕眼睛的任意方向做旋转运动,其旋转运动主要包括围绕X轴的外展和内收运动,围绕Y轴的上、下旋转运动,围绕Z轴的内旋和外旋运动。

同视机是集治疗与检测融合为一体的眼科光电仪器。它的主要检测对象是融像、立体视等双眼视觉功能和诊断主客异常视网膜对应、测量斜视角度、隐斜、后像、弱斜视等眼科疾病,是检查斜视和弱视检测必备的医疗检测仪器。其主要使用人群是儿童,针对于远视性弱视、近视性弱视、屈光不正性弱视等相对应的弱视患者。

1 同视机的总体电路设计

为了实现同视机的各项功能,总体结构主要包括单片机(STC12C5A32S2/AD/PWM)、键盘输入、数码管显示、A/D信号采集、L9110电机驱动、TIP142 LED灯驱动、蜂鸣器、RS232串口通讯和电源八部分,总体电路设计如图1所示。

图1总体电路设计

2 软件程序设计

2.1 主程序的设计

系统的软件主要采用C语言,对单片机进行编程实现各项功能。主程序对模块进行初始化,而后调用键盘、A/D转换、显示等模块,通过控制这些模块来实现同视机的各项功能。电路设计如图2所示。

2.2 中断定时子程序

文中的中断定时是每60 s执行一次函数,中断定时的程序设定首先设定初值,由于电路用的外部晶振是11.059 2的标准晶振。在转载初值时是45 872的定时为50 ms。如果想要定时60 s,在每隔600 s就让F制动加1,也就是12个50 ms,让该程序执行100周期,即F=100就是60 s。

图2 电路设计

2.3 键盘子程序

先判断所有按键中是否存在按下的按键,文中按键与单片机I/O链接方式是:采用低电平触发方式链接(当按键被按下时I/O的电平变为低电平)。也就是说,当I/O口上的数据为0FH时,这就说明了开关按键是没有被按下的,相反单片机的I/O口读到的数据并不是0FH,此时按键被按下。如果单片机判定按键被按下,就要对按键的位置进行识别,一般采用扫码识别。扫码识别过程如下:在每一列上送高电平,然后检查所有行的电平状态,如果全部呈现为高电平,说明该按键不在该行中,如果该行中存在低电平,说明按键就在该行中,那么行与列的交点就确定了按键的位置[2]。

键盘程序框图如图4所示。

图3 中断定时子程序框图

图4 键盘程序框图

2.4 显示子程序

采用数码管显示,采用方式为动态显示方式。动态驱动原理是将所有数码管的8个显示笔划“a,b,c,d,e,f,g,dp”的同名端连在一起,并且增加位选和段选,通过控制电路来控制每个数码管的COM公共端,位选的控制是通过数码管各自的I/O线来控制[3]。当单片机输出数码管的字形编码时,所有的编码会同时送到所有的数码管的端口上,但最后能显示出字形的数码管要取决于单边对位选的控制,所以,可以通过位选来控制哪一个数码来显示字形[4]。

通过对LED数码管的轮流控制来实现数码管的动态显示。在对数码管的控制中,要事先设计好每一个数码显示的时间,文中对数码显示的时间设定为2~3 ms。这样设定的原因是人类视觉的暂留现象,以及有着余晖效应的二极管,尽管没有同时点亮,只要扫描时间在一定的范围内,对于人眼是能够同时看见数码同时显示,在实验长时间的显示过程中也不会出现波动[5]。

显示程序框图如图5所示。

图5 显示程序框图

2.5 A/D数据转换子程序

STC12C5A32S2系列单片机本身含有ADC模块,所以不需要外部设计A/D和D/A转换器。该芯片的ADC是从高位到低位的顺序与单片机固定的数值进行比较,使数字在该D/A转换器最小误差范围内趋近于实际模拟值。对于文中使用的A/D转换器,具有速度高和低功耗的特点[6]。A/D转换器的工作原理是使用实验得到的模拟量与进行A/D转换的寄存器所设定的固定的数字量进行比较,最后将每一次比较的结果存储起来,并且由逐次比较器输出结果。ADC_RES和ADC_RESL分别储存A/D和D/A转换的数据结果,对于ADC 控制是由ADC_CONTR完成的。单片机中的A/D转换结束标志位ADC_FLA是程序发送中断请求和满足程序查询的一个设定值。ADC_CONTR中的CHS2_HS0控制寄存器控制着模拟通道的选择。SPEED1和SPEED0寄存器是用来控制ADC转换的速率。ADC控制寄存器中的ADC_POWER位控制是否上电位。

2.6 PWM应用子程序

本设计是通过单片机I/O口的输出来实现PWM波,通过控制单片机的输出频率能够实现PWM波的频率变换。在确定PWM波的频率为500 Hz的情况下,单片机可以控制PWM的占空比,从而实现单片机对直流电机转动速度的控制。通过PWM脉冲的占空比的改变就能随意控制大小。以固定的时间T,通过改变大小的方法,从而实现对占空比的调节。文中采用STC12C5A32S2单片机为控制核心,该芯片采用T0定时计数器的工作模式中的模式2是使用8位自动从装工作方式。在程序初始化时,TL0和TH0被装载相同的数值[7]。当TL0计数溢出时,硬件就自动将TH0中的初值装入TL0中,从而实现自动循环。这里的定时时间t是通过如下计算得到的

t=(28-T0初值)×Tosc×12

(1)

式中:Tosc----振荡周期。

把酒临风:科技创新不是一个急功近利的问题,在中国你成功之后别人可能会抄袭,但在法治国家不行,你抄袭就重罚你,谁都不能随便侵犯他人,如果真做到这一点,我们的科技创新就能产出更多成果。也就是说完善的财产保护制度,才能让大家看到技术创新暴富的可能性。

(2)

按照式(2)可以计算得到定时器最小的定时时间。设晶振频率为12 MHz。

3 结 语

基于STC12C5A32S2单片机为微处理器设计同视机的各个控制系统的电路能够稳定地控制同视机,实现围绕三个轴做各种方向旋转运动的镜筒,镜筒做各个方向的旋转运动都是围绕着眼球旋转中心的位置进行控制,实现同视机的各种功能。

经过临床使用证明,基于STC12C5A32S2单片机为微处理器设计同视机的各个控制系统工作稳定,性能优于同类产品。

参考文献:

[1]李明星.直流稳压电源的设计与制作[J].吉林工程技术师范学院学报,2006,11:22-25.

[2]王质朴,吕运鹏.MCS-51单片机原理接口及应用[M].北京:北京理工大学出版社,2015.

[3]胡汉才.单片机原理及其接口技术[M].4版.北京:清华大学出版社,2015:266-268.

[4]王琼.单片机原理及应用[M].合肥:合肥工业大学出版社,20016.

[5]周明月,徐东力.认知无线电网络远程医疗监护系统[J].长春工业大学学报,2017,38(4):328-334.

[6]王纪强,张春熹.基于大功率led的弱视治疗仪光源系统[J].研究与开发,2010(10):50-52.

[7]程方晓,王海彪,刘璐.小型无人机飞行姿态串级控制系统[J].长春工业大学学报,2017,38(5):453-458.

猜你喜欢

程序框图数码管子程序
“顺势而下”破解程序框图
微课教学设计之“数码管动态显示”
Arduino编程
算法与程序框图常考类型
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
程序框图问题的精彩交汇
程序框图题盘点
浅谈子程序在数控车编程中的应用
子程序在数控车加工槽中的应用探索