KEIL中如何用虚拟串口调试串口程序
使用Keil软件模拟调试单片机串行口

使用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. 最后进行模拟完成串行口配置和数据处理之后,就可以开始模拟调试了。
关于Keil串口使用的一些要点

字号:大中小关于Keil串口使用的一些要点1.Keil的Peripherals下的Serial显示的对话框中,只是用来查看一些串口状态的,是不能用来修改的。
比如想模拟串口接收,在这里修改SBUF的值会不起作用。
读到的全是0.2.Keil的Serial #1,#2,#3是直接对单片机的。
按下对应的键,键码会发送到SBUF中去。
但这个值是无法观察到的。
只能通过mov a,sbuff的方式读出。
不过,虽然在Serial窗口可以设置Ascii模式或Hex模式,按下的键统一还是用Ascii的形式传到SBUF中去了。
具体见::/forum/read/1627783. 最完美的解决办法是将keil的串口绑定到PC的串口上去。
(先用Mode命令,再用Assign命令)1 ASSIGN命令将单片机的串口绑定到计算机的串口。
基本使用方式为:ASSIGN COMx < inreg > outreg其中: COMx代表计算机的串口,可以是COM1、COM2、COM3或COM4;而inreg和outreg代表单片机的串口。
对于只有一个串口的普通单片机,即SIN和SOUT;对于有两个或者多个串口的单片机,即SnIN和SnOUT(n=0,1,…即单片机的串口号)。
图1 串口连线示意图例如:ASSIGN COM1 < SIN > SOUT将计算机的串口1绑定到单片机的串口(针对只有一个串口的单片机)。
ASSIGN COM2 < SIN > SOUT将计算机的串口2绑定到单片机的串口0(针对有多个串口的单片机,注意串口号的位置)。
需要注意的是,参数的括号是不能省略的,而outreg则是没有括号的。
2 MODE命令设置被绑定计算机串口的参数。
基本使用方式为:MODE COMx baudrate, parity, databits, stopbits其中: COMx(x = 1,2,…)代表计算机的串口号;baudrate代表串口的波特率;parity代表校验方式;databits代表数据位长度;stopbits代表停止位长度。
Keil软件串口调试实用技巧

Keil软件的串口调试技巧[ 来源:| 更新日期:2007-6-4 22:47:08 | 评论0 条| 我要投稿]引言在单片机系统中,串口(UART,通用异步收发接口)是一个非常重要的组成部分。
通常使用单片机串口通过RS232/RS485电平转换芯片与上位机连接,以进行上位机与下位机的数据交换、参数设置、组成网络以及各种外部设备的连接等。
RS232/RS485串行接口总线具有成本低、简单可靠、容易使用等特点,加上其历史悠久,所以目前应用仍然非常广泛;特别对于数据量不是很大的场合,串口通信仍然是很好的选择,有着广阔的使用前景。
在单片机编程中,串口占了很重要的地位。
传统方式串口程序的调试,往往是利用专用的单片机硬件仿真器。
在编写好程序后,利用仿真器来设置断点,观察变量和程序的流程,逐步对程序进行调试,修正错误。
使用硬件仿真器的确是很有效的方法,但是也有一些缺点:◆很多仿真器不能做到完全硬件仿真,因而会造成仿真时正常,而实际运行时出现错误的情况;也有仿真不能通过,但是实际运行正常的情况。
◆对于一些较新的芯片或者是表面贴装的芯片,要么没有合适的仿真器或仿真头;要么就是硬件仿真器非常昂贵,且不容易买到。
◆有时由于设备内部结构空间的限制,仿真头不方便接入。
◆有的仿真器属于简单的在线仿真型,仿真时有很多限制。
例如速度不高,实时性或稳定性不好,对断点有限制等,造成仿真起来不太方便。
1 调试前的准备工作下面介绍一种利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法。
使用这种方法,无需任何硬件仿真器,甚至都不需要用户电路板。
所需的只是:①硬件。
1台普通计算机(需要带有2个标准串口)和1根串口线(两头都是母头,连线关系如图1所示)。
②串口软件可以是自己编写的专用调试或上下位机通信软件,也可以是通用的串口软件(如串口助手、串口调试等),主要用来收发数据。
如果没有合适的串口调试软件,则可使用笔者编写的一个免费的串口小工具TurboCom。
KeilC简明教程2_debug的使用

