使用Keil软件模拟调试单片机串行口

合集下载

keil软件调试单片机程序

keil软件调试单片机程序

先说一个概念:调试,在企业程序设计里(我把企业商务类型的软件开发叫企业程序设计,把单片机与驱动程序这样接触底层汇编与硬件相关的程序设计叫底层程序设计),调试一般都用来跟踪变量的赋值过程,以及查看内存堆栈的内容,查看这些内容的目的在于观察变量的赋值过程与赋值情况从而达到调试的目的。

由于企业程序的宿主就是开发它的计算机本身,因此企业程序设计比起底层程序设计,特别是单片机的程序设计调试来的更直观,调试也更方便。

单片机的程序设计调试分为两种,一种是使用软件模拟调试,意思就是用开发单片机程序的计算机去模拟单片机的指令执行,并虚拟单片机片内资源,从而实现调试的目的,但是软件调试存在一些问题,如计算机本身是多任务系统,划分执行时间片是由操作系统本身完成的,无法得到控制,这样就无法时时的模拟单片机的执行时序,也就是说,不可能像真正的单片机运行环境那样执行的指令在同样一个时间能完成(往往要完成的比单片机慢)。

为了解决软件调试的问题,第二种是硬件调试,硬件调试其实也需要计算机软件的配合,大致过程是这样的:计算机软件把编译好的程序通过串行口、并行口或者USB口传输到硬件调试设备中(这个设备叫仿真器),仿真器仿真全部的单片机资源(所有的单片机接口,并且有真实的引脚输出),仿真器可以接入实际的电路中,然后与单片机一样执行。

同时,仿真器也会返回单片机内部内存与时序等情况给计算机的辅助软件,这样就可以在软件里看到真实的执行情况。

不仅如此,还可以通过计算机断的软件实现单步、全速、运行到光标的常规调试手段。

图1:仿真器总结一下两者的不同与相同:相同点:1:都可以检测单片机执行时序下的片内资源情况(如R0-R7 、PC计数器等)2:可以实现断点、全速、单步、运行到光标等常规调试手段。

不同:1:软件调试无法实现直接连接硬件电路的调试,只能通过软件窗口虚拟硬件端口的电平输出情况而仿真器可以实现与单片机一样的功能的硬件连接,从某种意义上说这个时候仿真器就是一个单片机。

英飞凌单片机关于keilC166的使用

英飞凌单片机关于keilC166的使用

关于Keil C166的使用单片机开发除了必要的硬件同样也离不开软件,我们写的程序要转化成CPU所能执行的机器码有两种方法:一是手工汇编,二是机器汇编。

机器汇编是通过汇编软件将源程序编程机器码。

Keil软件是目前最流行的开发单片机的软件工具,Keil编译器提供了包括C编译器,宏汇编,连接器,库管理和一个功能强大的仿真调试器等在内的完整的开发方案。

通过一个集成开发环境(uVision)将这些部分组合在一起。

KEIL软件有支持8位单片机的Keil C 51系列和支持16位单片机的Keil C 166系列。

在项目开发过程中并不是仅有一个源程序就足够了,还要为项目选择CPU确定编译,汇编,连接的参数,指定调试的方式,有一些项目还会由多个文件组成。

为管理和使用方便,Keil 引入了工程(Project)概念。

将这些参数和所需要的文件都加在一个工程中,只能对工程进行编译和连接等操作。

工程的详细设置:以下针对在使用XC164CS评估板过程中在Keil C166环境下的一些设置谈一下。

首先点击Project窗口中的Target1 Project->Option for Target1 “target 1”即出现对工程设置的对话框。

菜单如下图1:图1以下针对各个标签详细说明:Device选择所使用的CPU(即所选用的芯片)。

KEIL支持很多种CPU,当选中一款芯片以后右侧窗口还会有相应的芯片介绍。

此处选择Infineon XC164CS.系列芯片作为CPU。

Target窗口设置如下:图2这里可以设置时钟频率,片内和片外资源的选择及地址的设置。

