单片机知识点

时间:2024.4.20

振荡周期/时钟周期:

          Tc=晶振频率fosc(或外加频率)的倒数

状态周期:Ts=2个时钟周期(Tc)(很少用到此概念)

机器周期:Tm=6个状态周期(Ts)=12个振荡周期(Tc)

指令周期: Ti:执行一条指令所需的机器周期(Tm)数

牢牢记住:   振荡周期 = 晶振频率fosc的倒数;

             1个机器周期 = 12个振荡周期

             1个指令周期 = 124个机器周期

89C51单片机存储器配置

片内RAM 128字节(00H—7FH);

片内RAM前32个单元是工作寄存器区(00H—1FH)

片内RAM有128个可按位寻址的位,占16个单元。

位地址编号为:00H—7FH,分布在20H—2FH单元

片内21个特殊功能寄存器(SFR)中:地址号能被8整除的 SFR中的各位也可按位寻址(P.33-34)

可寻址片外RAM 64K字节 (0000H—FFFFH)

可寻址片外ROM 64K字节 (0000H—FFFFH)

片内 Flash ROM 4K字节 (000H—FFFH)

存储器配置(片内RAM

片内RAM 128字节(00H7FH)书上29

可寻址片外RAM 64K字节0000HFFFFH);

可寻址片外ROM 64K字节0000HFFFFH);

片内 Flash ROM 4K字节 000H FFFH);

工作寄存器区CPU通过修改PSW中的RS1和RS0两位的状态,就能任选一个工作寄存器区。

片内RAM中有128个可按位寻址的位。 占16个单元

  位地址:00H—7FH  

  分布在:20H—2FH单元

89C51片内RAM 128字节(00H—7FH)

89C52片内RAM 256字节(00H—0FFH)

程序存贮器ROM(书上28页)

程序存贮器空间为64k字节

堆栈:(由堆栈指针SP管理,进栈,SP+1,,出栈,SP-1

  在片内RAM中,常常要指定一个专门的区域来存放某些特别的数据,它遵循先进后出和后进先出(LIFO/FILO)的原则,这个RAM区叫堆栈。堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。

功用:

1)子程序调用和中断服务时CPU自动将当前PC

   值压栈保存,返回时自动将PC值弹栈。

2)保护现场/恢复现场

3)数据传输

程序计数器PC

PC 不是一个特殊功能寄存器SFR,但其作 用又十分重要和特殊!!!

特点

它是16位的按机器周期自动增1计数器。

总指向下一条指令所在首地址(当前PC值)

一切分支/跳转/调用/中断/复位 等操作的本质就是:改变 PC 值

特殊功能寄存器(书上31~33页)

程序状态字PSW 书本32

OV (PSW.2)溢出标志位。

OV=1时特指累加器在进行带符号数(-128—+127)运算时出错(超出范围);OV=0时未出错。

中断(书上40页)

定时器控制寄存器TCON      (88H)其中低4位管外部中断

TF0/TF1:定时器溢出中断申请标志位:

  =0:定时器未溢出;

  =1:定时器溢出申请中断,进中断后自动清零。     

TR0/TR1:定时器运行启停控制位:

  =0:定时器停止运行;

  =1:定时器启动运行。

IE0/IE1:外部中断申请标志位:

  =0:没有外部中断申请;

  =1:有外部中断申请。

IT0/IT1:外部中断请求的触发方式选择位:

  =0:在INT0/INT1端申请中断的信号低电平有效;

  =1:在INT0/INT1端申请中断的信号负跳变有效.

PCSFR复位状态表


中断矢量: MCS-51单片机的 5 个中断源分别对应有各自的中断服务程序入口地址——中断矢量

中断优先级控制寄存器IP   (0B8H)

               

PX0/PX1INT0/1优先级控制位:

      =0 时属低优先级; =1 时属高优先级。

PT0/PT1/PT2T0/1/2定时器中断优先级控制位:

      =0 时属低优先级; =1 时属高优先级。

PS1串行口中断优先级控制位:

      =0 时属低优先级; =1 时属高优先级。

在中断源提出了中断申请且CPU此前已经允许中断的前提下,还须满足以下三个条件:

没有同级的中断或更高级别的中断正在处理;

正在执行的指令必须执行完最后 1个机器周期;

若正在执行RETI,或正在访问IE或IP寄存器,须执行完上述指令和下一条指令以后方能响应中断。

中断允许寄存器IE (0A8H)    

EX0/EX1ET1/ET0ES 位:

   分别是INT0/1,Timer0/1,串行口的中断允

   许控制位:

   =0 时禁止中断;  =1 时允许中断。