KeilC简明教程2_debug的使用KeilC的debug使用这部分将使用KeilC自带的debug调试串口,显示串口发送的数据。
首先,建立一个KEILC工程(上一节已经说明),输入如下代码#include#includeunsigned char key_s, key_v, tmp;char code str[] = "this is a test of serial \n\r";void send_int(void);void send_str();void delayms(unsigned char ms);void send_char(unsigned char txd);main(){send_int();TR1 = 1; // 启动定时器1while(1){send_str(); // 传送字串}}void send_int(void){ TMOD = 0x20; // 定时器1工作于8位自动重载模式, 用于产生波特率TH1 = 0xF3; // 波特率2400TL1 = 0xF3;SCON = 0x50; // 设定串行口工作方式PCON&= 0xef; // 波特率不倍增IE = 0x0; // 禁止任何中断}void send_str()// 传送字串{unsigned char i = 0;while(str[i] != '\0'){SBUF = str[i];while(!TI); // 等特数据传送TI = 0; // 清除数据传送标志i++; // 下一个字符}}点击debug按钮,进入调试界面,如下图所示调试界面选择点击串口选择下拉菜单,选择第一个调试界面操作如下图所示。
可以看到串口显示界面出现了你发送的数据“this is a test of serial”至此,KEILC的串口调试方法已经结束。
读者可以根据自己的需要,在程序中使用串口来查看程序运行情况。
keil ARM与虚拟串口联调设置及解决办法

Keil ARM 与虚拟串口联调设置第一步:创建虚拟串口使用工具:Configure Virtual Serial Port Driver记住自己创建的两个虚拟串口第二步:创建debug.ini 命令执行文件Mode COM2 9600,0,8,1assign com2 <S2IN> S2OUT注意:1:串口选择与虚拟串口相同2:串口工作波特率,校验方式,数据长度,停止位assign com2 <输入寄存器> 输出寄存器串口工作方式对应9600,0,8,19600,1,8,19600,2,8,1第三步:环境设置第四步:全部编译进入调试:开启仿真,打开串口调试助手。
虚拟串口驱动显示工作方式其他:命令行也可以直接写命令在命令栏中,操作如下:点击进入仿真模式,在命令行将debug.ini命令输入错误解决办法:*** error 30, line 2: undefined name of virtual register问题描述:虚拟寄存器没有定义问题原因:命令assign com2 <S2IN> S2OUT中<S2IN> S2OUT是没有定义的。
可以通过dir vtreg命令查看可以寄存器对将对应串口寄存器写入对应命令中*** error 65: access violation at 0x40021000 : no 'read' permission驱动没有调用正确*** error 127, line 2: Com channel not opened, use MODE command first 命令:Mode COM4 9600,0,8,1assign com4 <S2IN> S2OUT中的串口选择错误,要确保与虚拟串口一致。
keilc51串口仿真

