您的位置:首页 > 其它

我与单片机的日子——(四)

2015-09-25 12:27 169 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/q312828381/article/details/48731811

中断简单涉水

       这个隔的时间有点长了,这次接触的中断的概念难度确实稍微有点高,单是运行方式就研究了好久。其实最后我也没有搞定,不过是终于会编写定时器0的工作方式1而已。然后再总结一下我所学到的。
       1.中断概念
       中断就是在一定条件下,主进程暂停,然后执行interrupt工作组(应该是这么说吧)。其中有个多线程,就是计数器是单独的线程,和主程序一起进行。就我所学到的来看,定时计数器的工作原理是:有一个储存空间,每13个时钟周期,储存空间的数值加一,加满之后向一个特殊的位置进一,那个位置一旦为高电平,马上CPU中断。
       2.基本电路
       定时计数器的电路特别复杂,我真的不能分析出来,锁以也只能稍微详细的说一说内部工作情况。首先对于定时寄存器,有中断控制寄存器,专门给控制定时器的可用与否,EA为高,ET0为高。但是光可用还不够,还有专门确定定时器工作方式的工作方式寄存器TMOD,如果是我所说的工作方式,那就给它赋值0x01。给TR0为高电平,则定时器开启。这个时候TH0于TL0开始计数。当然,我们可以人为设置初始数值,这样可以控制时间。比如我要计时1s,因为大概是0.000001s计数一次(可以计算),则要计数1000000个数,但是TH0和TL0最多一次计数65536个数,解决的办法计时可以分100次计数,每次记录10000个数,则可以计算赋的初值为(THO=(65536-10000)/256,TL0=(65536-10000)%256).定时器开始工作后,当中断开始,就进入中断服务。一般中断服务有特别的函数,函数后面带后缀interrupt 1.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: