51单片机常用知识点总结
发布日期:2021-11-15 17:20:11 浏览次数:2 分类:技术文章

本文共 1086 字,大约阅读时间需要 3 分钟。

这两天复习了51的基础,基础不牢地动山摇,理清了一些东西

首先是定时器

定时器/计数器

定时器很重要,单片机的心脏

首先几个概念
时钟频率:fosc(晶振提供,51一般是12Mhz,11.0592Mhz这两种)
12分频:fosc/12(这里我设为fT)
机器周期:T=1/fT

定时器就配置两种,

第一是工作模式:定时器/计数器
第二是四种工作方式

然后是两个寄存器

TMOD&TCON
工作方式寄存器和控制寄存器

工作方式寄存器TMOD

在这里插入图片描述

(修改T2为T0)

(1)GATE——门控位

GATE=0时,仅由控制位TRX(X=0,1)来启动定时器/计数器运行。
GATE=1时,由TRX(X=0,1)和中断引脚(INT0和INT1)上的高电平共同来启动定时器/计数器运行。
(2)M0、M1——工作方式选择位
M0、M1共有四种编码,对应于4种工作方式。对应关系

M1 M0 工作方式
0 0 方式0,为13位定时器/计数器
0 1 方式1,为16位定时器/计数器
1 0 方式2,8位初值自动重新装入的8位定时器/计数器
1 1 方式3,仅适用于T0,分为两个8位计数器,T1停止计数

(3)C/T——计数器模式和定时器模式选择位

C/T=0,为定时器模式
C/T=1,为计数器模式,计数器对外部输入引脚T0(P3.4脚)或T1(P3.5脚)的外部脉冲(负跳变)计数。

定时器/计数器控制寄存器TCON

TCON的字节地址为88H,可进行位寻址,位地址为88H~8FH。

在这里插入图片描述
低四位和中断有关,高四位
(1)TF0,TF1——T0,T1计数溢出标志位
当计数器计数溢出时,该位置“1”。使用查询方式时,此位作为状态位供CPU查询,但应当注意在查询该位有效后应当以软件方法及时将该位清0.使用中断方式时,此位作为中断申请标志位,进入中断服务程序后由硬件自动清0.
(2)TR0,TR1——计数运行控制位
TR1位(或TR0位)=1,启动定时器/计数器工作的必要条件,还与GATE位有关。
TR1位(或TR0位)=0,关闭定时器/计数器工作。

关于几个工作方式的初值计算

第一个工作方式是一个13位的定时器
它的最大值是 2 13 = 8192 2^{13}=8192 213=8192
初值计算就是
比如要定时1ms
1ms是时间,对应的就是单片机走多少步
首先计算出一步是多少时间,就是机器周期12/fosc
就可以算出一共是fosc/(12*1000)步
用定时器的最大值减去这个步数就是定时器初值
第二个工作方式同理
第三个是自动重装载,它高位和低位寄存器的值都是一样的

转载地址:https://blog.csdn.net/qq_41262681/article/details/94719704 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:步进电机原理及驱动
下一篇:stm32中断

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月12日 21时30分16秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

[人工智能] 使用百度 API 读取身份证照片的文字 2019-04-27
在SpringBoot中使用【阿里云OSS对象存储】存取图片 2021-06-30
[Java爬虫] 使用 HtmlUnit + Xpath 模拟点击、动态获取信息 2021-06-30
使用 SpringBoot 之 JPA 整合 Redis 实现缓存 2021-06-30
SpringBoot 结合 JSR303 对前端数据进行校验 2021-06-30
SpringBoot 整合 MongoDB 之 MongoTemplate 实现 CRUD、分页接口 2021-06-30
[增删改查] SpringBoot 整合 Solr 之 SolrClient 实现 CRUD、分页接口、高亮显示 2021-06-30
[Python爬虫] 模拟浏览器、代理ip、开启日志、超时处理、异常处理、登录、下载图片 2021-06-30
在 SpringBoot 中使用 @EnableAsync、@Async 轻松实现异步任务 2021-06-30
《学习 Go 语言》学习心得 2019-04-27
[汇编语言] 带有颜色的字符串显示(hello world 级别程序) 2019-04-27
[增删改查] Python 之使用 Django + LayUI 做后台管理 2019-04-27
Docker 镜像容器 之 导出导入、上传镜像到 DockerHub 上、Nexus私库 的引入 2019-04-27
centos7 下将 Django2.0 项目部署到 阿里云 上(uwsgi3 +Nginx ) 2019-04-27
前后端分离 SpringBoot + SpringSecurity 权限解决方案 2019-04-27
前后端分离 SpringBoot + SpringSecurity + JWT + RBAC 实现用户无状态请求验证 2019-04-27
[Python爬虫] 使用 Beautiful Soup 4 快速爬取所需的网页信息 2019-04-27
在 Centos7 下使用 Docker 快速搭建 Hadoop 集群 2019-04-27
Python web 框架 Flask 蓝图的正确使用姿势 2019-04-27
领扣LintCode算法问题答案-1053. 至少是其他数字两倍的最大数 2019-04-27