全球旧事资料 分类
仿真51Proteus仿真51单片机串口转RS232口
单片机串口是单片机通信的基本途径,可以进行多单片机间的通信,也可以通过接口转换实现与计算机间的通信。其中与计算机通信可以通过计算机的串口(232口)或USB口实现。本文是本人做的一个小实验,内容是在ProteusISIS中仿真51单片机串口转RS232口,实现单片机通过串行口与计算机通信。单片机串行口有四种不同的工作方式:方式0:移位寄存器输入出方式,波特率固定为:fosc12。方式1:10位UART(通用异步接口电路),一帧数据包括1位起始位(0),8位数据位和1位停止位(1)。波特率可变,公式为:
其中X为定时器T1的初值,当然我们一般都是先确定波特率然后算初值的,所以我们更想知道X等于多少。把上面的式子变一下就可以得到初值X了:
方式23:这两种方式都是11位的UART,它们比方式1多了一个第9位数据。他们不同的是:方式2波特率固定为fosc32或fosc64,由SMOD位决定。方式3:波特率同方式1;本例中采用方式1,波特率为9600(计算机默认值)根据波特率算出初值X253,(定时器T1工作方式2)。我们以9600的波特率向计算机循环发送00H;proteus中的接口转换电路如下:
16
f计算机端用串口调试软件接收;不过我们要说明一下,为了实现串口的连接,我们要用计算机串口模拟软件模拟出两个232口,模拟出的这两个232口是设计为连接着的。我们用VirtualSerialPortDriver这个软件(到网上去搜,很容易找到)。安装好后打开,界面如下:
26
f在上图里可以看出我的机器有一个物理口COM1,现在已经模拟出了两个口COM2和COM3,而且他们是一组是连接着的。我们在proteus中的compim默认是连到com1的,在我们这边改成com2,然后在串口调试软件中测试com3,如下两个图
36
f46
f现在硬件连接已经到位,下面就是软件了:通过串口以波特率为9600的速度发送00H,程序如下:ORG0000HLJMPSTARTORG0030HSTARTSETBEASETBESSETBET1CLRSM0串行口工作于方式1:sm00sm11SETBSM1MOVPCON00H波特率不加倍MOVTMOD20HT1定时器方式2MOVTL1253MOVTH1253
56
fSETBTR1MOVA00HLOOPMOVSBUFAJNBTI等待发送完CLRTI清除中断标志LJMPLOOP循环END结果如下:
说明一下:发送00H,收到FFH是因为电平转换电路MAX232对数据进行了取反。
66
fr
好听全球资料 返回顶部