其中Memory Model用于设置RAM使用情况,KEIL C 166编译器可支持7种存储类型。

TINY CPU处于非分段工作方式下,可产生高效的16位线性地址,并把代码和数据限制在64KB种。

不能使用far, huge, xhuge存储类型。

SAMLL 使用分段CPU方式,同样产生高效的代码,但代码和数据不再限制再64KB中,用户可通过far, huge, xhuge引用变量和函数COMPACT 一般用于代码少而数据多的场合HCOMPACT 一般用于代码多而数据少的场合MEDIUM 所有的函数调用默认为far调用,一般用于代码多而数据少的场合 LARGE 所有的函数调用默认为far调用,一般用于代码和数据多的场合HLARGE 所有的函数调用默认为far调用,一般用于代码和数据多的场合,不适合于C166系列CPU在仿真过程中如果使用片内FLASH,则选中Use On-chip ROM在仿真过程中如果使用片外RAM,则取消Use On-chip ROM复选框并设置ROM和RAM 空间起始地址及大小。

单片机串行通信实验报告(实验要求、原理、仿真图及例程)

单片机串行通信实验报告(实验要求、原理、仿真图及例程)

《嵌入式系统原理与实验》实验指导实验三调度器设计基础一、实验目的和要求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来实现字符串的发送。

单片机原理keil使用教程

单片机原理keil使用教程

keil教程Keil 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。

下面介绍Keil软件的使用方法,这应该算一个入门教程,进入Keil 后,屏幕如下列图所示。

几秒钟后出现编辑界启动Keil uVision4时的屏幕。

简单程序的调试学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。

下面通过简单的编程、调试,引导大家学习Keil C51软件的基本使用方法和基本的调试技巧。

1) 对于单片机程序来说,每个功能程序,都必须要有一个配套的工程〔Project〕,即使是点亮LED这样简单的功能程序也不例外,因此我们首先要新建一个工程,打开我们的Keil软件后,点击:Project-->New uVision Project...然后会出现一个新建工程的界面,如图2-8所示。

2)因为是第一个实验,所以我们在硬盘上建立了一个实验1 的目录,然后把LED这个工程的路径指定到这里,这样方便今后管理程序,不同的功能程序放到不同的文件夹下,并且给这个工程起一个名字叫做LED,软件会自动添加扩展名LED.uvproj。

如图2-9所示。

下次要打开LED这个工程时,可以直接找到文件夹,双击这个.uvproj 文件就可以直接打开了。

图2-9 保存工程3〕保存之后会弹出一个对话框,这个对话框让我们选择单片机型号。

因为Keil软件是外国人开发的,所以我们国内的STC89C52RC并没有上榜,但是只要选择同类型号就可以了。

Keil 几乎支持所有的51核的单片机,这里还是以大家用的比较多的Atmel 的AT89S51来说明,如下列图2-10、图2-11所示,选择AT89S51之后,右边栏是对这个单片机的基本的说明,然后点击确定。

图2-10 选择芯片公司图2-11 选择具体芯片4〕点击OK之后,会弹出一个对话框,如图2-12所示,每个工程都需要一段启动代码,如果点“否”编译器会自动处理这个问题,如果点“是”,这部分代码会提供应我们用户,我们就可以按需要自己去处理这部分代码,那这部分代码在我们初学51的这段时间内,一般是不需要去修改的,但是随着技术的提高和知识的扩展,我们就有可能会需要了解这块内容,因此这个地方我们选一下“是”,让这段代码出现,但是我们暂时不需要修改它,大家知道这么回事就可以了。

使用keil进行stm32单片机开发的流程 -回复

使用keil进行stm32单片机开发的流程 -回复

使用keil进行stm32单片机开发的流程-回复keil作为一款嵌入式系统开发工具,广泛应用于STM32单片机的开发过程中。

它具有强大的编译、调试和仿真功能,可以帮助开发者更高效地进行单片机的开发工作。

本文将以“使用keil进行STM32单片机开发的流程”为主题,为读者详细介绍使用keil进行STM32开发的步骤和注意事项,帮助读者轻松入门STM32开发。

