关于单片机编程的问题

ORG 0000H
START: MOV R2,#08H
MOV A,#0FEH
NEXT: MOV P1,A
ACALL DELAY
RR A
DJNZ R2,NEXT
SJMP START
DELAY: MOV R3,#0EFH
DEL2: MOV R4,#0FFH
DEL1: NOP
DJNZ R4,DEL1
DJNZ R3,DEL2
RET
END
DELAY是延迟程序,那么DEL1和DEL2在程序中有什么作用?R4和R3又有什么作用?
DJNZ R4,DEL1 又是什么意思?

DELAY: MOV R3,#0EFH ; 延迟程序 是 包括 以下所有指令语句。
DEL2: MOV R4,#0FFH ; 这两句是让 R3 = 239 R4 = 255
DEL1: NOP ; 这是空操作指令
DJNZ R4,DEL1 ; 这是 R4 = R4 - 1 如果不 = 0 ,跳转至 DEL1
DJNZ R3,DEL2 ; 这是 R3 = R3 - 1 如果不 = 0 ,跳转至 DEL2
RET ; 这是 子程序 返回
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-02-20
Hex是编译后生成的,要在PIC中运行的文件--机器语言。c文件是你的程序文件。要建立个工程,编写好C程序后,编译生成Hex文件。在用下载器吧Hex文件烧到PIC中。

单片机编程知识九大问答知识
答:有关这方面的教材,大学里常用的一本是《IBM-PC汇编语言程序设计》清华大学出版社出版的,在网上以及书店都是可以找到的,另外网上还可以搜索到很多其他的教材如:《微机原理及汇编语言教程》(杨延双 张晓冬 等编著 )和《16\/32 位微机原理、汇编语言及接口技术》(作者: 钟晓捷 陈涛 ,机械工业出版...

关于单片机的原码,反码,补码 之 汇编程序的问题
1. 它用的数据,并不是补码,而是原码。因此计算起来,需要变换称为补码,相当的麻烦。2. 原码变换成补码,先要判断正负。负数的原码,才需要变换,正数不用变。而这个程序并没有判断,都进行了变换,这是错误的。3. 负数原码变换到补码,是数值部分取反加一。而这个程序,是全部都取反了。4. 程序...

1.单片机实验:若将40H的内容改为OFH,程序应将如何修改?(写出原始程序...
根据题目描述,我们可以推断出这是一道关于单片机编程的实验题。在此,我将简要介绍一下修改40H的内容为OFH后程序应该如何修改的方法。首先,需要明确的是40H和OFH都是16进制数。40H对应10进制数为64,而OFH对应10进制数为15。因此,如果将40H的内容改为OFH,相当于将内存地址为40H的单元中存储的数值...

51单片机的编程问题?
C51语句: P0_0 = 1;P0_0声明为sbit,因此编译成:setb 80h,这将把位地址空间的0x80地址的bit的值置1。这个位正是P0口的bit0,执行后,P0.0将输出高阻态。而P0.1-.7不会变化。2:C51为什么要嵌套汇编 51单片机一个显著优点就是指令执行时间固定,因此可以适应时序要求严格的场合。例如符合I...

单片机编程问题
单片机是指一个集成在一块芯片上的完整计算机系统。尽管它的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。然后,所谓的单片机编程就是,基于单片机进行的程序开发,...

单片机汇编语言的几个疑问
我个人当初几乎都是这样找出的问题 大的汇编程序的调试确实比较麻烦,首先要求你对软件流程很清晰,对单片机的运行模式也要很了解。至于你现在的程序如果有问题,我建议还是采用仿真设断点的方式来找问题,尤其是如果搞单片机的时间不长的话,这样其实可能更快些。希望所说能对你有所帮助。

单片机编程求解答
设控制寄存器地址为3BH,请确定控制字并初始化编程。解答1:FADD:MOV R0,#30H MOV R1,#40H MOV R2,#4 CLR C FADD1:MOV A,@R0 ADDC A,@R1 MOV @R0,A INC R0 INC R1 DJNZ R2,FADD1 RET 2:符合条件的控制字为94H INIT:MOV R0,#3BH MOV A,#94H MOVX @R0,A RET ...

单片机编程入门基础知识怎么解决单片机编程中undefinedidentifier...
关于单片机编程入门基础知识,怎么解决单片机编程中undefined identifier这个很多人还不知道,今天来为大家解答以上的问题,现在让我们一起来看看吧!1、undefined identifier是未定义的标志符,在程序内使用了没有被定义的标志符或者变量。2、具体解决办法:找到未定义的标志符,对其进行赋值即可。3、定义的是...

求解单片机编程题目
一、将(0~99)的100个连续十进制数,依次存入首地址为2000H的RAM区的存储单元中去。MOV DPTR, #2000H MOV A, #0 MOV R1, #100 LOOP:MOVX @DPTR, A INC A INC DPTR DJNZ R1, LOOP SJMP 二、定时\/计数器进行初始化编程。MOV TMOD, #01010001B MOV TH1, #(...

单片机编程问题。实验是数码管从1~9显示完后蜂鸣器一直响。我是初学...
三、C语言中的循环可以嵌套循环,不管任何形式的,无限嵌套在语法上是没有错得,但在实际运行会出现很严重问题,会导致系统死机崩溃,程序永远死在那,出不来。四、没错,可以写成i++,而且推荐;五、因为i=1只是你赋的初值,没有这句默认为0,而且最主要的是i已经在下面的循环体内被赋了初值,即...

相似回答