单片机学习笔记

1,电平:数字电路中只有两种电平,高电平和低电平,对应的是计算机中的二进制原理。

2,晶振电路:决定单片机运行的节奏,即频率。

3,复位电路:重置开发板。

4,机器周期:一个机器周期包含12个时钟周期,在一个机器周期内,cpu就可以完成一个独立的操作。

5,时钟周期:也称为振荡周期,由晶振电路产生,指的是为单片机提供时钟脉冲信号的振荡源的周期。

6,在单片机编程时,一定要带reg52.h(51单片机),原因是该头文件已经将MCU中的IO口全部定义好了,只要对照结构图,就可以在头文件中找到代表对应接口的变量,进而就可以对这些变量进行操作,相当于直接操作对应的IO口了。

7,sfr:特殊功能寄存器,也是一种单片机扩充的数据类型,利用它可以访问51单片机内部的所有特殊功能寄存器。例:sfr P0 = 0x80;//定义P0接口,其地址就是0x80 (sfr定义的是8位的特殊功能寄存器,sfr16,则是用来定义16位的特殊功能寄存器的)

8,sbit:对应的是可位寻址空间的一个位,单片机里的可位寻址区域:20H~2FH,一旦用了sbit XXX =地址 这样的定义,这个变量的地址就确定了。sbit大部分是用在寄存器中的,目的是为了方便对寄存器的某位进行操作。

9,高阻态:既不是高电平也不是低电平的状态。

10,锁存器:是一种有好几种模式的电路结构,某一种模式下输出端的状态不会随着输入端状态变化而变化;在另外一种模式下才会随着输入信号的变化而变化。它是通过改变LE位的值来改变它的模式,当LE位为高电平时,锁存器输出的是当前输入的值;当LE位为低电平时,锁存器输出的是之前一次保存的值。它的主要作用就是缓存,其次就是完成高速控制器与慢速外设的不同步的问题。

11:芯片引脚标志上的横线代表该引脚是低电平有效。

12:数码管的结构原理:数码管的控制分为位选和段选,段选决定的是单个数码管显示的数;位选决定的是哪些数码管会被点亮。

13:数码管的动态显示:动态显示是用的人眼的视觉暂留效应来形成的。因为八位的数码管同时只能显示一个数值。

14,定时器:就是一个计数器,每经过一个机器周期,计数器就+1,定时器是由两个计数器控制的,一个是控制寄存器TCON,一个是模式寄存器TMOD。

15,定时器的控制寄存器TCON:它有两个主要的标志位,TF:溢出标志位,当定时器计数溢出的时候,由硬件把这个位置1,该位是可以由软件置0的;TR:运行控制位,由软件置1或者清零,为1的时候才允许定时器开始计数。

16,定时器的模式寄存器TMOD:它有几个主要的标志位:GATE位:控制的是定时器的启动模式;C/T位:控制的是定时器的计数方式,1代表的是计数器,用外部的脉冲作为计数单位,0为定时器,用的是内部的机器周期作为计数单位;M0位和M1位:控制定时器(计数器)的工作模式。

17,编程使用定时器(计数器)的步骤:
设置定时器的工作模式(通过TMOD)
设置定时器的初值
启动定时器(通过TCON)
定时器开始之后,查看TCON的TF位是否溢出(置1),如果为1,并且要继续使用定时器,则需要通过软件将它清零,如果是8位自动重装模式,则不需要手动清零

18,键盘有编码键盘和非编码键盘两种,编码键盘通过硬件电路产生被按按键的键值码,这种键盘的特点是使用方便,所需程序简单,但是硬件电路复杂。如计算机的键盘就属于编码键盘;非编码键盘则是通过程序来识别按下的键,它的硬件结构相对简单,但是程序识别会困难一些,单片机上的键盘就是非编码键盘。
非编码键盘包含独立键盘和矩阵键盘两种,独立键盘是每个按键单独对应硬件上的一位;而矩阵键盘上的每个按键对应的是硬件上某几位的组合。

19,按键特性:按键的按下与释放是通过机械触点的闭合和断开来实现的,因为机械触点的弹性作用,在闭合和断开的过程中均会有一个抖动的过程,因此在进行键盘按键识别编程的时候需要用软件延时来跳过这段抖动的时间。

