MCS-51单片机要能够响应单片机外部中断00,需要置位哪三个

在CPU 与外设交换信息时,存在着一个快速的 CPU 与慢速的外设之间的矛盾。为解决这个问题,发展了中断的概念。
&&& 单片机在某一时刻只能处理一个任务,当多个任务同时要求单片机处理时,这一要求应该怎么实现呢?通过中断可以实现多个任务的资源共享。
&&& 中断现象在现实生活中也会经常遇到,例如,你在看书&&手机响了&&你在书上作个记号&&你接通电话和对方聊天&&谈话结束&&从书上的记号处继续看书。这就是一个中断过程。通过中断,你一个人在一特定的时刻,同时完成了看书和打电话两件事情。用计算机语言来描述,所谓的中断就是,当 CPU 正在处理某项事务的时候,如果外界或者内部发生了紧急事件,要求 CPU 暂停正在处理工作而去处理这个紧急事件,待处理完后,再回到原来中断的地方,继续执行原来被中断的程序,这个过程称作中断。
&&& 从中断的定义我们可以看到中断应具备中断源、中断响应、中断返回这样三个要素。中断源发出中断请求,单片机对中断请求进行响应,当中断响应完成后应进行中断返回,返回被中断的地方继续执行原来被中断的程序。
MCS-51单片机的中断系统
MCS-51单片机的中断源
&&&&&&&&& MCS-51单片机的中断源共有两类,它们分别是:外部中断和内部中断
1.& 外部中断源
?&&&&&&&& 外部中断0(#INT0):来自P3.2引脚,采集到低电平或者下降沿时,产生中断请求。
?&&&&&&&& 外部中断1(#INT1):来自#P3.3引脚,采集到低电平或者下降沿时,产生中断请求。
2.& 内部中断源
?&&&&&&&& 定时器∕计数器0(T0):定时功能时,计数脉冲来自片内;计数功能时,计数脉冲来自片外P3.4引脚。发生溢出时,产生中断请求。
?&&&&&&&& 定时器∕计数器1(T1):定时功能时,计数脉冲来自片内;计数功能时,计数脉冲来自片外P3.5引脚。发生溢出时,产生中断请求。
?&&&&&&&& 串行口:为完成串行数据传送而设置。单片机完成接受或发送一组数据时,产生中断请求。
中断控制的专用寄存器
&&& MCS-51单片机为用户提供了四个专用寄存器,来控制单片机的中断系统。
&&&&&& 1.& 定时器控制寄存器(TCON)
该寄存器用于保存外部中断请求以及定时器的计数溢出。进行字节操作时,寄存器地址为88H。按位操作时,各位的地址为88H~8FH。寄存器的内容及位地址表示如下:&
&&& ?&&&&&&&& IT0 和IT1&&外部中断请求触发方式控制位
IT0 (IT1)=1&&& 脉冲触发方式,下降沿有效
IT0 (IT1)=0&&& 电平触发方式,低电平有效
?&&&&&&IE0和IE1&&外中断请求标志位
&& 当CPU采样到#INT0(或#INT1)端出现有效中断请求时,IE0(IE1)位由硬件置& 1&。当中断响应完成转向中断服务程序时,由硬件把IE (或IE )清零。
?&&&&&&&&&TR0 和TR1&&定时器运行控制位
&&&&&TR0 (TR1 )=0&&& 定时器/计数器不工作
&&&& TR0 (TR1 )=1&&& 定时器/计数器开始工作
?&&&&&&&& TF0和TF1&&计数溢出标志位
&&& 当计数器产生计数溢出时,相应的溢出标志位由硬件置&1&。当转向中断服务时,再由硬件自动清&0&。计数溢出标志位的使用有两种情况:采用中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用。
2.& 串行口控制寄存器(SCON)
进行字节操作时,寄存器地址为98H。按位操作时,各位的地址为98H~9FH。寄存器的内容及位地址表示如下: &
&&&&&&&& 其中与中断有关的控制位共2位:
?&&&&&&&& &TI&&串行口发送中断请求标志位
当发送完一帧串行数据后,由硬件置&1&;在转向中断服务程序后,用软件清&0&。
?&&&&&&&& &RI&&串行口接收中断请求标志位
&&&& 当接收完一帧串行数据后,由硬件置&1&;在转向中断服务程序后,用软件清&0&。串行中断请求由TI和RI的逻辑或得到。就是说,无论是发送标志还是接收标志,都会产生串行中断请求。
3.& 中断允许控制寄存器(IE)
进行字节操作时,寄存器地址为0A8H。按位操作时,各位的地址为0A8H~0AFH。寄存器的内容及位地址表示如下:
&&& 其中与中断有关的控制位共6位:
?&&&&&&&& EA&&中断允许总控制位
& EA=0 中断总禁止,禁止所有中断
EA=1& 中断总允许,总允许后中断的禁止或允许由各中断源的中断允许控制位进行设置。
?&&&&&&&&EX0和EX1&&外部中断允许控制位
&EX0(EX1)=0&&&& 禁止外部中断
&EX0(EX1)=1&&&& 允许外部中断
?&&&&&&&&ET0和ET1&&定时器/计数器中断允许控制位
&ET0(ET1)=0&&&& 禁止定时器/计数器中断
&ET0(ET1)=0&&&& 允许定时器/计数器中断
?&&&&&&&&ES&&串行中断允许控制位
&ES=0&&&& 禁止串行中断
&ES=1&&&& 允许串行中断
可见,MCS-51单片机通过中断允许控制寄存器对中断的允许(开放)实行两级控制。即以EA位作为总控制位,以各中断源的中断允许位作为分控制位。当总控制位为禁止时,关闭整个中断系统,不管分控制为状态如何,整个中断系统为禁止状态;当总控制位为允许时,开放中断系统,这时才能由各分控制位设置各自中断的允许与禁止。
MCS-51单片机复位后(IE)=00H,因此中断系统处于禁止状态。单片机在中断响应后不会自动关闭中断。因此在转中断服务程序后,应根据需要使用有关指令禁止中断,即以软件方式关闭中断。
4.& 中断优先级控制寄存器(IP)
MCS-51单片机的中断优先级控制比较简单,因为系统只定义了高、低2个优先级。高优先级用&1&表示,低优先级用&0&表示。各中断源的优先级由中断优先级寄存器(IP)进行设定。IP寄存器地址0B8H,位地址为0BFH~0B8H。寄存器的内容及位地址表示如下:
PX0&&外部中断0优先级设定位;
PT0&&定时中断0优先级设定位;
PX1&&外部中断1优先级设定位;
PT1&&定时中断1优先级设定位;
PS&&串行中断优先级设定位。
以上各位设置为&0&时,则相应的中断源为低优先级;设置为&1&时,则相应的中断源为高优先级。
优先级的控制原则是:
?&&&&&&&& 低优先级中断请求不能打断高优先级的中断服务;但高优先级中断请求可以打断低优先级的中断服务,从而实现中断嵌套。
?&&&&&&&& 如果一个中断请求已被响应,则同级的其它中断服务将被禁止。即同级不能嵌套。
?&&&&&&&& 如果同级的多个中断同时出现,则按CPU查询次序确定哪个中断请求被响应。其查询次序为:外部中断0&定时中断&外部中断&定时中断&串行中断。
&&&&&&&& 中断优先级控制,除了中断优先级控制寄存器之外,还有两个不可寻址的优先级状态触发器。其中一个用于指示某一高优先级中断正在进行服务,从而屏蔽其它高优 先级中断;另一个用于指示某一低优先级中断正在进行服务,从而屏蔽其它低优先级中断,但不能屏蔽高优先级的中断。此外,对于同级的多个中断请求查询的次序 安排,也是通过专门的内部逻辑实现的。
上述四个专用寄存器的用途可以用下图说明。
中断响应过程
中断响应过程为,中断源发出中断请求&对中断请求进行响应&执行中断服务程序&返回主程序。这个过程可分为三个阶段来完成。
1.& 中断采样
对于外部中断请求,中断请求信号来自于单片机外部,计算机要想知道有没有中断请求发生,必须对信号进行采样。
① 电平触发方式的外中断请求(IT0/IT1=0)采样到高电平时,表明没有中断请求,IE0或IE1继续为&0&。采样到低电平时,IE0/IE1由硬件自动置&1&,表明有外中断请求发生。
② 脉冲触发式的外中断请求(IT0/IT1=1)在相邻的机器周期采样到的电平由高电平变为低电平时,则IE0/IE1由硬件自动置&1&,否则为&0&。
2.& 中断查询
由CPU测试TCON和SCON中的各个中断标志位的状态,确定有那个中断源发生请求,查询时按优先级顺序进行查询,即先查询高优先级再查询低优先级。如果同级,按以下顺序查询:
#INT0&T0&#INT1&T1& S
如果查询到有标志位为&1&,表明有中断请求发生,接着就从相邻的下一机器周期开始进行中断响应。
3.& 中断响应
当CPU查询到中断请求时,由硬件自动产生一条LCALL指令,LCALL指令执行时,首先将PC内容压入堆栈进行断点保护,再把中断入口地址装入PC,使程序转向相应的中断区入口地址。LCALL指令的形式如下:
LCALL&& addr16&&& ;addr16:中断入口地址
入口地址已由系统设定,如下:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
从表中可以看出,每个中断区只有8个单元,很难安排下一个中断程序,一般是在中断入口地址处加一条跳转指令,跳转到用户的服务程序入口。编写中断服务程序的格式一般如下:
ORG&&& 0000H
SJMP&&& MAIN
ORG &&&0003H
AJMP&& 1NJERRVP
&&&&&&& MAIN:&&& &&&
HERE:&&&& SJMP&& HERE
1NJERRVP:&&&& &&&&&&&&&&&&&&&&&&&& ;中断响应程序
并不是所有的请求都被响应,当遇到下列情况之一时不响应这些中断请求:
(1)CPU正在处理一个同级或者高级的中断服务
(2)当前指令还没有执行完毕
(3)当前指令是RET、RETI或者是访问IP、IE的指令,执行完这些指令后,还必须再执行一条指令,才响应中断请求。
&&& 注意:MCS-51单片机对中断查询结果不作记忆,当有新的查询结果出现时,因为以上原因而被拖延的查询结果将不复存在,其中断请求也就不能再被响应了。
中断请求的撤销
&&& 中断响应后,TCON和SCON的中断请求标志位应及时撤销。否则意味着中断请求仍然存在,有可能造成中断的重复查询和响应,因此需要在中断响应完成后,撤销其中断标志。
1.& 定时中断请求的撤销
硬件自动把TF0(TF1)清0,不需要用户参与。
2.& 串行中断请求的撤销
需要软件清零。
3. &外部中断请求的撤销
(1)脉冲触发方式的外中断请求撤销
中断标志位的清零是自动的,脉冲信号过后就不存在了,因此其撤销是自动的。
(2)电平触发方式的外中断请求撤销
中断标志位的清零是自动的,但是如果低电平持续存在,在以后的机器周期采样时,又会把中断请求标志位(IE 0&/IE 1)置位。为此,需要外加电路,把中断请求信号从低电平强制为高电平。电路如图所示:
&电平触发方式的外中断请求撤销
通过直接置位端#Sd使中断请求信号强制从低电平变为高电平,要实现此功能需要在中断入口地址处加入如下两条指令:
&&&&&&&&&&&&&&& ORL&& P1, #01H
&&&&&&&&&&&&&&& ANL&& P1,&#0FEH
阅读(...) 评论() &51单片机中断学习
一、中断的概念
CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);
CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);
待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断
二、中断源
&&&&在51单片机中有5个中断源
中断号&&&&&&&&&
优先级&&&&&&&&&&&&&&&&&&&&中断源&&&&&&&&&&&&&&&&&&&&中断入口地址&
0&&&&&&&&&&&&&&
1(最高)&&&&&&&&&&&&
外部中断0&&&&&&&&&&&&&&&&&&&&&
1&&&&&&&&&&&&&&
2&&&&&&&&&&&&&&&&&&&&&
定时器0&&&&&&&&&&&&&&&&&&&&&&
2&&&&&&&&&&&&&&
3&&&&&&&&&&&&&&&&&&&&
外部中断1&&&&&&&&&&&&&&&&&&&&&
3&&&&&&&&&&&&&&
4&&&&&&&&&&&&&&&&&&&&&
定时器1&&&&&&&&&&&&&&&&&&&&&&
4&&&&&&&&&&&&&&&5&&&&&&&&&&&&&&&&&&&&&
串口总段&&&&&&&&&&&&&&&&&&&&&
三、中断寄存器
单片机有10个寄存器主要与中断程序的书写控制有关
1.中断允许控制寄存器IE
2.定时器控制寄存器TCON
3.串口控制寄存器SCON
4.中断优先控制寄存器IP
5.定时器工作方式控制寄存器TMOD
6.定时器初值赋予寄存器(TH0/TH1,TL0/TL1)
寄存器详细说明:
四、寄存器功能与赋值说明
注:在用到中断时,必须要开总中断EA,即EA=1。&
//开总中断
&&&&1.中断允许控制寄存器IE
EX0(EX1):外部中断允许控制位
外部中断0开关闭合&& //开外部0中断&&&&
&& EX0=0 外部中断0开关断开
&&&&ET0(ET1):定时中断允许控制位
&&&&&&&&ET0=1&定时器中断0开关闭合&//开内部中断0
ET0=0 定时器中断0开关断开
串口中断允许控制位&&&&&
串口中断开关闭合&&&&
//开串口中断
ES=0 串口中断开关断开
2.定时器控制寄存器
//控制外部中断和定时器中断
外部中断:
&&&&&&&&IE0(IE1):外部中断请求标志位
&&&&&&&&&&&
当INT0(INT1)引脚出现有效的请求信号,此位由单片机自动置1,cpu开始响应,处理终端,而当入
中断程序后由单片机自动置0.
&&&&&&&&//外部中断,即外部中断相应的引脚接入低电平或下降沿信号时,中断开始响应。
IT0(IT1):外部中断触发方式控制位&&&&&&&&&&&&&&&&&&
//选择有效信号
&&&&&&&&&&&
IT0(IT1)=1:脉冲触发方式,下降沿有效。
&&&&&&&&&&&&IT0(IT1)=0:电平触发方式,低电平有效。
内部中断:
TF0(TF1):内部定时器/计数器溢出中断标志位
&&&&&&&&&&&
当定时器、计数器计数溢出的时候,此位由单片机自动置1,cup开始响应,处理中断,而当进入中
断程序后由单片机自动置0.
//内部中断实际上就是利用内部的计数器,只不过提供计数的脉冲来自单片机自身。
TRO(TR1):定时器/计数器启动位&&&&&&&&&&&&&&&&&&&
//启动定时器
TRO(TR1)=1; 启动定时器/计数器0
TR0(TR1)=0; 关闭定时器/计数器0
3.串口控制寄存器SCON
TI:串行口发送中断标志位
当单片机串口发送完一帧数据后,此位由单片机自动置1,而当进入中断服务程序后是不会自动清0的,
必须由用户在中断服务中用软件清0.
&&&&&RI:串行口接收中断标志位
&&&&&&&&&&当单片机串口接收完一帧数据后,此位由单片机自动置1,而当进入中断服务程序后是不会自动清0的,
&&&&必须由用户在中断服务软件中用软件清0.
(IP以后补上,TMOD,TL0/TH0 在定时器/计数器中讲)
五、中断结构图:
六、定时器/计数器
1.计数的定义:
计数是指对外部事件进行计数,外部事件的发生以输入脉冲的形式表示,因此计数功能的实质就是对外来
的脉冲进行计数,在单片机中对应引脚T0和T1,两个脉冲输入端。
外部输入的脉冲在负跳变时有效(即外部脉冲由1变化到0),计数器加1.
2.定时器:
定时器是通过计数器的计数来实现的,不过此时的计数脉冲来自单片机的内部,因此定时器的实质是对内
部脉冲的计数,在单片机中,每个机器周期产生一次计数脉冲,计数器加1.
3.工作方式控制寄存器TMOD:
&&&&&&&&TMOD的低半字节(D0,D1,D2,D3)用来控制定时器/计数器0
TMOD的高半字节(D4,D5,D6,D7)用来控制定时器/计数器1
对TMOD中的内容说明:
GATE——门控制。   
&GATE=1时,由外部中断引脚INT0、INT1来启动定时器T0、T1。   
&&&&&&&&&&&
&当INT0引脚为高电平时TR0置位,启动定时器T0;   
&&&&&&&&&&&
&当INT1引脚为高电平时TR1置位,启动定时器T1。   
&GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。
C/T——功能选择位   
&&&&&&&&&&
C/T=0时为定时功能,C/T=1时为计数功能。     
M0、M1——方式选择功能   
由于有2位,因此有4种工作方式&
&&4.根据单片机晶振,所选TMOD的的工作方式,所要定的时间,来确定THO和TLO所要赋予的初值
(以12M晶振,工作方式1,16位计数器为例,设所定时间为Xus(16为计数器最大数65536,即65536us,若所
定时间大于65535,则要用if语句控制,现假设X&65535))
1.时钟周期的时间t=1/12M=1/12 us
2.机器周期的时间T=12*1/12=1 us
&&&&&3.因为每经过一个机器周期计数器+1,所以,计数器+1,经过的时间为
若所定时间为X,则要求经过Xus,中断响应,又因为16为计数器要全部置1(即达到65535)+1后,中断才会
&&&&&响应,所以,初值=(65536-X)
&&&&&4.将初值转化为16进制码,分别付给THO和TLO
&&&&&eg:所定时间5ms
初值=()=60536=EC78
TH0=0XEC; TL0=0X78;
(当工作方式不同时,TH0/TL0的赋值也不同,个人觉得有了16位计数器了,其余的没什么用,不介绍了)
&&5.写程序时另一种THO/TLO赋值方法
TH0=()/256;&&&&&
这样设置,每经过20ms,发生一次中断,中断时间一般以秒为单位,所以经过n次中断即可。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。单片机复习 单片机最常用的系列:MCS-51系列,技术特征-标准吧
您的位置: >
> 单片机复习 单片机最常用的系列:MCS-51系列,技术特征
单片机复习 单片机最常用的系列:MCS-51系列,技术特征
& 单片机最常用的系列:MCS-51系列,技术特征: (1)扩大了片内存储容量、外部寻址空间。在片内数据存储器方面,采用8位地址,寻址范围为256B。 (2)增强了I/O功能。4个8位并行I/O接口 (3)增强了定时器/计数器的个数并扩展了长度。定时器/计数器由1个增长为2个,计数长度由8位增为16位,有4种工作方式。 (4)增强了中断系统。MCS-51单片机有5个中断源、2级中断优先级 (5)具备较强的指令寻址和运算等功能。 (6)增设了布尔处理器。 80C51单片机组成:(1)CPU&&&能进行布尔处理 (2)内部存储器系统。1)4KB程序存储器(ROM/EPROM/Flash),可外扩至64KB。 2)128B的数据存储器(RAM,可外扩至64KB)。 3)21个特殊功能寄存器(SFR) (3)I/O接口及中断、定时部件。 1)4个8位并行I/O接口。 2)5个(入口地址)中断源的中断系统,2级优先。 3)2个16位定时/计数器T0,T1 4)1个全双工(发射和接收可同时进行)的串行I/O口。 内部ROM与外部ROM低4KB的地址重叠(一样),单片机主要通过EA’内部程序存储器选择信号来控制。EA’引脚信号为低电平时,单片机只访问外部ROM,EA’为高电平时,先访问片内低4KB&ROM,再访问外部高60KB&ROM. 程序存储器低端的一些地址被固定作为特定的入口地址。 (1)&&&&0000H:单片机复位后的入口地址 (2)&&&&0003H:外部中断0中断服务程序的入口地址 (3)&&&&000BH:定时/计数器0溢出中断服务程序的入口地址 (4)&&&&0013H:外部中断1中断服务程序的入口地址 (5)&&&&001BH:定时/计数器1溢出中断服务程序的入口地址 (6)&&&&0023H:串行口的中断服务程序的入口地址 & 特殊功能寄存器中的程序状态字寄存器PSW的RS1,RS0位来决定 & SFR&&&&位地址/位符号(有效位83个)&&&&字节地址 PSW&&&&D7H&&&&D6H&&&&D5H&&&&D4H&&&&D3H&&&&D2H&&&&D1H&&&&D0H&&&&D0H &&&&Cy&&&&AC&&&&F0&&&&RS1&&&&RSO&&&&OV&&&&---&&&&P&&&& ACC(累加器)&&&&E7H&&&&E6H&&&&E5H&&&&E4H&&&&E3H&&&&E2H&&&&E1H&&&&E0H&&&&E0H &&&&ACC.7&&&&ACC.6&&&&ACC.5&&&&ACC.4&&&&ACC.3&&&&ACC.2&&&&ACC.1&&&&ACC.0&&&& B(寄存器)&&&&F7H&&&&F6H&&&&F5H&&&&F4H&&&&F3H&&&&F2H&&&&F1H&&&&F0H&&&&F0H &&&&B.7&&&&B.6&&&&B.5&&&&B.4&&&&B.3&&&&B.2&&&&B.1&&&&B.0&&&& 位序&&&&D7&&&&D6&&&&D5&&&&D4&&&&D3&&&&D2&&&&D1&&&&D0 位标志&&&&Cy&&&&AC&&&&F0&&&&RS1&&&&RS0&&&&OV&&&&----&&&&P SP:堆栈指针&&&DPTR:16位数据指针&&&Cy:进位标志位&&&P:奇偶标志位(当累加器ACC中1的个数为奇数时,P为1,否则为0)例:(A)=39H&39H=H&&P=0 程序计数器PC:16位的PC不属于特殊功能寄存器。其存放的内容是下一个要取的指令的16位存储单元地址。也就是说,CPU总是把PC的内容作为地址,从ROM中取出指令,然后执行。每取出一条指令后,PC的值自动加1. 例:PC就是执行的指令的当前地址(×)&PC就是执行的指令的前一位地址(×) 80C51单片机有4个8位并行I/O口P0、P1、P2和P3。 ☆P0口地址为80H,可以进行位操作;P0口既可以作为数据/低8位地址总线,也可以作为通用I/O口使用。P0口要接上拉电阻,可推动8个TTL电路。P0口作为输入时必须将P0口置1. P1口只能作为通用I/O口使用。 P2口可以作为高8位地址线,也可以作为通用I/O口 P3口与P1口类似,还具有第二功能 晶振周期:P&&&时钟周期:S=2P包括P1和P2&&机器周期:TCY=12P 例:晶振频率为12MHz时,机器周期为1&s。(1/12*10-6)*12=1&s 晶振频率为&6&MHz时,机器周期为1&s。(1/6*10-6)*12=2&s 复位电路有两种基本方式:上电复位&&&&按键与上电复位 ☆单片机复位后,进入初始状态。初始化后,状态如下: 1)&&&&程序计数器PC:0000H,即复位后单片机从0000H单元开始执行程序。 2)&&&&P0~P3口:FFH,即各I/O锁存器置1,可以直接输入。 3)&&&&堆栈指针SP:07H 4)&&&&其余的特殊功能寄存器(SFR):均为00H 5)&&&&片内RAM:为随机值 ☆☆☆☆单片机开发系统: 一、建.ASM的文件:文件→新建→输入程序→保存(.ASM) 二、建工程文件:P工程→新建工程→新建文件夹中→取工程名(不需要扩展名)→Atmel→AT89C51→确定&&目标→源程序组1→右键→添加文件(.ASM) 三、生成.HEX文件:光标在目标上→P工作→目标(到目标1属性)→输出→&Create.HEX&Fi→确定 四、编译:菜单&按下→在下框中产生.HEX文件→(错误0.警告) ☆☆☆ Cy:进位标志位或布尔处理器中的累加器&&&&&DPTR:16位数据指针,也可作为16位地址寄存器&&&&#data16:16位立即数&&& 寻址方式:直接寻址&&寄存器寻址&&立即寻址&&寄存器间接寻址(MOV)&&变址寻址(MOVC)&&相对寻址(SJMP)&&位寻址(SETB) 例:30H&直接寻址&&&&&&&MOV:数据存储器&&&&&&&&&&&&&&&MOV&A&,30H&&&&直接寻址 &&&#30H&立即寻址&&&&&&&MOVX:片外数据存储器&&&&&&&&&MOV&C&,30H&&&&位寻址 &&&&&&&&&&&&&&&&&&&&&&&&MOVC:程序存储器 ☆堆栈操作指令:PUSH&&ditect&&;sp←(sp)+1,(sp)←(direct) &&&&&&&&&&&&&&PUSH&&ditect&&;ditect←((sp)),(sp)←(sp)-1 例如:设SP=30H(如不设置,SP的值为07H),(50H)=80H,执行下列指令: PUSH&&&50H POP&&&&40H 指令执行过程:(SP)+1→&SP=31,(50H)→(31H),(31H)→(40H),(SP)-1→SP=30 执行后,SP=30H,(50H)=80H,(40H)=80H。 ☆☆算数运算类指令P56 加法指令: 1)&&&&不带进位的加法指令ADD&&&&&&ADD&&A,&&Rn&&;A←(A)+Rn 2)&&&&带进位的加法指令ADDC&&&&&&&&ADDC&&A,&Rn&&&&;(A)+(Rn)+Cy→A 3)&&&&增量(加1)指令&INC&&&&&&&&&&&(A)+1→A 减法指令: 1)&&&&带借位的减法指令&SUBB&&&&&&&&&&SUBB&&&A,Rn&&;(A)-(Rn)-Cy→A 2)&&&&减量(减1)指令&&DEC&&&&&&&&&&DEC&&&A&&&&&&;(A)-1→A 十进制调整指令&&&DA&&&&&&&&&例如:设(A)=78H,(R3)=25H,执行如下指令: &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ADD&&A,R3 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DA&&&A &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&结果为:(A)=03H,&Cy=1 乘法指令:MUL&&&&&&&MUL&&&AB&&&&&&&A*B→AB,高8位→B,低8位→A &&&&&&&&&&&&&&&&&&&&&&&&&&&&&例如:设(A)=4EH,(B)=5DH,执行指令: &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&MUL&&&AB &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&结果为:(A)=56H,(B)=1CH,OV=1,Cy=0 除法指令:DIV&&&&&&&DIV&&&AB&&&&&&&&A/B的商→A,余数→B & 无条件转移: 1)&&&&绝对短跳转指令:AJMP&&addr&11&&&&&&&;PC←PC+2,PC.10-PC.0←addr11 2)&&&&相对短跳转指令:SJMP&&&rel&&;(PC)+2+rel→PC,rel以补码表示 3)&&&&长转移指令:LJMP&&&addr&16&&;PC←&&addr&&16 4)&&&&间接转移指令:JMP&&@A+DPTR;&&&&PC←A+DPTR 条件转移指令: (1)比较转移指令:CJNE&A,direct,rel;&&(A)=(direct),则(PC)+3→PC &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(A)R(direct),则(PC)+3+rel→PC,Cy=o &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(A)&(direct),则(PC)+3+rel→PC,Cy=1 (2)减1不为零跳转指令:DJNZ&&Rn,rel&&&&&&&;PC←(PC)+2 &&&&&&&&&&&&&&&&&&&&&&&&&DJNZ&&direct,rel&&&;PC←(PC)+3 操作数减1不等于0就转移到PC←(PC)+rel,否则执行下一条指令。 调用子程序及返回指令: 1)&&&&调用子程序指令 2)&&&&返回指令:RET&&&&;PC15~8←(SP),SP←SP-1&&&子程序 &&&&&&&&&&&&&&&&&&&&&&PC7~0←(SP),SP←SP-1&&&&&返回; &&&&&&&&&&&&&RETI:&&&&PC15~8←(SP),SP←SP-1&&&中断 &&&&&&&&&&&&&&&&&&&&&&PC7~0←(SP),SP←SP-1&&&&&返回 例:片内30H→片外30个2000H &&&&&&MOV&&&R0&&&,#30H &&&&&&MOV&&&DPTR&,&#2000H &&&&&&MOV&&&R2&&&,&#30 LOOP:&MOV&&&A&&&&,&@R0&&间接寻址(@)只能R0,R1 &&&&&&MOVX&&@DPTR,&A&&&&片内传片外 &&&&&&INC&&&R0&&&&&&&&&&片内&&&加1 &&&&&&INC&&&DPTR&&&&&&&&片外&&&加1 &&&&&&DJNZ&&R2&&&,&LOOP &&&&&&END 16位的定时/计数器分别有两个8位专用寄存器组成(T0有TH0和TL0构成,T1由TH1和TL1构成) 16位的定时/计数器实质是一个加1计数器,其控制电路受软件控制、切换。每来一个脉冲,计数器加1,当加到计数器全为1时,再输入一个脉冲,就使计数器清零。 1)&&&&当定时/计数器为定时方式时,计数器对内部机器周期(一个机器周期等于12个振荡周期,则计数频率为振荡频率的1/12)计数。 2)&&&&当定时/计数器为计数方式时,通过引脚T0和T1对外部(和内部没有关系)信号计数,外部脉冲的周期要大于2&s. 定时/计数器T0和T1有2个控制寄存器TMOD和TCON。 定时/计数器方式控制寄存器TMOD,字节地址为89H。高4位T1,第4位T0。格式如下: &&&&&GATE&&&C/T’&&&M1&&&M0&&&GATE&&&C/T’&&&M1&&&M0 定时/计数器工作方式设置表 M1M0&&&&工作方式&&&&功能说明&&&&M值 00&&&&方式0&&&&13位定时/计数器&&&&213=8192 01&&&&方式1&&&&16位定时/计数器&&&&216=65536 10&&&&方式2&&&&自动重装初值8位定时/计数器&&&&28=256 11&&&&方式3&&&&T0分为两个独立的8位定时/计数器;T1停止计数&&&&256 定时/计数器控制寄存器TCON,字节地址为88H。高4位是控制定时/计数器的启动停止及中断申请,低4位用于控制外部中断。格式如下: &&&&&&&TF1&&&&&TR1&&&&&TF0&&&&&TR0&&&&&IE1&&&&&IT1&&&&&IE0&&&&&IT0 TF1:进入中断服务程序后,由硬件自动清0,在查询方式下用软件清0. TR1:置1或清0用软件来设置 TF0:定时器0溢出标志。功能同TF1 TR0:定时器0运行控制位 IE1:外部中断1请求标志 IT1:外部中断1触发方式选择位 IE0:外部中断0请求标志 IT0:外部中断0触发方式选择位 初始化程序主要完成以下工作: 1)&&&&对TMOD赋值,确定T0和T1的工作方式 2)&&&&计算初值,并将其送入TH0、TL0或TH1、TL1 3)&&&&如使用中断,则还要对IE进行赋值,开放中断 4)&&&&将TR0或TR1置位,启动定时/计数器 初值X计算公式:X=M-计数值 例:方式2:晶振6MHz&&200&s&&&X=?&&&X=256-200/2=156=93H&&&&&MOV&&&TH0&,#93H &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&二进制&&&&&&&&MOV&&TL0,#93H ☆☆例5.2&&&P75 MCS-51单片机提供了5个中断源:2个外部中断(INT0和INT1)、2个内部定时中断(定时器T0和定时器T1)以及1个串行中断。 ☆中断允许控制寄存器IE。格式如下: bit&&&&AFH&&&&&&&&&&&&ACH&&&&ABH&&&&AAH&&&&A9H&&&&A8H IE&&&&EA&&&&&&&&&&&&ES&&&&ET1&&&&EX1&&&&ET0&&&&EX0 EA:总中断允许控制位,EA=1(前提),开放所以中断;EA=0,禁止所有中断 例:MOV&&IE,#82H&&&&=&&&&&&SETB&&EA&&&&&&&&&&&&&&&&&T1中断打开 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&SETB&&ET0 ES:串行口中断允许位 ET1:定时/计数器T1的溢出中断允许位&&&&&&&SETB&&ET1&&&&&允许T1中断 EX1:外部中断INT1’中断允许位 优先级的排列 中断源&&&&同级的中断优先级&&&&入口地址 外部中断INT0’&&&&最高级 ↓ ↓ ↓ 最低级&&&&0003H 定时/计数器T0中断&&&&&&&&000BH 外部中断INT1’&&&&&&&&0013H 定时/计数器T1中断&&&&&&&&001BH 串行口中断&&&&&&&&0023H √中断请求的撤除(判断) CPU响应中断请求后即进入中断服务程序,在中断返回前,应撤除该中断请求。 1)&&&&定时器中断请求的撤除。CPU在响应中断后即由硬件自动清除其中中断标志位TF0或TF1 2)&&&&串行口中断请求的撤除。CPU在响应中断后,硬件不能自动清除中断请求标志位TI、RI,必须在中断服务程序中用软件将其清除。 3)&&&&外部中断请求的撤除。外部中断分为边沿触发型和电平触发型。 4)&&&&边沿触发器的外部中断INT0’或INT1’,CPU在响应中断后由硬件自动清除其中断标志位IE0或IE1,无需采取其他措施。 5)&&&&电平触发由电路和软件清除 ☆☆例5.6&&&P89 P95&&&27128的存储容量为16KB,正好是2764(8KB)的二倍;27128的26引脚脚标为A13&&&&&地址输入线A12~A0:共需13根地址线,编号为A12~A0 单片机与外部存储器芯片的连接方式采用三总线的连接。 地址线的连接&&&&&&数据线的连线&&&&&控制信号线的连线 常用的选址方法:1.线选法2.译码选通法 & 常用数据存储器芯片:&有单数据类型:位);有4位数据线类型:)最常用的芯片是8位数据线的6264(8KB&13根地址线)和62256等 8255A的控制字有2种:方式控制字和C口单一置复位的控制字。 & 键的抖动是指由于按键本身的机械结构以及人手的操作速度,往往在按键触点闭合或断开的瞬间会出现电压抖动。主要解决方法:硬件方面采用RS触发器、软件方面加入去抖程序(延时程序) LED数码显示管的显示段码: 段码位&&&&D7&&&&D6&&&&D5&&&&D4&&&&D3&&&&D2&&&&D1&&&&D0 显示段&&&&dp&&&&g&&&&f&&&&e&&&&d&&&&c&&&&b&&&&a 共阴&&&&&&0&&&&&&&&不亮 共阳&&&&&&1&&&&&&&&不亮 数码管显示字型与对应显示段码 字型&&&&共阳码&&&&共阴码&&&&字型&&&&共阳码&&&&共阴码 0&&&&C0H&&&&3FH&&&&9&&&&90H&&&&6FH 1&&&&F9H&&&&06H&&&&A&&&&88H&&&&77H 2&&&&A4H&&&&5BH&&&&b&&&&83H&&&&7CH 3&&&&B0H&&&&4FH&&&&C&&&&C6H&&&&39H 4&&&&99H&&&&66H&&&&d&&&&A1H&&&&5EH 5&&&&92H&&&&6DH&&&&E&&&&86H&&&&79H 6&&&&82H&&&&7DH&&&&F&&&&84H&&&&71H 7&&&&F8H&&&&07H&&&&灭显&&&&FFH&&&&00H 8&&&&80H&&&&7FH&&&&P&&&&8CH&&&&73H √√单元数据的子程序P143 DAC0832(数字→模拟)为一款常用的8位D/A转换器 DAC0832与单片机的接口方法主要有直通式、单缓冲与双缓冲等3种连接方式 √√D/A转换的程序P158 A/D转换器又称模数转换器,用于将模拟量转换为单片机能够处理的数字信号。有计数式、双积分式、逐次逼近式及并行式A/D转换器。双积分式A/D转换器的主要优点为转换精度高、抗干扰性好、价格便宜;缺点为转换速度较慢 并行通信:8位数据或16位数据并行传送。特点是传输速度快,但当距离较远、位数又多时导致了通信线路复杂且成本高。 串行通信:数据一位接一位地顺序传送。特点是通信线路简单,大大降低成本。 串行通信分为异步通信(速度慢)和同步通信 字符帧格式由4部分组成:起始位,数据位,奇偶校验位和停止位 & 起始位:不一定&&&&数据位:必须要 在串行异步传送中,通信双方必须事先约定字符格式和波特率(每秒钟传送的二进制位数)一致,才能保证正常通信&&&&波特率=(位/字符)*(位/字符)=位/秒 波特率就是数据的传送速率,也就是字符的传送速率(×) 串行通信的制式:单工制式(只能一方发送一方接收)、半双工制式、全双工制式 串行口数据缓冲器SBUF,因此可以同时发送、接收数据,实现全双工传送 串行口控制寄存器SCON,格式如下: D7&&&&D6&&&&D5&&&&D4&&&&D3&&&&D2&&&&D1&&&&D0 SM0&&&&SM1&&&&SM2&&&&REN&&&&TB8&&&&RB8&&&&TI&&&&RI SM0、SM1:串行口工作方式选择位 TB8:TB8=0为数据,TB8=1为地址 TI:发送中断标志位,由软件清0&& 748
下载说明:
1.请先分享,再下载
2.直接单击下载地址,不要使用“目标另存为”
3.压缩文件请先解压
4.PDF文件,请用PDF专用软件打开查看
5.如果资料不能下载,请联系本站
相关国家标准
QQ 或者 邮箱
内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
单片机复习 单片机最常用的系列:MCS-51系列,技术特征
最新国家标准}

我要回帖

更多关于 单片机响应中断 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信