12ms中断实验:C语言下硬件中断程序设计与向量设置
需积分: 48 71 浏览量
更新于2024-07-12
收藏 650KB PPT 举报
实验要求涉及到硬件中断程序设计,具体目标是在C语言环境下实现一个12ms定时器中断程序,每中断一次在CRT(阴极射线管显示器)上显示一个字符,总共循环400次后恢复系统原有的功能。这个任务需要完成以下几个关键步骤:
1. **中断服务函数与中断类型**:
实验首先要求定义一个指向中断服务函数的函数指针,中断服务函数(例如`voidinterruptmyint(void)`)是中断程序的核心部分,它会在指定的时间间隔(如12ms)被硬件触发时执行。使用`interrupt`关键字声明函数,表明其用于中断处理。
2. **8254定时器初始化**:
你需要使用8254定时器来实现12ms的定时中断。这可能涉及配置定时器的控制寄存器,设置适当的定时周期以确保中断触发的准确性。
3. **中断向量管理**:
在实模式下,中断向量表是内存中专门存储中断服务子程序地址的区域,共1024字节。为了正确响应中断,需要从中断向量表中取出原中断向量,保存下来,并将其替换为指向`myint`函数的地址,实现中断服务的跳转。
4. **中断服务程序编写**:
编写中断服务函数时,不仅要显示字符,还要进行计数,以便在达到400次中断后结束循环。这可能需要用到中断计数器和字符缓冲区等数据结构。
5. **中断控制**:
需要管理中断允许标志IF,对于可屏蔽中断INTR,可以通过设置IF=1来允许或禁止CPU响应中断。在中断处理结束后,记得将IF重置为初始状态。
6. **中断向量恢复**:
当400次中断完成后,需要将中断向量恢复到原来的状态,以便系统可以继续执行其他中断或非中断任务。
7. **中断指令使用**:
熟悉如何使用中断指令(如INT n,其中n为中断类型号),以及如何通过`setvect`函数设置中断向量,这是实现中断程序的关键部分。
这个实验不仅测试了对中断系统原理的理解,还要求实践中断服务函数的编写、中断向量表操作和中断控制,以及与硬件交互的能力,是C语言程序设计中硬件层面的重要技能训练。
2021-10-29 上传
425 浏览量
2022-10-19 上传
400 浏览量
2022-05-13 上传
108 浏览量
黄宇韬
- 粉丝: 21
- 资源: 2万+
最新资源
- 城市信息服务公司网页模板
- StatusFrost - Statistics on Your Browsing-crx插件
- 码头工人
- redis-5.0.8-x64-for-windows.zip
- 网络游戏-基于遗传算法过采样支持向量机的网络入侵检测方法.zip
- Ember_Super_Rentals
- pedurma-double-tsek
- 蓝色教育资料库网页模板
- XSdropship-crx插件
- CrimeReporting:使用Java开发的CrimeReporting应用程序
- qt_font_freetype.tar.gz
- trainable-handwriting-recognizer:可训练的手写识别器
- francescogiancipoli.io:这是我的第一个仓库
- CAYOVA Box-crx插件
- 基于设计模式的绘板程序
- vifm-colors:Vifm文件浏览器的各种Colorchemes