如何在51单片机中,从点亮一个小灯中学习定时器和中断(花3分钟让你受益终身)
点亮小灯?太容易了吧!什么?初学者就可以直接上手定时器和中断吗?
答案是:是的
废话不多说,直接上干货!
序言:将抽象原理转为易懂俗语,是快速学习的好方法:开篇我先概述本文框架。
小灯点亮的逻辑原理–>什么是定时器–>什么是中断–>难易渡劫点–>最后附上代码及其详细注释
一、小灯点亮的逻辑原理
使小灯点亮的必要条件是:A点事高电平,B点是低电平。
VCC = 5v,那我们只要保证B点为低电平就可以使其点亮,也就是P1.0引脚为低电平。好了,知道小灯如何亮,那后面就是编程的事情了。
二、什么是定时器
定时器 = 计时器,一个帮你数数的工具。
如何编程:想象你要买一个计数器,你想要买什么计时器。(接下来附上专业语言)
把TMOD看做商店,目前商店里有两种时钟,一个是定时器:2:叫0x10,一个定时器2:叫0x01。既然买了,就要知道他们干嘛吧,这两个定时器可以想象只是颜色不同,那么功能是不是就时一样!是的!
把闹钟买回家后,就要计时啦。比如我们要计时1ms(毫秒),好,我们打开TL0和TH0,这两个是干嘛的呢,把TL0想象成分针,把TH0想象成时针,时针跟分针的关系是不是逢60进1,分针位位低位,时针位为高位,那么单片机里的也是这样吗,是的,TL0(LOW嘛就是低位),TH0(HITH嘛就是高位),那么我们高位和低位设定好后,就可以开始用它来计时了!
三、什么是中断
中断 = 一个闹钟机器人,机器人是什么鬼,就是他真的可以帮你做事情,比如你在看电视又在烧水,定时器时间到了,中断会马上告诉你:“”“嘿!哥们!你的水烧光了!”,然后帮你把水关了(其实是可以编程实现的)
那么如何让中断给你工作呢,那么你就要打开两个开关,一个叫总开关EA,一个叫分开关ET0。这个也好理解EA就相当于电池,控制者它的命固然叫总开关,上了点是不是还要将off挡打到on呀这就是分开关叫ET0。记住就好啦!
四、难易渡劫点
不多bb,直接上代码;难点就在于需要将函数读懂就要多看两三遍,注释打的很辛苦,希望可以读者自己用电脑打下来去感受,会收获更多!
如果有什么疑问或者我有什么不足之处,欢迎在批评区指正!
如果觉得文章写的对你的单片机入门有很大的帮助的话,欢迎转载,让更多电子爱好者加入其中!!!
(注:若身边没有单片机可以下载proteus仿真软件进行学习,在proteus遇到什么问题,也可以在评论区留言哦!)