一、设计任务
綜合中断、定时器、LED数码管等完成一精度为0.01秒的秒表。
相关要求:
1.输入:K1(启动/暂停)、K2(清零);(利用外部中断)
2.输出:4为数码管(显示格式:06.78)
二、系统框图
三、程序设计分析
(一)流程图
(二)程序分析:
1.定时器:系统中所采用的晶振频率是12MHz,其机器周期=1us,秒表的精度是0.01s=1us*10000,给定时器设定一个初值(65536-10000=55536)采用十六进制可得出D8F0即TH0=0xd8;TL0=0xf0。若计数小于6000则一直加1,若计数等于6000时则重新计数。
2.综合中断:根据题目要求,秒表应具有两个按键,那么两个按键分别对应两个外部中断,分别使当按下按键后中断请求源发出中断请求,使程序执行中断处理程序,当中断服务请求处理完后再回到原来被中止的程序之处,继续执行。
3.按键控制:根据题目要求,秒表应具有两个按键,按键一控制秒表的启动或暂停,按键二控制秒表的清零。按键一利用外部中断,当按下按键一时中断请求源发出中断请求,程序中将定时器0关闭,计数器则停止工作;当按下按键一之后按下按键二,将定时器取反,则计数器重新工作以此达到清零的功能。
4.数码管显示:将计数器的计数结果通过将4位数字分解,通过一个循环(因为有四位数所以循环4次)先选位码以此决定数字显示在哪一个数码管中,再根据分解结果选取该数码管所需要显示的段码;最后再加一个延时函数以此让数字在数码管上显示的时候让我们的眼睛所能观察到。
四、电路原理图
作者简介:陈艺元(1998.07——)女,汉族,广西桂林,广西师范大学本科在读