Keil 的串口仿真————怎么用?Keil 的串口仿真————怎么用?C51软件仿真有个串口仿真,试了一下不太成功。
在调试窗口中的SBUF处输入值0x68,但仿真时就是进不了'*'号那行.观察rec_buf的变化,发现其值没有改变.不知为何?void com_rcv(void) interrupt 4 using 2{if ( RI != 1 ){return;}RI = 0;rec_buf = SBUF;if ( flag == 0 ) //flag初始化为0,仿真时本句可以进入{if ( rec_buf == 0x68 ){check_sum = rec_buf;//****************}else{return;}}}2楼:>>参与讨论作者:computer00于2006-8-2 9:37:00 发布:keil有直接输入串口数据的地方就是工具栏那本字典样的东东.你直接在里面用键盘敲 h 键就可以了(它的ASCII码就是0x68).你也可以把数据发到串口,然后它就会在这显示了。
3楼:>>参与讨论作者:ye83241905于2006-8-2 9:54:00 发布:楼上说的也是调试工具?麻烦说得详细些.具体是那个工具,这个也可以调试串口?4楼:>>参与讨论作者:computer00于2006-8-2 10:19:00 发布:我说的是keil自带的.参考: /more.asp?NAME=computer00&id=95015楼:>>参与讨论作者:ye83241905于2006-8-2 11:30:00 发布:serial windows是串口调试工具吧?谢谢,serial windows这个可以输入串口数据.只是还想问问Peripherals--serial这个窗口如何用呢,通过它可以进入中断,就是数据不能输入,不知什么地方有问题?6楼:>>参与讨论作者:开发过程于2006-8-2 14:58:00 发布:呵那本字典?7楼:>>参与讨论作者:computer00于2006-8-2 15:35:00 发布:Peripherals--serial那个只能看到你程序写到SBUF的东东而你往里面写个值,并不会导致串口接收到数据.serial windows,你可以按住alt键,然后再用小键盘直接输入十进制数.例如你上面的0x68,你只要按住alt键,再用小键盘输入104,放开alt,就OK了~~~~~~~~~~8楼:>>参与讨论作者:ye83241905于2006-8-2 16:22:00 发布:原来只是一个观察窗口?谢谢,楼上.原来它只用作观察SBUF寄存器的状态.不过若在窗口中改变SBUF的值,在MEMORY Windows中观察发现相应地址的状态也改变,就是不作为串口收到的数据用,有些容易迷惑人.9楼:>>参与讨论作者:rlstudio于2006-8-4 22:38:00 发布:能不能仿真与PC的通信啊?好像有个仿真器的吧?不知怎样用,或者与一些串口调试助手之类的结合使用。
KEIL开发环境与虚拟串口屏绑定调试V1.0

Keil开发环境与虚拟串口屏绑定调试版本:V1.0Keil开发环境与虚拟串口屏绑定调试1.1 概述在实际调试过程中,若我们手头上没有硬件实物或每次修改工程图片又得重新下载而浪费时间,此时我们就可以直接将Keil开发环境与虚拟串口屏连接起来。
用户使用Keil程序Debug仿真时,虚拟串口屏显示也会跟着一起变化。
由于虚拟串口屏跟真实的串口屏功能一模一样,这样的调试模式无异给开发者带了莫大的方便,如图0.1所示。
图0.1 Keil开发环境与虚拟串口屏绑定调试1.2 操作流程任何初学者,只要按照以下流程操作,即可快速完成Keil与虚拟串口屏的绑定。
1.2.1 软件工具准备1.虚拟串口VSPXD软件,在我司官网进行下载。
2.VisualTFT软件。
3.Keil开发软件。
1.2.2 安装虚拟串口VSPXD软件首先,我们必须现在电脑上安装1对虚拟串口,通过这对虚拟串口连接Keil和虚拟串口屏。
若您电脑上已经安装了虚拟串口VSPXD,此章节可以跳过。
安装步骤如下:1.解压“虚拟串口VSPXD软件”,运行可执行文件“VSPDXP.exe”,如图0.2所示。
图0.2 VSPXD安装程序2.选择默认安装路径,点击下一步,直至安装完成,如图0.3所示。
打开桌面虚拟串口软件“VSPD XP 5”,如图0.5所示。
图0.5 打开VSPD软件physical ports目录下表示当前电脑物理硬件串口,物理硬件串口无法与虚拟串口通道进行匹配。
建立并绑定1对虚拟串口。
如图0.6所示,在First菜单中选择COM3,Second 选择COM4,然后点击Add pair,此时Virtual ports目录下会出现这1对被绑定的串口,如图0.6图0.7所示。
图0.7 虚拟串口对生成如何删除虚拟串口通道。
若需要删除虚拟串口,只需选中对应虚拟串口,然后点击Delete pari,即可删除,如所示。
这一步暂时不需要操作。
图0.8 删除虚拟串口4.查看虚拟串口。
Keil软件仿真的串口调试技巧

Keil软件仿真的串口调试技巧
邵子扬;黄保明;刘海涛
【期刊名称】《单片机与嵌入式系统应用》
【年(卷),期】2006(000)007
【摘要】@@ 引言rn在单片机系统中,串口(UART,通用异步收发接口)是一个非常重要的组成部分.通常使用单片机串口通过RS232/RS485电平转换芯片与上位机连接,以进行上位机与下位机的数据交换、参数设置、组成网络以及各种外部设备的连接等.RS232/RS485串行接口总线具有成本低、简单可靠、容易使用等特点,加上其历史悠久,所以目前应用仍然非常广泛;特别对于数据量不是很大的场合,串口通信仍然是很好的选择,有着广阔的使用前景.
【总页数】3页(P76-78)
【作者】邵子扬;黄保明;刘海涛
【作者单位】武汉邮电科学院虹信公司;武汉邮电科学院虹信公司;武汉邮电科学院虹信公司
【正文语种】中文
【中图分类】TP3
【相关文献】
1.单片机Keil软件仿真与调试技巧 [J], 鲁杰爽
2.Keil与VSPD软件仿真的智能仪表串口通信调试方法 [J], 阳世荣
3.Proteus软件仿真与Keil的单片机系统设计 [J], 张军;吴教育;朱海兵
4.浅谈Keil C的常用技巧 [J], 刘佩;苗文斌;李森
5.基于Keil与VSPD软件仿真的串口通信调试技术 [J], 阳世荣
因版权原因,仅展示原文概要,查看原文内容请购买。
实验1使用Keil输入和调试程序

实验一使用Keil输入和调试程序(一)实验目的:通过实验掌握Keil C51集成开发环境输入程序和调试程序的方法。
(二)实验仪器:计算机一台STC12学习板一套STC单片机仿真器一套USB连接电缆一根(三)实验内容及步骤:Keil C51 IDE又叫Keil集成开发环境或Keil C51μVision3。
实验要求使用Keil集成开发环境完成实验程序的输入、调试。
Keil是以工程项目的方法管理文件。
所有的文件(源程序文件、头文件和各种技术文档)都是放在工程项目里的统一管理。
下面通过一个实验程序学习使用Keil IDE建立应用程序和调试程序的步骤:✓新建一个工程项目。
✓为工程项目选择目标器件。
✓建立源程序文件,输入程序代码并保存。
将源程序文件添加到工程项目里。
✓为工程项目设置软件、硬件的调试环境。
✓输入、调试和运行实验程序。
要创建的工程项目是:设计一个程序,使学习板上的LED1灯闪亮,电路图如图2-1所示(在第14页)。
该实验工程项目的建立过程如下:1、启动Keil C51的IDE开发环境并建立一个工程项目双击计算机桌面上的Keil C51 IDE图标即可启动Keil C51 IDE开发环境。
如果以前已经建立了工程项目,Keil51 IDE启动后会直接显示原来打开的工程项目。
也可以打开原来已经存在的工程项目。
打开已经存在的项目方法是,从“Project”菜单中选择“Open Project”菜单项,从弹出的对话框中选择要打开的项目。
新建项目文件时,从“Project”菜单中选择“New Project”菜单项,将打开“Create New Project”对话框。
如图1-1所示。
在“Create New Project”对话框中做以下的工作:✧为工程项目选择一个存放路径,在此选择STC51文件夹(若计算机中没有STC51文件夹,则需要建立它)。
✧在文件名输入框里输入,这是为实验工程项目取的工程项目文件名(扩展名是.uv2)。
介绍利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法

介绍利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法在单片机系统中,串口(UART,通用异步收发接口)是一个非常重要的组成部分。
通常使用单片机串口通过RS232/RS485电平转换芯片与上位机连接,以进行上位机与下位机的数据交换、参数设置、组成网络以及各种外部设备的连接等。
RS232/RS485串行接口总线具有成本低、简单可靠、容易使用等特点,加上其历史悠久,所以目前应用仍然非常广泛;特别对于数据量不是很大的场合,串口通信仍然是很好的选择,有着广阔的使用前景。
在单片机编程中,串口占了很重要的地位。
传统方式串口程序的调试,往往是利用专用的单片机硬件仿真器。
在编写好程序后,利用仿真器来设置断点,观察变量和程序的流程,逐步对程序进行调试,修正错误。
使用硬件仿真器的确是很有效的方法,但是也有一些缺点:很多仿真器不能做到完全硬件仿真,因而会造成仿真时正常,而实际运行时出现错误的情况;也有仿真不能通过,但是实际运行正常的情况。
对于一些较新的芯片或者是表面贴装的芯片,要么没有合适的仿真器或仿真头;要么就是硬件仿真器非常昂贵,且不容易买到。
有时由于设备内部结构空间的限制,仿真头不方便接入。
有的仿真器属于简单的在线仿真型,仿真时有很多限制。
例如速度不高,实时性或稳定性不好,对断点有限制等,造成仿真起来不太方便。
1、调试前的准备工作下面介绍一种利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法。
使用这种方法,无需任何硬件仿真器,甚至都不需要用户电路板。
所需的只是:①硬件。
1台普通计算机(需要带有2个标准串口)和1根串口线(两头都是母头,连线关系如图1所示)。
②串口软件可以是自己编写的专用调试或上下位机通信软件,也可以是通用的串口软件(如串口助手、串口调试等),主要用来收发数据。
如果没有合适的串口调试软件,则可使。
如何使用串口调试助手Keil软件仿真的串口调试技巧

如何使用串口调试助手Keil软件仿真的串口调试技巧在嵌入式系统开发中,串口调试是一项非常重要的技术。
Keil软件是一个广泛应用于嵌入式系统开发的软件平台,通过其内置的串口调试助手,我们可以方便地进行仿真的串口调试。
本文将介绍如何使用串口调试助手Keil软件仿真的串口调试技巧。
1. 了解串口基础知识在开始使用串口调试助手之前,首先需要了解一些串口的基础知识。
串口通信是一种通过串行传输数据的通信方式,常用的串口通信标准有RS232、RS485等。
了解波特率、数据位、停止位、校验位等串口通信参数的含义和选择是必要的。
2. 配置串口参数打开Keil软件后,选择对应的工程文件,并进入工程配置页面。
在这里,我们可以找到串口调试助手的配置选项。
根据实际需求,设置串口通信的参数,如波特率、数据位、停止位、校验位等。
确保与目标设备的串口参数一致,才能正常进行串口通信。
3. 编写串口发送与接收代码在代码中,我们需要编写串口发送和接收的相关代码。
通过Keil软件提供的API函数,我们可以方便地实现数据的发送和接收。
在发送数据时,需要将数据写入到相应的寄存器,以便传输到串口。
而在接收数据时,需要从寄存器中读取数据。
通过合理设计代码,可以实现稳定可靠的串口通信。
4. 仿真运行程序完成代码编写后,我们可以进行仿真运行,以验证串口调试功能的正确性。
在Keil软件中,可以选择进行单步调试、断点调试或连续运行调试。
通过监视寄存器的值变化、观察串口发送与接收的数据情况,可以帮助我们进行串口调试。
5. 使用串口调试助手测试在完成仿真运行后,我们可以使用串口调试助手进行测试。
打开串口调试助手,并选择与目标设备串口参数一致的配置。
点击打开串口,即可开始接收串口发送的数据。
通过观察串口调试助手输出的数据,可以验证串口通信的正确性。
6. 调试技巧与注意事项在使用串口调试助手Keil软件进行串口调试时,还需要注意一些调试技巧与注意事项。
首先,确保串口连接正确可靠,避免松动或接触不良导致数据传输错误。
keil MDK 中使用虚拟串口调试串口

keil MDK 中使用虚拟串口调试串口看了很多的文章,写的都很简单(其实也很简单:))。
给出个详细一点的教程。
1. 利用VSPD将PC上的两个虚拟串口连接起来。
如图我将COM2 和COM3连接起来。
点击Addr pair。
2. 可以看到Virtual ports上将两个虚拟串口连接到了一起了。
3.虚拟串口准备就绪了。
先将直接输入命令的方式来调试。
我们打开KEIL MDK的,设置成仿真的模式。
点DEBUG.在COMMAND串口输入:MODE COM2 38400, 0, 8, 1 说明:MODE命令的作用是设置被绑定计算机串口的参数。
基本使用方式为:MODE COMx baudrate, parity, databits, stopbits其中:COMx(x = 1,2,…)代表计算机的串口号;baudrate代表串口的波特率;parity代表校验方式;databits代表数据位长度;stopbits代表停止位长度。
例如:MODE COM1 9600, n, 8, 1设置串口1。
波特率为9 600,无校验位,8位数据,1位停止位。
MODE COM2 19200, 1, 8, 1设置串口2。
波特率为19 200,奇校验,8位数据,1位停止位。
4、点回车后,再输入ASSIGN COM2 <S1IN> S1OUT 说明:COMx代表计算机的串口,可以是COM1、COM2、COM3或其他;inreg和outreg代表单片机的串口。
对于只有一个串口的普通单片机,即SIN和SOUT;对于有两个或者多个串口的单片机,即SnIN和SnOUT(n=0,1,…即单片机的串口号)。
例如:ASSIGN COM1 < SIN > SOUT将计算机的串口1绑定到单片机的串口(针对只有一个串口的单片机)。
ASSIGN COM2 < SIN > SOUT将计算机的串口2绑定到单片机的串口0(针对有多个串口的单片机,注意串口号的位置)。
KEIL中用虚拟串口调试串口程序

