回
图51
图52
考虑到实用性在该电子钟的设计中修改定时或调整时间时采用了闪烁而
且以定时20组闹钟。在编程上首先进行了初始化定义了程序的入口地址以及中
断的入口地址在主程序的开始定义了一组固定单元用来存储计数的秒分时以及定时时间的序号等。在显示程序段中主要进行了闪烁的处理采用定时器中断置标志位再与位
10
f某某大学本科课程设计报告
选相互结合的方法来控制调时或定时中的闪烁。时分秒显示则是用了软件译码查表的方式再用了一段固定的程序段进行进制转化。初始化之后用中断方式对其计数计数的同时采用了定时器比较的方法比较当前计数时间与定时时间是否相等若相等则将闹铃标志位置数。由于定义了定时闹钟组在这里采用中断组次每中断一次比较一组闹钟避免了一次比较中断时间过长影响下次中断时间。显示之后查询闹铃标志位是否与前面所置数相等若相等则响铃。为了避免响铃影响显示采用了每显示几屏以后在显示程序中出现脉冲驱动喇叭不会影响显示。之后用查询方式对按键进行判断若有键按下则进行软件延时消抖避免了抖动引起的干扰执行相应的定时选时或调时程序段。对当前时间或定时时间修改后又返回到最初的显示程序段如此循环下去。
11
f某某大学本科课程设计报告
4Proteus软件仿真
本次课程设计所采用的程序调试软件为wave6000集成调试软件,所采用的仿真软件为protus6professio
al软件。本次试验的效果图如下所示:
RP1
987654321RESPACK8101112131415161739383736353433322122232425262728
LS1U1
AT89C51SPEAKER
C1
45pXTAL1XTAL2PSENALEEAP10P11P12P13P14P15P16P1712345678RST
X1
CRYSTAL
19
18
9
C2
45p
293031
P30RXDP31TXDP32INT0P33INT1P34T0P35T1P36WRP37RD
P00AD0P01AD1P02AD2P03AD3P04AD4P05AD5P06AD6P07AD7
P20A8P21A9P22A10P23A11P24A12P25A13P26A14P27A15
K4K3K2C3K1
100p
R1
10k
性能及误差分析该电子钟有三个按键K1K2和K3键。按K1键进行校时可以分别对时及分进行单独校时使其校正到标准时间校时时需要校正哪一位哪一位就闪烁。按K2键是对闪烁位进行加一或返回的操作。按K3键调整定时时间和定时组数需要调整哪一位哪一位就闪烁该电子钟最多可定时20组闹钟。经测试该电子钟在一天的累计误差约为01秒。该电子钟的误差主要由晶振自身的误差所造成晶振的误差约为00001~0000001。在软件的编程过程中所产生的误差比较小在重装初值的过程中大概需要约8个机器周期但在程序开始对定时器赋初值r