一、准备工作1. 软件安装:首先需要安装keil嵌入式开发环境。

你可以从官方网站上下载到keil的安装包,然后按照安装向导进行安装即可。

2. 硬件准备:除了软件准备外,还需要购买一块支持STM32开发的开发板,例如ST公司的ST-LINK开发板。

将开发板连接至电脑。

二、创建项目1. 打开keil:双击桌面上的keil图标,进入keil开发环境。

2. 创建新项目:点击“Project”->“New Project”,选择合适的存储路径和项目名称,并选择你所使用的STM32单片机型号。

单击“OK”完成新项目的创建。

三、配置开发环境1. 配置芯片参数:在左侧的“Project”窗口中,右键点击“Target 1”,选择“Options for Target”。

2. 配置目标选项:在“Debug”选项卡中,选择正确的调试接口,并将“Use Simulator”选项取消勾选。

在“Settings”选项卡中填写正确的时钟频率和连接方式,并启用Flash编程。

3. 配置编译器:在左侧的“Project”窗口中,右键点击“Target 1”,选择“Options for Target”。

在“C/C++”选项卡中,配置编译器的优化级别和其他相关参数。

四、编写代码1. 添加源文件:在“Project”窗口中右键点击“Source Group 1”,选择“Add New Item”,然后添加你的源代码文件,编写代码内容。

注意,为了方便管理,可以按功能将代码分割成多个源代码文件。

介绍利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法

介绍利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法

介绍利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法在单片机系统中,串口(UART,通用异步收发接口)是一个非常重要的组成部分。

通常使用单片机串口通过RS232/RS485电平转换芯片与上位机连接,以进行上位机与下位机的数据交换、参数设置、组成网络以及各种外部设备的连接等。

RS232/RS485串行接口总线具有成本低、简单可靠、容易使用等特点,加上其历史悠久,所以目前应用仍然非常广泛;特别对于数据量不是很大的场合,串口通信仍然是很好的选择,有着广阔的使用前景。

在单片机编程中,串口占了很重要的地位。

传统方式串口程序的调试,往往是利用专用的单片机硬件仿真器。

在编写好程序后,利用仿真器来设置断点,观察变量和程序的流程,逐步对程序进行调试,修正错误。

使用硬件仿真器的确是很有效的方法,但是也有一些缺点:很多仿真器不能做到完全硬件仿真,因而会造成仿真时正常,而实际运行时出现错误的情况;也有仿真不能通过,但是实际运行正常的情况。

对于一些较新的芯片或者是表面贴装的芯片,要么没有合适的仿真器或仿真头;要么就是硬件仿真器非常昂贵,且不容易买到。

有时由于设备内部结构空间的限制,仿真头不方便接入。

有的仿真器属于简单的在线仿真型,仿真时有很多限制。

例如速度不高,实时性或稳定性不好,对断点有限制等,造成仿真起来不太方便。

1、调试前的准备工作下面介绍一种利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法。

使用这种方法,无需任何硬件仿真器,甚至都不需要用户电路板。

所需的只是:①硬件。

1台普通计算机(需要带有2个标准串口)和1根串口线(两头都是母头,连线关系如图1所示)。

②串口软件可以是自己编写的专用调试或上下位机通信软件,也可以是通用的串口软件(如串口助手、串口调试等),主要用来收发数据。

如果没有合适的串口调试软件,则可使。

单片机实验报告KeilC的使用与汇编语言上机操作

单片机实验报告KeilC的使用与汇编语言上机操作

单片机实验报告KeilC的使用与汇编语言上机操作单片机实验报告:Keil C的使用与汇编语言上机操作一、实验目的1.掌握Keil C的使用方法,了解其集成开发环境下的单片机编程流程。

2.掌握汇编语言的基本语法和指令,通过上机操作熟悉其应用。

3.通过实际操作,增强动手能力和解决问题的能力。

二、实验设备1.单片机开发板2.Keil C软件3.电脑及编程器三、实验原理及步骤1.Keil C使用介绍Keil C是一款广泛使用的单片机集成开发环境,它提供了包括编译器、调试器、仿真器等在内的全套开发工具。