虚拟出两个串口,并且已经连接在一起Stime=0x00 回车这些调试命令如何使用,比较好找,但是,这三条一条都不能少。
开始时,缺少最后一条命令,就无法运行。
Mode用于设置端口Assign用于分配端口输入输出Stime用于设置是否需要考虑内部计数频率。
0时表示直接以mode设置为准,此时不必计算内部的计数而产生的波特率;1时则考虑内部产生的频率而发生的波特率,更合适实际模拟调试,能够检验定时器设置是否准确。
3、现在可以开始运行你的项目了;4、打开串口调试工具,注意设置,端口号要设置为一对串口中的另外一个,本例中为COM3,另外,要确保发送数据的格式,需是16进制。
设置为波特率9600,无校验位、8位数据位,1位停止位(和COM2、程序里的设置一样)。
可以通过KEIL发送数据,在串口调试助手中就可以显示出来。
也可以通过串口调试助手发送数据,在KEIL中接收。
示例程序:#include "stc15.h" //包含单片机寄存器定义文件unsigned char xdata rxbuffer[21]={0}; //在外部RAM区定义20个单元unsigned char num; //计数变量unsigned char checksum; //校验和变量void main (void) //主程序{num=0;checksum=0;SCON=0x50; //置串行口工作方式1(SM0=0,SM1=1),允许接收(REN=1)AUXR=0x0; //选择定时器1作为波特率发生器// TMOD=0x0; //定时器1为工作方式0// TH1=0xff; //产生9600bps的时间常数// TL1=0xe8;// 注意,该虚拟串口方式无法使用STC定时器工作方式0的波特率发生器模式,只能使用传统的8051模式TMOD=0x20; //定时器1为工作方式1TH1=0xfd; //产生9600bps的时间常数TL1=0xfd;TR1=1; //启动定时器1ES=1; //串行口开中断EA=1; //开中断while(1); //等待中断}void UART_ISR(void) interrupt 4 //中断号4是串行口1中断{unsigned char rxchecksum=0;if(RI){RI=0;rxbuffer[num]=SBUF;if(num<21){if(num<20)checksum^=rxbuffer[num]; //计算校验和num++; //修改计数变量值}if(num==21) //应答信号不是0,重新发送{rxchecksum=rxbuffer[num-1]; //设置发送数据缓冲区指针if (rxchecksum==checksum){SBUF=0x00; //发送第一个数据}else{SBUF=0xff; //发送第一个数据}num=0; //为下次接收做准备checksum=0;}}else{TI = 0; //清发送中断标志}}。
如何使用串口调试助手Keil软件仿真的串口调试技巧

