第2章单片机系统组成原理_第1页
第2章单片机系统组成原理_第2页
第2章单片机系统组成原理_第3页
第2章单片机系统组成原理_第4页
第2章单片机系统组成原理_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章

单片机系统组成原理2.1MCS-51单片机组成原理2.2单片机复位电路设计2.3MCS-51存储器配置2.4定时器/计数器2.5中断系统

2.1

MCS-51单片机组成原理

MCS-51单片机的组成:1.

8位CPU2.片内ROM/EPROM、RAM3.片内并行I/O接口4.片内16位定时器/计数器5.片内中断处理系统6.片内全双工串行I/O口不同型号MCS-51单片机CPU处理能力和指令系统完全兼容,只是存储器和I/O接口的配置有所不同。MCS-51单片机结构2.2

MCS-51单片机引脚1.I/O口线功能4个8位并行I/O接口引脚P0.0~P0.7、P1.0~P1.7、P2.0~P2.7和P3.0~P3.7为多功能引脚,可自动切换用作数据总线、地址总线、控制总线和或I/O接口外部引脚2.控制线ALE:地址锁存允许信号端PSEN:外部程序存储器读选通信号端EA/VPP:程序存储器选择信号端和编程电源输入端复位:

RST/VPD:复位信号端和后备电源输入端。输入10ms以上高电平脉冲,单片机复位。VPD使用后备电源,可实现掉电保护。电源工作电源:VCC、VSS、

复位电路: 1)上电复位 2)外部信号复位单片机RSTK+5V200Ω1K30μF时钟时钟频率:范围要求在1.2MHz~12MHz之间。一般从外部振荡器输入时钟信号。机器周期:完成一个基本操作所需要的时间。一个机器周期由12个时钟周期组成。指令周期:一条指令的执行时间。以机器周期为单位:单周期、双周期和四周期指令。思考题:设应用单片机晶振频率为12MHz,问机器周期为多少?指令周期分别为多少?XTAL1

单片机

XTAL20000HFFFFH0000HFFFFHROM内RAM外RAM00HFFH寄存器区位寻址区数据缓冲区SFR20H30H80HE0HA2.3

MCS-51寄存器配置物理上4个存储器地址空间:片内/片外程序存储器空间片内/片外数据存储器空间逻辑上3个存储器地址空间:64KB程序存储器256B片内数据存储器64KB片外数据存储器一、物理空间与地址二、程序和数据存储器逻辑空间普林斯顿结构:程序和数据共用一个存储器逻辑空间,统一编址。哈佛结构:程序与数据分为两个独立存储器逻辑空间,分开编址。三、片内RAM寄存器MCS-51的寄存器在片内RAM都有映像地址。使用时,既可用寄存器名,也可用对应单元地址。1.片内RAM工作寄存器区:字节地址:00H~1FH位寻址区:字节地址:20H~2FH位地址为:00H~7FH数据缓冲区/堆栈区:字节地址:00H~7FH一般使用30H~7FH2.特殊功能寄存器SFR占用字节地址:80H~FFH位寻址寄存器:其字节地址可被8整除。专用寄存器:A、B、PSW、DPTR、SPI/O接口寄存器:

P0、P1、P2、P3、SBUF、TMOD、TCON、SCON…

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

8031有2个可独立控制的16位定时器/计数器:T0、T1。+1计数器溢出中断脉冲控制开关2.4

MCS-51定时器/计数器

2.4.1MCS-51计数/定时器的原理定时器控制、状态寄存器1)TMOD定时器方式寄存器(89H)1)功能选择位C/T:=0,定时功能,计数内部机器周期脉冲;=1,计数功能,计数引脚T0(T1)输入的负脉冲。2)方式选择位M1、M0:3)门控方式选择位GATE

计数器启动方式的选择确定定时器工作方式指令:

MOVTMOD,#方式字例:设T0用方式2非门控定时,T1用方式1门控计数。

