打印

中断没有发生单片机要去液晶页面上显示其他数据怎么办?

[复制链接]
1581|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kangzj|  楼主 | 2014-12-16 21:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
中断没有发生单片机要去液晶页面上显示其他数据怎么办?
沙发
houcs| | 2014-12-16 21:38 | 只看该作者
你的中断程序是干啥的?能否详细说说

使用特权

评论回复
板凳
kangzj|  楼主 | 2014-12-16 21:39 | 只看该作者
中断程序是实现一个秒表功能,液晶显示。对于最终计时结果,此外还要有计算功

能。计算功能是放在中断里好,还是放在主程序?放在中断里不好吗?会影响计时精度

吗?

使用特权

评论回复
地板
kangzj|  楼主 | 2014-12-16 21:39 | 只看该作者
void main ()
{
   SP=0x5f;
   req=0;
   busy=1;
   TMOD=0x01;
   ET0=1;
  EA=1;
  TH0=0x3c;
   TL0=0xb0;
  TR0=1;   
   while(1);////等待中断
}

使用特权

评论回复
5
liuzaiy| | 2014-12-16 21:41 | 只看该作者
主程序那死循环没有事情做,浪费了

使用特权

评论回复
6
yinxiangh| | 2014-12-16 21:41 | 只看该作者
LED刷新程序应该在主循环里做,而不是在中断里做

单片机所有任务都应该在主循环里轮询,中断处理函数只做标志位操作就好了

使用特权

评论回复
7
kangzj|  楼主 | 2014-12-17 20:31 | 只看该作者
死循环等待时间到啊  

不死循环 有更好方法啊?查询?

使用特权

评论回复
8
pangb| | 2014-12-17 20:31 | 只看该作者
用单片机定时器实现的秒表定时,若晶振为理想器件,你这程序也会有累计误差,稍微推导一下就知道你的硬件部分用了12MHz,对12分频的51一个周期是1μs,符合人的十进制整数观,因此很多人就觉得这样计时准确,殊不知11.0592MHz、22.1184MHz这样的频率才更适合机器精确定时,因为进入中断ISR时无需重载TL0,这样便可以使额外开销造成的TL0计数不被覆盖。

使用特权

评论回复
9
chenjunt| | 2014-12-17 20:33 | 只看该作者
主程序架构一般分为强实时任务、弱实时任务、普通任务,把任务都放在中断ISR中便会影响其他中断的响应,一般不会采取这种方法。

使用特权

评论回复
10
ousj| | 2014-12-17 20:33 | 只看该作者
你将LCD显示,计算等等都放在主程序中,并额外设置个全局FLAG,中断只负责定时器重载并将该FLAG置1,随后主循环中对该FLAG轮询,若为1,进入的同时将该FLAG清0,秒计数器增1,若秒计数器的值到达20,进入“秒刷新”事件,计算并显示。

使用特权

评论回复
11
morrisk| | 2014-12-17 20:34 | 只看该作者
液晶显示部分程序放在while(1)里面

使用特权

评论回复
12
zyf部长| | 2014-12-17 20:34 | 只看该作者
我觉着只要正确处理好程序,把计算功能和显示程序放在哪里都可以的,只要把中断的指令时间计算好,是不会影响计时精度的.

另外,为什么4楼会认为1秒钟刷新一次液晶屏呢,它是秒表,不是一般的时钟哎!

使用特权

评论回复
13
小小猫咪| | 2014-12-17 20:35 | 只看该作者
这样写程序是不行的,哈哈,楼主应该是学生,中断一般是为了处理实时性任务而留的,你现在只有这么几个小任务处理都 放中断 里感觉 不出来 ,通用的做法是在中断中做标志 ,剩下的事情放到主程 序中来做

使用特权

评论回复
14
houcs| | 2014-12-17 20:36 | 只看该作者
中断程序是实现一个秒表功能,液晶显示。对于最终计时结果,此外还要有计算功

能。计算功能是放在中断里好,还是放在主程序?放在中断里不好吗?会影响计时精度

吗?

使用特权

评论回复
15
liuzaiy| | 2014-12-17 20:36 | 只看该作者
把显示程序放在中断内,这太占用资源了

使用特权

评论回复
16
liuzaiy| | 2014-12-17 20:36 | 只看该作者
一般放在while主程序内

使用特权

评论回复
17
ousj| | 2014-12-17 20:37 | 只看该作者
可以进入显示  后立即关闭中断  等显示完  打开中断

使用特权

评论回复
18
chenjunt| | 2014-12-17 20:37 | 只看该作者
中断程序最好是短一点,产生一些标志就可以了,计算还是在其他子程序比较好

使用特权

评论回复
19
liuzaiy| | 2014-12-17 20:38 | 只看该作者
中断里面可以分开时间来做不同的事件处理的

使用特权

评论回复
20
liuzaiy| | 2014-12-17 20:39 | 只看该作者
中断里不能处理太多东西

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

672

主题

7007

帖子

2

粉丝