任务三 流水灯定时控制
流水灯(定时器延时)

/********************** main******************************/ main() { unsigned char k,temp,temp1;//设置变量 P1= 0xff; TMOD = 0x01;//设置定时器方式为定时器方式 1 while (1) { temp = 0x01; //L1 到 L8 二极管顺序点亮 for(k=0;k<8;k++) { P1 = ~temp; delay(50); temp = temp<<1; } temp = 0x80; //L8 到 L1 二极管顺序点亮 for(k=0;k<8;k++) { P1 = ~temp; delay(50); temp = temp>>1; } temp = 0xfe;//L8L1 到 L7L2 到 L6L3 到 L5L4 顺序点亮 temp1 = 0x7f; for(k=0;k<8;k++) { P1 =(_cror_(temp,k))&(_crol_(temp1,k)); delay(50); } P1 = 0xFF; delay(200); temp = 0xFE; //L8 到 L1 二极管顺序点亮 for(k=0;k<8;k++) { P1 = temp; delay(50); temp = temp<<1; } temp = 0x7F; //L1 到 L8 二极管顺序熄灭 for(k=0;k<8;k++) { P1 = ~temp; delay(50); temp = temp>>1; } } }
/*********************************************************************************************/ /* 函 数 名: delay*****************************************************************************/ /* 功能描述: 延时*****************************************************************************/ /* 调用函数: 无 ******************************************************************************/ /* 入口参数: t*********************************************************************************/ /* 出口参数:无 ******************************************************************************/ /*********************************************************************************************/
实验三流水灯实验(io口和定时器实验)

实验三流水灯实验(I/O口和定时器实验)一、实验目的1.学会单片机I/O口的使用方法和定时器的使用方法;2.掌握延时子程序的编程方法、内部中断服务子程序的编程方法;3.学会使用I/O口控制LED灯的应用程序设计。
二、实验内容1.控制单片机P1口输出,使LED1~LED8右循环轮流点亮(即右流水),间隔时间为100毫秒。
2.控制单片机P1口输出,使LED1~LED8左循环轮流点亮(即左流水),间隔时间为100毫秒。
3.使用K1开关控制上面LED灯的两种循环状态交替进行;4. 用定时器使P1口输出周期为100ms的方波,使LED闪烁。
5.使用定时器定时,使LED灯的两种循环状态自动交替,每一种状态持续1.6秒钟(选作)。
三、实验方法和步骤1.硬件电路设计使用实验仪上的E1、E5和E7模块电路,把E1区的JP1(单片机的P1口)和E5区的8针接口L1~L8(LED的驱动芯片74HC245的输入端)连接起来,P1口就可以控制LED 灯了。
当P1口上输出低电平“0”时,LED灯亮,反之,LED灯灭。
E7区的K1开关可以接单片机P3.0口,用P3.0口读取K1开关的控制信号,根据K1开关的状态(置“1”还是置“0”),来决定LED进行左流水还是右流水。
综上,画出实验电路原理图。
2.程序设计实验1和实验2程序流程图如图3-1实验3程序流程图如图3-2所示。
图3-1 实验1,2程序流程图图3-2 实验3程序流程图实验4程序流程图如图3-3,3-4所示。
实验5程序流程图如图3-5,3-6所示。
图3-5 实验5主程序流程图图3-6 定时器中断服务子程序流程图图3-4 定时器中断服务子程序流程图图3-3 实验4主程序流程图编程要点:(1)Pl,P3口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。
例如:MOV P1,A; P1口做输出MOV P1,#0FFHMOV A,P1;P1口做输入SETB P3.0MOV C,P3.1;从P3.1口读入数据(2)每个端口对应着一个寄存器,例:P1→90H(P1寄存器地址);P3→B0H(P3寄存器地址);寄存器的每一位对应着一个引脚,例:B0H.0→P3.0(3)对寄存器写入“0”、“1”,对应的外部引脚则输出“低电平”、“高电平”。
PLC控制技术基础项目三PLC流水灯控制

PLC 基本单元
电源变换器
输
微处理器(CPU)
输
入
出
部
运算器
控制器
部
件
件
通
讯
系
用
I/O
及
统
户
扩
编
存
存
展
程
储
储
接
接
器
器
口
口
PLC系统结构示意图
现场用户输出设备 执行器
中间继电器 电磁阀
扩展设备 扩展单元 通讯模块 功能模块
3.1.1PLC的基本组成
1.微处理器(CPU)
?接收并存储用户程序和数据; ?诊断电源、PLC工作状态及编程的语法错误; ?接收输入信号,送入数据寄存器并保存; ?运行时顺序读取、解释、执行用户程序,完成用户 程序的各种操作; ?将用户程序的执行结果送至输出端。
2.存储器 ?存放系统工作程序(监控程序); ?存放模块化应用功能子程序; ?存放命令解释程序; ?存放功能子程序的调用管理程序; ?存放存储系统参数。 用户存储器——RAM/EPROM/EEPROM ?存放用户工作程序; ?存放工作数据。
3.输入单元——带光电隔离电路
?多种辅助电源类型:AC电源DC24V输入 DC电源DC24V输入 DC电源DC12V输入
(2)100ms积算定时器(T250~T255)共6点, 是对100ms时钟脉冲进行累积计数的定时的时间范 围为0.1~3276.7s。
项目三:流水灯的PLC控 制
3.1任务资讯 3.2任务分析 3.3任务决策 3.4任务计划 3.5任务实施 3.6评价提高
3.2任务分析
本实例中,流水灯的控制要求: PLC运行后,灯光自动开始显示,有时每次只亮一 盏灯,顺序从上向下,或是从下向上;有时从底层从 下向上全部点亮,然后又从上向下熄灭。运行方式多 样,学生可自行设计。 具体讲,共有6盏灯,每灯亮1s,按下启动按钮顺 序依次为 L1→L2→L3→L4→L5→L6→L5→L4→L3→L2 →L1, 循环往复亮灭。
单片机跑马灯(流水灯)控制实验报告

单片机实验报告姓名: 学号:一、 实验实现功能:1:计数器功能2:流水灯二、 具体操作:1、计数器功能数码管的动态显示。
每按一次K2键计数器加1通过数码管显示出来,计数器可以实现从0计数到9999。
2、流水灯当在计数器模式下的时候按下K3键时程序进入跑马灯模式,8个小灯轮流点亮每次只点亮一个,间隔时间为50ms 。
三、 程序流程图开始 定时器T0 设置初值,启动定时器,打开中断复位 Key2按下 中断关闭 计数器模式 计数器加1 Key3按下 流水灯模式 数码管显示数字加1 跑马灯点亮间隔50ms Key1按下中断打开四、程序#include <reg51.h>typedef unsigned char uint8;typedef unsigned int uint16; //类型定义sbit P2_1 = P2^1;sbit P2_2 = P2^2;sbit P2_3 = P2^3;sbit P2_4 = P2^4; //位声明四个数码管开关sbit Key2 = P3^2;sbit Key3 = P3^3; //位声明2个按键K2和K3sbit Ledk = P2^0 ; //LED 开关void delay(uint16 i); //延时函数声明void refresh (); // 数码管刷新函数声明void liushuideng(); //流水灯函数声明uint8 number[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//数码管的真值表uint8 out[4] = {0}; // 数组变量uint16 counter=0; //用作计数器的变量uint16 Time_counter=0; //用作定时器的变量void main() //主函数{TMOD = 0x01; //定时器0,工作方式一TH0 = 0xFC;TL0 = 0x18; //定时器初值使每次循环为1msTR0 = 0; //定时器0开始作ET0 = 0; // 定时器中断关EA = 0; // 关中断while(1) //计数器模式{Ledk =1 ; //led开关关out[0]=number[counter%10]; //取个位out[1]=number[counter%100/10]; //十位out[2]=number[counter%1000/100]; //百位out[3]=number[counter/1000]; //千位if (!Key2) //计数器加1{++counter; //自加out[0]=number[counter%10]; //取个位out[1]=number[counter%100/10]; //十位out[2]=number[counter%1000/100]; //百位out[3]=number[counter/1000]; //千位while(!Key2) //等待键盘抬起refresh(); //刷新数码管}refresh(); //刷新数码管if (!Key3) // 进入跑马灯模式liushuideng();}} //主函数结束/*******************延时*************/void delay(uint16 i){uint8 j; // 定义局部变量for(i;i>0;i--) //循环i*240 次for(j=240;j>0;j--);}/************数码管刷新******************/void refresh (){uint8 j;for (j=0;j<4;j++) //四次循环刷新数码管{switch(j){case 0: P2_1=1;P2_2=1;P2_3=1;P2_4=0;break;case 1: P2_1=1;P2_2=1;P2_3=0;P2_4=1;break;case 2: P2_1=1;P2_2=0;P2_3=1;P2_4=1;break;case 3: P2_1=0;P2_2=1;P2_3=1;P2_4=1;break;//每次循环只选中一个数码管default:break;}P0 = out[j]; // 位选,给数码管送值delay (20); //延时消抖}}/*************定时器的中断服务函数**************/void Timer0_Overflow() interrupt 1 //定时器0溢出中断,这个语句1ms执行一次{TH0 = 0xFC;TL0 = 0x18; //每1ms重新赋定时器初值Time_counter++; //计数,看经过了几个1ms}/***********************流水灯子函数****************************/ void liushuideng(){uint8 j = 0 ; //定义局部变量P0 = 0xff; // 小灯全关TR0 = 1; //定时器1开始计时EA = 1; //中断开放ET0 = 1; //定时器0中断开while(1){Ledk = 0 ; //打开LED开关P2 = P2|0x1E; //关掉数码管if(50 == Time_counter) //50个毫秒{P0=~(1<<j++); //控制小灯Time_counter = 0; //清零开始下一次循环定时}if (8==j) //移完8次再重新移{j=0;}}}。
第3章 流水灯定时及外部中断控制

0x40 0000
XINTF接口操作 Zone0和Zone1 Zone0和Zone1共用一个片选信号, Zone0占用的外部总线地址为0x2000~0x3FFF, Zone1占用的外部总线地址为0x4000~0x5FFF
XA[13] XA[14] XZCS0AND1
Zone0的片选 使能线
XA[13] XA[14] XZCS0AND1
CY7C1021V33-12
LED显示器的接口扩展
在本项目“LED定时闪烁系统”中,利用了XINTF接
口扩展了8位LED灯的地址。系统采用作为片选信号, 所以,基地址为0x08 0000。
同时,当XA[15]和XA[0]都为高电平时,锁存器
74HC373使能。因此,在本系统中锁存器74HC373 的地址为0x88 001。
1
DSP技术及应用
多媒体教学系统
制作:李金明
兰州石化职业技术学院
退出
2
第3章 LED流水灯的
定时及外部中断控制
主要内容
学习存储空间及外部扩展接口XINTF
CPU定时器的应用
中断的概念 外部中断的应用
流水灯控制系统电路
LED1~8 R 300Ω x8 XD0 XD1 XD2 XD3 XD4 XD5 XD6 XD7 XA0 XA15
tpr的值timerregsaddrtprall初始化定时器控制寄存器tcrtss位为1时定时器停止为0时启动定时器timerregsaddrtcrbittsstrb位为1时重新加载周期计数器的值到计数器timerregsaddrtcrbittrb定时器自由运行tie位为1时使能定时器中断timerregsaddrtcrbittievoidstartcputimer0pie控制器概述2812的cpu能够支持一个不可屏蔽中断nmi和16个可屏蔽的中断int1int14rtosint和dlogint2812内部具有很多外设每个外设又可以产生一个或者多个中断请求对于2812的cpu而言它没有足够的能力去同时处理所有外设的中断请求
0305 定时器控制流水灯程序设计

THANK YOU!
定时器控制流水灯程序设计
PLC执行[>= T0 K20]指令和[< T0 K30] 指令,判断T0的经过值 是否在2~3秒时间段,如果T0的经 过值在此时段内,则PLC执行[MOV K4 K2Y000]指令,Y2线圈得电, 第3盏彩灯点亮。
任务实施
› (2)采用当前值比较方式编写程序
PLC执行[>= T0 K30]指令和[< T0 K40] 指令,判断T0的经过值是否在3~4 秒时间段,如果T0的经过值在此时段内,则PLC执行[MOV K8 K2Y000]指令 ,Y3线圈得电,第4盏彩灯点亮。 PLC执行[>= T0 K40]指令和[< T0 K50] 指令,判断T0的经过值是否在4~5 秒时间段,如果T0的经过值在此时段内,则PLC执行[MOV K16 K2Y000]指令 ,Y4线圈得电,第5盏彩灯点亮。
知识储备
定时器 时钟脉冲周期 编号范围(共256个) 定时范围
通用 定时器
100ms 10ms
T0~T199,共200个 0.1~3276.7s T200~T245,共46个 0.01~327.67s
积算 定时器
1ms 100ms
T246~T249,共4个 0.001~32.767s T250~T255,共6个 0.1~3276.7s
知识储备
› 1)通用定时器
在任意时刻,如果定时 器T0被断电或者是驱 动输入X000被断开, 定时器T0将被立即复 位,累计值清零、输出 触点复位。
当T0累计值等于设 定值K50时,定时 器T0的输出触点动 作,Y000得电。
X000接通,T0开 始对100ms的时钟 脉冲进行累计。
知识储备ቤተ መጻሕፍቲ ባይዱ
利用硬件定时实现流水灯