使用Keil C可以方便地进行代码编写、编译、调试和模拟,适用于多种单片机开发。

2.汇编语言基础汇编语言是一种直接与硬件相关的编程语言,它通过特定的指令集直接控制硬件进行操作。

汇编语言具有高效、直接的特点,但编写和理解相对困难。

本实验主要学习并熟悉汇编语言的基本语法和指令。

3.实验步骤(1) 在Keil C中创建新项目,选择合适的单片机型号。

(2) 创建源文件,编写汇编程序。

(3) 对源文件进行编译,生成目标文件。

(4) 将目标文件下载到单片机开发板进行调试和运行。

四、实验内容及分析1.在Keil C中创建新项目并选择单片机型号。

在创建项目时,需要选择正确的单片机型号,这将直接影响到程序的编写和运行。

根据实际需要,我们选择了AT89C51作为实验用的单片机。

2.创建源文件并编写汇编程序。

在Keil C中,可以方便地创建新的源文件,并在其中编写汇编程序。

例如,下面是一个简单的汇编程序,用于点亮开发板上的LED灯:MOV P1, #1 // 将1赋值给P1端口此程序将使P1端口的所有引脚输出高电平,从而点亮LED灯。

3.对源文件进行编译并生成目标文件。

在Keil C中,可以通过简单的点击完成编译操作。

编译成功后,将生成一个目标文件(如*.obj文件)。

4.将目标文件下载到单片机开发板进行调试和运行。

在Keil C中,可以通过仿真功能模拟程序的运行,也可以通过调试功能查看程序运行过程中的细节信息。

单片机开发与仿真软件keilc51的使用

单片机开发与仿真软件keilc51的使用

单片机开发与仿真软件Keil C51的使用一、Keil C51 操作入门Keil C51 简介Keil C51 是德国知名软件公司Keil(现已并入ARM 公司)开发的基于8051 内核的微控制器软件开发平台,是目前开发8051 内核单片机的主流工具。

Keil 51支持汇编语言、C语言等各种开发语言。

其中,uVision2集成开发环境包含项目管理、源代码编辑和强大的程序调试环境。

uVision2调试器是一个强大的全特性调试器,允许用户在PC机上完全模拟目标程序、指令集和片内外围功能。

实验所用的是Keil C51 评估版。

Keil C51 的启动双击桌面上的“Keil uVision2”图标,启动Keil C51程序,启动界面如图1所示。

图1 Keil C51的启动界面建立第1 个Keil C51 程序Keil C51 是一个功能很强大的软件,但是使用起来并不复杂。

现在就通过建立一个简单的LED(发光二极管)闪烁发光的实例来初步掌握Keil C51的基本用法。

硬件电路参见图2,单片机I/O 输出低电平可点亮LED。

图2 LED 闪烁发光电路●新建工程。

执行Keil C51 软件的菜单“Project | N ew Project…”,弹出一个名为“Create New Project”的对话框。

先选择一个合适的文件夹准备来存放工程文件,比如“E:\Project\LedFlash”,其中“LedFlash”是新建的文件夹。

建议:今后每新建一个工程都要在适当的磁盘位置新建一个文件夹用来保存工程文件,以方便管理,并养成良好的习惯。

最后,为工程取名为“LedFlash”,并保存。

参见图3。

图3 新建Keil C51 工程●选择CPU。

紧接着,Keil C51 提示选择CPU 器件。

8051 内核单片机最早是由鼎鼎大名的Intel 公司发明的,后来其他厂商如Philips 、Atmel 、Winbond 等先后推出其兼容产品,并在8051 的基础上扩展了许多增强功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用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工作在方式2
TH1 = 0XF3; //波特率设为2400bps
TL1 = 0XF3;
TR1 = 1; //启动Timer1
ES = 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的模拟工具,我们可以大大降低程序运行的风险,并在程序上下推出最佳性能的基础上,优化和扩展其功能。

相关文档
最新文档