轻松学51单片机总结知识点

1、计算机的程序指令、变量、常量等都是以字节为单位存放在内存单元中,内存中的每一个字节就像我们生活当中的门牌号码一样,都具有一个唯一的编号,这个编号就是存储单元的地址。
对于一个内存单元来说,单元的地址就是指针,地址里面存放的数据才是这个单元的内容。如果定义一种数据类型用来存放指针变量,那么这种变量就叫做指针变量。
假如我们定义了一个字符变量s,她的值为‘a’,保存在内存地址为0x3366这个地址单元里面。

2、数组是在内存区域实实在在地开辟了一段空间,然后把数据连续地保存在这一段空间里面。指针是一个指向,它可以指向一个数组,也可以指向一个变量或者其他位置。
p = &a[0];
指针变量就指向数组a,这个时候我们就可以通过指针变量p来访问数组a了。一般情况下,对于一维数组来说:
p + i就是a[i]的地址
*(p + i)就是a[i]的值。

3、数码管按照供电方式一般分为共阴极数码管和共阳极数码管两种类型。共阴极数码管是在数码管的内部把GND连接在一起,通过外部高电平来点亮,共阳极数码管则是在数码管的内部把VCC连接在一起,通过外部低电平来点亮。

4、& 取地址运算符

  • 指针运算符
    int *p;
    p = &a;
    其中,p = & a;是把变量a的地址赋值给指针变量p。也可以这样赋初值:
    (2)赋初值
    下面的代码是在定义指针的时候就把整型变量“a”的地址作为初值赋给指针:
    int *p = &a;

5、特别要注意的是,变量的指针和指针的变量是两个不同的概念。变量的指针是该变量的地址,而指针变量里面存放的内容是另外一个变量在内存中的地址。每一个变量都有它自己的地址(指针),每一个指针变量都是指向另外一个变量的。

6、人眼在观看超过25帧/秒的动画的时候,感觉不到闪烁和延时,我们让两个数码管以25帧/秒的速度切换,给人的感觉是这两个数码管被同时点亮了。

7、其中“sfr”是关键字,代表定义的是一个寄存器,sfr P0M0 = 0X93;的意思是定义寄存器P0M0,它的地址为93H。
提醒大家注意的是,在使用sfr关键字定义寄存器的时候,后面赋的值是这个寄存器的地址,如sfr P0M0 = 0X93;的意思是指定P0M0寄存器的地址是0x93。
而在使用寄存器的时候,等号后面则是给出我们将要写入寄存器的值,如P0M1 = 0xf0;的意思是给P0M1赋值为0xf0;
其他端口设定工作模式的方法和P0口类似,先根据芯片的数据手册查找到两个寄存器对应的地址,定义好寄存器,然后根据需要给它们赋上相应的的值就可以了。

8、一般来说,电平触发方式适合于外部中断以低电平输入而且中断服务能清除外部中断源的情况,下降沿触发适合以负脉冲形式输入的外部中断请求。

9、“.”是存取成员的运算符。
从内存分配的角度来讲,结构体所占用内存的空间是内部成员变量所占用空间的总和,而共用体变量所占用的内存大小是由共用体内占用内存空间最大的成员变量所决定的。
STC89C51RC-RD+系列单片机有32个通用I/O端口,分别是P0口、P1口、P2口和P3口共4组,有些升级型号增加了几个P4口,它们的特性和使用方法和P0 - P3口基本相同。这些I/O端口均能通过代码设置相应的端口寄存器使其作为输入或者输出使用,有些端口具有第二功能,我们在后面介绍其他功能的时候再给大家讲解。

10、目前的芯片有几种不同类型的封装形式,常用的有PDIP双列直插、LQFP薄型贴片封装等。STC89C51RC-RD+系列单片机根据系列型号和封装形式的不同,其引脚端口有少量区别,但是基本的P0 – P3口全系列都是标配,我们以STC89C51RC-RD+系列HD版本的40引脚双列直插的芯片为例,来看看其引脚分部,

11、从电路图中可以看出,发光二极管D1的阴极与单片机的P1.0口相连接,阳极经过一个大小为1k的限流电阻连接到VCC(如果没有特殊说明,本书中所涉及的VCC均为+5V),单片机使用11.0592MHz的晶振作为频率源。当P1.0口输出高电平的时候,发光二极管D1没有电流经过,处于熄灭状态,当P1.0口输出低电平的时候,电流从VCC经由R1、D1流入P1.0,发光二极管被点亮。限流电阻R1将电流控制在5mA的水平,保证IO口不会因为过流而损坏。