ET2:T2中断允许控制位(仅52子系列有)

   =0 时禁止中断;  =1 时允许中断。

EA总的中断允许控制位(总开关)

   =0 时禁止全部中断;=1 时允许中断。

中断应用前后要做的几项工作

中断前

 开中断允许:必须

 选择优先级:根据需要选择,可有/可无

 设置控制位:INTx—触发方式(ITx)

             Tx—TCON,TMOD,TRx,初值……

             RI/TI—SCON,REN,RB8,TB8,……

中断后

进入中断服务后:保护现场,关中断,……

退出中断服务前:恢复现场,开中断,设Tx的初

                值,清TI/RI,……

中断服务程序的最后一条指令必是 RETI

汇编程序的常用指令

伪指令:

ORG addr16­­——规定编译后的机器代码存放的起始位置。

$ ——“当前PC值”也叫位置计数器。代表正在执行的指令所在位置            

符号名称  BIT  位地址

将位地址的值赋予符号名称。程序中凡出现该符号名称就代表该位地址。

例:CON BIT 20H.0

CPL CON

常用指令:

寻址方式,书本49

相对寻址

当前PC值加上指令中规定的偏移量 rel,构成实际的操作数地址

操作:跳转到的目的地址 = 当前16位PC值 + rel

注意:

1)“当前PC值”指程序中下一条指令所在的首地址,

   是一个16位数;

2)符号“rel”表示“偏移量”,是一个带符号的单字节数,范围是:-128—+127(80H—7FH)

位寻址

指令中直接给出了操作数所在的位地址或名称。

例: CLR   P1.0    ;(P1.0) ← 0

     SETB  ACC.7   ;(ACC.7)← 1

     CPL    C      ;( C )← NOT( C )

注意:

 1)位地址里的数据只可能是一个 0 或 1

 2)有的位地址十分明确,如 P1.0, ACC.7等,

    有的位地址则“不太明确”,如:

    [MOV  A,17H ; (A)←(17H),17H是字节地址]

    MOV ACC.0,17H ;(ACC.0)←(17H),这里ACC.0

   是位地址所以该指令中的17H是22H单元的第7位

内部存储器间传送:   MOV——16条)见书本51

外部数据存储器与累加器间传送:MOVX——4条)见书本55

程序存储器向累加器传送:(MOVC——2条)查表指令,见书本55

数据交换:(XCHXCHDSWAP——5条),书上54页,62

堆栈操作:(PUSHPOP——2条)书上54

*搞清楚数据传送是片内还是片外RAM

加法运算:                (ADD——4书本56页开始

带进位加法运算:          (ADDC——4)

带借位减法运算:          (SUBB——4)

1/1操作:        (INCDEC——9)

单字节乘/除法运算:   (MULDIV——2)

十进制调整:            (DA  A——1)

指令 “DA  A” 完成的操作:

(A)30>9(低4位)或(AC)=1(A)30¬(A)306

(A)74>9(高4位)或(CY)=1(A)74¬(A)746

逻辑与运算:            ANL——6条)书上61页开始

逻辑或运算:            ORL——6条)

逻辑异或运算:          XRL——6条)

累加器清零/取反:  CLRCPL——2条)

累加器移位操作: RL,RLC,RR,RRC—4条)

无条件转移:(LJMP,AJMP,SJMP,JMP——4条)书上67页开始

条件转移(判断跳转):  JZ,JNZ,CJNE,DJNZ——8条)

子程序调用及返回:(LCALL,ACALL,RET,RETI——4条)

LCALL  addr16      子程序长调用指令   ——可在64K范围内调用子程序(入栈)

ACALL  addr11   子程序绝对调用指令  —可在指令所在的2K范围内调用子程序(入栈)

RET                子程序返回指令    —子程序结束并返回调用的下一条指令(出栈)

RETI        中断服务子程序返回指令   中断结束/返回被打断处的下一条指令(出栈清除中断状态)

位传送:                    MOV——2条)书上65页开始

位清零/置位:          CLR,SETB——4条)

位逻辑与//非运算:(ANL,ORL,CPL——6条)

空操作 NOP   “耗时一个机器周期。 do nothing!

并口、中断、定时与串口

1.         单片机的I/O引脚结构(并行口)书上91

P1.0P1.7: 准双向I/O口(内置了上拉电阻) 输出时一切照常,仅在作输入口用时要先对其写“1”。

P0.0—P0.7: 双向I/O (内置场效应管上拉)寻址外部程序存储器时分时作为双向8位数据口输出低8位地址复用口;(可浮空)不接外部程序存储器时可作为8位准双向I/O使用。

