产品选型

单片机汇编 跑马灯 51tracer单片机仿真器之最简单的八路跑马灯源程序

小编 2025-07-17 产品选型 23 0

51tracer单片机仿真器之最简单的八路跑马灯源程序

51tracer仿真器完美支持最新版本 keil uv3

51 TRACER仿真器是目前同行业功能完整,稳定,技术先进的仿真器。

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

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

单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(); //上电即运行跑马灯程序

}

零成本学习之单片机开发之(3)跑马灯原来可以这么玩

从今天开始给大家逐步讲解单片机编程,有兴趣的小伙伴们,可以关注本课程,完全免费。

本人从事从2004年大学毕业开始从事开发工作,先后做过单片机开发、ucOSII开发、手机开发、android APP开发、PHP开发、微信小程序开发,目前从事物联网开发。我本人并非学计算机的,除了学校上课之外,基本上这些开发都是自学的。边学习边工作,基本上以学以致用为目的,用到什么学习什么。

深深体会到自学的艰辛,尤其是最初入门的时候,那道砍迈过去后面再学习基本上就简单多了,所谓触类旁通,举一反三。但是前面打基础的时候是非常费力的,看到很多评论说C语言指针太难了,后来就放弃了。其实那是没有找到好的学习方法,没有人指导。只要有人带一带指点一下,问题很快就能解决。

相比于国外的开源学习氛围,我认为我们做的还远远不够,我们的编程大师还非常少,像ucLinux、ucOSII、FreeRtos等等非常有名的嵌入式操作系统,商业的更不用说了,太多了。我们在软件方面一直都是落后的状态,当然近几年我们自己也有不少好的作品。比如,Huawei LiteOS、Alios Things、djyos、RT-Thread、SylixOS等。一直想为学习单片机的同学做点什么,今年相对来说会轻松一些,利用闲暇时间,给大家分享一些案例、学习方法和心得。本课系列课程主要针对初学者、单片机学习爱好者、学习中遇到困难者,有什么不清楚的地方可以留言讨论。

首先、课程目标

使用一个按键和8个LED指示灯实现跑马灯效果,总共4中显示效果使用按键按下事件切换显示模式

第二、原理图设计

添加8个LED指示灯,也可以利用上节课的原理图直接用右键复制出7个LED元器件添加8个限流电阻,并调整布线,直接上结果。

第三、编码设计

软硬件接口

端口P0 第一个管脚P00z作为按键输入端口端口P2作为LED的输出端口

软件流程

1.串口初始化

2.主循环处入口

检测按键事件 根据按键事件切换显示模式 根据模式更新显示数据 根据显示模式显示显示数据

3.考虑到排版整洁性,只上了主函数代码,其他模块代码见源代码文件

void main(void)

{

initUart();//串口初始化

while(1)//主循环

{

handleKey();//检测按键

checkMode();//根据按键事件切换显示模式

handleMode();//根据显示模式更新显示数据

if(ledmode%2==0)//根据显示模式把数据显示到LED上

displayDriver1(cnt);

else

displayDriver2(cnt);

delay(100); //延时100ms

}

}

最后、知识点总结

1.跑马灯也是IO操作的进一步巩固,只不过加入了时序上的小算法,看起来更具有动态感

2.注意如何通过按键事件切换模式的

3.注意如何模式和更新的数据进行换算的

4.注意显示驱动的技巧

5.本次课程所用的工程文件私信20002,系统自动给出下载链接。

本次课程到此结束,如果有什么疑问欢迎留言。

相关问答

求STC89C52的 单片机跑马灯 C语言程序?

STC89C52是常用的单片机芯片,以下是该型号单片机跑马灯的C语言程序示例,希望能对您有帮助:```c#includeSTC89C52是常用的单片机芯片,以下是该型号单片机跑...

vtv 跑马灯 闪烁是怎么回事?

1、电视电源灯一直闪烁可能是因为电源线似断非断、插座内部接触不良。解决办法:检查电源线是完好,或者更换一个新的排插。2、电视电源灯一直闪烁可能是因为CP...

童鞋们!帮忙答一下:51 单片机 最小系统( 跑马灯 )不工作?,视频...

[回答]10年经验开发技术团队-支从事软件开发10余年、反应迅速、讲求团队合作的技术团队,奠定了开发实力的高起点个性化在线网校平台-多场景在线课堂直播形...

为什么自己设计不出来 单片机 程序?该怎么做?

设计编写单片机程序是一个渐进的过程不可一蹴而就,毕竟单片机程序是与硬件有密切关系的,我们一般称为单片机程序叫底层硬件驱动程序。编写程序不但要对软件要熟...

单片机 技术与应用”课程标准设计

[回答]1原有教学大纲与新课标的差异原来使用的“单片机技术与应用”课程的教学大纲对知识点分解层层深入,便于学生由浅入深地学习相关知识。但是由于...

led三线和四线的区别?

1、成本:三线片更节约成本,四线片所增加的浆料提高了成本2、性能:四线电对细栅线电流的采集效果更好,转换效率更高并且功率损耗比三线低,更加牢固稳定。不...

人眼对于多少赫兹频率以上的刷新率基本不感到闪烁? - 乖乖球...

答:刷新率达到100Hz时,几乎不感到闪烁。试验:(1)初始,单片机跑马灯试验,初始设置闪烁周期100ms,使得两个LED灯以10Hz刷新率来回闪烁(交替亮暗)。(2)...

人眼对于多少赫兹频率以上的刷新率基本不感到闪烁? - 131****...

答:刷新率达到100Hz时,几乎不感到闪烁。试验:(1)初始,单片机跑马灯试验,初始设置闪烁周期100ms,使得两个LED灯以10Hz刷新率来回闪烁(交替亮暗)。(2)...

北京七彩循环装饰灯控制器

.foxbaby1682天前七彩循环装饰灯电路的课程设计是不是和跑马灯差不多啊,用单片机加驱动电路就行了猪小七ice3天前单片机控制装饰灯的程序和电路图有具体要求h...

猜你喜欢