20,在软件判断是否按下按键的时候,需要在判断语句之后加上松手检测环节,以免循环判断。

21,根据矩阵键盘的电路结构,在编程判定到底按下的是哪个按键的时候,需要先将行线位全部赋值为0,列线全部赋值为1,再看列线的值的变化,判断按键是属于哪一列;随后将列线位全部赋值为0,行线位全部赋值为1,再看行线的值的变化,判断按键是属于哪一行。从而定位到按键的具体位置。

22,单片机每次上电的时候必须进行复位,否则容易出现程序错乱。所以单片机硬件在设计的时候就考虑到了这个问题,根据复位的电路结构就可以看出,每次上电都会给电路中的电容充电,从而自动进行复位操作,同时电路中也提供一个按钮可以手动复位。

23,51单片机中一共有5个中断源,其中两个为外部中断,均由低电平或下降沿引发,外部中断接口分别为P3.2和P3.3的复用接口,可以通过特殊功能寄存器TCON的低四位来控制。3个内部中断分别是两个定时器中断和一个串口通讯中断。

24,TCON的低四位:
IE0/IE1:外部中断触发标志位,0代表没有外部中断申请,1代表有外部中断申请。
IT0/IT1:中断触发方式的选择位,0代表低电平有效,1代表负跳变有效。

25,单片机中断的撤销:
定时器中断执行后由硬件自动撤销;
串行口中断的撤销:在中断执行后需要人工将标志位清零(T1和R1)
外部中断的撤销分为两类:
负跳变方式中断的撤销:在中断执行后由硬件自动撤销。
低电平方式中断的撤销:在中断执行结束后需要人工将中断引脚置为高电平。

26,中断允许控制寄存器IE:控制单片机中断开启和关闭的寄存器,其中的几个位的意义如下:
EA:中断总允许位,取0时禁止全部中断,取1时允许中断
ES:串行口中断允许位,取0时禁止串行口中断,取1时允许串行口中断
ET0/ET1:定时器中断允许位,取0时禁止定时器中断,取1时允许定时器中断
EX0/EX1:外部中断允许位,取0时禁止外部中断,取1时允许外部中断

27, 单片机的中断优先级控制寄存器IP(只有后五位有效,并且可以位寻址):
PX0/PX1: INT0/INT1 外部中断优先级控制位,0表示低优先级,1表示高优先级
PT0/PT1: T0/T1 定时器溢出中断优先级控制位,0表示低优先级,1表示高优先级
PS: 串行口中断优先级控制位,0表示低优先级,1表示高优先级

28,单片机同优先级中断查询顺序(由高到低):
外部中断0,T0溢出中断,外部中断1,T1溢出中断,串行口中断。

29,编程写单片机的中断响应函数的时候,需要在函数名后面加上interrupt关键字,并加上标号,标号由中断查询顺序决定,由高到低分别是0~4。
例: void INT0() interrupt 0 //外部中断0的响应函数,由于外部中断查询顺位是第一位,所以标号为0

30,并行通信和串行通信
并行通信:数据的各位同时在多根数据线上进行发送或者接收
串行通信:使用一条数据线,将数据一位一位的顺序传输

31,串行通信的种类:
异步通信:是以帧为单位进行传输的方式,帧与帧之间的时间间隔是任意的,但每个帧中位和位之间的时间间隔都是固定的。
同步通信:建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。即发送数据的每一位的到达时间都不同,但是它们到达的间隔时间都是相同的。

32,串口通信的三种制式:
单工:单向的(或者是收或者是发)
半双工:(串行通信)收/发不可同时进行
全双工:(串行通信)收/发可同时进行

33,比特率:每秒钟传输二进制代码的位数
注意:串口通信的时候,发送端和接收端的比特率要相同

34,单片机串口通信的数据缓存器SBUF:SBUF只有一个,它既表示发送寄存器,又表示接收寄存器,在CPU往SBUF上写数据时,数据就会被送入发送寄存器准备发送;在CPU读取SBUF上的数据时,则读入的数据一定来自接收寄存器。
例:a = SBUF; //用变量a接收串口通信的数据
SBUF = a; //将a的值作为传输数据发送

