单片机与计算机串行通信的心得体会
[09-14 01:27:09] 来源:http://www.88dzw.com 电子制作 阅读:8878次
文章摘要: printf (″\ n″) ; getch () ; } 可以得出如下结论:当cmd=0时,bioscom函数对串口初始化,写通信线控制寄存器和除数寄存器,设置数据帧格式和波特率,并写中断允许寄存器,清除所有中断允许位,串口读写只能工作于程序查询方式,但不写MODEM控制寄存器;当cmd=1时,bioscom函数发送数据,改写MODEM控制寄存器,使DTR、RTS信号有效,并查询MODEM状态寄存器,等待DSR、CTS两个回答信号,只有在一定延时内,两个回答信号都有效才发送成功;当cmd=2时,bioscom函数接收数据,改写MODEM控制寄存器使DTR有效,并查询M
单片机与计算机串行通信的心得体会,标签:电子小制作,http://www.88dzw.comprintf (″\ n″) ;
getch () ;
}
可以得出如下结论:当cmd=0时,bioscom函数对串口初始化,写通信线控制寄存器和除数寄存器,设置数据帧格式和波特率,并写中断允许寄存器,清除所有中断允许位,串口读写只能工作于程序查询方式,但不写MODEM控制寄存器;当cmd=1时,bioscom函数发送数据,改写MODEM控制寄存器,使DTR、RTS信号有效,并查询MODEM状态寄存器,等待DSR、CTS两个回答信号,只有在一定延时内,两个回答信号都有效才发送成功;当cmd=2时,bioscom函数接收数据,改写MODEM控制寄存器使DTR有效,并查询MODEM状态寄存器,等待DSR回答信号,同样需在一定延时内得到回答否则接收失败;当cmd=3时,bioscom函数读取通信线状态寄存器和MODEM状态寄存器,并返回。
弄清了bioscom函数的执行过程,就可以用左图所示的连接进行通信,使串口的DTR和DSR短接,RTS和CTS短接,这样,只要bioscom使DTR、RTS有效,便可得到所需的回答信号。在这种连接下,前面给出的不能通信的程序就可以正常通信了。
那么,能否用右图所示的简单三线连接进行计算机和单片机的串行通信呢,答案是肯定的。只要用上述程序中给出的inportb和outportb两个函数直接驱动8250即可,其说明如下:
unsigned char inportb (int portid) ;
void char inportb (int portid ,unsigned char value) ;
portid 是硬件端口地址;Value 是发送的字符数据。
下面是笔者编写的初始化、写串口、读串口函数。
void initcom(int com ,int bps)
{int co-a ,io-a ;
char ch ;
switch (bps)
{case 110 :ch = 0x03 ;break ;
case 150 :ch = 0x23 ;break ;
case 300 :ch = 0x43 ;break ;
case 600 :ch = 0x63 ;break ;
case 1200 :ch = 0x83 ;break ;
case 2400 :ch = 0xa3 ;break ;
case 4800 :ch = 0xc3 ;break ;
case 9600 :ch = 0xe3 ;break ;
default :ch = 0xa3 ;
}
co-a = (com - 1) ? 0x2fc :0x3fc ;
io-a = (com - 1) ? 0x2f8 :0x3f8 ;
bioscom(0 ,ch ,com - 1) ;
outportb (co-a ,0) ;
inportb (io-a) ;
}
参数com是串口号,COM1为1,COM2为2。bps是所需的波特率。这里是用BIOScom函数实现初始化的大部分功能。若按照前边给出的8250初始化步骤,可以用下列程序段对COM1进行初始化:
outportb (0x3fb ,0x80) ;
outportb (0x3f9 ,0) ;
outportb (0x3f8 ,0x30) ;
outportb (0x3fb ,0x03) ;
outportb (0x3f9 ,0) ;
outportb (0x3fc ,0) ;
- 上一篇:电源指示灯的改进方法
《单片机与计算机串行通信的心得体会》相关文章
- › 单片机与计算机串行通信的心得体会
- › 基于PIC单片机与串行闪存的SPI接口设计
- › 单片机与PC机串行通信电路
- 在百度中搜索相关文章:单片机与计算机串行通信的心得体会
- 在谷歌中搜索相关文章:单片机与计算机串行通信的心得体会
- 在soso中搜索相关文章:单片机与计算机串行通信的心得体会
- 在搜狗中搜索相关文章:单片机与计算机串行通信的心得体会
编辑推荐
- · 自制教室照明节电控制器
- · 双色音乐彩灯的制作
- · 三相交流电机缺相保护器
- · 声光控节能灯的制作
- · 同线电话转呼及互通器电路
- · 超低频信号发生器的制作
- · 自制热转印电路板
- · 警笛发声生器电路
- · 一款节能电路
- · 利用太阳能充电的旅行充电器