实验3-外部中断实验报告.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
实验三 定时中断实验 一、实验目的 1. 掌握51单片机外部中断的应用。 2. 掌握中断函数的写法。 3. 掌握定时器的定时方法。 4. 掌握LED数码管的显示。 二、实验内容 1. 用外部中断0测量负跳变信号的累计数,同时在LED数码管上显示出来。 2. 用外部中断改变流水灯的方式。 3. 用定时器T1的方式2控制两个LED以不同周期闪烁。 使用定时器T1的方式2来控制P0.0、P0.1引脚的两个LED分别以1s和2s的周期闪烁。 三、实验仿真硬件图 在Proteus软件中建立如下图所示仿真模型并保存。 1. 用外部中断0测量负跳变信号的累计数,同时在LED数码管上显示出来(用中断方式做计数 器)。 2.用外部中断改变流水灯的方式。 中断前:开始时,P0.0~P0.7的8个灯依次点亮。 外部中断0:P0.0~P0.7的左右4个灯闪烁亮8次 外部中断1: P0.0~P0.7的8个灯间隔闪烁8次 改变中断优先级和保护现场,观察运行结果 编程提示 外部中断0请求,由P3.2管脚输入,通过IT0位来决定是低电平有效还是下降沿 有效。一旦输入信号有效,即向CPU申请中断,并建立IE0中断标志。 以外部中断0为例,开放中断源采用以下语句: EA=1; //开放中断总允许位 EX0=1; //开放外部中断0允许位 IT0=1; //置外部中断为边沿(下边沿)触发方式 中断函数结构如下: void int_0() interrupt 0 // interrupt 0表示该函数为中断类型号0的中断函数 { } 同级自然优先级: 外部中断0 定时器T0中断 外部中断1 定时器T1中断 串行口中断。 中断优先级别的设定: 实验二要求: 初始状态为P0.0~P0.7的8个LED显示灯依次循环点亮;外部中断0服务程序为8个LED灯, 左4个,右4个闪烁8次,外部中断1服务程序8个LED灯,间隔闪烁8次。 设定外部中断0为高优先级,先执行外部1中断,过程中用外部0中断来将其中断,反之不 行。注意保护现场。 设定外部中断1为高优先级,先执行外部0中断,过程中用外部1中断来将其中断,反之不 行。注意保护现场。 实验三(调试下列程序,在错误行后面注明错误及改正方法): #include <reg51.h> #define uchar unsigned char; sbit D0=P1^0; sbit D1=P1^1; uchar a,b; void main() { EA=1; ET1=1; TMOD=0x20; TL1=6; TR0=1; a=0; b=0; while(1) ; } void t1() interrupt 1 { a++; b++; if(a=1000) { D0=~D0 a=0; } if(b=4000) { D1=~D1; b=0; } 写出源程序,并注释 实验报告格式 实验三 定时中断实验 学院: 专业: 年级: 实验时间: 姓名: 学号: 指导教师: 一、实验目的 1. 掌握51单片机外部中断的应用。 2. 掌握中断函数的写法。 3. 掌握中断优先级别的使用。 4. 掌握LED数码管的显示。 二、实验内容 1. 用外部中断0测量负跳变信号的累计数,同时在LED数码管上显示出来。 2. 用外部中断改变流水灯的方式。 三、电路图(贴Protues仿真图) 四、程序与注释 1)程序1 2)程序2 3)程序3 六、简答题 1)电平触发和下降沿触发在程序中如何设置? 2)如何设置INT1为优先级?何谓优先? 3)中断服务函数的interrupt后面的数字表示什么? 七、体会 ----------------------- 实验3-外部中断实验报告全文共4页,当前为第1页。 实验3-外部中断实验报告全文共4页,当前为第2页。 实验3-外部中断实验报告全文共4页,当前为第3页。 实验3-外部中断实验报告全文共4页,当前为第4页。
- 粉丝: 168
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- 【ERP标准流程-标准流程-进货管理】(DOC 17页).doc
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- Java爬虫项目【项目开发计划】(共12页).docx
- 11111111111
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- 1
- 2
前往页