单片机里面的寄存器简易控制教程解读

这篇文章适合刚刚入门的单片机小白看。
单片机在电学里面,属于很简单的一种器件,外表看,就是一个芯片,长着很多的脚。内部,就是一堆寄存器。不同的单片机,外部表现就是形状和引脚数量和引脚名称可能不一样,内部,就是寄存器名称不一样。
我们要做的,就是写程序控制单片机里面的寄存器,然后通过引脚表现出来完成各种电子产品。
所以,你在看别人写的程序的时候,会经常看到给单片机寄存器赋值的语句。下面就以最简单的控制51单片机引脚高低电平来说明一下。(不要总是存在51单片机已经淘汰的想法,51单片机至今任然是出货量最大的单片机,并且各大公司每年都有新款的51单片机推出,功能越来越强劲,做产品,要选最合适的单片机,而不要总想用牛逼的单片机。)
例如,单片机p1口有8个引脚,分别为p1.0~p1.7,如果想让p1口的8个引脚都输出高电平,是这么写:p1=0xff;如果想让p1口的8个引脚都输出低电平,是这么写:p1=0x00;如果只让p1.0输出高电平,其他引脚输出低电平,是这么写:p1=0x01......
这些值是怎么来的呢?
计算方法: 一个数,前面以0x开头,标示后面的数是十六进制数。所以首先,我们先要知道十进制和十六进制的转换。
十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f十进制: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15以上十六进制和十进制是对应关系,例如b对应11。
单片机和计算机一样,是以“位”为最小单片机,例如,p1是一个8位的寄存器。p1寄存器的8个位名称分别是:p1.7 p1.6 p1.5 p1.4 p1.3 p1.2 p1.1 p1.0
上面的0x开头的数,是以4个“位”为一个单位进行计算,以8421码进行相加计算,听这里很迷糊吧。举个例子就明白了。
你可以做一个这样的表格:
从上表看出,把寄存器的“位”,从高到低排列,然后以4个为一组,对应的8421码如上图所示。
给寄存器写值,实际上就是给它的每个位写0或者1,例如要使得哪个引脚为高电平,就给对应的位写1;要使得哪一个引脚为低电平,就给对应的位写0。然后把对应为1的8421加起来,以4个位为一组。
例如,我们要让每一个引脚都输出高电平,就是每个位的值都为1,那对应寄存器的高四位,8+4+2+1=15,15对应的是十六进制的f,再看寄存器的低四位,8+4+2+1=15,还是对应f,所以最后的值就是0xff。
再看,如果让每一个引脚都输出低电平,就是每个位的值都是1,前面说过,只有对应位是1,才把它们的8421加起来,现在都是0,所以都不用加,结果就是0x00。
再看,如果只让p1.0引脚是高电平,其他引脚输出低电平,那么,只有p1.0对应的位是1,其它的位是0,所以,只需要取p1.0上面的1码,所以结果就是0x01。
再看,如果让p1.0、p1.1、p1.7、p1.5输出高电平,其它引脚输出低电平,那么对应的值如下图所示:
我们看寄存器的高四位,取对应1上面的码8+2=10,10对应十六进制的a,再看寄存器的低四位,取对应1上面的码2+1=3,3对应的十六进制还是3,所以结果就是0xa3,这是,你写p1=0xa3,就可以使得引脚该高的高,该低的低了。
不管是51的8位寄存器,还是arm的32位寄存器,寄存器中的每一个位都有一定的用意,这些用意可以查看单片机的用户手册得知,你只需要按照你的要求,给对应的位写1或者0,然后利用上面的方法得出结果,就可以操作单片机的寄存器了。
你学会了吗?

什么是APON (ATM Passive Optical N
扫频接收机中数字扫描控制器设计方案
诺基亚808 PureView回顾,41MP的像素记录2018年才被打破
LED光源在DLP投影设备中的应用
射频无源器件的介绍和对无线通信的影响详细说明
单片机里面的寄存器简易控制教程解读
周鸿祎:纯粹的人工智能是没有商业模式的
集成电路行业知识产权现状
模式可选择的现场变送器的原理及设计
声控灯电路的原理分析
荣耀将推新机?将搭载6.9英寸显示屏
2025年全球5G总用户数将达到16亿,中国将占三分之一
小米6真机?失望!
三相鼠笼式异步电动机的基本控制线路
红米Note5什么时候上市?红米Note5最新消息:红米Note5或在本月发布,红米Note5配置、价格先知道
中国联通在第二届数字中国建设峰会上展示了5G创新业务的丰硕成果
CO2激光器的供气设备的选择方法和要点
不布局就等着“出局”!罗马仕的成功,离不开这3点
三极管在开关方面的作用
2022年中国电驱动系统市场情况分析