在单片机系统中,串口(UART,通用异步收发接口)是一个非常重要的构成部分。
凡是使用单片机串口通过RS232/ RS485电平转换芯片与上位机毗连,以进行上位机与下位机的数值互换、参量设置、构成收集以及各种外部设备的毗连等。
RS232/ RS485串行接口总线具备成本低、简略可靠、容易使用等特点,加上其历史悠久,所以目前应用仍然非常广泛;特别对于数值量不是很大的场所,串口通信仍然是很好的选择,有着广阔的使用远景。
在单片机编程中,串口占了很重要的地位。
传统方式串口程序的调试,往往是哄骗专用的单片机硬件仿真器。
在编写好程序后,哄骗仿真器来设置断点,观察变量和程序的流程,逐步对程序进行调试,批改错误。
使用硬件仿真器的确是很有效的方法,但是也有一些缺点:很多仿真器不克不及做到完全硬件仿真,因而会造成仿真时正常,而实际运行时呈现错误的环境;也有仿真不克不及通过,但是实际运行正常的环境。
对于一些较新的芯片或者是外貌贴装的芯片,要么没有合适的仿真器或仿真头;要么就是硬件仿真器非常昂贵,且不易买到。
有时候由于设备内部结构空间的限制,仿真头不利便接入。
有的仿真器属于简略的在线仿真型,仿真时有很多限制。
例如速度不高,及时性或不改变性别不好,对断点有限制等,造成仿真起来不太利便。
1 调试前的准备工作底下先容一种哄骗Keil的软件仿真功能来实现51单片机串口调试用户程序的方法。
使用这种方法,无需任何硬件仿真器,甚至都不需要用户电路板。
所需的只是:①硬件。
1台普通计算机(需要带有2个标准串口)和1根串口线(两头都是母头,连线瓜葛如图1所示)。
②串口软件可所以自己编写的专用调试或上下位机通信软件,也可所以通用的串口软件( 如串口助手、串口调试等) ,首要用来收发数值。
如果没有合适的串口调试软件,则可使用作者编写的一个免费的串口小工具TurboCom。
除了与其它软件一样的数值收发功能外,它还有定时轮流发送自界说数值帧和自动应答(接收到指定命据帧后,自动返回相应的数值帧)这两个很有用的功能,特别适合于老化测试。
基于Keil与VSPD软件仿真的串口通信调试技术