• T0、T1
80C52有3个16位定时/计数器:
• T0、T1、T2
定时/计数器(Timer/Counter,简称T/C)
定时器:来一个机器脉冲计数器的值加1 。当计数器值溢出(全1)时回0,定时时间 到,中断标志TF置1.
1个机器周期=12*1/振荡频率
任务三 利用硬件 定时实现流水灯
LOGO
常用延时方法
非精确延时
• For(i=0;i<100;i++); • i=0;while(i--);
精确延时
• 利用库函数_nop_ ( ) ; //延时一个机器周期
(需要include<intrins.h>)
• 利用定时器进行定时
定时/计数器(Timer/Counter,简称T/C)
LOGO
M1和M0:T0和T1工作方式控制位。定时/计数器的工作方 式有M1M0两位状态决定,这两位有四种编码方式,对应
于四种工作方式。四种方式定义如表所示:
M1M0 00 01 10 11
方式 方式0 方式1 方式2
方式3
说明
TL的低5位和TH的8位构成13位计数器
TL的8位和TH的8位构成16位的计数器
TMOD寄存器 不可位寻址
控制T1
控制T0
GATE C/T M1 M0 GATE C/T M1 M0
GATE:
0:软件控制 定时器工作
1:外部中断 控制定时器 工作
C/T 0:定时器 1:计数器
M1M0: 00:方式0 01:方式1 10:方式2 11:方式3
GATE:门控位,控制计数器的启动/停止操作方式。 当GATE=0时,外部中断信号不参与控制,计数器只有TR0 和TR1位软件控制启动和停止。TR1、TR0为1时,计数器
定时器控制流水灯

