模块实现的硬件是TND8688的LEDKEYBOARDUNIT2时钟运算模块该模块的主要功能是对时分秒的运算并把运算出的最终结果存到事先已经开辟的内存单元里以便显示模块即时地显示出来该模块可以细分为秒定时模块和运
算模块秒定时模块负责提供中断信号由于CPU运算模块中的指令消耗一定的时间所以中断信号最好通过硬件来实现可以选择TND8688实验箱中的8253定时计数器来提供但又因为8253所能提供的信号的周期时毫秒级的因此必须通过软件的方法在运算模块中设置一个统计中断次数的变量并且这一变量必须事先在内存里开辟存储单元中断信号是8253的通道2工作方式为方式3时产生一个40ms的脉冲信号运算模块负责时分秒的计算该模块主要通过8259的IRQ7号中断来实现首先将秒
定时模块提供的中断信号为8259的IRQ7中断请求信号但由于每40ms一次中断请求所以在中断服务程序必须利用已申请内存单元cou
t来统计中断请求的次数只有当
cou
t的值为25时才能让秒单元内的数值加1另外在中断服务程序里必须对秒分和时的单元内的数值进行判断当秒加到60时分必须加1秒清零当分加到60时时加1分清零当时加到24啊直接清零3对时模块该模块主要功能是修改时分内存单元的数值在对时的时候秒应停止不变并且在对分进行调整的时时单元内的数值不变由以上分析可见对时分的调整用两个优先级高于IRQ7的中断来完成因此可以用8259的IRQ2中断来实现两个中断源的中断请求信号只需直接接在两个按键即可起到对时作用22设计电路图
电子时钟的完整电路图如下
f23
原理说明
电子时钟主要由8259A中断控制器8253定时计数器8255A接口芯片LED数码显示管和两个按键组成主要用8259A的IRQ7的中断服务程序完成秒分时的运算即计时功能IRQ6的中断服务程序完成调时调分功能8253用来产生50ms的脉冲信号作为IRQ7的中断请求信号按键KK1和KK2分别作为IRQ2和IRQ6的中断请求信号按键KK1启动关闭对时功能它决定是否屏蔽IRQ7和IRQ6中断源8255A负责将内存里的时位和分位值输出到数码管
24
元件功能说明
8259A的主要功能的主要功能1每片8259A可管理8级优先级中断源通过开关最多可管理64级优先权的中断源2对任何一个级别的中断源都可单独进行屏蔽使该级中断请求暂时被挂起直到取消屏蔽时
f为止3能向CPU提供可编程的标识码4具有多种中断优先权管理方式有完全嵌套方式自动循环方式特殊循环方式特殊屏蔽方式和查询方式五种这些管理方式均可通过程序动态r