12ms中断实验:C语言下硬件中断程序设计与向量设置
需积分: 48 110 浏览量
更新于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 上传
2021-05-04 上传
2021-08-15 上传
2023-06-08 上传
2023-06-12 上传
2024-10-31 上传
2024-10-30 上传
2023-06-02 上传
2024-10-31 上传
黄宇韬
- 粉丝: 20
- 资源: 2万+
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