本帖最后由 51armfpga 于 2014-3-16 22:16 编辑
零基础学嵌入式—单片机篇【第一课—单片机基础知识】
本课程简单介绍一下单片机基础知识,使大家对单片机有个整体概念,有些知识点不一定非得记住,做到了解就行。本课程只是简单介绍,后面实验课程用到的知识点还会详细讲解。
1.1 8051单片机系统简介 单片机(MICROCONTROLLER,又称微控制器)是在一块硅片上集成了各种部件的微型机算计,这些部件包括中央处理器CPU、数据存贮器RAM、程序存贮器ROM、定时器/计数器和多种I/O接口电路。 8051单片机的基本结构如图1-1所示。
图1-1
51系列单片机结构特点:
Ø 8位CPU; Ø 片内振荡器及时钟电路; Ø 32根I/O线; Ø 外部存贮器寻址范围ROM、RAM各64K; Ø 2个l6位的定时器/计数器; Ø 5个中断源,2个中断优先级; Ø 全双工串行口; Ø 布尔处理器。 1.2 8051单片机内部结构 图1-2是8051单片机片内部结构的总框图,它可以划分为CPU、存贮器、并行口、串行口、定时器/计数器、中断逻辑几部分。
图1-2
8051的中央处理器CPU由运算器和控制逻辑构成,其中包括若干特殊功能寄存器(SFR)。 1.2.1中央处理器(CPU) 算术逻辑单元ALU能对数据进行加、减、乘、除等算术运算;“与”、“或”、“异或”等逻辑运算以及位操作运算。 ALU只能进行运算,运算的操作数可以事先放到累加器ACC中或者暂存器TMP中,运算结果可以送回ACC、通用寄存器或存储单元中。累加器ACC可以简写成A。B寄存器在乘法指令中用来存放乘数,除法运算中用来存放除数,运算后B中为部分运算结果。 程序状态字PSW是8位寄存器,是用来寄存本次运算的特征信息,用到其中的7位。PSW的格式如图1-3所示,其各位的含义是:
CY:进位标志。有进位/借位时CY=1,否则CY=0; AC:半进位标志。当D3位向D4位产生进位/借位时AC=1,常用于十进制调整运算中; F0:用户可设定的标志位,可置位/复位,也可供测试。 RS1、RS0:四个通用寄存器组的选择位,该两位的四种组合状态用来选择0~3寄存器组。 OV:溢出标志。当带符号数运算结果超出-128—+127范围时OV=1,否则OV=0。当无符号数乘法结果超过255时,或当无符号数除法的除数为0时,OV=1,否则OV=0。 P:奇偶校验标志。每条指令执行完,若A中1的个数为奇数时P=1,即奇校验方式;否则P=0,即偶校验方式。 控制逻辑主要包括定时和控制逻辑、指令寄存器、译码器以及地址指针DPTR和程序计数器PC等。 时钟是时序的基础,8051片内由一个反相放大器构成振荡器,可以由它产生时钟。时钟可以由两种方式产生,即内部方式和外部方式, 内部方式:在XTAL1和XTAL2之间外接石英晶体作为定时元件,内部反相放大器自激振荡,产生时钟。时钟发生器对震荡脉冲二分频,即时钟频率=1/2*石英频率。 外部方式:可以通过XTAL1和XTAL2接入外部时钟。 8051的基本时序周期,一条指令译码产生的一系列微操作信号在时间上有严格的先后次序,这种次序就是计算机的时序。 Ø 振荡周期:指振荡源的周期,若为内部产生方式时,为石英晶体的振荡周期。 Ø 时钟周期:为振荡周期的两倍。 Ø 机器周期:一个机器周期含6个时钟周期(S周期),基本时序周期12个震荡周期。 Ø 指令周期:完成一条指令占用的全部时间。MCS-51的指令周期含1-4 个机器周期,其中多数为单周期指令,还有2周期和4周期指令。 1.2.2 存储器结构 计算机的存贮器的管理模式,大致可分为两类。第一类是将程序存贮器和数据存贮器分开,并有各自的寻址机构和寻址方式,这种结构形式称为哈佛型结构。另一类是存贮器逻辑空间统一管理,可随意安排ROM或RAM,访问时用同一种指令,这种结构形式称为普林斯顿型。8051单片机的存贮器结构属于前者,一般微机属于后者。 程序:0000-0FFFFH 内部00-7F:工作寄存区、通用数据区 数据: 存贮器结构80-FF:特殊功能寄存器、通用数据区 程序:1000-FFFFH(或0000-FFFF) 外部 数据:0000-FFFFH 存贮器组织结构: 数据存贮器RAM也有64KB寻址区,在地址上是和ROM重叠的。8051通过不同的信号来选通ROM或RAM:当从外部ROM取指令时用选通信号PSEN,而从外部RAM读写数据时采用读写信号RD或WR来选通。因此不会因地址重叠而出现混乱。 1.3 8051单片机内部资源 1.3.1 串行口 8051单片机内部有一个可编程的、全双工的串行接口,串行收/发存储在特殊功能寄存器SFR的串行数据缓冲器SBUF中的数据,SBUF占用RAM地址99H。但在机器内部,实际上有两个数据缓冲器:发送缓冲器和接收缓冲器。因此,可以同时保留收/发数据,进行收/发操作,但收/发操作都是对同一地址99H进行的。 1.3.2 定时器/计数器 8051内部有两个16位可编程定时器/计数器,记为T0和T1。16位是指它们都是由16个触发器构成,最大计数值为216-1。可编程是指他们的工作方式由指令来设定,或者当计数器用,或者当定时器用,并且计数(定时)的范围也可以由指令来设置。这种控制功能是通过定时器方式控制寄存器TMOD来完成的。 在定时功能时,单片机的时钟由内部提供,即系统时钟经过12分频后作为定时器的时钟。在计数功能时,计数脉冲由T0(P3.4)和T1(P3.5)提供。 1.3.3 中断系统 8051的中断系统允许接受5个独立的中断源,即两个外部中断申请,两个定时器/计数器中断及一个串行口中断。 外部中断申请通过 (P3.2)和 (P3.3)输入,输入方式可以是低电平触发,也可以是下降沿触发。两个定时器中断请求是当定时器溢出时向CPU提出的。第五个中断请求是由串行口发出的,串行口每发送完一个数据或接收完一个数据,就可以提出一个中断申请。
1.4 8051单片机引脚分布 8051单片机是采用40引脚的双列直插封装的芯片,有些引脚具有两种功能,引脚图见图1-3。
图1-3
1.4.1 主电源引脚(2根) Ø VSS(20):接地线 Ø Vcc(40):电源线,接5V电源 1.4.2 外接晶体引脚(2根) Ø XTAL1(19):接外部晶体的一个引脚或引入外部时钟,当采用内部振荡器时,接外部石英晶体的一个引脚。当采用外部振荡器时,对HMOS型工艺的单片机,此引脚应接地;对CHMOS型工艺的单片机,此引脚作为时钟输入端。 Ø XTAL2(18):接外部石英晶振的另一个引脚或引入外部时钟,当采用内部振荡器时,他接外部晶体的另一个引脚。当采用外部振荡器时,对HMOS型工艺的单片机,该引脚作为时钟输入端,对CHMOS型而言,此引脚悬浮。 1.4.3 控制引脚(4根) Ø RST/VPD(9):复位信号引脚 当振荡器运行时,在此引脚上出现两个机器周期的高电平将使单片机复位。一般将此引脚与Vss之间连接一个约8.2K的下拉电阻,与Vcc引脚之间连接一个约10uF的电容,以保证可靠的复位。 Ø /ALE(30):地址锁存允许信号。 当访问外部存储器时,ALE的输出用于锁存地址的低八位,即使不访问外部存储器,ALE端仍以不变的频率周期性的输出脉冲信号,此频率为石英晶体振荡频率的1/6。因此它可以用作对外输出的时钟,或用于定时的目的。每当访问外部数据存储器时,将跳过一个ALE脉冲。 Ø /PSEN(29):外部程序存储器的读选通信号。 在读外部ROM时, 有效(低电平),以实现对外部程序存储器的读操作。 Ø /EA(31):访问程序储存器选择控制信号。 当EA为低电平时,对ROM的读操作限定在外部程序存储器;当EA为高电平时,对ROM的读操作从内部开始。 1.4.4 输入/输出引脚(32根) Ø P0.0—P0.7(39—32):P0口的8位双向I/O口线 P0口是一个8位漏极开路的双向I/O口。在访问外部存储器时,它是分时多路转换的地址和数据总线,P0口常用作此方式。在外部没有存储器时,它作为并行I/O口使用,但需外接上拉电阻。它的带负载能力是8个LSTTL门电路。 Ø P1.0—P1.7(1—8):P1口的8位准双向I/O口线 P1口是一个带有内部上拉电阻的8位准双向I/O口。它通常用作通用I/O口,能带动4个LSTTL门。 Ø P2.0—P2.7(21—28):P2口的8位准双向I/O口线 P2口是一个带有内部上拉电阻的8位准双向I/O口。在访问外部存储器时,它送出地址的高8位;在没有外部存储器时,也可作为通用I/O使用,可带动4个LSTTL门。 Ø P3.0—P3.7(10-17):P3口的8位准双向I/O口线 P3口是一个带有内部上拉电阻的8位准双向I/O口。作为通用I/O时与P1相同。P3口还具有第二功能,并且最常用的就是它的第二功能。P3.0,第二功能是RXD,是串行数据接收端。P3.1,第二功能是TXD,是串行数据发送端。P3.2第二功能是 ,外部中断0申请信号线。P3.3第二功能是 ,外部中断1申请信号线。P3.4第二功能是T0,定时器/计数器0计数输入端。P3.5第二功能是T1,定时器/计数器1计数输入端。P3.6第二功能是 ,外部RAM写选通信号。P3.7第二功能是 ,外部RAM读选通信号。
|