单片机复习.docx
- 文档编号:14252277
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:14
- 大小:387.93KB
单片机复习.docx
《单片机复习.docx》由会员分享,可在线阅读,更多相关《单片机复习.docx(14页珍藏版)》请在冰点文库上搜索。
单片机复习
Chapter1
8位单片机内部采用16位数据总线
MCS=MicroControllorSystem
嵌入式处理器按体系结构主要分为如下几类:
嵌入式微控制器(单片机)、嵌入式数字信号处理器(简称DSP)及嵌入式微处理器。
Chapter2
2.1AT89S51单片机的硬件组成[要了如指掌]
1)8位微处理器(CPU);
(2)数据存储器(128BRAM);
(3)程序存储器(4KBFlashROM);
(4)4个8位可编程并行I/O口(P0口、P1口、P2口、P3口);【四个并行口】
(5)1个全双工的异步串行口;
(6)2个可编程的16位定时器/计数器;【处理是8,定时计数是16】
(7)1个看门狗定时器;
(8)中断系统有5个中断源,对应5个中断向量;【哪5个中断源?
】
(9)特殊功能寄存器(SFR)26个;
(10)低功耗模式有空闲模式和掉电模式,且具有掉电模式下的中断恢复模式;
(11)3个程序加密锁定位;
6.2.1中断请求源
由图6-2,中断系统共有5个中断请求源,它们是:
(1)INT0*—外部中断请求0,外部中断请求信号(低电平或负跳变有效)由INT0*引脚输入,中断请求标志为IE0。
(2)INT1*—外部中断请求1,外部中断请求信号(低电平或负跳变有效)由INT1*引脚输入,中断请求标志为IE1。
(3)定时器/计数器T0计数溢出的中断请求,标志为TF0。
(4)定时器/计数器T1计数溢出的中断请求,标志为TF1。
(5)串行口中断请求,标志为发送中断TI或接收中断RI。
AT89S51单片机片内结构
:
(1)CPU(微处理器)
8位,与通用CPU基本相同,包括了运算器和控制器两大部分,还有面向控制的位处理功能。
(2)数据存储器(RAM)
片内为128B(52子系列为256B),片外最多可扩64KB。
(3)程序存储器(FlashROM)
片内集成有4KB的Flash存储器(AT89S52则为8KB;AT89C55片内20KB),如片内容量不够,片外可外扩至64KB。
(4)中断系统
具有5个中断源?
?
,2级中断优先权。
(5)定时器/计数器
2个16位定时器/计数器(52子系列有3个),4种工作方式。
(6)串行口
1个全双工的异步串口,4种工作方式。
可进行串行通信,扩展并行I/O口,还可与多个单片机构成多机通信系统。
(7)4个8位的并行口:
P0口、P1口、P2口和P3口。
。
(8)特殊功能寄存器(SFR)
26个,对片内各功能部件管理、控制和监视。
是各功能件的控制寄存器和状态寄存器[寄存的是状态与控制的信号],映射片内RAM区80H~FFH内。
(9)1个看门狗定时器WDT
当由于干扰程序陷入死循环或跑飞时,可使程序恢复正常运行
2.2AT89S51的引脚功能
引脚按其功能可分为如下3类:
(1)电源及时钟引脚—VCC、VSS;XTAL1、XTAL2。
(2)控制引脚—PSEN*、ALE/PROG*、EA*/VPP、RST(RESET)
(3)I/O口引脚——P0、P1、P2、P3,为4个8位I/O口
2.2.1电源及时钟引脚
1.电源引脚
(1)VCC(40脚):
+5V电源。
(2)VSS(20脚):
数字地
2.时钟引脚【可能会出现让你画电路图的题目】【T:
加时钟与复位电路?
】
(1)XTAL1(19脚):
片内振荡器反相放大器和时钟发生器电路输入端。
用片内振荡器时,该脚接外部石英晶体和微调电容。
外接时钟源时,该脚接来自外部时钟振荡器的信号。
(2)XTAL2(18脚):
片内振荡器反相放大器的输出端。
当使用片内振荡器,该脚接外部石英晶体和微调电容。
当使用外部时钟源时,本脚悬空。
2.2.2控制引脚
(1)RST(RESET,9脚)
复位信号输入,在引脚加上持续时间大于2个机器周期的高电平,可使单片机复位。
正常工作,此脚电平应≤0.5V
当看门狗溢出时,该脚将输出96个时钟振荡周期的高电平
(2)EA*/VPP(EnableAddress/VoltagePulseofPrograming,31脚)
EA*:
第一功能:
外部程序存储器访问允许控制端。
【程序存储,不是数据】
EA*=1,在PC值≤0FFFH(不超出片内4KBFlash存储器地址范围)【FFF,4K字节】时,单片机读片内Flash存储器(4KB)中的程序,
但PC值>0FFFH(超出片内4KBFlash地址范围)时,将自动转向读取片外60KB(1000H-FFFFH)程序存储器空间中的程序。
EA*=0,只读取片外程序存储器中内容【即片内4K不起作用】,读取地址范围为0000H~FFFFH,片内的4KBFlash程序存储器不起作用。
VPP:
引脚第二功能,对片内Flash编程,接编程电压。
【?
笔记:
定时初值时要自己化为其它进制,10到2or16】
3)ALE/PROG*
ALE【单片机自动产生,无需编程】:
为CPU访问外部程序存储器或外部数据存储器提供地址锁存控制信号【地址,不是数据】,将低8位地址锁存在片外的地址锁存器中。
【?
高8低8?
】此外,单片机正常运行时,ALE端一直有正脉冲信号输出,此频率为fosc的1/6。
该信号可作外部定时或触发信号使用。
注意:
每当AT89S51访问外部RAM或I/O时,要丢失一个ALE脉冲,所以ALE引脚的输出信号频率并不是准确的1/6fosc。
如不需要ALE端输出脉冲信号,可将特殊功能寄存器AUXR(地址8EH,本章后面介绍)的第0位(ALE禁止位)置1,来禁止ALE操作,但在执行访问外部程序存储器或外部数据存储器操作时,ALE仍然有效,即ALE禁止位不影响对单片机对外部存储器的访问。
PROG*:
【重要】引脚第二功能,对片内Flash编程,加编程脉冲输入。
2.2.3并行I/O口引脚
(1)P0口【特殊】:
P0.7~P0.0脚,8位,漏极开路的双向I/O口
当外扩存储器及I/O接口芯片时,P0口作为低8位地址总线及数据总线的分时复用端口。
P0口也可作通用的I/O口用,需加上拉电阻,这时为准双向口。
如作输入,应先向端口写1。
可驱动8个LS型TTL负载。
(2)P1口【普通双向I/O口】:
P1.7~P1.0脚,8位,准双向I/O口,内有上拉电阻。
准双向I/O口,作通用I/O输入时,应先向端口锁存器写1,P1口可驱动4个LS型TTL负载。
P1.5/MOSI、P1.6/MISO和P1.7/SCK也可用于对片内Flash存储器串行编程和校验,分别是串行数据输入、输出和移位脉冲引脚。
(3)P2口:
P2.7~P2.0脚,8位,准双向I/O口,具有内部上拉电阻。
当AT89S51扩展外部存储器及I/O口时,P2口作为高8位地址总线输出高8位地址。
P2口也可作普通I/O使用。
当作通用I/O输入时,应先向端口输出锁存器写1。
可驱动4个LS型TTL负载。
(4)P3口【有第二引脚功能】:
P3.7~P3.0脚,8位,准双向I/O口,具有内部上拉电阻。
可作为通用的I/O口使用。
作为通用I/O输入,应先向端口输出锁存器写入1。
可驱动4个LS型TTL负载。
P3口还可提供第二功能。
第二功能定义如表2-1,应熟记。
综上所述,P0口作为总线口时,为双向口,作通用I/O用时,为准双向口,需加上拉电阻。
P1、P2、P3口均为准双向口。
注意:
准双向口与双向口的差别。
准双向口仅有两个状态。
而P0口作为总线使用,口线内无上拉电阻,处于高阻“悬浮”态。
故为双向三态I/O口。
为什么P0口要有高阻“悬浮”态?
因为P0口作为数据总线用时,多个数据源都挂在数据总线上,当P0口不需要读写其他数据源时,需要与数据总线高阻“悬浮”隔离。
准双向I/O口则无高阻“悬浮”态。
另外,准双向口作通用I/O输入使用时,需先向该口先写入“1”。
准双向口与双向口的差别,学习2.5节的P0~P3口内部结构后,会有更深入了解。
至此,40只引脚已介绍,应熟记每一引脚功能,对应用系统硬件电路设计十分重要。
2.3AT89S51的CPU
由图2-1,由运算器和控制器构成。
2.3.1运算器
对操作数进行算术、逻辑和位操作运算。
主要包括算术逻辑运算单元ALU、累加器A、位处理器、程序状态字寄存器PSW及两个暂存器等。
1.算术逻辑运算单元ALU
可对8位变量逻辑运算(与、或、异或、循环、求补和清零),还可算术运算(加、减、乘、除)
ALU还有位操作功能,对位变量进行位处理,如置“1”、清“0”、求补、测试转移及逻辑“与”、“或”等。
2.累加器A【放置加数,乘数,作为中转站】
3.程序状态字寄存器PSW【记概念,地址不用】
PSW(ProgramStatusWord)位于片内特殊功能寄存器区,字节地址D0H。
包含了程序运行状态的信息,其中4位保存当前指令执行后的状态,供程序查询和判断。
格式如图2-3。
图2-3PSW的格式
PSW中各位功能:
(1)Cy(PSW.7)进位标志位
可写为C。
在算术和逻辑运算时,若有进位/借位,Cy=1;否则,Cy=0。
在位处理器中,它是位累加器。
(2)Ac(PSW.6)辅助进位标志位
在BCD码运算时,用作十进位调整。
即当D3位向D4位产生进位或借位时,Ac=1;否则,Ac=0。
(3)F0(PSW.5)用户设定标志位
由用户使用的一个状态标志位,可用指令来使它置“1”或清“0,控制程序的流向。
用户应充分利用。
(4)RS1、RS0(PSW.4、PSW.3)4组工作寄存器区选择
(5)OV(PSW.2)溢出标志位【比较重要】
当执行算术指令时,用来指示运算结果是否产生溢出。
如果结果产生溢出,OV=1;否则,OV=0。
(6)PSW.1位:
保留位。
(7)P(PSW.0)奇偶标志位【单片机就只有奇校验】
指令执行后,累加器A中“1”的个数是奇数还是偶数。
P=1,A中“1”的个数为奇数。
P=0,A中“1”的个数为偶数。
此标志位对串行通信有重要意义,常用奇偶检验来检验数据串行传输的可靠性。
2.3.2控制器
任务:
识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动协调地工作。
控制器包括:
程序计数器、指令寄存器、指令译码器、定时及控制逻辑电路等。
功能是控制指令的读入、译码和执行,从而对各功能部件进行定时和逻辑控制。
程序计数器PC是一个独立的16位计数器,指令不可直接访问。
单片机复位时,PC内容为0000H,从程序存储器0000H单元取指令,开始执行程序。
PC工作过程:
CPU读指令时,PC的内容作为所取指令的地址,程序存储器按此地址输出指令字节,同时PC自动加1。
2.4AT89S51单片机存储器的结构
存储器结构特点之一是将程序存储器和数据存储器分开(哈佛结构),并有各自的访问指令。
存储器空间可分为4类。
1.程序存储器空间
片内、片外两部分。
片内程序存储器为4KB的Flash存储器,编程和擦除全是电气实现,且速度快。
可通用编程器编程,也可在线编程。
当片内4KB的Flash存储器不够用时,可在片外扩展程序存储器,最多可扩展至64KB程序存储器。
。
2.数据存储器空间
片内、片外两部分。
片内有128BRAM(52子系列为256B)。
片内RAM不够用时,在片外可扩展至64KBRAM。
3.特殊功能寄存器SFR(SpecialFunctionRegister)
片内共有26个特殊功能寄存器SFR(SpecialFunctionRegister)。
SFR实质是各外围部件的控制寄存器及状态寄存器,综合反映单片机内部实际的工作状态及工作方式。
【sfr大部分知道要干嘛的】
4.位地址空间
共211个可寻址位,构成了位地址空间。
它们位于内部RAM(共128位)和特殊功能寄存器区(共83位)中。
2.4.1程序存储器空间
存放程序和表格之类的固定常数。
片内为4KBFlash,地址为0000H~0FFFH。
16位地址线,可外扩的程序存储器空间最大为64KB,地址为0000H~FFFFH。
使用应注意以下问题
(1)分片内和片外两部分,访问片内的还是片外的程序存储器,由EA*脚电平确定。
EA*=1,CPU从片内0000H开始取指令,当PC值≤0FFFH时,只访问片内Flash存储器,当PC值>0FFFH自动转向读片外程序存储器空间1000H~FFFFH内的程序。
EA*=0,只执行片外程序存储器(0000H~FFFFH)中的程序。
不理会片内4KBFlash存储器。
(2)程序存储器某些固定单元用于各中断源中断服务程序入口。
AT89S51复位后【复位之后的值?
?
】,程序存储器地址指针PC为0000H,程序从程序存储器地址0000H开始执行程序。
由于外部中断0的中断服务程序入口地址为0003H,为使主程序不与外部中断0的中断服务程序发生冲突,用汇编语言编程时,一般在0000H单元存放一条跳转指令,转向主程序的入口地址。
上述问题,在使用C51语言编程时,用户只需正确书写中断函数即可,其他由C51编译时自动处理,不会发生冲突。
【由指令dataorxdata决定内外】2.片外数据存储器
当片内128B的RAM不够用时,需外扩,最多可外扩64KB的RAM。
注意,片内RAM与片外RAM两个空间是相互独立的,片内RAM与片外RAM的低128B的地址是相同的,但由于使用不同的访问指令,所以不会发生冲突。
1.【概念】堆栈指针SP
指示堆栈顶部在内部RAM块中的位置。
堆栈结构--向上生长型。
单片机复位后,SP为07H,使得堆栈实际上从08H单元开始,由于08H~1FH单元分别属于1~3组的工作寄存器区,最好在复位后把SP值改为60H或更大值,避免堆栈与工作寄存器冲突。
堆栈主要是为子程序调用和中断操作【会考】而设。
用于保护断点和现场。
(1)保护断点。
无论子程序调用还是中断服务子程序调用,最终都要返回主程序。
应预先把主程序的断点在堆栈中保护起来,为程序正确返回做准备。
2)现场保护。
执行子程序或中断服务子程序时,要用到一些寄存器单元,会破坏原有内容。
要把有关寄存器单元的内容送入堆栈,保存起来,即“现场保护”。
两种操作:
数据压入(PUSH)堆栈,数据弹出(POP)堆栈。
数据压入堆栈,SP自动加1;数据弹出堆栈,SP自动减1。
4.数据指针DPTR0和DPTR1
双数据指针寄存器,便于访问数据存储器。
P0口作通用I/O输出口时,来自CPU的“写”脉冲加在D锁存器的CP端,内部总线上的数据写入D锁存器,并由引脚P0.x输出。
当D锁存器为1时,端为0,下方场效应管截止,输出为漏极开路,此时,必须外接上拉电阻才能有高电平输出;
1.P1口工作原理
P1口只作为通用I/O口使用【就是输入输出,而不是作为地址or数据总线】。
2.P1口总结
P1口由于有内部上拉电阻,没有高阻抗输入状态,故为准双向口。
作为输出口时,不需要在片外接上拉电阻。
P1口“读引脚”输入时,必须先向锁存器P1写入1【做很多实验都要有这句话,p0=、ff】。
频率的范围通常是在 1.2~12MHz。
2.6.2机器周期、指令周期与指令时序
各种指令时序与时钟周期相关。
1.时钟周期
时钟控制信号的基本时间单位。
若晶振频率为fosc,则时钟周期Tosc=1/fosc。
如fosc=6MHz,Tosc=166.7ns。
2.机器周期
CPU完成一个基本操作所需时间为机器周期。
执行一条指令分为几个机器周期。
每个机器周期完成一个基本操作,如取指令、读或写数据等。
每12个时钟周期为1个机器周期
2.9低功耗节电模式
两种低功耗节电工作模式:
空闲模式(idlemode)和掉电保持模式(powerdownmode)
两种节电模式可通过PCON的位IDL和位PD的设置选择
PCON寄存器各位定义
PD:
掉电保持模式控制位,PD=1,则进入掉电保持模式。
IDL:
空闲模式控制位,若IDL=1,则进入空闲运行模式。
1.空闲模式【概念】进入
如把PCON中的IDL位置“1”,由图2-17,则把通往CPU的时钟信号关断,便进入空闲模式。
虽然振荡器运行,但是CPU进入空闲状态。
所有外围电路(中断系统、串行口和定时器)仍继续工作,SP、PC、PSW、A、P0~P3端口等所有其他寄存器、内部RAM和SFR中内容均保持进入空闲模式前状态。
2.9.2掉电运行模式
用指令把PCON寄存器的PD位置1,便进入掉电模式。
由图2-17,在掉电模式下,进入时钟振荡器的信号被封锁,振荡器停止工作。
由于没有时钟信号,内部的所有功能部件均停止工作,但片内RAM和SFR的原来内容都被保留,有关端口的输出状态值都保存在对应的特殊功能寄存器中。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 复习
![提示](https://static.bingdoc.com/images/bang_tan.gif)