单片机复习.docx
《单片机复习.docx》由会员分享,可在线阅读,更多相关《单片机复习.docx(16页珍藏版)》请在冰豆网上搜索。
单片机复习
单片机复习
1、补码、原码、反码之间的转换;真值与补码;bcd码与ASC码
2、单片机的概念
将CPU(运算器+控制器)+存储器+I/O接口+系统总线功能单元集成在一块芯片上就是单片机。
3,MCS51单片机复位后各REG的状态,MCS51单片机各寄存器的功能
4,MCU控制引脚(ALE、RST、EA、PSEN等)的用法与功能
RST引脚接超过两个机器周期即可复位,位于第9引脚。
访问外部存储器启用引脚EA=0,即接VCC时,单片机读片内程序存储器(4kB)。
当PC值超过0FFFH(4kB)时将自动转向访问外部程序存储器中的程序。
当EA=1(接GND)时,系统使用外部存储器。
地址锁存允许信号ALE,系统扩展时,ALE的负跳沿将P0口发出的低8位地址信号锁存在外接的地址锁存器中,然后将P0口作为数据端口,以实现P0口的低8位地址信号和数据的分时传送。
程序存储启用信号PSEN,在单片机读外部程序存储器时,此引脚输出脉冲的负跳沿作为读外部程序存储器的选通信号。
此引脚接外部程序存储器的OE(输出允许)端;访问外部RAM时,此信号无效。
5,单片机的时钟(各种周期)与时序
时钟周期:
也称振荡周期。
定义为时钟频率的倒数,是单片机的基本单位。
若时钟晶体的振荡频率为f,则时钟周期为T=1/f。
机器周期:
CPU完成一个基本操作所需要的时间为机器周期。
单片机中常把执行一条指令的过程分为几个机器周期。
每个机器周期完成一个基本的操作,如取指令,读数据或者写数据等。
51单片机每12个时钟周期为一个机器周期。
Tcy=12/f。
状态周期:
51单片机的机器周期包括12个时钟周期,分为6个状态,即S1~S6.每个状态又分为P1和P2两个节拍,一个节拍就是一个振荡周期(时钟周期)。
指令周期:
执行一条指令所需要的时间。
51单片机的指令按字节可以分为单字节,双字节,三字节指令,因此执行各条指令的时间也不同。
对于简单的单字节指令,取出指令立即执行,只需要一个机器周期的时间,而一些复杂的指令则需要两个或多个机器周期。
以机器周期为单位
单字节和双字节指令一般为单机器周期和双机器周期,三字节指令都是双机器周期,只有乘,除指令占用4个机器周期。
一般在一个机器周期中,ALE信号两次有效,以时钟脉冲1/6的频率出现。
6,51单片机的存储器结构(逻辑上,物理上)
物理上:
片内程序存储区(ROM)、片外程序存储区(ROM)、片内数据存储区(RAM)、片外数据存储区(RAM)。
逻辑上:
片内数据存储区(RAM)、片外数据存储区(RAM)和片内外统一编址的程序存储区(ROM)。
7,51单片机内部RAM的分布
RAM共有128个单元,字节地址为00H到7FH,分为工作寄存器区,位寻址区,通用RAM区三个部分。
主要用于暂存程序执行过程中的需要经常存取的一些数据。
51系列单片机的片内数据存储器由两部分组成:
1,是128/256个字节的RAM区
2,是128个字节的特殊功能寄存器区。
(8051、8751、8031的RAM区为128个字节,地址空间为00H~7FH;8052、8032的RAM区为256个字节,地址空间为00H~FFH。
)
工作寄存器区:
字节地址:
00H~1FH
位寻址区:
字节地址:
20H~2FH
位地址为:
00H~7FH
数据缓冲区/堆栈区:
字节地址:
00H~7FH
一般使用30H~7FH
位寻址区(20H~2FH)
1RAM阵列中可直接位寻址的16个单元的128个位的位。
地址区间00H~FFH。
(用位指令访问)
2当这些单元不用于位操作时,它们可一般的RAM区单元一样作为用户的数据缓冲区。
3程序状态字寄存器PSW(特别重要!
)
4
程序状态字PSW是指令可以访问的、单片机中各有关标志寄存器的集合体。
可以以字节来访问,也可以直接访问某一位,如:
setbF0;//将F0位置1
要求掌握其中每一位的含义!
地址为D0H
8,片外程序存储器/数据存储器如何访问,地址重叠问题,寻址方式
9,51单片机中断响应(阻塞)的条件;中断触发方式,低电平触发与下降沿触发的区别与应用场合(特点);中断源/中断优先级控制
MSC-51单片机中断响应条件是:
中断源有请求,中断允许寄存器IE相应位置“1”,CPU开中断(EA=1)且:
①CPU不在处理同级的或更高优先级的中断;
②现行的机器周期是所执行指令的最后一个机器周期;
③CPU正在执行的指令不是RETI或任何访问IE/IP的指令
同时满足上述三个条件的情况下,MCS-51单片机才可响应中断源的请求。
在同一个中断优先级别内部,中断级别从高到低(即内部硬件查询次序)依次为:
INT0>T0>INT1>T1>串口中断。
中断触发方式有电平触发方式和跳沿触发方式两种。
1,(低)电平触发方式:
外部中断申请触发器的状态随着CPU在每个机器周期采样得到的外部中断输入线的电平变化而变化,能提高CPU对外部中断请求的响应速度。
当外部中断被设定为电平触发方式时,在中断服务程序返回之前,外部中断请求中断必须无效(即外部中断请求输入已由低电平变为高电平),否则CPU返回主程序后会再次响应中断。
低电平有效
适用于外部中断以低电平输入而且中断服务程序能清除外部中断请求源(即外部中断输入电平又变为高电平)。
2,(负)跳沿触发方式:
外部中断申请触发器能锁存外部中断输入线上的负跳变,此时即使CPU暂时不响应,中断请求标志也不会消失。
在此种方式下,若连续两次采样,其中一个机器周期采样到外部中断输入为高电平,一个机器周期采样为低电平,则置“1”中断申请触发器,直到CPU响应此中断时,该标志才会请“0”。
这样不会丢失中断,但是输入的负脉冲宽度至少要保持12个时钟周期,才能被凑采样到。
适用于以负脉冲形式输入的外部中断请求。
10,定时/计数器的4工作方式,初值计算,初始化编程,在定时器中如何运用中断?
11,P0~P3端口作为I/O端口的使用方法,各端口的第二功能?
三总线?
当P0口用做地址/数据复用口,相当于一个真正的双向口,用于与外部存储器的连接,输出低八位地址和输出/输入8位数据
当P0口用做通用I/O口,需要在片外接上拉电阻,要先向锁存器写“1”。
三总线:
由数据总线(DB),地址总线(AB),控制总线构成(CB)。
12,单片机最小系统概念
使单片机能运行起来的最简单的硬件配置构成单片机的最小应用系统,简称最小系统。
包括复位电路,时钟电路及单片机在内的硬件结构。
单片机指令与编程:
1、直线(顺序)程序;
2、循环(查找数据)【cjne、djnz】;
3、分支、散转程序(JMP)
4、查表(如利用查表来求函数值,MOVC);
实现从程序存储器读取数据到A累加器,只能使用变址间接寻址方式
多用于查常数表程序,可直接求取常数表中的函数值。
(仅2条指令)
1)DPTR为基址寄存器
MOVCA,@A+DPTR;A(A+DPTR)
查表范围为64KB程序存储器任意空间,称为远程查表指令。
2)PC为基址寄存器
MOVCA,@A+PC;A(A+PC)
常数表只能在查表指令后256B范围内。
5、出/入栈操作;
6、片外数据传送(MOVX);
7、典型跳转指令的转移范围等;
长转移指令:
LJMP指令转移范围:
64KB
绝对转移指令:
AJMP指令转移范围:
2KB,即转移目的地址与(PC)+2在同
一个2KB范围内
(转移时要求转移前后保持PC15~11不变)。
短转移指令:
SJMP相对偏移量rel为8位补码,亦即指令转移范围:
以下一指令首字节地址(PC+2)为起始地址的前128~后127字节!
相对偏移量rel的计算式:
rel=目的指令地址-(转移指令地址+指令字节数)=目的地址-PC当前值
间接转移指令:
JMP@A+DPTR.;PC←A+DPTR指令机器码73H,
指令转移范围64KB。
8、子程序(LCALL、RET),中断子程序
9、常见的指令错误(例程章节与练习题)
1)MOVA,#1000H;A←1000H
改正:
位数不匹配
2)MOVXA,1000H;A←(1000H)片外RAM
改正:
MOVDPTR,#1000H
MOVXA,@DPTR
3)MOVCA,1000H;A←(1000H)片外ROM
改正:
MOVDPTR,#1000H
MOVA,#0
MOVCA,@A+DPTR
4)MOVX60H,A;片外RAM(60H)←A
改正:
MOVR0,#60H
MOVP2,#00H
MOVX@R0,A
8)MOVX60H,@DPTR;片内RAM←片外RAM
改正:
MOVXA,@DPTR
MOV60H,A
5)MOVR0,60H;片内RAM:
(61H)←(60H)
MOV61H,@R0
改正:
MOVR0,#60H
MOV61H,@R0
6)XCHR1,R2;R1←→R2
改正:
XCHA,R1
XCHA,R2
7)MOVXDPTR,#2000H;DPTR←2000H
改正:
MOVDPTR,#2000H
单片机接口技术与硬件设计:
1、并行存储器的扩展(片外程序存储器、片外数据存储器、74ls373/74ls138的使用)【按给定地址要求!
】
2、三总线、简单I/O扩展
3、人机接口设计:
典型的两种种非编码矩阵式键盘的工作原理与获取键值的方法【线扫描与线反转法,要求能画硬件】;独立式按键的原理与散转【jmp】;动态显示的原理
4、ADC0809与单片机的硬件接口与编程
5、DAC0832与单片机的硬件接口与编程(单缓冲方式)
应用
1、外部中断及编程
2、定时器资源、中断及编程
3、查表、散转、循环、指针应用等典型程序设计