串行口的模拟仿真
- 格式:doc
- 大小:63.00 KB
- 文档页数:2
使用Keil软件模拟调试单片机串行口单片机串行口是单片机中很常见的接口之一,常用于与外界通讯,如与PC机通讯,接收或发送数据等。
Keil软件可以帮助我们模拟及调试单片机串行口,下面是详细介绍。
一、Keil软件简介Keil是一款强大的单片机编程软件,具有模拟器和仿真器。
其可支持多种嵌入式系统和多种编译器。
同时Keil具有标准C 编译器,专门用于单片机编程,而且具有与某些模拟器和编译器的集成,可提供完整的嵌入式开发环境。
二、使用Keil软件模拟1. 连接软件与硬件在开始模拟之前,需要将单片机与电脑通过串口连接好。
打开“Options for Target”对话框,选择“Debug”选项卡,选择正确的COM 端口,设置存根速度,完成调试设置。
2. 添加串行口文件在Keil软件中打开设计文件,键入“#include <reg52.h>”来添加注册头文件,其中包含了需要使用串口的相关寄存器位。
利用如下代码,可以对串行口的各项参数进行设置,例如波特率、校验位等等。
void init(){SCON = 0X50; //使串口工作在方式1,即8位数据,可变波特率TMOD |= 0X20; //TMOD的高4位设为0010,使Timer1工作在方式2TH1 = 0XF3; //波特率设为2400bpsTL1 = 0XF3;TR1 = 1; //启动Timer1ES = 1; //开启串口中断EA = 1; //打开总中断}3. 编写数据收发代码在调用串口的过程中,我们往往需要使用到接收和发送两个函数。
在接收方面,我们需要设置好接收中断模式以及缓冲区的异步处理。
编写简单的数据接收收发代码如下:void send_data(unsigned char dat){SBUF = sdat; //将数据传输到SBUF当中while(!TI); //等待发送完成TI = 0; //完成发送}unsigned char receive_data(){while(!RI); //等待接收完成RI = 0; // 完成接收return SBUF; // 返回接收缓冲区}4. 最后进行模拟完成串行口配置和数据处理之后,就可以开始模拟调试了。
—科教导刊(电子版)·2018年第17期/6月(中)—269STM32微控制器虚拟串口通信实现与仿真熊军洲(重庆电子工程职业学院电子与物联网学院重庆401331)摘要针对STM32微控制器串口通信,提出了一种虚拟串口通信仿真方法,采用虚拟串口软件、串口调试助手及Keil 软件相结合的方式对串口的发送和接收进行仿真。
结果表明,该方法在不需要硬件的前提下STM32微控制器串口能依靠软件仿真正常地发送和接收数据,验证串口正常工作。
关键词STM32串口虚拟串口软件串口调试助手Keil中图分类号:TP335文献标识码:A 1实现原理与仿真设置该方法不需要硬件开发板和仿真器,也不关注计算机是否有串口,而是利用虚拟串口软件(Virtual Serial Port Driver ,VSPD )创建虚拟的串行通信接口,因此计算机上需要安装VSPD 软件、串口调试助手和Keil uVision5软件。
VSPD 成对地创建虚拟串口,这些虚拟的串口与真实的物理串口在使用上完全一致,通过虚拟互连将创建的成对串口相互连在一起,相当于使用数据线连接了两个串口,从而可以实现发送和接收数据的仿真。
新建虚拟串口的数量是不受限制的,因此可以方便地扩展串口的数量。
具体的仿真设置如下:1.1打开VSPD 软件,创建虚拟串口图1:虚拟串口的创建打开软件后,在出现的界面上manage ports 选择两个串口号然后点击Add pair ,这时界面左侧的Serial ports explorer 部分的Virtual ports 下显示两个虚拟串口COM1和COM2。
这两个串口即为创建完的串口,如果需要继续增加串口,只需在manage ports 下继续选择串口号然后点击Add pair 即可。
将虚拟串口COM1和COM2与STM32微控制器中的一个USART 绑定,即可实现USART 的仿真调试。
1.2打开Keil uVision5软件,绑定串口将编写的串口程序编译链接生成可执行文件后,在Dubug 模式下进行调试仿真。
《嵌入式系统原理与实验》实验指导实验三调度器设计基础一、实验目的和要求1.熟练使用Keil C51 IDE集成开发环境,熟练使用Proteus软件。
2.掌握Keil与Proteus的联调技巧。
3.掌握串行通信在单片机系统中的使用。
4.掌握调度器设计的基础知识:函数指针。
二、实验设备1.PC机一套2.Keil C51开发系统一套3.Proteus 仿真系统一套三、实验容1.甲机通过串口控制乙机LED闪烁(1)要求a.甲单片机的K1按键可通过串口分别控制乙单片机的LED1闪烁,LED2闪烁,LED1和LED2同时闪烁,关闭所有的LED。
b.两片8051的串口都工作在模式1,甲机对乙机完成以下4项控制。
i.甲机发送“A”,控制乙机LED1闪烁。
ii.甲机发送“B”,控制乙机LED2闪烁。
iii.甲机发送“C”,控制乙机LED1,LED2闪烁。
iv.甲机发送“C”,控制乙机LED1,LED2停止闪烁。
c.甲机负责发送和停止控制命令,乙机负责接收控制命令并完成控制LED的动作。
两机的程序要分别编写。
d.两个单片机都工作在串口模式1下,程序要先进行初始化,具体步骤如下:i.设置串口模式(SCON)ii.设置定时器1的工作模式(TMOD)iii.计算定时器1的初值iv.启动定时器v.如果串口工作在中断方式,还必须设置IE和ES,并编写中断服务程序。
(2)电路原理图Figure 1 甲机通过串口控制乙机LED闪烁的原理图(3)程序设计提示a.模式1下波特率由定时器控制,波特率计算公式参考:b.可以不用使用中断方式,使用查询方式实现发送与接收,通过查询TI和RI标志位完成。
2.单片机与PC串口通讯及函数指针的使用(1)要求:a.编写用单片机求取整数平方的函数。
b.单片机把计算结果向PC机发送字符串。
c.PC机接收计算结果并显示出来。
d.可以调用Keil C51 stdio.h 中的printf来实现字符串的发送。
串行口数据传输的仿真和硬件实现实验1.串行口数据传输的仿真实验(1)设计电路图:使用Proteus打开一个新的项目,然后在电路图中添加一个微控制器(如8051)和其他相应的电路元件,以及一个串口调试助手(如Tera Term)。
确保电路图中的元件连接正确。
(2)配置串行口:在Proteus的工具栏中选择"Settings",然后选择"Peripherals",在弹出的对话框中选择串行口,并进行相应的配置,如波特率、数据位、停止位等。
(3)编写程序:在Proteus的工具栏中选择"Source Code",然后在弹出的对话框中编写相应的程序,程序中应包含串行口数据的发送和接收操作。
(4)运行仿真:保存并运行程序后,点击Proteus的工具栏中的"Play"按钮,程序将开始执行。
同时,打开串口调试助手,可以观察到串行口数据的传输情况。
通过以上步骤,可以完成串行口数据传输的仿真实验。
可以根据需要,修改程序和仿真参数,以实现不同的功能和验证不同的传输场景。
(1)准备硬件:准备一个Arduino开发板和一个串口调试助手(如Tera Term),并将它们连接在一起。
可以根据需要,添加其他的电路元件。
(2)编写程序:使用Arduino IDE编写相应的程序,程序中应包含串行口数据的发送和接收操作。
根据具体的应用场景,可以添加其他的功能。
(3)上传程序:将编写好的程序上传到Arduino开发板上,确保程序正确运行。
可以通过串口调试助手观察串行口数据的传输情况。
(4)进行实验:根据需求调整程序和硬件连接,进行实验并收集数据。
可以根据需要,进行数据分析和结果展示。
通过以上步骤,可以完成串行口数据传输的硬件实验。
实验过程中,可以根据需要,添加其他的电路元件和外部设备,来实现更复杂的功能和场景。
总之,串行口数据传输的仿真和硬件实现实验是学习和研究串行口数据传输的重要手段。
单片机与PC通信-(proteus 与虚拟串口驱动软件以及串口调试助手的仿真)实验:单片机与PC通信(proteus与虚拟串口驱动软件以及串口调试助手的仿真)实现内容:设置单片机串行口为工作方式一,波特率为9600。
PC从串口发送字符1、2、3或4到单片机串行口,单片机接收到该字符后,首先在P2 口显示字符,然后根据字符不同返回不同字符串,具体要求如下表:表:单片机与PC通信内容一、proteus仿真图:(此proteUS 仿真图可 免费下载, 下载网址:)1、图1.12、注意:(1)51单片机属性的时钟频率(clock frequency )必为11.0592mhz , 否则无法仿真。
请按下图设置AT89SC52PJXJ/M.ID R9.1/&C1 P92/AC2 F*1 V*ti3 F-J 對 Mil PJ.5/WLI5 r.-j--p. Rjjr«i7 P2CU^ 就.sg P2JA1Q 咱•佃H E7SJA1J F2.E1A14 F3皿旳pi.omB F3?JMT0~RZM S T TF5TFlEHI卩卫 Pl 陀曲丽■图1.23、在仿真图中P1即(元件名称:COMPIN模块为集成电平转换的串行通信接口(如下图)(1)图1.3(2)设置参数如下图1.44、虚拟串口驱动设置 在右侧选择端口一: “COM ”端口二:“COM4,然后按“添加端口” ,此时左侧的Virtual ports 下出现:工 Virtual portsS <2 CQM3 [960Q'N^-l]* COM4 [96OO-N-E-11图1.5表示添加了 COM3 COM4^对虚拟串行口,且 已连接,故我们把单片机和PC 选择COM 和 COM4 (如图1.4中的physical port 选项:COM4图 中:串口号COM )。
接着再在右侧选择 端口一:“COM ”端口二:“COM2则为下图,劃E 雷口驱訟6.9 by 耽III 汉化Manage port 占 Port access list 匚 u stem pin outMPD 肓餉魏幢任何你想使用的端口号的虛拟端口 .所以你可以不 受端口吕;3躯的限制1旦呈诒诵■呆I'」芒腔垮支持这些端口号p no port selected no port 眸血“cf使用精确的遁特率模报 综路中斷重新皈夏连接所有虎拟端口捋质全部刪像请 确认所有端口业时都处于关闭 状态。
实验6 单片机与PC机间的串行通信一、实验目的1、掌握电平转换器件RS-232的使用方法;2、掌握Proteus VSM虚拟终端(VITUAL TERMINAL)的使用;3、掌握单片机与PC机间的串行通信软硬件设计方法。
二、实验内容实现利用虚拟终端仿真单片机与PC机间的串行通信。
PC机先发送从键盘输入的数据,单片机接收后回发给PC机。
单片机同时将收到的30~39H间的数据转换成0~9的数字显示,其他字符的数据直接显示为其ASCII码。
单片机和PC机进行通信时,要求使用的波特率、传送的位数等相同。
要能够进行数据传送也必须首先测试双方是否可以可靠通信。
可在PC机和单片机上各编制非常短小的程序,具体可分成PC机串行口发送接收程序、单片机串行口发送程序和单片机串行口发送接收程序。
这三个程序能运行通过,即可证明串行口工作正常。
PC机串行口发送接收程序设置串行口为波特率9600、8位数据、1位停止位、无奇偶校验的简单设置。
从键盘接收的字符可从串行口发送出去,从串行口接收的字符在屏幕上显示。
通过让串行口发送线和接收线短接可测试微机串行口,通过让串行口和单片机系统相接,使用此程序可进一步测试单片机的串行通信状况。
具体程序用BASIC编制,简单易懂。
直接输入即可运行。
程序RS232.三、实验电路原理图图7-1 单片机与PC机间电路原理图四、实验步骤1、在PROTEUS中画好电路原理图。
2、串口模型属性设置串口模型属性设置为:波特率―4800;数据位―8;奇偶校验―无;停止位-1,如图7-2所示。
图7-2 串口模型属性设置3、虚拟终端属性设置PCT代表计算机发送数据,PCR用来监视PC接收到的数据,它们的属性设置完全一样,如图7-3所示。
SCMT和SCMR分别是单片机的数据发送和接收终端,用来监视单片机发送和接收的数据,它们的属性设置也完全一样,如图7-4所示。
单片机和PC机双方的波特率、数据位、停止位和检验位等要确保和串口模型的设置一样,并且同单片机程序中串口的设置一致。
51单片机与PC机串口通信的仿真与实现作者:李健来源:《电脑知识与技术》2018年第32期摘要:介绍了利用几种常见软件实现的51单片机与PC机串口通信的仿真过程,可以在单片机课程的理论教学中加以应用,具有效率高、成本低等优点,有助于教师的教学和学生对知识的掌握和应用。
关键词:51单片机;PC机;串口通信;仿真中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)32-0038-02在实际应用中,单片机与PC机间的通信非常普遍[1]。
这时单片机主要完成现场数据采集和设备监控[2],PC机接收单片机发来的数据进行分析、处理,并对结果再次发送单片机进行现场控制等。
笔者在单片机课程的理论教学中,由于课堂上受到条件的约束,采用了纯软件的方法对单片机串口通信进行仿真和演示,便于实现和让学生理解。
下面通过一个实例来介绍51单片机与PC机之间串口通信的仿真与实现过程。
1 所需软件使用到的软件有:VSPD、Proteus、Keil和串口助手[3]。
VSPD是一个虚拟串口小软件,可以虚拟出一对串行接口用于仿真;Proteus是一款流行的单片机仿真软件,用于建立串口通信仿真电路;Keil是用于编写单片机程序的软件;串口助手是用于上位机即PC机的软件,用来向单片机发送数据,或者接收单片机发送来的数据并进行显示。
2 设计与仿真过程预期实现的功能为:PC机通过串口助手向单片机发送一个字节数据,单片机接收到后将数据的二进制形式通过八个数码管的亮灭显示出来,接收的“1”对应的灯亮,接收的“0”对应的灯灭。
同时单片机将接收的数据发回给PC机,PC机将数据在串口助手中再显示出来。
2.1 利用Proteus设计仿真电路如图1所示,在Proteus软件中选用AT89C51单片机、COMPIM、电阻和发光二极管组成仿真电路。
COMPIM在仿真中相当于PC机上配置的RS232标准串行接口,为D型九针插座[4]。
在实际中,单片机和PC机之间需要通过MAX232芯片进行电平转换才能连接,但在仿真图中可以直接将两者的RXD(接收数据)和TXD(发送数据)连接起来进行串行通信。
51单片机的串口双机通讯一、什么是串口串口是串行发送数据的接口,是相对于并口来说的,是一个广泛的定义。
本期我们说的串口指的是指UART或是RS232。
二、什么是波特率波特率是指串行端口每秒内可以传输的波特位数。
这里所指的波特率,如标准9600不是每秒种可以传送9600个字节,而是指每秒可以传送9600个二进位。
一个字节需要8个二进位,如用串口模式1来传输,那么加上起始位和停止位,每个数据字节就要占用10个二进位。
9600bps用模式1传输时,每秒传输的字节数是9600÷10=960个字节,发送一个字节大概需要1ms时间。
三、51单片机串口相关寄存器1、SCON串口控制寄存器(1)SM0和SM1:方式选择寄存器SM0 SM1 工作方式功能波特率0 0 方式0 8位同步移位寄存器晶振频率/ 120 1 方式1 10位UART 可变1 0 方式2 11位UART 晶振频率/32或晶振频率/64 1 1 方式3 11位UART 可变多机通信是工作在方式2和方式3的,所以SM2主要用于方式2和方式3,多级通信时,SM2=1,当SM2=1时,只有当接收到的数据帧第9位(RB8)为1时,单片机才把前八位数据放入自己的SBUF中,否则,将丢弃数据帧。
当SM2=0时,不论RB8的值是什么,都会把串口收到的数据放到SBUF中。
(3)REN:允许接收位REN用于控制是否允许接收数据,REN=1时,允许接收数据,REN=0时,拒绝接收数据。
(4)TB8:要发送的第9位数据位在方式2和方式3中,TB8是要作为数据帧第9位被发送出去的,在多机通信中,可用于判断当前数据帧的数据是地址还是数据,TB8=0为数据,TB8=1为地址。
(5)RB8:接收到的第9位数据位当单片机已经接收一帧数据帧时,会把数据帧中的第9位放到RB8中。
方式0不使用RB8,在方式2和方式3中,RB8为接收到的数据帧的第9位数据位。
(6)TI:发送中断标志位方式0中,不用管他。
在单片机系统中,串口(UART,通用异步收发接口)是一个非常重要的构成部分。
凡是使用单片机串口通过RS232/ RS485电平转换芯片与上位机毗连,以进行上位机与下位机的数值互换、参量设置、构成收集以及各种外部设备的毗连等。
RS232/ RS485串行接口总线具备成本低、简略可靠、容易使用等特点,加上其历史悠久,所以目前应用仍然非常广泛;特别对于数值量不是很大的场所,串口通信仍然是很好的选择,有着广阔的使用远景。
在单片机编程中,串口占了很重要的地位。
传统方式串口程序的调试,往往是哄骗专用的单片机硬件仿真器。
在编写好程序后,哄骗仿真器来设置断点,观察变量和程序的流程,逐步对程序进行调试,批改错误。
使用硬件仿真器的确是很有效的方法,但是也有一些缺点:很多仿真器不克不及做到完全硬件仿真,因而会造成仿真时正常,而实际运行时呈现错误的环境;也有仿真不克不及通过,但是实际运行正常的环境。
对于一些较新的芯片或者是外貌贴装的芯片,要么没有合适的仿真器或仿真头;要么就是硬件仿真器非常昂贵,且不易买到。
有时候由于设备内部结构空间的限制,仿真头不利便接入。
有的仿真器属于简略的在线仿真型,仿真时有很多限制。
例如速度不高,及时性或不改变性别不好,对断点有限制等,造成仿真起来不太利便。
1 调试前的准备工作底下先容一种哄骗Keil的软件仿真功能来实现51单片机串口调试用户程序的方法。
使用这种方法,无需任何硬件仿真器,甚至都不需要用户电路板。
所需的只是:①硬件。
1台普通计算机(需要带有2个标准串口)和1根串口线(两头都是母头,连线瓜葛如图1所示)。
②串口软件可所以自己编写的专用调试或上下位机通信软件,也可所以通用的串口软件( 如串口助手、串口调试等) ,首要用来收发数值。
如果没有合适的串口调试软件,则可使用作者编写的一个免费的串口小工具TurboCom。
除了与其它软件一样的数值收发功能外,它还有定时轮流发送自界说数值帧和自动应答(接收到指定命据帧后,自动返回相应的数值帧)这两个很有用的功能,特别适合于老化测试。
POT 滑线变阻器SW-SPST ? 单刀单掷开关]\AMMETER-MILLI mA 安培计AND 与门BATTERY 电池/ 电池组BUS 总线CAP 电容CAPACITOR 电容器CLOCK 时钟信号源STAL 晶振D-FLIPFLOP D 触发器FUSE 保险丝GROUND 地LAMP 灯LED-RED 红色发光二极管可显示2 行16 列英文字符,有8 位数据总线D0-D7,RS,R/W,LM016L 2 行16 列液晶EN 三个控制端口(共14 线),工作电压为5V。
没背光,和常用的1602B 功能和引脚一样(除了调背光的二个线脚)LOGIC ANALYSER 逻辑分析器LOGICPROBE 逻辑探针LOGICPROBE[BIG] 逻辑探针(大)用来显示连接位置的逻辑状态LOGICSTATE 逻辑状态用鼠标点击,可改变该方框连接位置的逻辑状态LOGICTOGGLE 逻辑触发MASTERSWITCH 按钮手动闭合,立即自动打开MOTOR 马达OR 或门POT-LIN 三引线可变电阻器POWER 电源RES 电阻SWITCH 按钮手动按一下一个状态SWITCH-SPDT 二选通一按钮VOLTMETER 伏特计VOLTMETER-MILLI mV 伏特计VTERM 串行口终端Electromechanical 电机AND 与门电压表voltmeter电流表ammeterANTENNA 天线BATTERY 直流电源BELL 铃,钟BVC 同轴电缆接插件整流桥(二极管)BRIDEG 2 整流桥(集成块)BUFFER 缓冲器BUZZER 蜂鸣器CAP 电容CAPACITOR 电容CAPACITOR POL 有极性电容CAPVAR 可调电容CIRCUIT BREAKER 熔断丝COAX 同轴电缆CON 插口CRYSTAL 晶体整荡器DB 并行插口DIODE 二极管DIODE SCHOTTKY 稳压二极管DIODE VARACTOR 变容二极管DPY_3-SEG 3段LEDDPY_7-SEG 7段LEDDPY_7-SEG_DP 7段LED(带小数点) ELECTRO 电解电容FUSE 熔断器INDUCTOR 电感INDUCTOR IRON 带铁芯电感INDUCTOR3 可调电感JFET N N沟道场效应管JFET P P沟道场效应管LAMP 灯泡LAMP NEDN 起辉器LED 发光二极管METER 仪表MICROPHONE 麦克风MOSFET MOS管MOTOR AC 交流电机MOTOR SERVO 伺服电机NAND 与非门NOR 或非门NOT 非门NPN NPN三极管NPN-PHOTO 感光三极管OPAMP 运放OR 或门PHOTO 感光二极管PNP 三极管NPN DAR NPN三极管PNP DAR PNP三极管RESISTOR BRIDGE ? 桥式电阻RESPACK 排阻SCR 晶闸管PLUG ? 插头PLUG AC FEMALE 三相交流插头SOCKET ? 插座SOURCE CURRENT 电流源SOURCE VOLTAGE 电压源SPEAKER 扬声器SW ? 开关SW-DPDY ? 双刀双掷开关SW-PB 按钮THERMISTOR 电热调节器TRAN 变压器TRIAC ? 三端双向可控硅TRIODE ? 三极真空管VARISTOR 变阻器ZENER ? 齐纳二极管DPY_7-SEG_DP 数码管7seg 数码管SW-PB 开关7407 驱动门1N914 二极管74Ls00 与非门74LS04 非门74LS08 与门74LS390 TTL 双十进制计数器7SEG 4针BCD-LED 输出从0-9 对应于4根线的BCD码7SEG 3-8译码器电路BCD-7SEG转换电路ALTERNATOR 交流发电机AMMETER-MILLI mA安培计AND 与门BATTERY 电池/电池组BUS 总线CAP 电容CAPACITOR 电容器CLOCK 时钟信号源CRYSTAL 晶振D-FLIPFLOP D触发器FUSE 保险丝GROUND 地LAMP 灯LED-RED 红色发光二极管LM016L 2行16列液晶可显示2行16列英文字符,有8位数据总线D0-D7,RS,R/W,EN三个控制端口(共14线),工作电压为5V。
在SQ/Sigxp中仿真高速串行信号的方法随着现代通信系统带宽的迅速增加,作为系统内各模块间信息传输枢纽的背板的带宽也迅速增加,背板上的信号速率已达到Gbps。
典型的背板互联的拓扑结构主要有两种:总线结构(并行结构)和点到点结构(串行结构),如图示:图1 总线(并行)背板拓扑结构图2 点对点(串行)背板拓扑结构从图1和图2中可看出,不论何种结构,都包含四个部分:Buffer(包括Driver和Receiver)、互联(包括传输线和过孔)、接插件、匹配电路。
如要进行仿真分析,就必须分别对这四个部分建模分析。
本文针对高速串行背板结构,着重介绍如何在SQ/Sigxp中对互联、接插件进行建模分析,并介绍SQ/Sigxp 中的一些高速分析手段。
互联:1传输线:理想传输线等效模型如图示:图3 理想传输线等效模型从图中可看出,当信号沿传输线传输时,完成对每一段LC 电路的充放电。
此时有两个主要的参数来表征传输线的特性:特征阻抗Z0和信号传输速率V 。
特征阻抗:C L Z /0= 其中L 为单位长度电感,C 为单位长度电容。
信号传输速率: LC V 1= 其中L 为单位长度电感,C 为单位长度电容。
以上是理想传输线的等效电路模型,从等效电路上看,它是无损的,通常在频率不高,损耗不明显的情况下使用。
而当信号频率升高,传输线上的衰减就不可忽略。
此时,就需要考虑由导体串连等效电阻和介质并联等效电导引起的损耗,此时我们就需要使用有损传输线模型。
有损传输线等效模型如图:图4 有损传输线等效模型从图中可以看出,表征损耗的是等效串连电阻R 和等效并联电导G ,下面分别说明。
等效串连电阻R :直流电阻和趋肤效应引起的电阻。
直流电阻为导体本身的电阻,由导体的物理结构和导体的电阻率决定。
对于PCB 上常用的传输线结构带状线和微带线,其直流电阻近似计算公式为: wt R ρ10= 其中R 为单位长度电阻(ohm/inch ),ρ为导体体电阻率(ohm*meter ),w 为线宽(mils),t 为线厚(microns)。
基于Proteus的AT89C52双机通信仿真在一个Proteus工程中,添加两个AT89C52单片机,一个做主机,另一作从机。
现在要实现主机与从机之间的简单通信。
具体功能是:主机不停扫描矩阵键盘,如果有键被按下,则把相应按键的数字发送给从机,从机通过数码管显示它接受到的数据。
主机与从机之间的通信通过串行口实现。
构建Proteus仿真图时,如果感觉图纸不够大,放置元器件比较拥挤,可以通过System 选项 Set Sheet Side…选择A3图纸就合适了。
Proteus中的RS-232C标准接头COMPIM不需要连接MAX232,可以直接和单片机的RXD,TXD连接,因为COMPIM已经把MAX232集成在内部。
这里的串行通讯选择方式1,因为方式1的波特率与定时器T1的溢出率有关,所以可以通过设置定时器T1的初值来确定串行通信的波特率。
这里选择了波特率为9600,T1选择具有自动重装功能的方式2,那么TH1 和TL1 的初值通过计算得到0xfd。
具体的电路连接如下:主机电路:从机电路:要顺利实现双机通信重要的是要保持两机的波特率一致。
所以,下面的一些参数设置很重要。
1.利用虚拟串口软件Virtual Serial Port Driver,建立一对相连的虚拟串口。
如果没有安装这个软件可以网上下载安装。
这是实现仿真必须的。
这里的虚拟串口为COM1和COM4,下图可以看到两个端口是相连的。
2.设置主机RS-232接头P1的参数。
Physical port选择端口COM1,Physical Baud Rate选择9600,Virtual Baud Rate也选择9600。
其他参数默认,设置如下:3.设置从机RS-232接头P2的参数。
Physical port选择端口COM4,Physical Baud Rate选择9600,Virtual Baud Rate也选择9600。
其他参数默认,设置如下:4.晶振频率设置为11.0592MHz,它与上面设置波特率为9600是对应的。
串行口元器件仿真名
串口叫做串行接口,PC 机一般有两个串行口COM 1 和COM 2 。
串行口不同于并行口之处在于它的数据和控制信息是一位接一位地
传送出去的。
虽然这样速度会慢一些,但传送距离较并行口更长,因此若要进行较长距离的通信时,应使用串行口。
通常COM 1 使用的是9 针D 形连接器,也称之为RS-232接口,而COM 2 有的使用的是老式的DB25针连接器,不过已经很少使用。
串口形容一下就是一条车道,而并口就是有8个车道同一时刻能传送8位(一个位元组)数据。
但是并不是并口快,由于8位通道之间的互相干扰。
传输时速度就受到了限制。
而且当传输出错时,要同时重新传8个位的数据。
串口没有干扰,传输出错后重发一位就可以了。
10.4.6 串行口的模拟仿真
利用模拟仿真,可以模拟单片机同机发送和接收程序。
例10-7串口采用查询方式,把从片内RAM的30H单元开始的8个数据串行发送到片内RAM的40H开始的单元。
程序清单:
ORG 0000H
MOV SCON,#90H ;串口工作方式2,允许接收
MOV PCON,#00H ;SMOD=0
M0V R0,#30H ;源字符串首地址
MOV R1,#40H ;接收字符串首地址
MOV R2,#08H ;字符串长度
LOOP:MOV A,@R0 ;取数据
MOV SBUF,A ;发送
JNB TI,$ ;等待发送完一帧字符
CLR TI ;清发送标志位
INC R0 ;修改地址
JNB RI,$ ;等待接收完一帧字符
CLR RI ;清接收标志位
MOV A.SBUF ;接收字符
M0V @R1,A ;存数据
INC R1
DJNZ R2,LOOP ;传送8个数据
END
模拟仿真步骤如下:
①启动Medwin仿真软件,在编辑窗口中输入例10-7中的程序,单击“产生代码并装入”快捷键,编译/连接程序,打开菜单“外围部件→串行口”,把串口状态窗口调入屏幕,如图10-23 所示。
图10-23 串口模式
②打开菜单“查看→数据区Data”,调入数据区窗口,单击列数,选择存储器排列为8列,从30H单元开始,输入8个数据。
③打开菜单“窗口→纵向平铺窗口”,使寄存器窗口、数据窗口、程序窗口纵向平铺。
④按F8键单步运行程序,则程序运行在JNB TI,$处,等待一帧字符发送结束。
可人工设定发送结束标志,即在图10-23的中断标志复选框TI前画“√”,再按F8键,程序继续运行。
⑤程序运行在JNB RI,$处,等待接收一帧字符结束。
可人工设定接收结束标志,即在图10-23的中断标志复选框RI前画“√”,再按F8键,程序继续运行,则一帧字符装入40H开始单元。
⑥重复上述步骤,直至全部数据传送完。