南邮微机实验串行通信
时间: 2024-12-29 11:25:54 浏览: 18
### 南京邮电大学微机实验之串行通信
在南京邮电大学的微机接口实验中,对于串行通信的学习是一个重要环节。具体到测试微机系统的串行口部分,其实验设计围绕着实现串口通信外环自发自收展开。在此过程中,接收机制采用了中断驱动的方式处理数据到来事件;每当有新字符被接收到时,系统会触发类型码为`0BH`的中断信号,从而调用相应的中断服务子程序来响应这一事件[^3]。
#### 中断服务子程序逻辑解析
当发生上述提到的中断后,CPU暂停当前正在执行的任务并转向运行预先设定好的一段特殊代码——即所谓的“中断服务子程序”。这段代码的主要职责是从硬件层面读取出刚刚通过串行端口传入的数据字节,并对其进行初步判断:
- 如果该字符不是终止符 `"Esc"` ,则将其传递给上层应用程序做进一步处理;
- 若确实遇到了结束标记,则更新全局变量 `flag=-1` 来指示主循环应该准备停止工作流程。
```c
// 假设这是C语言编写的伪代码表示形式
void ISR_SerialReceive() {
char receivedChar = ReadFromSerialBuffer(); // 从接收缓冲区获取单个字符
if (receivedChar != 'Esc') {
ProcessCharacter(receivedChar); // 对正常输入做出反应
} else {
flag = -1; // 设置退出条件
}
}
```
#### 主程序控制结构概述
与此同时,在主线程里持续监控由ISR修改的状态位变化情况。一旦发现 `flag==-1` 的情形出现,就意味着用户请求关闭整个进程,此时应当有序地清理资源并安全地终止应用。
阅读全文