社区
C语言
帖子详情
dos下串口中断程序怎么编?
death
2000-08-29 11:17:00
最后能给我个例子,多谢!
...全文
271
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的安装使用,和
程序
的调试方法。 实现功能说明: 运行后 首先向所连接串口发送10次“666666” 然后
程序
处于接收状态 ESC退出
程序
端口设置为COM1,波特率9600 具体看
程序
里“readme.txt” ------------by swack
visual C++_Turbo C串口通信
编
程实践
里面讲了MSComm控件 、 WinAPI 串口通信、CSerial类,例子很详实,每一步操作都有解释。作者是龚建伟,有一个个人主页www.gjwtech.com,讲串口通信的内容比较多,还行,大家可以先看看这个主页。 本书目录 第1章轻松体验串口通信
编
程与调试 1.1初识串口 1.1.1从外观上了解串口 1.1.2 串口通信的发展前景 1.2 自己制作简单的串口线 1.2.1 三线制串口接线的规定 1.2.2 焊接制作自己的串口连接线 1.3 调试串口通信
程序
时的几种使用串口的技巧 1.3.1 查看计算机串口资源 1.3.2 常规调试-2个物理串口之间的通信 1.3.3 特殊调试-单个物理串口之间的通信 1.3.4 虚拟串口-为计算机添加取之不尽的串口资源 1.4 使用串口调试助手来体验串口通信 1.5体验Windows环境下Visual C++串口通信
编
程 1.6体验
DOS
环境下Turbo C串口通信
编
程 第2章 VC多线程串口
编
程工具CSerialPort类 2.1 类功能及成员函数介绍 2.2 应用CSerialPort类
编
制基于对话框的应用
程序
2.3 应用CSerialPort类
编
制基于单文档的应用
程序
2.4对CSerialPort类的改进 2.5 在Visual C++.NET中应用CSerialPort类 第3章 控件MSComm串口
编
程 3.1 MSComm控件详细介绍 3.1.1 VC中应用MSComm控件
编
程步骤 3.1.2 MSComm控件串行通信处理方式 3.1.3 MSComm 控件的属性说明 3.1.4 MSComm控件错误信息 3.2使用MSComm控件的几个疑难问题 3.2.1使用VARIANT 和SAFEARRAY 数据类型从串口读写数据 3.2.2 MSComm控件能离开对话框独立存在吗? 3.2.3 如何发送接收ASCII值为0和大于128的字符? 3.2.4 在同一
程序
中用MSComm控件控制多个串口的具体操作方法 3.2.5解决使用控件
编
程时
程序
占用的内存会不断增大的问题 3.2.6在没有安装Visual Studio的计算机上如何使用MSComm控件 3.2.7 在MSComm控件串口
编
程时遇到的其它问题说明 3.3在基于单文档(SDI)
程序
中应用MSComm控件 3.4应用MSComm控件控制多个串口实例 第4章 Windows API串口
编
程 4.1 Windows API串口
编
程概述 4.2 API串口
编
程中用到的结构及相关概念说明 4.2.1 DCB(Device Control Block)结构 4.2.2超时设置COMMTIMEOUTS结构 4.2.3 OVERLAPPED异步I/O重叠结构 4.2.4 通信错误与通信设备状态 4.2.5 串行通信事件 4.3 Windows API串行通信函数 4.4 Win32 API串口通信
编
程的一般流程和特殊实例 4.4.1 Win32 API串口通信
编
程的一般流程 4.4.2 用查询方式读串口 4.4.3同步I/O读写数据 4.4.4 关于流控制的设置问题 4.5 CSerialPort类中的API函数
编
程应用剖析 4.6 Win32 API串口
编
程TTY(虚拟终端)实例 4.7 Windows API串口精简例程 第5章 串口调试助手V2.2详细
编
程 5.1 建立SCOMM
程序
工程实现界面功能 5.2 串口的初始化及关闭 5.3串口数据的发送与接收及十六进制数据的处理 5.3.1 十六进数据发送处理 5.3.2 手动发送处理 5.3.3自动发送处理 5.3.4 接收处理及十六进制显示 5.4 其它辅助功能的实现 5.4.1 接收数据的文件保存 5.4.2 实现小文件发送 5.4.3 图钉按钮功能使
程序
能浮在最上层 5.4.4 对话框动画图标的实现 5.4.5 超链接功能的实现 5.4.6 如何打开帮助网页文件 第6章
DOS
环境下的Turbo C串口
编
程及通用实例GSerial类 6.1 PC机异步通信适配器8250及其
编
程操作 6.1.1 INS8250内部寄存器及其选择方式 6.1.2 波特率设置 6.1.3数据位、奇偶校验、停止位等数据格式设置 6.1.4 查询I/O方式相关设置 6.1.5 中断I/O通信方式相关设置 6.1.6 Modem寄存器 6.2 COMRXTX
程序
实例
C语言
69,373
社区成员
243,079
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章