实验五、外部中断实验
实验五:外部中断实验
一、实验目的
1. 掌握向量中断控制器(VIC)的设置;
2. 掌握外部中断引脚功能设置及外部中断的工作模式设置; 3. 了解中断服务函数的编写。
4. 熟悉 LPC2000 系列 ARM7 微控制器的 GPIO 控制。 二、实验设备
硬件:PC 机一台、EasyARM2103 开发板 一套
软件:Windows98/XP/2000 系统,ADS 1.2 集成开发环境 三、实验内容
设置 P0.16 低电平触发外部中断 0,短接JP3 的P0.16 端口,当按键KEY1 按下后, P0.16 输入低电平触发外部中断,取反LED,观察LED现象。 四、实验预习要求
仔细阅读《EasyARM2103》手册第4 章的内容,熟悉GIPO的设置。 仔细阅读《EasyARM2103》第 3 章的内容,了解 ADS 1.2 集成开发环境、LPC2200 专用工程模板、EasyJTAG 仿真器的应用。 五、实验步骤
1. 启动 ADS 1.2,使用 ARM Executable Image for lpc2103 工程模板建立一个工程VICDef_C。
2. 在工程的 user 的main.c中编写实验程序,然后调试。 4. 选用 DebugInRAM 生成目标,然后编译连接工程。 5. 将 EasyARM2103 开发板上的JP3 的P0.16 端口短接。 6. 选择【Project】->【Debug】,启动 AXD 进行 JTAG 仿真调试。 7. 在中断服务程序中设置断点,全速运行程序,观察现象。 8. 单步/全速运行程序,观察程序是否正确运行。
9. 编写程序,实现按键控制流水灯,4个LED灯轮流点亮。当按键按下并松开时,LED1亮,1秒后LED2亮直到4个灯全亮,之后全部熄灭,重新循环。当再次按下按键时停止流水灯显示,并全部熄灭。 七、实验参考程序
程序清单 P0.16 低电平触发外部中断0 #include \
#define LED 1 << 17
/**************************************************************************** ** 函数名称:Eint0IRQ
** 功能描述:外部中断0 服务程序 ** 入口参数:无 ** 出口参数:无
****************************************************************************/ void __irq Eint0IRQ(void) {
if ((IO0PIN & (1 << 17)) == 0) {
IO0SET = 1 << 17; /* 熄灭发光二极管 */ } else {
IO0CLR = 1 << 17; /* 点亮发光二极管 */ }
while((IO0PIN & (1 << 16)) == 0); /* 等待按键松开 */ EXTINT = 0x01; /* 清中断标志 */ VICVectAddr = 0x00; /* 通知VIC 中断处理结束 */ }
/****************************************************************************** ** 函数名称:main
** 功能描述:P0.16 低电平触发外部中断主函数 ** 入口参数:无 ** 出口参数:无
******************************************************************************/ int main (void) {
PINSEL1 = PINSEL1 & (~0x03);
PINSEL1 = PINSEL1 | 0x01; /* 设置P0.16 为外部中断0 管脚 */ PINSEL1 = PINSEL1&(~(0x03 << 2)); /*设置P0.17 为GPIO 功能 */ IO0DIR = LED; /* 设置P0.17 为输出 */ IO0SET = LED; /* 设置输出为高电平 */ IRQEnable(); /* IRQ 中断使能 */ EXTMODE = 0x00; /* 设置外部中断为低电平触发 */ VICIntSelect = 0 << 14; /* 选择EINT0 为FIQ 中断 */ VICVectCntl0 = 0x20 | 14; /* 将外部中断 0 分配给向量中断0 */ VICVectAddr0 = (uint32)Eint0IRQ; /* 设置中断服务程序地址 */ VICIntEnable = 1 << 14; /* 使能EINT0 中断 */ EXTINT = 0x01; /* 清除EINT0 中断标志 */ while(1); return 0; }
3.4.8 思考
1.中断服务函数为什么要使用__irq修饰?(提示:IRQ中断时微控制器切换到了IRQ模式,所以中断返回需要同时恢复 CPSR 寄存器,比如使用“SUBS PC,R14,#4”)
2.在 VIC 中,如何禁止某一个中断?假设系统使用了几个 IRQ 中断,如何一次全部禁止所有中断?
相关推荐:
- [学前教育]MC9S12XS256RMV1 xs128芯片手册4
- [学前教育]安东尼语录经典语录
- [学前教育]e级gps控制测量技术设计书
- [学前教育]苏教版2022-2022学年八年级下学期期末
- [学前教育]装修公司推广 营销
- [学前教育]家政服务合同(完整版)
- [学前教育]湖北省2016届高三联考语文试题
- [学前教育]爱立信无涯学习系统LTE题库1-LTE基础知
- [学前教育]揭秘大众柴油车作弊软件原理
- [学前教育]人才流失原因及对策分析
- [学前教育]房屋建筑施工工程劳务分包合同
- [学前教育]国际贸易实务试卷A卷09.6
- [学前教育]校园废品回收活动计划方案书范文格
- [学前教育]电大成本会计试题及答案
- [学前教育]大学物理实验 华南理工出版社 绪论答案
- [学前教育]爱丁堡产后抑郁量表
- [学前教育]液压冲击的危害、产生原因与防止方法(
- [学前教育]学生工作总结高一学生期中考试总结_020
- [学前教育]人民医院医疗废物管理规章制度大全
- [学前教育]阳光维生素的巨大抗癌潜能阅读题答案.d
- 马云在云锋基金江苏论坛闭幕式的发言
- 试论小学体育教育中的心理健康教育-教
- 语文A版一年级下册《语文乐园一》教学
- 2021四川大学物理化学考研真题经验参考
- [人教A版]2015-2016学年高中数学 第二
- 终端网点销售返利协议书
- 江苏省2015年眼科学主治医师青光眼考试
- 2017年部编人教版八年级语文上册教案
- 十一中学七年级英语上册Unit7Howmuchar
- 以赛促教的创新性实验教学机制建设实践
- 平凉市崆峒区2015七年级下生物期末试题
- 琶洲(地块五)A、B塔楼1、2#塔吊基础
- 一级医院工作制度与人员岗位职责
- 2018北京西城区高三二模理科数学试题及
- 炒股密码线技术 - 图文
- 职高学生生涯发展辅导教案
- 语文人教版四年级上册8 世界地图引出的
- 最新最新人教版二年级上册全册数学教案
- 2017高考英语全国2卷精彩试题(有问题
- 普通心理学笔记




