ISD51 (在线调试器)为8051编程用户提供了新的监控调试技术。将 ISD51 进行配置后与您的用户程序连接起来用户就可以通过8051的一个串口直接在芯片上调试程序了。ISD51的软件和硬件可以工作于最小模式。它可以运行于带有外部或内部程序空间的系统并且不要求增加像冯.诺伊曼架构的数据存储器等的特殊硬件部件。ISD51 可以工作在像 Philips LPC 系列之类的微型单片机上并且可以完全访问其 CODE 和 XDATA 地址空间。
ISD51硬件需求,一个8051兼容串口, 500-700字节的程序代码在相应数量的特殊积存器中运行,6字节堆栈空间,1字节IDATA RAM,为每个软件断点预留2字节IDATA RAM 。
ISD51在你的8051系统里增加了一个串口中断函数 (ISD51中断)。当ISD51连接到 uVision2 调试器时, 8051输入ISD51的中断函数。只要到程序运行一被停止, 8051就只运行ISD51中断服务程序当uVision2调试器发出一个“Go”的指令, 8051就脱离ISD51中断函数并且运行用户程序。如果没有设置任何断点或者如果所有断点设置为硬件断点, 8051 就会全速运行用户程序。如果设置了软件断点, 8051在相应8051 CPU指令后面输入ISD51 中断函数。ISD51 中断服务程序会检查是否8051程序到了一个断点地址,如果是,开始和 uVision2 调试器通讯。所以, 当使用软件断点时,8051 的程序运行速度会变得相当慢(相差100倍左右)。一旦“ISD51 系统在线调试器”被作为中断函数实现,其它和 ISD51 系统的中断优先级一样,甚至比ISD51优先级更高的中断函数中就不能再设置断点或者单步执行了。默认状态下,
ISD51 中断函数使用的中断优先等级为0级。uVision2 调试器发送一个 0xA5 的字符到 ISD51 的中断函数中,使用户程序停止并且开始与调试器通讯, 当 uVision2 调试器收到请求信号后,8051 就会开始执行程序。
当然光是有ISD51还不够,还要选择合适的硬件整个系统才能有效的运行起来。ISD51的调试过程是这样的,首先将带有ISD51接口函数的用户代码烧写到MCU的FLASH中,然后打开Keil C完成一些必要的设置后,就可以运行ISD51进行代码的调试了。根据以上分析,要实现代码的调试,就要求反复擦写单片机,而象89Sxx、STC系列的单片机都具有ISP功能,在没有编程器的情况细很容易实现擦写。
为了调试方便自己写了一个ISD51的模板程序,支持C编程,无需仿真器,只要在主函数中添加用户代码,就可以完成单步、断点等调试功能。
关键字:51单片机 主要方法
引用地址:
51单片机开发主要方法
推荐阅读最新更新时间:2024-03-16 14:42
51单片机IO口模拟串口通讯4
硬件环境:STC89C52 软件环境:IDE Keil uVision V4.10 编译器 C51 V9.0 代码如下: /********************************************** 硬件:11.0592MHz晶振,STC89C52,RXD P1.0 TXD P1.1 波特率:9600 描述:这是网上《51单片机模拟串口的三种方法》中附的程序 占用定时器0 时间:2012.07.25 于单位 **********************************************/ #include reg52.h sbit BT_SND =P1^1; sbit B
[单片机]
51单片机逻辑指令编程举例
下面给出一个例子练习逻辑 指令 ,本程序可以实验板或Keil C51仿真软件上运行,注意观察程序运行结果。 MOV A,#24H MOV R0,#37H ORL A,R0 XRL A,#29H MOV 35H,#10H ORL 35H,#29H MOV R0,#35H ANL A,@R0
[单片机]
80C51单片机的总线结构、逻辑结构及内部结构
MCS-51是Intel公司生产的一个单片机系列名称,该系列生产工艺有HMOS和CHMOS这两种,CHMOS是CMOS和HMOS的结合,既保持了HMOS的高密度和高速度,还具有CMOS低功耗的特点。 在产品型号中,带有字母C的即为CHMOS芯片,如80C51,该类型芯片的电平既与TTL兼容,又与CMOS电平兼容。 在片内程序存储器的配置上,该系列单片机有3种形式,即掩模ROM、EPROM或Flash和ROM Less(无片内程序存储器)。 80C51是MCS-51系列中采用CHMOS工艺的一个典型品种,各厂商以80C51为基核(内核)开发出的CHMOS工艺单片机产品统称为80C51系列。 当前常用的80C51系列单片机
[单片机]
变量定位或函数定位
简介:本文介绍了51单片机变量定位和函数定位的方法。 1、函数定位: 假如要把C源文件 tools.c 中的函数 int BIN2HEX(int xx) { ... } 放在CODE MEMORY的0x1000处,先编译该工程,然后打开该工程的M51文件,在 * * * C O D E M E M O R Y * * * 行下找出要定位的函数的名称,应该形如: CODE xxxxH xxxxH UNIT ?PR?_BCD2HEX?TOOLS 然后在: Project- Options for Target ...- BL51 Locate:Code 中填写如下内容: ?PR?
[单片机]
51单片机编程开发(一)之C语言基础一
C51编译器 51单片机开发编译有很多,现在比较有名的是IAR for 8051编译器和KEIL for C51编译器,但这两个软件都不是免费的,官网提高的免费版是有使用限制的。另外还有一些编译器是免费的,但需要一定基础,初学者就不推荐使用了,等你翅膀硬了之后在自己配置编译环境吧。 简单介绍两个免费编译器:可跨平台使用的开源编译器sdcc,有空可以自己查资料搭建一下,后期如果有时间我再做个教程吧。另外微软公司提供的Visual Studio Code这个免费又强大的代码编辑器配合一些三方插件工具也可以实现各种单片机编译功能,效果也不错,这个也以后再另说吧。IAR for 8051编译器和KEIL for C51编译器在官网都可
[单片机]
解读51单片机LED系统电路
LED 旋转显示器时基于视觉暂留原理,开发的一种旋转式LED 显示屏。其在具有一定转速地载体上安装16 个LED 发光器件,各LED 发光管等间距排位一条直线,随着旋转速度的加快,在计算机软件精确的时序控制下,不断扫描出预设的文字,图案等。使用一个光耦(U 型槽的红外对管)作为定位传感器,当旋转一周时,挡光板遮挡光源,光敏三极管的集电极输出高电平,当离开挡光板时,集电极再次输出低电平,从而给单片机一个下降沿的跳变型号,产生一个中断,从而更新显示。供电部分,因为整个装置是在不停的高速旋转当中,所以我们做了一个简单的电刷装置,把220V 的交流电通过变压器变成12V 的交流电,再由桥式整流电路,和滤波电路,变为平滑的直流电,最后通过7
[嵌入式]
51单片机1秒定时C语言程序(通过调试)
#include reg52.h // 晶振为12MHz, #include stdio.h #include absacc.h #include intrins.h /*************************** * 定义硬件引脚连接 ****************************/ sbit p1_0=P1^0; /************************* * 定义全局变量 ***********************/ // Byte data intrCounter; // 计时器中断次数 // Byte data beginNum; // 开始倒计时的时间 /
[单片机]
从零开始51单片机教程 —— 29 单片机音乐程序设计
利用单片机音乐程序设计 利用单片机(或单板机)奏乐大概是无线电爱好者感兴趣的问题之一。本文从单片机的基本发间实验出发,谈谈音乐程序的设计原理,并给出具体实例,以供参考。 单片机的基本发音实验 我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调。 例如,要产生200HZ的音频信号,按图1接入喇叭(若属临时实验,也可将喇叭直接接在P1口线上),实验程序为: 其中子程序DEL为延时子程序,当R3为1时,延时时间约为20us,R3中存
[单片机]