社区
C语言
帖子详情
dos下串口中断程序怎么编?
death
2000-08-29 11:17:00
最后能给我个例子,多谢!
...全文
267
2
打赏
收藏
dos下串口中断程序怎么编?
最后能给我个例子,多谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
SCUM
2000-08-30
打赏
举报
回复
fishworm 的方法可以,不过如果过程代码比较多时,就不能直接作成ISR了,否则会当机。
可以在 0Ch 的 ISR 内加一个 busy 标志以解决问题。
满桌烟灰
2000-08-29
打赏
举报
回复
#define BASE 0x3f8
#define DATA 0
#define IER 1
#define IIR 2
#define LCR 3
#define MCR 4
#define LSR 5
#define MSR 6
#define INTNO 0x0c
void interrupt (*oldch1)();
void interrupt far ch1();
void interrupt far ch1()
{
register int id;
unsigned char r_data;
enable();
while (1)
{
id=inportb(BASE+IIR);
if (id==1)
{
outportb(0x20,0x20);
return;
}
switch (id)
{
case 2:
发送数据程序代码;
break;
case 4:
接收数据程序代码;
break;
case 6:
错误处理程序代码;
break;
default:
break;
}
}
outportb(0x20,0x20);
return;
}
主程序中串行口初始化部分:
disable();
outportb(BASE+LCR,0x80);
outportb(BASE+DATA,0x02);
outportb(BASE+IER,0x00);
outportb(BASE+LCR,0x03);以上为设置串行口的波特率
oldch1=getvect(INTNO);保存原串行口中断服务程序地址
setvect(INTNO,ch1);设置新串行口中断服务程序地址
outportb(BASE+IER,0x03);
outportb(BASE+MCR,0X08);
outportb(0x21,inportb(0x21)&INTON);允许串行口中断
程序结束时的处理:
setvect(INTNO,oldch1);
outportb(0x21,inportb(0x21)|~INTON);
outportb(BASE+MCR,0);
outportb(BASE+IER,0);
inportb(BASE+LSR);
inportb(BASE+MSR);
DOS
下
串口中断
收发
程序
V1.pdf
DOS
下
串口中断
收发
程序
V1
基于中断的串口驱动及显示
程序
.rar_串口 中断
dos
_串口 缓冲_
串口中断
_
串口中断
程序
_缓冲区
基于中断的串口驱动及显示
程序
,收发缓冲区实体,收发缓冲区读写指针,串口初始化,串口缓冲区初始化,
串口中断
服务子
程序
DOS
环境下Turbo C串口通信
编
程
单片机和嵌入式系统中串口
编
程实例。
DOS
下串口通信分中断和查询两种通信方式,本例
程序
采用了中断方式。
DOS
下串收发(c语言 )
C语言
编
写的MS-
dos
下的收发
程序
,接收基于中断机制,
程序
已经测试通过,下载包里还包含完整安装版BORLANDC,对于初学者,给出了完整的BORLANDC的安装使用,和
程序
的调试方法。 实现功能说明: 运行后 首先向所连接...
visual C++_Turbo C串口通信
编
程实践
11.3.2 RS-422与RS-485串行接口标准 11.3.3 RS-422与RS-485的网络安装注意要点 11.3.4 RS-232、RS422、RS485电气参数对比 11.4 串口调试注意事项 11.5 常用数据校验法 11.5.1奇偶校验 11.5.2 循环冗余码...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章