任务三 流水灯定时控制
流水灯(定时器延时)
/********************** 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灯从左到右依次点亮,符合实验要求,说明实验操作正确,实验结果正确。
七、实验结论与感悟(或讨论)。
流水灯定时控制
任务3 以定时方式控制流水灯
3.1.2 MCS-51单片机中断系统
IT0=0
INT0 IT0=1
T0
IT1=0
INT1 IT1=1
T1
TXD RXD
中断标 志位
TCON IE
IP
IE0
PX0
EX0
PT0
TF0 ET0
PX1
IE1 EX1
自 然 优 先 级
高 级 中 断 请
矢量 求
地址
PT1
TF1 ET1
任务3 以定时方式控制流水灯
(1) 中断源ห้องสมุดไป่ตู้
1)外部中断源:MCS-51系列单片机有2个外中 断源,称为外中断0和1,经由单片机上的P3.2、P3.3 这两个外部引脚引入,为 INT0 、INT1。
2)内部中断源 • 定时器溢出中断源。定时器溢出中断源由内 部定时器/计数器产生,属于内部中断。 • 串行口中断源。串行口中断是由内部串行口 中断源产生。
任务3 以定时方式控制流水灯
2. 中断的作用
1)CPU与外设并行工作。解决CPU速度快、外设速度 慢的矛盾。
2)实时处理。控制系统往往有许多数据需要采集或输 出。实时控制中有的数据难以估计何时需要交换。
3)故障处理。计算机系统的故障往往随机发生,如电 源断电、运算溢出、存储器出错等。采用中断技术,系统 故障一旦出现,就能及时处理。
IE0=1,外部中断1 向CPU申请中断
▪注意:该寄存器可以位寻址。
外部中断INT0触发方式 控制位(TCON.0): ▪ IT0=0,电平触发方式 ▪ IT0=1, 下降沿触发方 式
任务3 以定时方式控制流水灯
1)TCON的中断标志位
单片机控制技术项目训练教程-任务三 键控流水灯控制器制作
程序知识点:
(1)if语句的使用
if(表达式) {语句}
if(表达式) {语句1}
else {语句2}
if(表达式1) {语句1} else if(表达式2 ) {语句2}
...... else {语句n}
(2)带参数的延时程序使用
//无参数延时程序 void delay() {
unsigned int x; for(x=30000;x>0;x--); }
u n sig n ed in t x; //定 义 无 符 号 整 型 变 量 x fo r(x= t;x> 0 ;x--);//延 时 时 间 决 定 于 x的 值 , x从 初 值 t减 至 0 } v o id m ain ()//主 函 数 { u n sig n ed ch ar i; //定 义 无 符 号 字 符 型 变 量 i P1= 0xff; //开 机 时 8个 LED 全 灭 w h ile(1 )//主 程 序 循 环 { K = 1 ;//把 按 键 管 脚 拉 高
项目一 乒乓球游戏控制器制作
任务三
键控流水灯控制器制作
任务三 键控流水灯控制器制作
1任务要求
2任务分析
3硬件电路的
设计与搭建
4软件编写
5任务实施
1
任务要求:
•键控流水灯控制器要求能使用按键控 制LED流水灯的工作:开机时,8个LED 灯均呈熄灭状态;点按按键K一次后, 以连续3个LED灯从左至右流动点亮,当 亮着的灯从右边流出时,循环从左边流 入;流动速度要求适中。
//带参数延ned int i) {
unsigned int x; for(x=i;x>0;x--); }
流水灯的控制
《单片机应用技术》流水灯的控制一:设计任务书题目自选,要求:(1)利用按键控制流水灯的显示。
(2)利用3×3或者4×4键盘,控制数码管的显示。
(3)利用到定时/计数器。
(4)利用到中断技术。
二:摘要:单片机、流水灯、仿真、键盘控制三:单片机简介单片机是单片微型计算机,它是针对控制与检测应用而设计的,也称为微控制器。
它具有芯片体积小、集成度高、功能强、抗干扰能力强、性价比高等特点,被广泛的应用在工业自动化、仪器仪表、航天航空、消费电子、电力电子、汽车电子、计算机外设等领域。
自20世纪80年代MCS-51系列单片机问世以来,经历了三十多年的发展,在共享Inter公司8051内核技术的基础上,众多的半导体公司经过不断的技术更新,推出了庞大的系列兼容产品,使MCS-51系列单片机依然在各个应用领域扮演着重要的角色。
图1-1如图1-1,MCS-51系列单片机的40只引脚按功能能可分为四类:1、电源引脚电源引脚提供芯片的工作电源,MCS-51系列单片机采用单一的直流5V电源供电。
(1) Vcc(引脚40)—— +5V。
(2) GND(引脚20)——地。
2、晶体振荡器信号输入和输出引脚晶体振荡器信号输入输出引脚外接振荡器或时钟源,为单片机提供时钟信号。
(1) XTAL1(引脚19)——振荡器信号输入。
(2) XTAL2(引脚18)——振荡器信号输出。
3、I/O口线引脚P0口(39~32脚):P0.0~P0.7统称为P0口。
在不接片外存储器与不扩展I/O 口时,可作为准双向输入/输出口。
在接有片外存储器或扩展I/O口时,P0口分时复用为低8位地址总线和双向数据总线。
P1口(1~8脚):P1.0~P1.7统称为P1口,可作为准双向I/O口使用。
对于52子系列,P1.0与P1.1还有第二功能:P1.0可用作定时器/计数器2的计数脉冲输入端T2,P1.1可用作定时器/计数器2的外部控制端T2EX。
实验三 流水灯控制实验
实验三流水灯控制实验一、实验目的1.熟练掌握单片机控制系统硬件电路的设计、测试;单片机监控程序的编写、调试及运行。
二、实验设备1.PC计算机;2.NEC全系列微控制器(单片机)开发工具EM/EZ-1系统;3.实验系统。
三、实验内容1.参考附录中的“LED灯控制电路原理图”及“实验DEMO程序”,编写并运行单片机监控程序,观察在实验板上实现对每个LED灯(LED1~LED12)的亮、灭控制。
2.编写程序实现流水灯功能(方案自行设计)。
四、实验要求1. 实验完成后,应请老师确认后再离开实验室,同时将实验报告写好,填写上班级和姓名后交实验教师。
2. 实验报告中要有完成实验内容2的实验步骤、过程、程序流程图、源程序代码清单、实验结果等内容,并对实验结果进行分析和总结。
1附录:1. LED灯控制电路原理图:2. LED灯控制单片机DEMO程序:#pragma sfrvoid delay( void ) /*软件延时函数*/{int i,j;for(i=0;i<=20000;i++)for(j=0;j<=200;j++);}void main( void ){/* initialize the port registers */P13 = 0x0; /*接在P130~P133上的LED灯熄灭*/P14 = 0x0; /*接在P140~P143上的LED灯熄灭*/P15 =0x0; /*接在P150~P153上的LED灯熄灭*//* initialize the mode registers */2PM13 = 0xf0; /*P00~P03为输出口*/PM14 = 0xf0; /*P20~P23为输出口*/PM15 = 0xf0; /*P50~P07为输出口*/while(1){P13 = 0x0f; /*接在P130~P133上的LED灯点亮*/ delay(); /*延时*/P13 = 0x0; /*接在P130~P133上的LED灯熄灭*/ P14 = 0x0f; /*接在P140~P143上的LED灯点亮*/ delay(); /*延时*/P14 = 0x0; /*接在P140~P143上的LED灯熄灭*/ P15 = 0x0f; /*接在P150~P153上的LED灯点亮*/ delay(); /*延时*/P5 = 0x0; /*接在P150~P153上的LED灯熄灭*/ }}3。
第3章 流水灯定时及外部中断控制
15~0 TIM
15~0
TIMH
TIMER0PRD(周期寄存器)
15 PRD R/W-0 0
15 PRDH R/W-0
0
位
名称
功能描述
15~0
PRD
CPU定时器周期寄存器(PRDH:PRD)(低16位); 当TIMH:TIM递减到零时,在下一个输入时钟时TIMH :TIM寄存器重新装载PRDH:PRD寄存器的周期值; 当用户将定时器控制寄存器(TCR)的定时器重新装载 位(TRB)置位时,PRDH:PRD寄存器中的周期值也 会重新装载到TIMH:TIM中。
通过对0x08 8001单元写数据就可以改变8个LED的亮与灭。 本系统还应用了CPU定时器,产生定时中断,在响应中断时给0x08 8001
单元写数,从而实现了LED灯的定时闪烁。
当按下外部中断按钮时,产生外部中断,显示状态按要求不再发生变化。
74HC373介绍
74HC373的真值表
Dn H L X X LE H H L X OE L L L H Qn H L Q0 Z
Zone1的片选 使能线
Zone2和Zone6
Zone2和Zone6共享外部地址总线,对空间2和空间6的访问 是通过片选信号XZCS2和XZCS6AND7区分的。
其首地址分别为0x08 0000和0x10 0000。
Zone7
Zone7是个独立的地址空间。复位时,如果XMP/MC引 脚为高电平,Zone7空间映射到0x3F C000。系统复位 后,可以通过改变寄存器XINTCNF2中的
15~0
PRDH CPU定时器计数寄存器(PRDH:PRD)(高16位)
TIMER0TCR(控制寄存器)
15 TIF R-0 7 Reserved R-0 14 TIE R/W-0 6 5 TRB R/W-0 4 TSS R/W-0 3 Reserved R-0 13 12 Reserved 11 FREE R-0 10 SOFT R/W-0 9 8 Reserved R-0 0
流水灯定时控制
CMD详解
CMD主要是用来分配rom和ram空间用的,它告诉链接 程序怎样计算地址和分配空间.所以不同的芯片就有 不同大小的rom和ram.放用户程序的地方也不尽相同. 所以要根据芯片进行修改.分两部分.MEMORY和 SECTIONS.
RAM(易挥发性随机存取存储器),高速存取, 读写时间相等,且与地址无关。 ROM(只读存储器)断电后信息不丢失,取速度 很低且不能改写 281X采用分页制,PAGE0放程序空间,PAGE1放数据 空间
• 预定标计数器低位及高位寄存器 (TIMERxTPR,TIMERxTPRH) 定时器预定标计数器低位及高位寄存 器结构及位域定义见图,它由16位分频寄 存器(TDDRH:TDDR)和16 位预定标器计数 器(PSCH:PSC)组合而成
• 控制寄存器(TIMERxTCR) TCR 是一个16 位的寄存器 它在所有运算符中优先级最高 */ Timer->RegsAddr->TCR.bit.TSS=1;//停止定时器 Timer->RegsAddr->TCR.bit.TRB=1; //重装定时器 Timer->RegsAddr->TCR.bit.SOFT=1; Timer->RegsAddr->TCR.bit.FREE=1; //定时器自由 运行 Timer->RegsAddr->TCR.bit.TIE=1; //使能定时器中 断 Timer->InterruptCount=0; //复位中断计数器 }
- 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执行效 率高,而且可以保证人机交互的实时性,故中断方式在人 机交互中得到广泛应用。