文档详情

proteus模拟串行口通信.doc

发布:2017-08-27约1.12千字共6页下载文档
文本预览下载声明
Proteus仿真——51单片机串口转RS232口 单片机串口是单片机通信的基本途径,可以进行多单片机间的通信,也可以通过接口转换实现与计算机间的通信。其中与计算机通信可以通过计算机的串口(232口)或USB口实现。本文是本人做的一个小实验,内容是在Proteus ISIS中仿真51单片机串口转RS232口,实现单片机通过串行口与计算机通信。 单片机串行口有四种不同的工作方式: 方式0:移位寄存器输入/出方式,波特率固定为:fosc/12。 方式1:10位UART(通用异步接口电路),一帧数据包括1位起始位(0),8位数据位和1位停止位(1)。波特率可变,公式为: 其中X为定时器T1的初值,当然我们一般都是先确定波特率然后算初值的,所以我们更想知道X等于多少。把上面的式子变一下就可以得到初值X了: 方式2/3:这两种方式都是11位的UART,它们比方式1多了一个第9位数据。 他们不同的是:方式2波特率固定为fosc/32或fosc/64,由SMOD位决定。 方式3:波特率同方式1; 本例中采用方式1,波特率为9600(计算机默认值),根据波特率算出初值X=253(定时器T1工作方式2)。我们以9600的波特率向计算机循环发送00H; proteus中的接口转换电路如下: 计算机端用串口调试软件接收; 不过我们要说明一下,为了实现串口的连接,我们要用计算机串口模拟软件模拟出两个232口,模拟出的这两个232口是设计为连接着的。 我们用Virtual Serial Port Driver这个软件(到网上去搜,很容易找到)。安装好后打开,界面如下: 在上图里可以看出我的机器有一个物理口COM1,现在已经模拟出了两个口COM2和COM3,而且他们是一组是连接着的。 我们在proteus中的compim默认是连到com1的,在我们这边改成com2,然后在串口调试软件中测试com3,如下两个图 现在硬件连接已经到位,下面就是软件了:通过串口以波特率为9600的速度发送00H,程序如下: ORG 0000H LJMP START ORG 0030H START: SETB EA SETB ES SETB ET1 CLR SM0;串行口工作于方式1:sm0=0,sm1=1 SETB SM1 MOV PCON,#00H;波特率不加倍 MOV TMOD,#20H;T1定时器方式2 MOV TL1,#253 MOV TH1,#253 SETB TR1 MOV A,#00H LOOP: MOV SBUF,A JNB TI,$;等待发送完 CLR TI;清除中断标志 LJMP LOOP;循环 END 结果如下:
显示全部
相似文档