MOVTMOD,#0D2H;11010010B

T1T02.4.2

定时器工作方式由方式选择位M1、M0设定一、

方式013位定时/计数器。THx8位和TLx低5位组成13位加1计数器,此种方式与MCS-48系列兼容,如果不是为了兼容的目的,一般不用方式0.方式0的全部功能,方式1都可以代替。二、

方式116位定时/计数器。THx8位和TLx8位组成16位加1计数器最大计数脉冲个数:1~65536(216),最长定时时间(晶振12MHzT=1s):1s~65536×T=65.54ms非门控方式:当GATE=0,

控制权由TRx决定

TRx=1计数开始

TRx=0计数停止门控方式:当GATE=1、TRx=1

控制权由INTx决定

INTx=1计数开始

INTx=0计数停止启动计数方式:三、

方式2

用于需要重复定时和计数的场合。最大计数值:256(28)最大定时时间(晶振12MHz时T=1s):256s自动恢复初值8位定时/计数器。TLx为8位加1计数器,THx为8位初值暂存器。四、方式3

T0分成2个8位定时器:TL0定时/计数器和TH0定时器TL0占用T0控制位:C/T,TR0,GATE;TH0占用T1控制位:TR1。T1不能使用方式3工作2.4.3

计算时间常数X(计算初值)计数功能:X=2n-计数值n:8/13/16定时功能:X=2n-t/Tt:定时时间(s)T:机器周期 =12/晶振频率如:晶振为12MHz时,T=12/12MHz=12÷(12×10-6)(秒)=1×10-6=1us一、

MCS-51定时器的应用定时器初始化编程:使用定时器工作之前,先写入控制寄存器,确定好定时器工作方式。初始化编程格式:MOVTMOD,#方式字;选择方式MOVTHx,#XH ;装入Tx时间常数MOVTLx,#XLSETBEA ;开Tx中断SETBETxSETBTRx ;启动Tx定时器。

例:由P1.0输出方波信号,周期为2ms,设fosc=12MHz。2ms解:每隔1ms改变一次P1.0的输出状态,即形成方波,用T0非门控方式1定时。计算时间常数:X=216-t/T=216–(/1000)/10-6=65536-1000=64536=FC18H

ORG 0000H AJMP MAIN ORG 000BH;T0中断硬件入口地址

AJMP PT0INT;跳到中断服务程序

ORG 0030H

MAIN: MOV TMOD,#01H;中断方式

MOV TL0,#18H;计数初值

MOV TH0,#0FCH SETB EA;开放总中断

SETB ET0;开放T0中断

SETB TR0;启动定时器

HERE: SJMP HERE;等待中断,相当于执行其它任务

PT0INT: MOV TL0,#18H;中断服务程序;置初值

MOV TH0,#0FCH CPL P1.0;取反,产生方波

RETI;中断返回例

P1.7驱动LED亮1秒灭1秒地闪烁,设时钟频率为12MHz。

长定时方法:增加一个软件计数器(如R7),记录中断次数,计满n个中断为1秒。

ORG 0000H AJMP MAIN ORG 001BH AJMP PT1INT ORG 0030HSTART:MOVR7,#00H

MOVTMOD,#10H MOVTL1,#0F0H MOVTH1,#0D8HSETB EA SETB ET1 SETB TR1HERE:SJMPHEREPT1INT:MOVTL1,#0F0H MOVTH1,#0D8H INCR7CJNER7,#10,PENDMOVR7,#00HCPLP1.7PEND:RETI例

定时器外部引脚T0(T1)用作外部中断信号输入端。外部负脉冲引起中断请求,选计数方式,时间常数为FFH。

例:门控方式测量正脉冲宽度

解:INT1引脚输入被检测信号,记录在正脉冲的时间内包含机器脉冲个数。

设脉宽小于65.5ms