P2.0P2.7: 双向I/O (内置了上拉电阻) 寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O使用。

P3.0P3.7: 双功能口(内置了上拉电阻)它具有特定的第二功能(特殊输入/输出线)。在不使用它的第二功能时它就是普通的通用准双向I/O

注意:在不外扩ROM/RAM时,P0P3均可作通用I/O口使用,而且都是准双向I/O(例如:AT89C51)

2.         单片机的定时/计数器(89c512个,523timer

TIMER的作用:定时操作:定时采样,定时扫描,定时中断

测量外部信号:累加统计,测量周期等

定时输出:PWM等

监视系统正常工作与否

定时器:对片内机器时钟(周期方波)进行计数

计数器:对Tx引脚输入的负脉冲进行计数

与Timer工作有关的特殊功能寄存器:TCON 、TMOD、THx 和 TLx

实质是计数器,脉冲每一次下降沿,计数寄存器数值将加1。计数的脉冲如果来源于单片机内部的晶振,由于其周期极为准确,这时称为定时器。计数的脉冲如果来源于单片机外部的引脚,由于其周期一般不确定,可表示事件发生,这时称为计数器。

定时器控制寄存器TCON (88H)       见前面

定时器方式寄存器TMOD (89H)

                                     

M1,M0:工作方式定义位 ( 定义4 种方式 ):

0  0:13位 Timer——用它无益,不要记它!

0  1:16位 Timer——经常用到

1  0:可自动重装的 8位 Timer——经常用到

1         1:T0 分为2个8位 Timer;T1 此时不工作 ——几乎无用

C/T :计数器/定时器选择位

 = 1 外部事件计数器。对Tx引脚的负脉冲计数;

 = 0 片内时钟定时器。对机器周期脉冲计数定时

GATE门控位: Timer可由软件与硬件两者控制

GATE = 0 ——普通用法

Timer的启/停由软件对TRx位写“1”/“0”控制

GATE = 1 ——门控用法

Timer的启/停由软件对TRx位写“1”/“0”

    和在INTx引脚上出现的信号的高/低共同控制

INTx引脚高电平允许定时/计数)

定时器结构与工作方式

工作方式0:见书上108

工作方式1——16位的定时/计数器,最大计数脉冲个数:65536(216)图片见书上110

THx/TLx赋初值:THx赋高8位,TLx赋低8位

TMOD选方式: 写“M1,M0”=01 b  选方式1

若不用门控位,直接用软件写TRx控制启/停;若使用门控位,先置位TRx,然后由INTx端的高/低电平来控制其启/停

若要允许中断,还须先置位ETx、EA等中断允许控制位,并编写中断服务程序

若不用中断,可查询“计数溢出标志TFx”的方式工作,但溢出标志TFx须软件清0

定时器的计数单元每个机器周期自动加1直到溢出(0

T=(12/fosc)*(2^16-a)usa为定时初值,T为定时时间)

工作方式2——8 位自动重装的定时/计数器

用于需要重复定时和计数的场合。最大计数值:256 (28)

TMOD寄存器选方式:写“M1,M0” = 10 b 选中方式2

THx/TLx赋相同初值。在TLx计数达到0FFH 再加“1”时,TL0将溢出, “TFx”置1去申请中断,同时THx中的值自动重装(Copy)进TLx。

其他用法与各种方式1完全相同