12、当这一过程快速、反复运行的时候,人眼由于视觉暂留的特点就感觉不到数码管被依次点亮的过程,看起来就像所有的数码管被同时点亮。我们先从简单的开始,显示固定数字“9F”,看看这个过程是怎么用代码来实现的。

13、一般情况下, 我们会先设置中断工作模式,然后开中断,最后开总中断。这样可以保证在开中断之前设置好中断的工作方式,只有执行了最后一步开总中断之后,中断功能才会真正被开启,可以避免在极端条件下中断被误触发。

14、RS-232C采用负逻辑规定逻辑电平,-5V—-15V为逻辑“1”电平,5V—+15V为“0”电平。PC机的串口遵循RS-232标准。
51单片机采用的是TTL电平。TTL的全称是Transistor Transistor Logic,即晶体管-晶体管逻辑集成电路,+5V等价于逻辑“1”,0V等价于逻辑“0”。

15、由于单片机串口和PC机串口的电平规范不相同,因此当两者相互通信的时候,需要有一个中间的环节进行电平转换。一般情况下,我们常用MAX232芯片来实现电平转换。MAX232芯片包含2路接收器和发送器,它使用和单片机同样的+5V供电,可以产生RS-232接口需要的10V电平。MAX232的硬件电路比较简单,使用方便,因此被广泛采用。下面我们来看看这款芯片:

16、SBUF实际上是两个寄存器,它们分别是数据接收寄存器和数据发送寄存器。当我们对SBUF进行读操作的时候,它是接收寄存器;当我们对SBUF进行写操作的时候,它是发送寄存器。

17、一片74HC138芯片来扩展单片机的端口。74HC138俗称3-8译码器,它利用了3位二进制数可以表示07共8个数的原理。74HC138芯片有3个数据输入端口和8个数据输出端口,74HC138芯片的4、5、6引脚是使能控制端,只有当它们的电平分别为低、低、高的时候芯片才会工作。A0A2是输入脚,Y0~Y7是输出脚。在芯片工作状态下,74HC138芯片的真值表
我们使用3个单片机的I/O口来控制74HC138芯片,可以得到8种不同的输出,节约了5个单片机I/O。实验的电路原理图如图9.12所示:

18、串口通信的距离十分有限,在9600bps波特率下,能够达到的最远通信距离在15m左右,一般情况下,两个通信终端之间的距离在几米左右或者更短。因此,想要增加通信距离,就需要用到其他的办法或者设备,比如从技术上可以使用RS-485通信、CAN总线通信、各种无线通信等。从结构上来讲可以采用信号增强器来增加信号功率,或者使用中继器来接力通信等等。
在这一节里,我们将给大家介绍的是一种常用的远距离通信方式,RS-485通信。

19、RS-485简介 RS-485接口采用差分方式传输信号方式,并不需要相对于某个参照点来检测信号,系统只需检测两线之间的电位差就可以了,+2V~+6V表示“0”,- 6V~- 2V表示“1”。

RS-485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,现在多采用的是两线制接线方式,这种接线方式为总线式拓朴结构在同一总线上最多可以挂接32个结点。
在RS-485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。很多情况下,连接RS-485通信链路时只需要简单地用一对双绞线将各个接口的“A”“B”端连接起来就可以了,这种连接方法在许多场合是能正常工作的。

20、理论上,RS-485的通信速率在100Kpbs及以下时,它的最长传输距离可达1200米,实际应用中传输的距离因芯片及电缆的传输特性而有所差异。在传输过程中可以采用增加中继的方法对信号进行放大,最多可以加八个中继,也就是说理论上RS485的最大传输距离可以达到9.6公里。

从单片机的串口信号转换成RS-485信号非常方便,硬件上使用一块485收发芯片和串口相连进行电平转换,软件上再做一些相应的处理就可以了。图12.7是常用的485收发芯片之一MAX1487的引脚分布图:

21、一个嵌入式系统软件总是由复杂的程序构成的,一般来说,一个完整的嵌入式程序分为两个主要的层次,即底层驱动和功能软件。
底层驱动:与底层硬件相关的程序部分,这部分软件负责对所有的硬件进行控制和操作,例如本章实例中的DS1620温度传感器设置、读取温度,MAX7219的数码管驱动程序等。
功能软件:这部分是实现嵌入式系统基本功能的程序,例如本章案例的多功能数字温度计需要实现的时钟显示、时钟设置、闹铃设置等逻辑部分,这些程序与具体硬件的关系较少。
一个好的嵌入式软件应该做到底层驱动和功能软件合理的划分,使得功能软件的编写不需要考虑太多的硬件部分,而底层驱动开发人员只需要专心开发硬件相关的软件即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值