按关键词阅读: 设计 课程设计 电子 启动 微机 任意 接口 停止 秒表
20、高的中断请求 , 这是 , CPU就暂停终止对当前优先级较低的中断源的服务 , 转去响应优先级比它高的中断请求 , 并为其服务 。
待服务结束 , 再继续执行原来较低级的中断服务程序 。
而当CPU为级别高的终端服务程序服务时 , 如果级别低的中断发出中断请求 , 此时CPU是不会响应的 , 所以为了避免开始和暂停两个按键中的一个出现没有响应的情况 , 在进行程序编辑时要注意对中断的使用 , 避免出现中断的嵌套 , 合理分配中断对本设计的实现是至关重要的 。
另外由于数字式电子秒表的最小精度位1ms , 属于高精度电子秒表 。
定时器T0的定时周期也为1ms , 为了使电子秒表暂停键按下后CPU能马上去响应中断程序 , 必须将暂停的外部中断级别高于定时计数器的中断 。
21、级别 。
避免出现CPU执行完定时溢出中断程序后再响应外部中断程序 , 影响计时精度 。
数字式秒表中的两个按键采用了中断实现功能 。
开始采用外部中断INT0 , 暂停采用外部中断INT1 。
另外程序中还用到了定时/计数器0溢出中断进行计时 。
依据设计要求 , 暂停的外部中断INT1中断级别最高 , 计时的定时/计数器0溢出中断次之 , 开始的外部中断INT0级别最低 。
(1)外部中断0服务程序:外部中断0服务程序结合外部P3.2停止键实现数字电子秒表的停止功能 , 具体流程图如图5-2 。
当按下P3.2停止键按下向CPU发出外部中断请求 , CPU转向外部中断0服务程序执行 , 停止定时器 。
另外将当前显示的时间进行一次存储 , 存进中间寄存区 。
。
22、最后中断返回 。
图5-2 外部中断0服务程序流程图(2)外部中断1服务程序:外部中断1服务程序结合外部P3.3停止键实现数字电子秒表的启动功能 , 具体流程图如图5-3 。
当按下P3.3启动键按下向CPU发出外部中断请求 , CPU转向外部中断1服务程序执行 , 启动定时器 。
另外进行二次存储 , 将之前进行一次存储的数码管显示数据存入最终缓存区 , 避免下次计时暂停时一次存储将数据掩盖 , 从而起到保护数据的作用 。
二次存储后就中断返回 。
图5-3 外部中断1服务程序流程图(3)定时中断服务程序当定时/计数器T0器溢出后 , 向CPU发出中断请求信号 。
CPU跳转到定时中断程序执行 , 具体流程如图5-4 。
定时中断程序是一个进位程序 ,。
23、主要负责对1ms的加一 。
1ms位没有满十就跳出中断程序 , 返回显示程序 。
当1ms位满十后就对1ms位清零 , 向10ms位加一 , 同时检测10ms位是否满十 , 没有满十就跳出中断程序 , 返回显示程序 。
如果满十就向100ms位加一 , 依次类推 , 最终达到99.99秒后归零 , 从零开始再次计时 。
定时/计数器T0工作在方式0下 , TH0和TL0组成一个13位的二进制数计数器 。
单片机开机或复位时 , 它的值为00H , 当T0启动后 , 从第一个输入脉冲开始计时 , 每来一个脉冲计数加一 , 即从0000000000000开始计数到1111111111111 , 再计数一个脉冲时TH0和TL0组成的13位计数器将会从13个1变成13个0 , 并产生 。
24、溢出 , 溢出位将被送到TF0标志位 , 通过溢出标志产生溢出中断请求 。
显然 , T0定时器在方式0下引起一次中断所允许计数的最多脉冲个数为213 个 。
但如果定时计数器如果每次都固定从0开始计数 , 到计满后 , 再向CPU发出溢出中断请求信号那是毫无意义的 。
为了使定时计数器在规定的计数脉冲个数字之后(此时应小于213 个脉冲) , 向CPU发出溢出中断请求 , 可采取预先向TH0和TL0中放入一个初值X的方法 , 使计数器以X值为起始值开始计数 , 即X+1 , X+2 , 直至计数器计满 , 从1全变为0 。
设需要计数的脉冲个数为Y , 则有:X+Y=213 在定时方式下:定时时间间隔位t=(213X)*振荡周期*12现在本设计要求1ms实现 。
25、一次中断 , 选择定时器T0工作在方式0 。
所以需要根据以上条件计算出T0的初值 。
设T0的初值为X , 则(213X)*12/12*106 =1*10-3 转换位十六进制数X=7192=1110000011000B即TH0=0E0H(取X的高8位)TL0=18H(取X的低5位)由于定时1ms只是一个理想化的时间 , 其中并没有考虑到中断后单片机执行语句所花的时间 。
虽然执行语句所花的时间很短只有即微秒 , 但积少成多 , 数字秒表一秒中要溢出中断1000次 , 积累起来误差就能达到毫秒级 , 这对于精度到达毫秒级的数字电子秒表来说是很大的误差 。
稿源:(未知)
【傻大方】网址:/a/2021/0813/0023655270.html
标题:微机|微机接口课程设计可任意启动停止的电子秒表设计( 四 )