35,串行控制寄存器SCON:是一个既可以字节寻址又可以位寻址的8位特殊功能寄存器。单片机复位时,SCON所有位均清0。几个比较重要的位的意义如下:
SM0和SM1:为工作方式选择位,可选择四种工作方式,最常见的工作方式是SM0=0,SM1=1,此时工作方式是10位的异步收发器,每帧传送8位数据(加两位帧头尾),此模式下比特率可变
REN:串行接受允许控制位。该位由软件置位或复位。当REN=1,允许接收;当REN=0,禁止接收。
TI:发送中断标志位。TI=1,表示已结束一帧数据发送,可由软件查询TI位标志,也可以向CPU申请中断。注意:TI在任何工作方式下都必须由软件清0。
RI:接收中断标志位。RI=1,表示一帧数据接收结束。可由软件查询RI位标志,也可以向CPU申请中断。注意:RI在任何工作方式下也都必须由软件清0。

36,由于单片机串行通信只有一个中断,所以TI=1的时候或者RI=1的时候(前提是该中断被打开)都会触发该中断,因此在中断程序中必须由软件查询TI和RI的状态才能确定究竟是接收还是发送中断,进而作出相应的处理。

37,51单片机的串口通信的波特率的设置:
根据串口的电路结构,串口通信的波特率默认是由定时器1来设置的,具体设置的方法和定时器1的开启方法相同:
设置定时器的工作模式(通过TMOD,设置为8位自动重装模式)
设置定时器的初值(TH1和TL1的值要相同)
启动定时器(通过将TCON的TR1位置1)
波特率的大小和初值有关,关系如下(串口通信方式1):
波特率 =(2的SMOD次方/32)·(T1溢出率)

38,电平转换芯片的作用:
当两个不同的设备要进行通信的时候,以计算机和单片机为例,存在电平不兼容的问题,计算机的逻辑0(低电平)为3~15v,逻辑1(高电平)为-15~-3v,而单片机的逻辑0为0~0.8v,逻辑1为3~5v,因此需要电平转换芯片来使它们的高低电平做一个对应的映射,从而实现不同的设备之间的通信。

39,typedef和define的用法与区别
define是预处理指令,在编译预处理时进行简单替换,不做正确性检查,不管含义是否正确,照样带入,只有在编译已经被替换后的源程序时才会发现可能的错误并报错。
typedef是在编译时处理的。它在自己的作用域内给一个已经存在的类型一个别名,而#define只是简单地替换

40,模拟量和数字量
模拟量:自然界连续变化的物理量。所谓连续,包含两个方面的含义
一方面从时间上来说,它是随时间连续变化的;
另一方面从数值上来说,它的数值也是连续变化的。这种连续变化的物理量通常称为模拟量。
数字量:计算机中处理的是不连续变化的量,离散性的数字量

41,模拟量输入方式:差分输入与单端输入
单端输入,输入信号均以共同的地线为基准.这种输入方法主要应用于输入信号电压较高(高于1 V),信号源到模拟输入硬件的导线较短,且所有的输入信号共用一个基准地线.如果信号达不到这些标准,此时应该用差分输入.对于差分输入,每一个输入信号都有自有的基准地线;由于共模噪声可以被导线所消除,从而减小了噪声误差.
单端输入时, 是判断信号与 GND 的电压差. 差分输入时, 是判断两个信号线的电压差.
信号受干扰时, 差分的两线会同时受影响, 但电压差变化不大. (抗干扰性较佳) 而单端输入的一线变化时, GND 不变, 所以电压差变化较大. (抗干扰性较差)

42,EEPROM:
EEPROM(带电可擦写可编程读写存储器)是用户可更改的只读存储器
,其可通过高于普通电压的作用来擦除和重编程(重写)。不像EPROM芯片,EEPROM不需从计算机中取出即可修改。在一个EEPROM中,当计算机在使用的时候可频繁地反复编程,因此EEPROM的寿命是一个很重要的设计考虑参数。EEPROM是一种特殊形式的闪存,其应用通常是个人电脑中的电压来擦写和重编程。
EEPROM,一般用于即插即用(Plug & Play)。
常用在接口卡中,用来存放硬件设置数据。

你可能感兴趣的:(单片机)