在51单片机的学习过程中,我们经常会发现中断、计数器/定时器、串口是学习单片机的难点,对于初学者来说,这几部分的内容很难理解。但是我个人觉得这几部分内容是单片机学习的重点,如果在一个学期的课堂学习或者自学中没有理解这几部分内容,那就等于还没有掌握51单片机,那更谈不上单片机的开发了,我们都知道在成品的单片机项目中,有很多是以这几部分为理论基础的,万年历是以定时器为主的,报警器是以中断为主的,联机通讯是以串口为主的。
在这几部分内容中,计数器/定时器对于初学者说很容易搞混淆,下面我将对这方面的内容结合自己的学习经验谈几点看法。
计数器和定时器的本质是相同的,他们都是对单片机中产生的脉冲进行计数,只不过计数器是单片机外部触发的脉冲,定时器是单片机内部在晶振的触发下产生的脉冲。当他们的脉冲间隔相同的时候,计数器和定时器就是一个概念。
在定时器和计数器中都有一个溢出的概念,那什么是溢出了。我们可以从一个生活小常识得到答案,当一个碗放在水龙头下接水的时候,过了一会儿,碗的水满了,就发生溢出。同样的道理,假设水龙头的水是一滴滴的往碗里滴,那么总有一滴水是导致碗中的水溢出的。在碗中溢出的水就浪费了,但是在单片机的定时计数器中溢出将导致一次中断。
在定时器计数器中,我们有个概念叫容量,就是最大计数量。
方式0是2的13次方,
方式1是2的16次方,
方式2是2的8次方,
把水滴比喻成脉冲,那么导致碗中水溢出的最后一滴水的就是定时计数器的溢出的最后一个脉冲。
在各种单片机书本中,在介绍定时计数器时都讲到一个计数初值,那什么是计数初值呢?在这里我们还是假设水滴碗。假设第一百滴水能够使碗中的水溢出,我们就知道这个碗的容量是100。
举例1,我如何才能使碗接到10滴水就溢出呢?我可以想象,如果拿一个空碗去接水,那么还是得要100滴水才能溢出,但是如果我们拿一个已经装有水的碗拿去接,那就不用100滴了。到此我们可以算出,要使10滴水让碗中的水溢出,那么碗中就先要装90滴水。在定时计数器中,这90滴水就是我们所谓的初始值。
举例2,在一个车间我们如何利用单片机对100件产品进行计件,并进行自动包装呢?我们可以利用计数器计数100,在中断中执行一个自动包装的动作就可以了。
在这里计数初值有3个,假设:
方式0:计数初值=8192(2的13次方)—100=8092。
方式1:计数初值=65536(2的16次方)—100=65436。
根据所得的初始值,再将其转换为16进制,就可以进行计数或者定时了。后面讲解定时器初值的计算方法。
上一篇:STC51单片机ISP自动下载电路设计
下一篇:51单片机外部中断0实例详解
推荐阅读最新更新时间:2024-03-16 15:44
设计资源 培训 开发板 精华推荐
- PC产业驶入创新超车道,英特尔蓉城撬动AI新引擎
- 与产业聚力共赢,英特尔举行新质生产力技术生态大会
- “新”享5G-A万兆网络前沿体验 高通携手产业伙伴亮相第二届链博会
- 英飞凌推出符合ASIL-D标准的新型汽车制动系统和电动助力转向系统三相栅极驱动器 IC
- 南芯科技推出80V升降压转换器,持续深耕工业储能市场
- 法雷奥与罗姆联合开发新一代功率电子领域
- 贸泽电子开售能为电动汽车牵引逆变器提供可扩展性能的 英飞凌HybridPACK Drive G2模块
- 德州仪器新型 MCU 可实现边缘 AI 和先进的实时控制, 提高系统效率、安全性和可持续性
- 瑞萨推出高性能四核应用处理器, 增强工业以太网与多轴电机控制解决方案阵容
- 研华全新模块化电脑SOM-6833助力5G路测设备升级
- 是德科技有奖问答活动之三,极限温度测试示波器探头方案,答题闯关赢好礼!
- PI带您走进物联网时代!下载资料赢好礼
- 免费送:英国Aim TTi 最新数字信号发生器和热销电流探头【社区重磅福利】
- 罗德与施瓦茨-车载以太网及其一致性测试方案 回馈您的需求 看视频赢好礼
- 报名2019年ST全国巡回研讨会,赢三重好礼
- 有奖直播:迈来芯消费级超低功耗位置传感器,简化设计降低成本
- 学《TIVA C Launchpad入门课程》 晒成绩 赢大礼!
- 【免费租用】Xilinx Spartan-6 FPGA 嵌入式套件!
- DEYISUPPORT:【全新FAQ来袭】今夏且听风吟,你不能错过的精华!
- 【免费租用】Xilinx Spartan-6 FPGA 嵌入式套件!