首页 » 互联网 » 51tracer单片机仿真器之最简单的八路跑马灯源轨范_断点_法式

51tracer单片机仿真器之最简单的八路跑马灯源轨范_断点_法式

神尊大人 2025-01-10 05:22:10 0

扫一扫用手机浏览

文章目录 [+]

51 TRACER仿真器是目前同行业功能完全,稳定,技能前辈的仿真器。

兼容KEILC51 UV2 调试环境支持单步、断点、随时可查看寄存器、变量、IO、内存内容。
支持短命功能,全速运行时按STOP按钮即停息,并指向当出路序行。
可仿真各种51指令兼容单片机,ATMEL、WINBOND、INTEL、SST、ST等等。
可仿真ALE禁止,可仿真PCA,可仿真双DPTR,可仿真硬件SPI。

51tracer单片机仿真器之最简单的八路跑马灯源轨范_断点_法式 51tracer单片机仿真器之最简单的八路跑马灯源轨范_断点_法式 互联网

真实仿真(32个IO、串口、T2可完备单步仿真),包括任意利用P30和P31口。

51tracer单片机仿真器之最简单的八路跑马灯源轨范_断点_法式 51tracer单片机仿真器之最简单的八路跑马灯源轨范_断点_法式 互联网
(图片来自网络侵删)

单USB接口,无需外接电源和串口,即插即用,台式电脑、无串口的条记本均适用。
三CPU设计,采取仿真芯片+监控芯片+USB芯片构造 。

下载仿真通讯连忙115200BPS,也是KEIL支持的最高速率,比较以前版本提高一个数量级(10倍以上),单步运行如飞。
如果您以前用过SST单芯片仿真方案,用51TEACER将有 开奔驰的觉得。

内置晶体功能,可以选择最常用的4,11.0592,12,24MHZ晶体。
办理晶体引线过长导致的不稳定。

独创多声响和LED指示实时系统状态和自检,特殊设计P1.0自检灯,方便打消故障。

独创长按复位键自动进入脱机运行模式,这时仿真机就相称于目标板上烧好的一个芯片,可以更加真实的运行,这种情形下实际上就变了一个下载器,而且下次上电时仍旧可以运行上次下载的程序。

紧张功能和特性:

可仿真单片机品种: 8xC51/52/54/58及其兼容型单片机

内部仿真时钟: 4mhz,11.0592mhz,12mhz,24mhz

内部仿真程序存储器:63K

断点类型:程序地址/步进/步越/返回

目标系统硬件功能: 支持目标复位功能和目标中断功能

软件特点: 支持多种汇编措辞和C措辞(包括Keil C 7.0) 支持Keil的IDE集成开拓环境,支持软件仿真功能 支持多重嵌套变量和数据构造

供应各种标准的Debug功能

1. 真实仿真P0,P1,P2,P3口,P3.0,P3.1串口,定时器2

2.支持89C52等嵌入式CPU仿真,可以仿真标准的89C51,89C52,89C58等51内核的单片机

3.ISP 在线编程,在线下载,63K程序空间

4.仿真频率涵盖4mhz,11.0592mhz,12mhz,24mhz

5.支持同时最多20个断点

6.支持单步,断点,全速运行,包括以下办法

地址断点

在实行程序中,当碰着用户设置的地址断点时则停滞。
在文本窗中最左侧的操作列中可实行行的位置点击,可以设置或取消地址断点。
程序精确通过编译后, 可实行行与非实行行可以大略地从该行操作列的背景色区分出来:可实行行操作列的背景色是浅蓝色的,而非实行行操作列的背景色是浅灰色的。

步进断点

实行一行程序后停滞。
在实行中如果碰着调用函数/子程序,则停在函数/子程序的入口。

步越断点

实行一行程序后停滞。
在实行中碰着调用函数/子程序时不做勾留。

返回断点

这是一种分外功能的断点,利用时必须特殊把稳利用条件,用户只能在被调用的函数/子程序中利用这种断点。

7.支持汇编,C措辞,稠浊调试

8.内置晶体,办理用户电缆较长带来的滋扰问题

9.速率运行如飞,让您的事情充满乐趣。

10.完备兼容keilC51 UV2调试环境,可以通过UV2环境进行单步,断点,全速等操作,兼容keil 7.0以上中文,英文,uv3等版本。
即便利用英文版本keil也完备无问题!
实验1: 最大略的八路跑马灯

本例实验紧张用到了延时子程序,clr,lcall,ajmp 指令, 通过轮流点亮p1.0 …..P1.7 实现效果。
用户可以通过此程序的学习, 初步节制单片机的IO端口操作。

练习1: 若何把延时的韶光改为更短, 或者更长?

练习2: 若何用P0,P2,P3端口来操作?

练习3: 若何实现不同的跑马花样?

程序运行照片:

接线方法: 用一条8PIN的数据排线把CPU部份的P1口(JP44)连接到八路指示灯部份的JP32

接线图以及运行瞬间的照片(可以看到8路指示灯轮流点亮)

汇编措辞参考程序:

org 0000h ;开始

ajmp loop

org 0080h ;到0030h处避开00-30的敏感地址

loop:

mov p1,#0ffh ;关闭所有灯

clr p1.0 ;点亮灯p1.0

lcall delay ;延时一段韶光?

clr p1.1 ;点亮灯p1.1

lcall delay

clr p1.2 ;点亮灯p1.2

lcall delay

clr p1.3 ;点亮灯p1.3

lcall delay

clr p1.4 ;点亮灯p1.4

lcall delay

clr p1.5 ;点亮灯p1.5

lcall delay

clr p1.6 ;点亮灯p1.6

lcall delay

clr p1.7 ;点亮灯p1.7

lcall delay

AJMP LOOP ;到最开始loop处重新运行

delay: mov r5,#20 ;延时。

d1: mov r6,#40

d2: mov r7,#248

djnz r7,$

djnz r6,d2

djnz r5,d1

ret

end

c措辞参考程序:

#include<reg51.h> //头文件

#define uchar unsigned char //宏定义,为方便编程

#define uint unsigned int

#define LED P1 //宏定义,将P1口定义为LED

uchar led_value[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x00}; //定义一数组,内存放跑马灯数据

uchar p=led_value; //定义指针,指向跑马灯数组首地址

void delay() //延迟函数,与跑马灯跳动频率有关

{

uchar ii,jj;

for(ii=0;ii<200;ii++)

for(jj=0;jj<200;jj++);

}

void run_led() //跑马灯运行函数

{

while(p!=0x00)

{

LED=p; //将数组中数据取出赋给P1口

p++; //预取下一数据

delay(); //延迟

}

p=led_value;

}

char code SST516[3] _at_ 0x003b; //仿真器保留

main() //主函数

{

while(1)

run_led(); //上电即运行跑马灯程序

}

标签:

相关文章