0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

贸泽电子设计圈 2017-11-28 10:40 次阅读

这篇文章适合刚刚入门的单片机小白看。

单片机在电学里面,属于很简单的一种器件,外表看,就是一个芯片,长着很多的脚。内部,就是一堆寄存器。不同的单片机,外部表现就是形状和引脚数量和引脚名称可能不一样,内部,就是寄存器名称不一样。

我们要做的,就是写程序控制单片机里面的寄存器,然后通过引脚表现出来完成各种电子产品

所以,你在看别人写的程序的时候,会经常看到给单片机寄存器赋值的语句。下面就以最简单的控制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,然后利用上面的方法得出结果,就可以操作单片机的寄存器了。

你学会了吗?

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    5991

    文章

    43904

    浏览量

    619612
  • 寄存器
    +关注

    关注

    30

    文章

    4991

    浏览量

    117416

原文标题:玩转控制单片机里面的寄存器,我有绝招。。。

文章出处:【微信号:Mouser-Community,微信公众号:贸泽电子设计圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    51单片机寄存器如何赋值

    单片机在电学里面,属于很简单的一种器件,外表看,就是一个芯片,长着很多的脚。内部,就是一堆寄存器。不同的单片机,外部表现就是形状和引脚数量和引脚名称可能不一样,内部,就是
    的头像 发表于 12-31 08:32 2.3w次阅读
    51<b class='flag-5'>单片机</b>的<b class='flag-5'>寄存器</b>如何赋值

    【51单片机教程讲堂】分析单片机的特殊功能寄存器

    【51单片机教程讲堂】分析单片机的特殊功能寄存器通过前面的学习,我们已知单片机的内部有ROM、有RAM、有并行I/O口,那么,除了这些东西之
    发表于 12-07 09:57

    单片机教程(7)特殊功能寄存器

    通过前面的学习,我们已知单片机的内部有ROM、有RAM、有并行I/O口,那么,除了这些东西之外,单片机内部究竟还有些什么,这些个零碎的东西怎么连在一起的,让我们来对单片机内部的
    发表于 06-12 14:41

    怎么看数据手册里面的寄存器

    今天,我在学习单片机。首先我学习了怎么看数据手册里面的寄存器。出现了一下问题sfr是什么:特殊功能寄存器sfr是定义一个8位的寄存器功能:定
    发表于 07-15 06:45

    用于存储单片机接收发送缓冲寄存器SBUF里面的内容

    #include "STC.H"// ***it s=P1^0;unsigned?char?dat;?//用于存储单片机接收发送缓冲寄存器SBUF里面的内容***it pul
    发表于 09-16 08:21

    Nuclei studio里面的register window如何看单片机外设寄存器

    在调试单片机时,想看一些外设,ADC/SPI/TIMER这些外设的寄存器值或者memary 窗口里面的地址内容 可是现在即看不了外设寄存器值,也看不了memary
    发表于 08-16 06:45

    单片机教程七:单片机的特殊功能寄存器

    单片机教程七:单片机的特殊功能寄存器 通过前面的学习,我们已知单片机的内部有ROM、有RAM、有并行I/O口,那么,除了这些东西之外,
    发表于 05-15 23:01 1903次阅读
    <b class='flag-5'>单片机</b>教程七:<b class='flag-5'>单片机</b>的特殊功能<b class='flag-5'>寄存器</b>

    51单片机的一些特殊寄存器资料说明

    本文档的主要内容详细介绍的是51单片机的一些特殊寄存器资料说明。包括了:中断使能寄存器,中断优先级寄存器,电源控制PCON,PSW处理器状态
    发表于 07-26 17:36 2次下载
    51<b class='flag-5'>单片机</b>的一些特殊<b class='flag-5'>寄存器</b>资料说明

    51单片机与中断相关的寄存器

    51单片机与中断相关的寄存器简介中断控制寄存器IE中断优先级控制寄存器IP定时器
    发表于 11-12 11:36 8次下载
    51<b class='flag-5'>单片机</b>与中断相关的<b class='flag-5'>寄存器</b>

    如何写单片机寄存器,这篇文章带你入门。

    单片机在电学里面,属于很简单的一种器件,外表看,就是一个芯片,长着很多的脚。内部,就是一堆寄存器。不同的单片机,外部表现就是形状和引脚数量和引脚名称可能不一样,内部,就是...
    发表于 11-14 17:06 0次下载
    如何写<b class='flag-5'>单片机</b>的<b class='flag-5'>寄存器</b>,这篇文章带你入门。

    msp4306989单片机寄存器 第五章

    1.5 单片机C语言入门1.5.1 单片机寄存器在前面的示例程序中我们发现对单片机进行编程实际上就是改写
    发表于 11-19 21:06 27次下载
    msp4306989<b class='flag-5'>单片机</b>的<b class='flag-5'>寄存器</b> 第五章

    32单片机 C语言 寄存器(四)

    32单片机C语言相关知识以及寄存器地址名称映射分析
    发表于 11-29 10:06 12次下载
    32<b class='flag-5'>单片机</b> C语言 <b class='flag-5'>寄存器</b>(四)

    单片机寄存器和存储器哪个好

    单片机寄存器和存储器哪个好 单片机的运用在生活中是很常见的,随着科技的发展,单片机更新速度和发展速度也非常快。对于单片机来说,
    发表于 03-21 15:18 367次阅读

    单片机寄存器有哪些 单片机寄存器怎么理解 寄存器单片机的关系

    单片机寄存器是一种特殊的存储器件,用于存储和处理程序中的数据和指令。可以将单片机寄存器看作是CPU内部的工作区域,类似于人的大脑,用于暂时存储和处理当前的任务和信息。
    发表于 04-01 15:47 4365次阅读

    单片机工作寄存器作用 单片机常用专用寄存器

    除了通用寄存器(如累加器、通用寄存器等),单片机中还会有特定功能的寄存器,如定时器寄存器、中断控制
    的头像 发表于 04-08 14:46 5438次阅读