51单片机学习笔记1(基础部分)

一.单片机中的数制和数制转换

1.单片机的数制

        数制是指数的制式,是人们利用符号计数的一种科学方法,单片机常用的数制有十进制、二进制和十六进制。

(1)十进制
    它是大家最熟悉的计数制,有0~9十个数码。十进制数的末尾加英文字母D 表示它是一个十进制,字母D也可以省略不写。
(2)二进制
     数字电路中只有两种电平特性,即高电平和低电平,这两个状态只需要用“0”和“1”两个数字区分就可以了,所以数字电路中使用二进制计数.二进制是计算机采用的计数制,它有0、1两个数码,任何二进制数都由这两个数码组成.因为它只有0和1两个数码,采用晶体管的导通和截止、脉冲的高电平和低电平等都很容易表示它。此外,二进制数运算简单,便于用电子线路实现。二进制数用末尾加一个英文字母B表示它是一个二进制数。二进制数的基数为2,它奉行“逢2进1”的进位计数原则。

(3)十六进制
      它有0、1~9、A、B、C、D、E、F共16个数码,任何一个十六进制数都是由其中的一些或全部数码构成的。十六进制数的末尾加英文字母H 表示它是一个十六进制数。十六进制数的基数为16,进位计数为逢16进1。

 2.单片机的数制转换

   

     在单片机的编程中,经常要用到二进制到十六进制的转换,特别是8位二进制到十六进制的转换。这里采用的51单片机是8位的,编程时一般把8位二进制数,即一个字节作为一个整体处理,在对字节中的某个位置位或清0时,就对这个位送出了高电平或低电平。而一般在写程序时,不写出二制数,因为它不方便记忆,而是要用相等的十六进制数表示,所以要进行这两种数制的转换,熟记16以内的数制转换规律将对提高编程效率大有帮助。

二.关于二进制的逻辑运算

      在计算机内常用“0”和“1”表示这两个逻辑值,“0”表示假,“1”表示真。因此,在逻辑电路中,输入和输出只有两种状态,即高电平“1”和低电平“0”。

1.与
      与运算有两个输入量,一个输出量,它的特点是“有0出0,全1出1”。单片机C语言中与运算符为“&”,运算规则为:0&0=0,0&1=1&0=0,1&1=1。运算符“&”表示按位与运算,意思是变量按二进制位数对应关系逐位相与。
例如:(1010    1111)&(1010    0000)=1010    0000

2.或
      或运算有两个输入量,一个输出量,它的特点是“有1为1,全0出0”。单片机C语言中的或运算符为“|”,运算规则为:0|0=0,0|1=1|0=1,1|1=1。运算符“|”表示按位或运算,意思是变量按二进制位数对应关系逐位相或。
例如:(1010    1111)|(1010    0000)=1010    1111
3.非
      非运算实现“求反”功能的运算。单片机C语言中的非运算符为“!”,运算规则为:!0=1,!1=0。运算符“~”表示按位取反运算,如~0101    0000=1010    1111,而“!”运算只是对一位取反的运算。
4.同或
      同或逻辑运算符为“☉”,运算规则为:0☉0=1,1☉0=0,0☉1=0,1☉1=1。在C语言中没有规定符号。

5.异或
      异或逻辑运算符为“⊕”,运算规则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0。在单片机C语言中按位异或运算符为“^”。

 三.数据类型

      数据是具有一定格式的数字或数值,它是计算机操作的对象。不管使用何种语言、何种算法设计程序,都要对数据进行处理,最终在计算机中运行的只有数据流。数据的格式通常称作数据类型。按照数据类型对数据进行的排列、组合、架构则称为数据结构。C51的数据类型如下图所示。

      除了上述C51数据类型外,还有针对8051系列单片机内的特殊功能寄存器而设置的sfr和sfr16类型的数据和为操作特殊寄存器中的特定位而设置的sbit类型的数据。C51中常用的数据类型如下表所示。

      sfr———特殊功能寄存器的数据声明,声明一个8位的寄存器;
      sfr16———16位特殊功能寄存器的数据声明;
      sbit———特殊功能位声明,也就是声明某一个特殊功能寄存器中的某一位。

四. IO口的总线控制方式

 五.本节必需掌握的重点

 

 六.C语言的数组

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Attack BUG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值