C51 单片机开发寄存器
共 2405字,需浏览 5分钟
·
2024-05-13 07:30
公众号文章同步阅读网址:www.netor0x86.com
闲话:互联网+、物联网、数字化、数字孪生、区块链,…… 现在是人工智能+。想起之前周鸿祎大佬说的一个 "i‘m abcde" 。每个字母表示一个领域,分别是 IoT(物联网)、Mobile(移动计算)、AI(人工智能)、Blockchain(区块链)、Cloud(云计算)、Data(大数据)、Edge(边缘计算)。
上篇文章中整理了晶振频率、时钟周期、机器周期的关系,以及得出了一个机器周期是 1.085 微秒。那么,当我们让单片机数数时,它会在哪里进行累加呢?就是寄存器!
0x01:寄存器
寄存器这个概念应该时每个程序员都听说过的概念,尤其是了解计算机底层的程序员。
计算机的存储分为多级存储,由快到慢(有贵到贱)的顺序是,寄存器、多级缓存、内部存储器(内存)和外部存储器(硬盘)。寄存器的速度是最快的,也是加个最贵的。
对于汇编程序员来说,寄存器可能是每行代码都离不了的吧,比如 x64 架构的通用寄存器有 RAX、RBX、RCX 等,x86 架构的通用寄存器有 EAX、EBX、ECX 等之类的吧。
当然了,对于芯片中的寄存器有多种,比如通用寄存器、基址寄存器、状态寄存器、浮点寄存器、调试寄存器等。
0x02:C51 单片机
对于 C51 单片机也不例外,有很多的寄存器。在之前我们也操作过寄存器。
比如,我们定义的如下代码:
sbit led = P3 ^ 7;
P3.7 是 P3 口的第 7 个引脚,P3 就是寄存器,P3 的地址是 0xB0,定义如下:
sfr P3 = 0xB0;
还记得 sfr 是什么吗?sfr 是特殊功能寄存器!不记得可以回看前面的文章(C51 单片机开发 SFR 及 SBIT 的作用)。
把那篇文章的截图贴过来,如下图:
图中的 TCON、TMOD、TL0、TL1、TH0 和 TH1 都是定时器相关的寄存器,对应的在寄存器的头文件中也有相应的定义。
sfr TCON = 0x88;
sfr TMOD = 0x89;
sfr TL0 = 0x8A;
sfr TL1 = 0x8B;
sfr TH0 = 0x8C;
sfr TH1 = 0x8D;
单片机要处理各种操作控制,都是离不开寄存器的。
0x03:定时器/计数器控制寄存器 TCON
前几篇文章一直在说定时器/计数器,本篇就一定要介绍关于它们的寄存器。这里介绍以下 TCON 这个寄存器。
为了省事,直接把手册截图,如下图所示(该图在手册的 P186)。
在手册中给出了 TCON 的地址,可以看出该寄存器是单字节的,每个位都有其具体的名称和功能。在使用时,每一位的具体功能可以查阅手册。
本篇内容还是很枯燥,当然了,喜欢就不会觉得枯燥,面对枯燥的又想学习的知识,只有一个字,熬!希望各位,学习是为了喜欢和追求,而不是煎熬!
往期文章列表
我是一个程序员,了解 C、PHP、Java、ASM、Python,有 信安、CISP 证书,写小白也能看得懂的文章,感谢关注!!!
我的网站:https://www.netor0x86.com
我录制的视频课程:
1. 入门级栈溢出分析
2. WEB端获取MAC地址真实项目案例
3. PHP扩展模块开发之DLL编写与调用
4. C语言零基础入门教程
5. PE 文件结构初识与二进制手写可执行程序