



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验七 外部中断实验一.实验目的1.学习PIC24F系列单片机的中断原理及编程方法;2.掌握中断处理程序的编程方法和调试方法。二.实验原理PIC24F系列单片机有5个外部中断输入,对应外部5个I/O管脚,每个中断都对应一个唯一的中断入口地址,当单片机响应中断时,会自动跳转到对应的中断入口地址处开始执行用户中断服务程序。依次设置如下寄存器:1.INTCON2:中断控制寄存器2(有五个外部中断源)。设置触发边沿:0为正边沿,即由低电平到高电平;1为负边沿,由高电平跳到低电平。2.IPCn:中断优先级寄存器。设置中断优先级,默认为4,可不设置。3.IFSn:中断标志状态寄存器。初始化时需要置为零,每次运行中断服务函数的时候需要清零,否则会陷入陷阱。4.IECn:中断允许寄存器。0为不允许中断,1为允许中断。主程序正常执行时,遇到开放的中断信号,则自动跳转到中断服务函数执行。执行完毕,返回到原来的程序继续执行。三.实验内容1.单片机的一个8位端口作输出,连接8位发光二极管;单脉冲发生器作外部中断源,街道单片机的外部中断管脚。当外部中断发生时,中断处理程序将发光二极管显示的数字加一。#include unsigned int state=0;/定义全局状态变量 void _ISR _INT0Interrupt()/中断服务程序 IFS0bits.INT0IF=0;/清零标志位state+;/状态+1void IOInit() TRISD=0x0000;/初始化PORTD为输出INTCON2bits.INT0EP=0;/设置触发边沿为正边沿IFS0bits.INT0IF=0;/清零标志位IEC0bits.INT0IE=1;/允许中断 int main(void) IOInit(); while(1) if(state255)/256个状态结束重新循环state=0;PORTD = state;/逐位取反,发光二极管低电平点亮运行结果: 试验:将单脉冲发生器改为使用PIC24F转接板上的按键作为外部中断源,会出现什么问题?应如何处理?将单脉冲换为按键之后将出现按键抖动的问题,为此需要加入一个防抖动的程序,可以通过在中断开始时加入一个延时来完成。其他部分不变,加入延时函数,并将中断服务程序改为如下:void Delayms(unsigned int del) unsigned int j; while(del-) for(j = 0;j1000;j+); void _ISR _INT0Interrupt()/中断服务程序 Delayms(400);IFS0bits.INT0IF=0;/清零标志位state+;/状态+12.单片机的一个8位端口做输出口,连接8位发光二极管。按键1与按键2街单片机的两个外部中断管脚。按一次按键1,发光二极管循环左移显示;按一次按键2,发光二极管循环右移显示。移位的状态间隔0.5秒,要求用外部中断处理按键事件。#include unsigned int flag = 0;/标志用来判断左移还是右移 void Delayms(unsigned int del)/定义延迟函数 unsigned int j; while(del-) for(j = 0;j1000;j+); void _ISR _INT0Interrupt()/按键1中断服务程序flag=0;/赋flag为0IFS0bits.INT0IF=0;/中断0标志清零void _ISR _INT1Interrupt()/按键2中单服务程序flag=1;/赋flag为1IFS1bits.INT1IF=0;/中断1标志清零void IOInit() TRISE=0x0000;/PORTE设为输出INTCON2bits.INT0EP=0;INTCON2bits.INT1EP=0;/将INT0和INT1设为正边沿触发IEC0bits.INT0IE=1;IEC1bits.INT1IE=1;/允许INT0和INT1中断IFS0bits.INT0IF=0;IFS1bits.INT1IF=0;/将INT0和INT1标志清零 int main(void) unsigned int state=0xFEFE,temp;IOInit(); while(1) PORTE = state;/发光二极管当前状态temp = state;if(flag=1)/flag=1则右移,即往高位移state=(state15)&0x0001);else/flag=0则左移,即往低位移state=(state1)&0x7FFF)|(temp15)&0x8000);Delayms(600);运行结果: 四.实验结果分析由于中断是在主程序之外打断运行的,所以在编写程序的时候应该尽可能简化中断服务程序,缩短其中的运行时间而将繁琐的运行过程放在主函数中进行。对于按键的抖动问题的解决方案不止一种,也可以通过在主程序中延时后判断按
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业种植保险替代型风险管理与合作协议
- 平和双语数学试卷
- 莆田初三上期中数学试卷
- 彭新中心校数学试卷
- 青大附期中考试数学试卷
- 2024年天津西青区消防救援支队招录政府专职消防员笔试真题
- 2024年曲靖市宣威市阿都乡中心学校招聘考试真题
- 河南洛阳西工区公益性岗位招聘考试真题2024
- 难点的数学试卷
- 2024年上海磁浮交通发展有限公司招聘真题
- 2025年山东青岛海关缉私局辅警招聘考试笔试试卷【附答案】
- 2025年社区工作者考试真题库及答案
- 血症中医护理方法
- 飞灰处置再生资源化利用项目可行性研究报告模板-立项备案
- 2025年中国药典试题及答案
- 昆明一中实验班数学试卷
- 2025年腾讯校招综合素质测评试题及答案
- 2025至2030中国旅游保险行业深度发展研究与企业投资战略规划报告
- 房屋应急维修管理办法
- 大隐静脉护理课件
- 卫生法规模考试题含答案
评论
0/150
提交评论