Ba e n K e la d V S s d o i n PD o t r m ul to S fwa e Si a in
Ya g S io g n hrn
( i a S i v l p n n sg n e ,W u a 4 0 6 ) Ch n h p De eo me ta d De in Ce t r hn 3 0 4
真器 , 增加 了资金 投 人 。另 外 , 统 的 调试 技 术 要 传 求调 试计算 机具备 串行 通信 口, 现在 很 多新型计 而
R ci / rnmie, ee eT as t r通用异 步收发接 口) v t 通信 的
编程 与调试成 为 单 片机 智 能仪 表 系统 开 发 的重 要 内容 。串 口通信 程序 的传统 调试技 术 , 往往 需要 利 用专用 的单 片机 硬 件仿 真器 和 调 试计 算 机 。在 编 写好程序 后 , 用 仿 真 器来 设 置 断 点 , 利 观察 变量 和
用l, 串 E ( l 其 2 ] l UAR Unv ra y c rn u T, i sl Asn h o o s e
步对程 序进行 调试 、 正错误 。 修 传 统调试 技术对 硬件仿 真器 依赖 性较 强 , 但是 很多仿真 器不 能做到完 全硬 件仿 真 , 因而 可能造 成 仿 真时 正常 , 实 际 运行 时 出现 错 误 的情 况 , 者 而 或 造 成仿 真不能 通 过 , 但是 实 际运 行 正 常 的情 况 ; 当 单 片机芯 片型号 发生较 大变化 时 , 需要 配 置新 的仿
总 第 14 9 期 21 0 0年第 8期
舰 船 电 子 工 程
S i e to i g n e i g h p Elc r n c En i e r n
Keil C环境下串口实验的模拟调试

