件“看门狗”电路。
1.实现硬件“看门狗”电路方案较多,目前采用较多的方案有以下几种: 2.采用微处理器监控器;
3.采用单稳态电路来实现“看门狗”,单稳定电路可采用74LS123; 4.采用内带震荡器的记数芯片。
5.本设计采用第三种方案实现“看门狗”电路,下面就对该方案作以介绍。 4.2.3.1 基本原理
CD4060 是带震荡器的14位计数器,由该芯片构成的看门狗电路如图4.2看门狗电路图所示。
4060记数频率由RT和CT决定。设实际的程序所需工作周期为T,分频器记满时间为T’,当T’>T 且系统正常工作时,程序每隔T对4060进行复位一次,分频且永无记满输出信号。如系统工作不正常(如程序跑飞、死循环等),4060接收不到复位信号,分频器记满输出一脉冲号使CPU复位。 4.2.3.2 参数选择
4060的振荡频率f由 RT 、CT决定。Rs用于改善振荡器的稳定性,Rs 要大于RT。一般取Rs=10RT,且RT>1kΩ,CT≥100pF。如果Rs=450Ω,RT=45Ω,CT=1uF,则f=10HZ。4060的振荡频率和Qi(i=6,7,8,9,10,12,13,14)的选择要根据情况确定。 4.2.3.3 几个原则
看门狗电路必须由硬件逻辑组成,不宜由可编程计数器充当,因为CPU失控后,可能会修改可编程器件参数,使看门狗失效。
4060的RST线上阻容组成的微分电路很重要,因为扫描输入信号是CPU产生的正脉冲,若此信号变“1”后,由于干扰,程序乱飞,微分电路只能让上跳沿通过,不会封死4060,看门狗仍能计数起作用。若没有微分电路,扫描输入信号上的“1”状态封死4060,使之不能记数,看门狗不起作用。
图4-2看门狗电路图
CPU必须在正确完成所有工作后才能发扫描输入信号,且程序中发扫描信号的地方不
23
能太多。否则,正好在哪里有死循环,看门狗就不产生记满输出信号,不能重新启动CPU。
4.3 程序设计
软件设计采用模块化设计,思路清晰,也便于查找问题。
4.3.1 红外解码
4.3.1.1 UPD6121G的编码
UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。芯片厂商把用户识别码固定为十六进制的一组数;后16位为8位操作码(功能码)及其反码。UPD6121G最多额128种不同组合的编码。遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间。当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。图4-3为红外遥控编码图(a)和红外遥控信号周期性波形(b)。
图4-3(a)红外遥控解码图
图4-3(b)红外遥控信号周期性波形
根据UPD6121的编码规则,我门可以确定解码的规则。解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,如图4-4所示,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均可。
24
图4-4 红外遥控码的“0”和“1”
由于红外接收头得到的是反向的发射码,所以当我们从接收头得到红外码之后,还需要对其重新进行排序,以得到正确的红外控制码。
25
总 结
本次设计,综合了大学期间所学的知识,让我在毕业前得到了一次知识的巩固和一次自我检查的机会,通过本次设计,我的硬件设计能力,编程能力都得到了提升。
本次设计的硬件方面:虽然单片机能自行驱动显示器,但是考虑到单片机系统资源有限,直接驱动的话可能会导致负载过高,执行效率下降,所以我们加入了显示驱动芯片,节约单片机资源。超声传感器电路部分额外加入了单片机扩展了此模块功能,并且是的输出信号有规律可循,便于80C51单片机在之后的运行中检测四周电路,减小80C51负担,同时大大提高了电动车载应对障碍物时候的反应时间。
软件方面:因为传感器在检测到某物体时,输出信号会发生特定变化,利用这种变化规律,让单片机只对此类规律的信号有所反应,大大减少了处理数据,算法,从而加快了系统的反应速度,大量使用类似于JB/JNB命令对相应端口进行查询,并且简化程序代码,避免使用繁琐复杂的终端控制,确保系统的高精确度。另外,整个运行过程中通过采用等分时端口查询思想,只要分时足够小,电动车就会对外界因素有充足的反映空间,即达到了接近实时的信号检测处理效果,又可通过最终等分时数目准确计算出行驶距离,一举两得。
26
附 录
附录1:程序清单
bcm equ 30h ;厘米位
sec equ 31h ;秒位 bdm equ 32h ;分米位 msec equ 33h ;分秒位 meter equ 34h ;米位 min equ 35h ;分位 point equ 36h ;小数点位 tenmeter equ 37h ;十米位 tenmin equ 38h ;十分位
speed equ 39h ;速度控制 timerk equ 3ah ;记时开始
final equ 3bh zhodu equ 3ch zhon equ 3eh plus equ 3fh carryb equ 40h bhcs equ 41h
dpan equ 42h minout equ 43h minin equ 44h judge equ 45h
fenmc equ 51h org 0000h ajmp main org 000bh ajmp st0 org 001bh ajmp st1 org 0100h
27