定时器控制流水灯The Standardization Office was revised on the afternoon of December 13, 2020成绩信息与通信工程学院实验报告(操作性实验)课程名称:微机原理与微控制器应用实验题目:c51单片机的定时器实验指导教师:班级: 学号:学生姓名:一、实验目的和任务1.掌握定时器中断的编程方法。
2.掌握keil C51集成开发环境在硬件仿真条件下各参数的设置。
二、实验仪器及器件硬件:电脑一台、微机原理与单片机试验箱:51开发板、开关及LED显示单元、导线若干软件:keil uVision4三、实验内容及电路图利用实验板上的八个LED灯作显示,利用定时器中断编写中断一次为50ms的定时程序,控制单片机定时器进行定时,总定时时间为。
四、流程图与程序#include ""#include<>int temp=0x01,num=0;void T0Int() interrupt 1{TH0=(65536-45872)/256;TL0=(65536-45872)%256;num++;if(num==15) {num=0;P1=_crol_(temp,1);temp=P1;}}void main(){EA=1;ET0=1;TMOD=0X01;TH0=(65536-45872)/256;TL0=(65536-45872)%256;TR0=1;while(1);}五、实验结果八个LED灯由左往右依次亮起,并且每个LED灯点亮时间大约为。
六、实验数据分析及处理从实验现象来看,LED灯从左到右依次点亮,符合实验要求,说明实验操作正确,实验结果正确。
七、实验结论与感悟(或讨论)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
D7 D6 D5
ACH
D4
ABH
D3
AAH A9H
D2 D1
A8H(LSB)
D0
EA
×
×
ES
ET1
EX1
ET0
EX0
中断允许寄存器IE对中断的开放和关闭实行两级控制。 所谓两级控制,就是有一个总开、关中断控制位EA,当 EA=0时,则屏蔽所有的中断申请,即任何中断申请都 不接受;当EA=1时,CPU开放中断,但五个中断源还 要由IE的低5位的各对应控制位的状态进行中断允许控制。
任务3 以定时方式控制流水灯
自然优先权顺序
中 断 源 同级内优先权排列
外部中断0中断(IE0) 定时器/计数器0中断(TF0) 外部中断1中断(IE1) 定时器/计数器1中断(TF1) 串行接口中断(TI/RI)
最 高
最 低
任务3 以定时方式控制流水灯
MCS-51系列单片机中断响应原则:
1)高级中断请求可以中断正在执行的低级中断。
D3 PT1 0
D2 PX1 1
D1 PT0 1
D0 PX0 0
解:响应次序为 定时器0→外中断1→外中断0→实时器1→串行 中断。
任务3 以定时方式控制流水灯
3. 中断响应 (1)中断响应的时序
任务3 以定时方式控制流水灯
(2)CPU响应中断的条件
①没有同级或高优先级的中断正在处理;
(1) 中断源
1)外部中断源:MCS-51系列单片机有2个外中 断源,称为外中断0和1,经由单片机上的P3.2、P3.3 这两个外部引脚引入,为 INT0 、 INT1 。 2)内部中断源 • 定时器溢出中断源。定时器溢出中断源由内 部定时器/计数器产生,属于内部中断。 • 串行口中断源。串行口中断是由内部串行口 中断源产生。
3.1.2
IT0=0
MCS-51单片机中断系统
TCON IE
EX0
IP
PX0
INT0 IT0=1
IE0
TF0 IE1
T0
IT1=0
PT0
ET0 PX1 EX1 PT1
自 然 优 先 级
INT1 IT1=1
矢量 地址
自 然 优 先 级
高 级 中 断 请 求
T1
TXD RXD
中断标 志位
TF1 ET1 PS TI ES EA RI SCON 中断源 总允许 EA 允许
注意:该寄存器可以位寻址。
外部中断INT0触发方式 控制位(TCON.0): IT0=0,电平触发方式 IT0=1, 下降沿触发方 式
任务3 以定时方式控制流水灯
1)TCON的中断标志位
8FH 8EH TCON D7 TF1 D6 TR1 8DH D5 TF0 8CH D4 TR0 8BH D3 IE1 8AH D2 IT1 89H D1 IE0 88H D0 IT0
任务三
流水灯定时控制
教学导航
任务单
任务准备
案例示范
知识梳理与总结 任务作业
教学导航
知识重点 (1)中断控制用寄存器;(2)中断服务函数的编写; (3)定时器工作方式及控制寄存器的使用
知识难点 定时器工作方式;中断服务函数的编写 以任务入手,通过流水灯的定时控制程序的编写逐 教 推荐教学 渐认识中断系统、定时器/计数器的作用,深化对中 方式 断系统与定时器的理解,掌握中断服务函数的编写 方法及中断响应的机制。 建议学时 8学时 推荐学习 通过对教师提供的电路图,编写程序,完成仿真调 方法 试,理解相关理论知识,学会应用。 (2)中断控制用寄存器; 必须掌握 (1)单片机中断系统; 的理论知 (3)中断服务函数的编写; (4)单片机定时器结构; 识 (5)工作方式及控制寄存器;(6)定时器的应用 必须掌握 中断程序、定时器应用程序的编写,仿真调试技巧。 的技能
②正在执行指令必须执行完最后一个机器周期 (换言之, 正在执行的指令完成前, 任何中断请求都 得不到响应);
③若正在RETI或读写IE或IP寄存器,则必须执行 完当前指令的下一条其它指令之后才会响应。
任务3 以定时方式控制流水灯
(3)CPU响应中断的过程
单片机一旦响应中断请求, 就由硬件完成以下功能:
任务3 以定时方式控制流水灯
(2)中断请求标志
1)TCON中的中断标志位
(MSB)8FH D7 TF1 8EH D6 TR1 8DH D5 TF0 8CH D4 TR0 8BH D3 IE1 8AH D2 IT1 89H D1 IE0 88H(LSB) D0 IT0
外部中断INT0中断标志 位(TCON.1) : IE0=1,外部中断1 向CPU申请中断
任务3 以定时方式控制流水灯
实例3-1 如果我们要设置外中断1、定时器1中断允 许,其它不允许,请设置IE的相应值。
(MSB)AFH AEH ADH ACH ABH AAH A9H A8H(LSB) 位 符号 值 D7 D6 D5 D4 D3 D2 D1 D0
EA
1
×
0
×
0
ES
0
ET1
1
EX1
1
ET0
D7
D6
D5
D4
D3
D2
D1
D0
SM0 SM1 SM2 REN TB8 RB8 TI (SCON.1)—— 串行发送中断标 志。 注意:该寄存器可以位寻址!
TI
RI
RI (SCON.0)— —串行接收中断 标志。
任务3 以定时方式控制流水灯
2. 中断控制
(1)中断允许控制——中断允许寄存器IE
中断服务函数
C51编译器支持在C语言源程序中直接编写8051 单片机的中断服务函数,从而减轻使用汇编语言 的繁琐程度,提高了开发效率。
任务3 以定时方式控制流水灯
1.中断服务函数的一般形式
void 函数名(void) interrupt m [unsing n] •代表中断号,是一 个常量,取值范围 是0-31。 •C51编译器允许32 个中断,从8m+3处 产生中断向量 代表中断函数 将要选择使用 的寄存器组, 也是一个常量, 取值范围是 0~3。
低级中断请求
高级中断请求
响应高级中断
返回主程序
返回低级中断程序
任务3 以定时方式控制流水灯
中断优先级寄存器IP
(MSB)BFH D7 BEH D6 BDH BCH D5 D4 BBH D3 BAH D2 B9H D1 B8H(LSB) D0
×
×
×
PS
PT1 PX1 PT0 PX0
专用寄存器IP为中断优先级寄存器,用户可用软件 设定 相应位为1,对应的中断源被设置为高优先级,相 应位为0,对应的中断源被设置为低优先级 系统复位时,均为低优先级 该寄存器可以位寻址
中断优 先级
矢量 地址
低 级 中 断 请 求
任务3 以定时方式控制流水灯
1. MCS-51的中断源和中断标志
中断源是指引起中断的事件。 在单片机中,中断源是指引起中断原因的设备或 事件,或发出中断请求信号的源泉。通常有I/O 设备、实时控制系统中的随机参数和信息故障源 等。
任务3 以定时方式控制流水灯
学
任务3 以定时方式控制流水灯
任务单
任务二是利用单片机的并行I/O口外接流水灯,采用并行输 入/输出方式控制发光二极管实现流水灯,在实现该任务时, 任务 每次点亮一个灯后要延时,否则无法看到流水灯效果,任 描述 务二通过软件方法实现延时。本任务要求利用单片机的定 时器/计数器,让流水灯指定时间循环点亮发光二极管。 如图3-1所示,由P0连接8只发光二极管,实现如下流水灯 的功能: 任务 (1)要求每隔1s从左至右循环点亮发光二极管; 要求 (2)按自定时间间隔从左至右循环点亮发光二极管,点亮 最右边的发光二极管后,再从右至左循环点亮。 实现 1.利用Proteus仿真运行,按任务要求实现流水灯。 方法 2.在实训设备上按任务要求连线,运行程序。
位 符号 值
D7 X 0
D6 X 0
D5 X 0
D4 PS 0
D3 PT1 0
D2 PX1 1
D1 PT0 1
D0 PX0 0
IP的值就是06H。
任务3 以定时方式控制流水灯
实例3-3 在上例中,如果5个中断请求同时发生 ,求中断响应的次序。
位 符号 值
D7 X 0
D6 X 0
D5 X 0
D4 PS 0
0
EX0
0
(a)SFR赋值 IE=0x8c (b)用位赋值 EA=1;CPU开中断 ET1=1;定时/计数器1允许中断 EX1=1;外中断T1允许中断
任务3 以定时方式控制流水灯
(2)中断优先级控制
MCS-51单片机有两个中断优先级:高级中断和低 级中断。
每一个中断源都可以通过编程确定为高优先级中断 或低优先级中断。
任务3 以定时方式控制流水灯
3.1.2
MCS-51中断系统
中断系统是指能实现中断功能的那部分硬件电路 和软件程序。 对于MCS-51单片机,大部分中断电路都是集成 在芯片内部的,只有和中断输入线上的中断请求 信号产生电路才分散在各中断源电路或接口芯片 电路里。
任务3 以定时方式控制流水灯
任务3 以定时方式控制流水灯
什么是中断?
中断是指计算机在执行某段程序的过程中,
由于计算机系统内、外的某种原因, 暂时中止原 程序的执行, 转去执行相应的处理程序, 并中断 服务程序执行完后, 再回来继续执行被中断的原 程序的过程。
任务3 以定时方式控制流水灯
2.
中断的作用
1)CPU与外设并行工作。解决CPU速度快、外设速度 慢的矛盾。 2)实时处理。控制系统往往有许多数据需要采集或输 出。实时控制中有的数据难以估计何时需要交换。 3)故障处理。计算机系统的故障往往随机发生,如电 源断电、运算溢出、存储器出错等。采用中断技术,系统 故障一旦出现,就能及时处理。 4)实现人机交互:人和单片机交互一般采用键盘和 按键,可以采用中断的方式实现,中断方式时CPU执行效 率高,而且可以保证人机交互的实时性,故中断方式在人 机交互中得到广泛应用。