Keil C环境下串口实验的模拟调试朱艳萍;邹应全;廖建辉【摘要】According to the practice teaching needs of the single chip, the specific methods and steps of serial communication between SCM and PC are proposed under Keil C51 software environment. The simulation experiment is as follows: Serial program sends two hexadecimal data, changes it for decimal and displays on four digital tubes. Comparing the simulation data under software step execution of I/O mouth with the actual serial interface communication results ,they are consistent. This experiment is to make the students more familiar with single-chip microcomputer software development environment and debugging details. And it also makes students deep understanding the serial interface communication and dynamic display.%根据单片机实践教学发展的需要,提出了在Keil C51软件环境下模拟单片机与PC机间串口通信的具体方法和步骤.仿真实验为:串口程序发送2位16进制数据,将其转换为十进制后,在4位LED上显示.通过比较软件单步执行的I/O口模拟数据,发现与实际串口通信结果一致.该实验使学生更加熟悉单片机软件开发环境下模拟硬件的调试方法,加深了学生对串口通信及动态显示的理解.【期刊名称】《实验技术与管理》【年(卷),期】2012(029)003【总页数】4页(P112-114,126)【关键词】串口通信;Keil C51;单片机【作者】朱艳萍;邹应全;廖建辉【作者单位】南京信息工程大学电子与信息工程学院,江苏南京 210044;江苏省气象探测与信息处理重点实验室,江苏南京210044;南京信息工程大学电子与信息工程学院,江苏南京 210044;江苏省气象探测与信息处理重点实验室,江苏南京210044;南京信息工程大学滨江学院,江苏南京 210044【正文语种】中文【中图分类】G434;TP391.9Abstract:According to the practice teaching needs of the single chip,the specific methods and steps of serial communication between SCM and PC are proposed under Keil C51software environment.The simulation experiment is as follows:Serial program sends two hexadecimal data,changes it for decimal and displays on four digital paring the simulation data under software step execution of I/O mouth with the actual serial interface communication results,they are consistent.This experiment is to make the students more familiar with single-chip microcomputer software development environment and debugging details.And it also makes students deep understanding the serial interface communication and dynamic display.Key words:serial communication;Keil C51;single-chip microcomputer 实验教学是单片机原理及应用课程中重要的环节[1],实践教学对加深学生对单片机原理的理解具有较好的推动作用。
使用Keil软件模拟调试单片机串行口