定时器的计数单元每个机器周期自动加1直到溢出(0

T=(12/fosc)*(2^8-a)us  (最大计数值:256

Timer工作方式 3 见书本113

T0: 组织成TL0和TH0两个8位定时/计数器

T1: 不再是定时/计数器了。T1 的TR1和TF1出借给TH0当控制位使用,剩下的TH1/TL1寄存器只能当作普通寄存器用。

串行通信与并行通讯

并行通讯:数据的各位同时传送。传输线的根数与数据位数相等。

串行通讯:数据逐位顺序传送。传输线仅需1-2根。

串行通信的基本特征是数据逐位顺序进行传送;

常见的有:通用异步收发器(UART)——本课程介绍的串口

通用串行总线(USB)

I2C总线

CAN总线

SPI总线

RS-485,RS-232C,RS422A标准……等等

全双工串行接口(UART)

全双工:(串行通信)收/发可同时进行

半双工:(串行通信)收/发不可同时进行

  单工:数据单向传送

异步串行通信:以字符为单位进行传送。开头有一个起始位0,结尾有一个停止位1。同步串行通信:以数据块为单位进行传送

波特率(bps.):每秒钟传输的数据位数。

串行口的结构

两个同名的接收/发送缓冲寄存器SBUF(99H)

指令 MOV SBUF,A 启动一次数据发送,可向SBUF再发送下一个数

指令 MOV A,SBUF 完成一次数据接收,SBUF可再接收下一个数

接收/发送数据,无论是否采用中断方式工作,每接收/发送一个数据都必须用指令对RI/TI 清0,以备下一次收/发。

串行口相关的SFR(SCON,PCON)

串行口控制寄存器SCON(98H) 书本133

SM0SM1串行口4种工作方式的选择位。

   0  0 方式0:8位移位寄存器I/O,波特率固定为 fosc/12

   0  1 方式1:8位UART(1+8+1位),波特率可变,按公式计算(137页)

   1  0 方式2:9位UART(1+8+1+1位),波特率固定=fosc x1/32(SMOD为1)或1/64(SMOD为0)

   1  1 方式3:9位UART(1+8+1+1位), 波特率可变,按公式计算(137页)

SM2串行口多机通信控制位(作为方式2、方式3的附加控制位)

RI,TI串行口收/发数据申请中断标志位

          =1 申请中断;  =0 不申请中断

RB8在方式2、3中,是收到的第9位数据。在多机通信中,用作区别地址帧/数据帧的标志。(奇偶校验)。对于方式1,如SM2=0,RB8是接收到的停止位。方式0不使用RB8。

TB8方式2、3中,是要发送的第9位数据。多机通信中,TB8=0 表示发送的是数据;TB8=1 表示发送的是地址。(奇偶校验),需要时由软件置“1”或清“0”

REN串行口接收允许控制位

   = 1 表示允许接收;  = 0 禁止接收。

电源控制寄存器 PCON97H)——特殊功能寄存器PCON不能按位寻址

SMOD在串行口工作方式 1、2、3 中,是波特率加倍位

      =1 时,波特率加倍

      =0 时,波特率不加倍。

   (在PCON中只有这一个位与串口有关)

GF1,GF0用户可自行定义使用的通用标志位

PD掉电方式控制位=0:常规工作方式。

                   =1:进入掉电方式

IDL待机方式(空闲方式)控制位=0:常规工作方式。

                             =1:进入待机方式

串行口工作方式 0

工作方式08位移位寄存器I/O方式

发送:SBUF中的串行数据由RxD逐位移出;

      TxD输出移位时钟,波特率=fosc/12

      每送出8位数据 TI就自动置1;需要用软件清零 TI。         

接收:串行数据由RxD逐位移入SBUF中;

      TxD输出移位时钟,波特率=fosc/12;

      每接收 8位数据RI就自动置1;需要用软件清零 RI。

经常配合“串入并出”“并入串出”移位寄存器(如74LS164)一起使用扩展接口。

*共阳LED数码管公共端(字位) 接高电平,笔划(字段) 置为低电平就被点亮了

工作方式1:8UART(1+8+1)波特率可变波特率越慢,越不容易出错

常用于串行通讯。除发/收8位数据外,还在D0位前有一个起始位“0”;在D7位后有一个停止位“1”。

方式1工作时:发送端自动添加一个起始位和一个停止位;

              接收端自动去掉一个起始位和一个停止位。

波特率可变——用定时器T1作波特率发生器:

            公式:波特率 =2SMOD/32´T1的溢出率

溢出率:T1溢出的频繁程度。即:T1溢出一次所需时间的倒数。

波特率 =其中:X 是定时器初值

RxD引脚为接收端,TxD引脚为发送端,由波特率发生器定时器T1控制发送速度

串行口的初始化包括:对SCON选工作方式对PCON设波特率加倍位“SMOD”(缺省值=0)如果是接收数据,仍要先置“1”REN位。 

T1作波特率发生器时初始化包括:选定时器工作方式2(TMOD选8位自动重装);将计算(或查表)出的初值X赋给TH1,TL1;启动T1 (SETB TR1);T1不要开中断 !!

工作方式2:9UART(1+8+1+1)两种波特率

通常附加的一位 (TB8/RB8)用于“奇偶校验”。

方式2的波特率 = fosc ´ 2SMOD/64: fosc ´1/32 fosc ´1/64 两种

工作方式3:当SM0,SM111时,串行口工作于方式39UART(1+8+1+1) 波特率可变

串口方式3和方式2唯一的区别是波特率机制不同。

波特率=(2SMOD/32)´T1的溢出率   见书本137

多机通信系统原理  书上139

    存储空间位置       长度   数据范围   

data   直接寻址片内RAM    8   0255 

bdata  可位寻址片内RAM    1   0/1

idata  间接寻址片内RAM    8   0255

pdata  片外页RAM          8   0255

xdata  片外RAM            16  065535

code   程序ROM            16  065535

LED数码管动态、静态扫描显示书上180页开始

键盘:独立连接键盘: 每键相互独立,各自与一条I/O线相连,CPU可直接读取该I/O线的高/低电平状态。

特点:占I/O口线多,但判键速度快,多用于设置控制键、功能键。适用于键数少的场合。

矩阵连接键盘: 键按矩阵排列,各键处于矩阵行/列的结点处,CPU通过对连在行(列)的I/O线送已知电平的信号,然后读取列(行)线的状态信息。逐线扫描,得出键码。

特点:键多时占用I/O口线少,但判键速度慢,多用于设置数字键。适用于键数多的场合。

逐行扫描法书上184

线反转法:由行线输出全“0”,读入列线,判有无键按下。

若有键按下,再将读入的列线值由列线输出,读进行线的值。

第一步读进的列线值与第二步读进的行线值相加,从而得到代表此键的唯一的特征值。

键盘去抖动

更多相关推荐:
单片机知识点总结(1)

单片机知识点总结第一章:微型计算机基础1、微型计算机数制及他们之间的相互转换2、微型计算机码制和编码第二章:MCS-51单片机结构和时序1、单片机的内部结构第三章:MCS-51单片机指令系统1、指令及其表示方法…

单片机知识点总结

单片机考点总结1.单片机由CPU、存储器及各种I/O接口三部分组成。2.单片机即单片微型计算机,又可称为微控制器和嵌入式控制器。3.MCS-51系列单片机为8位单片机,共40个引脚,MCS-51基本类型有803…

单片机个人知识点总结

波特率公式TH1256f波特率12322SMODMCS51系列单片机内部有哪些主要的逻辑部件答案一个8位的CPU一个布尔处理机一个片内振荡器128B的片内RAM21个特殊功能寄存器4个8位并行IO接口一个全双工...

单片机重点总结

第1章1、微型计算机通常由哪些部分组成?各有哪些功能?答:微型计算机通常由控制器、运算器、存储器、输入/输出接口电路、输入设备和输出设备组成。控制器的功能是负责从内部存储器中取出指令并对指令进行分析、判断、并根…

单片机知识点总结 考试大题

单片机考点总结及考试大题1234单片机由CPU存储器及各种IO接口三部分组成单片机即单片微型计算机又可称为微控制器和嵌入式控制器MCS51系列单片机为8位单片机共40个引脚MCS51基本类型有80318051和...

单片机知识点总结

第一部分硬件基础1单片机的组成2单片机的并行IO口在使用时有哪些注意的地方3单片机的存储器程序存储器和数据存储器的寻址范围地址总线和数据总线的位数数据存储器内存空间的分配特殊功能寄存器区4时钟及机器周期5单片机...

51单片机初学知识点总结

51单片机初学知识点总结经过这半个月的学习我对于单片机的定时器对IO口的随意操作输入检测中断定时器的中断单片机的外部中断串口通信等几大学习模块有了一定了解和掌握1软件我主要是在keiluvision3实现用C语...

单片机知识点

试题1参考答案一填空题25分每空1分1AT89S51单片机为位单片机3AT89S51的异步通信口为全双工单工半双工全双工4AT89S51有级中断个中断源5AT89S51内部数据存储器的地址范围是位地址空间的字节...

单片机知识点(机电系)

单片机复习知识点20xx1什么是单片机它有哪几部分组成2简述单片机的最小系统包含3部分3单片机有多少个IO口其中P3口经常使用它的什么功能4在C51编程中使用较多的数据类型是无符号字符型即unsignedcha...

单片机知识点

单片机知识点1二进制数十六进制数互换2计算机在表示有符号数的表示3十进制数转十六进制二进制数转BCD码什么是BCD码可表示为4什么是微型计算机硬件组成指出常用的输入输出设备5什么是单片机内部程序数据存储器为多少...

单片机部分知识点

单片机将微处理器一定容量的RAM和ROM以及IO口定时器等电路集成在一块芯片上构成微型计算机89C51单片机内包含哪些主要逻辑功能部件lCPU中央处理器8位2片内RAM128B3特殊功能寄存器21个4程序存储器...

单片机知识点

单片机考试要点一填空题1单片机是由CPU存储器IO接口及定时计数器集成在一个芯片上组成的2单片机的三总线可以分为地址总线数据总线和控制总线3单片机汇编语言程序有三种基本结构分别是顺序结构分支结构循环结构和循环结...

单片机知识点总结(27篇)