当前位置: 首页 > 产品中心 > lcd显示屏-总成

用proteus和keil完成串口通讯仿真

发表时间: 2024-03-17 作者: lcd显示屏-总成
产品详情

  编写仿真程序之前,要安设VSPD,VSPD是虚拟串口东西,经过VSPD虚拟出两个串口用于通讯。你们能够经过搜

  VSPD安装好后,运转VSPD,并虚拟出两个串口COM1和COM2。详细进程如下:

  随VSPD安装包顺便的一般会有串口帮手程序,能够正常的运用串口帮手测验串口的数据发送和数据接纳。

  发动串口帮手翻开COM1口,别的再发动一个串口帮手,翻开COM2口。在翻开COM1的串口帮手发送窗口输入“abc”或“123”,单击发送按钮发送数据。调查翻开COM2串口的串口帮手窗口,发送的数据会出现在数据接纳窗口。

  51单片机串行口结构是一个可编程全双工的通讯接口,能一同进行数据的发送和接纳,它由两个独立的串行数据缓冲寄存器SBUF(一个发送缓冲寄存器,一个接纳缓冲寄存器)和发送操控、接纳操控器操控电路构成。

  51单片机经过SBUF对串行接纳或串行发送寄存器进行拜访,SBUF的地址是99H。SCON寄存器是串行口操控寄存器,它用来设定串行口的工作方法、接纳发送操控以及设置状况标志等。SCON寄存器的地址为98H,可进行位寻址,各位的界说如下表所示。

  SM0和SM1一起确认串行口的工作方法,SM0为0,SM1为1时,串行口工作方法为异步通讯口,这也是串口最常用的一种工作方法,TXD(P3.1)为数据发送引脚,RXD(P3.0)为数据接纳引脚。

  REN为答应串行口接纳位,REN=1:答应串行口接纳数据,REN=0:制止串行口接纳数据。

  在操作串行口之前,需求设置发生波特率的定时器T1、串行口操控和中止操控。

  定时器设置:确认T1的工作方法,核算T1的初值,装载TH1和TL1。设置串行口工作方法:SM0=0,SM1=1。答应串行口接纳数据:REN=1。RI为接纳中止标志位,当串行数据接纳完成后,向CPU宣布中止请求,在处理程序中,将该位清零,撤销此中止请求。TI为发送中止标志位,当串行口发送数据完毕后,向CPU宣布中止请求,在处理程序中,将该位清零,撤销此中止请求。

  在proteus仿真电子元器材库查找“COMPIM”,增加串口器材到电路模型元器材库,增加一个串口器材到电路模型,Physical port设置为COM1,并设置Physical Baud rate为9600。

  Physical Baud rate为波特率,波特率一般单位是bit/s,即每秒传输的二进制位数。

  试验电路很简单,器材P1为串口器材,串口器材的TXD引脚接单片机的TXD引脚,串口器材的RXD引脚接单片机的RXD引脚,串口器材的其它引脚能够悬空。

  函数init()用来设置单片机串行口工作方法、定时器、中止等操控项,TMOD=0x20设置定时器为计数器方法并设置初值,TR1=1发动T1定时器,SM0=0和 SM1=1设置串口工作方法为异步通讯方法,REN=1答应串行口接纳数据。

  main()函数使用while循环结构监测串行口,判别SCON寄存器的RI中止标志位是否为1,若为1,阐明串口已接纳到数据,数据存储在SBUF缓冲寄存器,RI中止标志位清零,SBUF赋值给temp变量,若RI中止标志位为0,将temp变量的值赋值给P1口。

  在proteus发动试验电路,发动虚拟串口和串口帮手,串口帮手设置为COM2,翻开COM2串口,挑选16进制发送,在发送窗口输入00,单击发送,试验电路的二极管点亮,再次发送ff可熄灭二极管。