等待查询INT0,正脉冲过后,读出TH1TL1。START: MOVTMOD,#90H MOVTL1,#00H MOVTH1,#00HWAIT1: JB P3.3,WAIT1 SETBTR1WAIT2:JNB P3.3,WAIT2WAIT3:JB P3.3,WAIT3 CLR TR1 MOV R2,TL1 MOV R3,TH1 …TR1=1 T1启动TR1=0 T1停止INT1一、中断系统——重要指标日常生活中的中断与计算机中断的比较:

某人看书 执行主程序 日常事务电话铃响 中断信号如INT=0 中断请求暂停看书

暂停执行主程序中断响应书中作记号当前PC入栈 保护断点电话谈话 执行中断程序 中断服务继续看书 返回主程序 中断返回日常事务程序中断服务程序2.5中断系统

2.5.1

中断概念

所谓“中断”,是指CPU执行正常程序时,系统中出现特殊请求,CPU暂时中止当前的程序,转去处理更紧急的事件,处理完毕后,CPU返回原程序的过程。中断与子程序的最主要区别:子程序是预先安排好的;中断是随机发生的。二、中断的定义,与子程序的区别三、MCS-51中断系统内部结构2.5.2

中断系统控制

一、中断控制寄存器1.中断标志位:TF1、TF0、IE1、IE0、RI、TI登记各中断源请求信号:=1,有中断请求;=0,无中断请求。CPU响应中断后,该中断标志自动清零。TI,RI标志必须软件清零。2.外部中断触发方式选择位:IT0、IT1=1:负边沿触发中断请求;=0:低电平触发中断请求。二、

中断允许寄存器

中断允许控制位:EA、ES、ET1、EX1、ET0、EX0=1开中断;=0关中断。例:允许CPU响应INT0的中断请求

SETBEX0 SETBEA 三、

中断优先寄存器中断优先级控制位:PS、PT1、PX1、PT0、PX02级优先级:=1为高优先级,=0为低优先级。同一优先级别按内部查询顺序排列优先级:高INT0、T0、INT1、T1、SIO低。2.5.3

中断响应和中断返回

一、中断响应周期时序

每个机器周期采样中断标志位,若有中断请求,将在下一个机器周期按优先级顺序进行中断查询。

二、各中断源中断服务程序的入口地址

三、中断响应阻断

1.当CPU未执行完一条指令。2.当有同级或高级中断服务。3.执行RETI指令或访问IE、IP的指令后,不能立即响应中断。

四、中断返回中断返回指令:RETI=RET指令+通知CPU中断服务已结束。中断响应时间:正常中断响应时间至少为3~8个机器周期,如果有同级或高级中断服务,将延长中断响应时间。2.5.4

中断处理过程(基本理解的要求)一、中断响应条件1.有中断请求信号2.系统处于开中断状态二、中断响应过程1.保护断点:将断点地址压入堆栈保存,即当前PC值入栈。2.寻找中断源:中断服务程序硬件入口®PC,转入中断服务。3.中断处理:执行中断源所要求的程序处理段。4.中断返回:执行RETI指令,栈顶内容®PC,程序跳转回断点处。

2.5.5

多中断源系统当外部中断源多于中断输入引脚时,可采取以下措施:1.用定时器计数输入信号端T0、T1作外部中断入口引脚2.用串行口接收端RXD作外部中断入口引脚3.用一个中断入口接受多个外部中断源,并加入中断查询电路。

2.5.6

处理外部中断举例要求每次按动按键,使外接发光二极管LED改变一次亮灭状态。解:INT0输入按键信号,P1.0输出改变LED状态。一、跳变触发:每次跳变引起一次中断请求

ORG 0000H

AJMPMAIN ORG 0003H ;中断入口 AJMP PINT0 ORG 0100H ;主程序MAIN:SETB EA ;开总允许开关

SETB EX0 ;开INT0中断

SETB IT0;负跳变触发中断Here:SJMP Here;相当于执行其

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论