使用Keil软件模拟调试单片机串行口作者:张万良来源:《数字技术与应用》2011年第04期摘要:由于串行通信硬件成本低,传输线少,适合于长距离数据传输所以在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各CPU之间的通信一般都是串行方式。
但是单片机的串口通信不好硬件仿真。
为了能够方便的看到单片机串行通信的实际效果,利用Keilc 软件进行模拟调试不失为一个好的方法。
关键词:串行通信模拟调试仿真调试窗口串口控制寄存器中图分类号:TP368 文献标识码:A 文章编号:1007-9416(2011)04-0127-02单片机串行通信在单片机应用开发中应用广泛,通过串行口单片机与PC之间的通信是一个非常重要的应用。
由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。
但是如果没有实际的试验平台或者仅仅简单验证串行口通信程序使用Keil提供的串行窗口进行调试就够了。
随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,Keil软件在调试程序时提供了多个窗口,主要包括输出窗口(Output Windows)、观察窗口(Watch&Call Statck Windows)、存储器窗口(Memory Window)、反汇编窗口(DissamblyWindow)串行窗口(Serial Window)等。
进入调试模式后,可以通过菜单View 下的相应命令打开或关闭这些窗口。
下面设计串口发送和接收的例子说明Keil 串行窗口的应用。
1、串口发送建立新工程,保存为serialSend,编写实验程序。
编译程序通过后,点击工具栏上的“调试” 按钮,进入调试状态。
点击调试窗口的串行窗口按钮打开串口1窗口。
此时两个窗口可能重叠在一起,可以点击“窗口|水平排列”使之都可见。
主要程序如下:void main()SCON = 0x50; // 串口工作方式1,允许接收TMOD |= 0x20;// 设置定时器1为模式2TH1 = TL1 = 0xFD; // 11.0592M下9600波特率的初值TR1 = 1;// 开始定时器1while (1)SBUF ='T'; // 发送数据Twhile (!TI);// 等待发送完成TI = 0;delayx1ms(100); // 延时100毫秒点击菜单栏上的“外围设备|serial”调出串行口,如图1:可以看到串行口寄存器SCON的初值以及各标志位的值,SBUF的初值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
KEIL中如何用虚拟串口调试串口程序
发表于2008/5/7 15:30:22
以前没接触过串口,一直都以为串口很复杂。
最近在做一个新项目,用单片机控制GSM模块。
单片机和GSM模块接口就是串口。
调试完后觉得串口其实很简单。
“不过如此”。
这可能是工程师做完一个项目后的共同心态吧。
下面详细介绍下如何用虚拟串口调试串口发送接收程序。
需要用到三个软件:KEIL,VSPD XP5(virtual serial ports driver xp5.1虚拟串口软件),串口调试助手。
1、首先在KEIL里编译写好的程序。
2、打开VSPD,界面如下图所示:
左边栏最上面的是电脑自带的物理串口。
点右边的add pair,可以添加成对的串口。
一对串口已经虚拟互联了,如果添加的是COM3、COM4,用COM3发送数据,COM4就可以接收数据,反过来也可以。
3、接下来的一步很关键。
把KEIL和虚拟出来的串口绑定。
现在把COM3和KEIL 绑定。
在KEIL中进入DEBUG模式。
在最下面的COMMAND命令行,输入MODE COM3 4800,0,8,1(设置串口3的波特率、奇偶校验位、数据位、停止位,打开COM3串口,注意设置的波特率和程序里设置的波特率应该一样,命令要用英文模式输入,中文不行)
ASSIGN COM3 <SIN> SOUT(把单片机的串口和COM3绑定到一起。
因为我用的单片机是AT892051,只有一个串口,所以用SIN,SOUT,如果单片机有几个串口,可以选择S0IN,S0OUT,S1IN,S1OUT。
)
4、打开串口调试助手
可以看到虚拟出来的串口COM3、COM4,选择COM4,设置为波特率4800,无校验位、8位数据位,1位停止位(和COM3、程序里的设置一样)。
打开COM4。
现在就可以开始调试串口发送接收程序了。
可以通过KEIL发送数据,在串口调试助手中就可以显示出来。
也可以通过串口调试助手发送数据,在KEIL中接收。
这种方法的好处是不用硬件就可以调试。
这是网上一篇文章介绍的方法,联系我实际的使用做了整理。
有用的着的人就不用继续摸索了。