三九宝宝网宝宝教育教学论文

单片机汇编语言求助

02月15日 编辑 39baobao.com

[51单片机汇编语言常用数据处理程序设计查表送寄存器]ORG 0000H MOV DPTR,#TABLE MOV R2,A (暂存A中原来的参数) MOVC A,A+DPTR ;到表头地址加A中的偏移量处取数 MOV R0,A (把取来的第一个数放在R0中) XCH A,R2 (把原暂存的A值和和才...+阅读

ORG 0000H ;汇编标志,伪指令,就是单片机不执行 ;的,表示汇编时从程序地址0000H开始 RESET:AJMP MAIN ;跳转到MAIN ORG 000BH ;同上,从000BH开始 AJMP ITOP ;跳转到ITOP,不要用LCALL ORG 0100H ;继续伪指令...从0100H开始 MAIN: MOV SP,#60H ;堆栈从61H开始 MOV TMOD,#01H ; 定时器0在16位方式下工作 ACALL PTOMO ;调用PTOMO HERE: AJMP HERE ;跳转到HERE PTOMO:MOV TLO,#0CH ;这句打错了,是TL0 MOV THO,#0FEH ;也错了,是TH0 ;这两句是给T0赋初值 SETB TR0 ;启动定时器T0 SETB ET0 ;允许T0中断 SETB EA ;中断使能 RET ;返回 ITOP:MOV TLO,#0CH ;和PTOMO的前两句是一样的 MOV TH0,#0FEH ;这个就打对了呢~~ CPL P1.0 ;P1.0取反 RETI ;中断返回 定时器的内容就看书吧~ RET 调用返回,弹出堆栈顶的两字节作为PC值,然后转向这个地址 RETI 中断返回,除了RET的功能外,还会改变一些其它寄存器的值,比如中断优先标志等等... PC 指向当前执行语句的下一条语句 单片机执行一条指令可以分为两个阶段:取指令 、执行指令 在取指令阶段PC会自动增加,增加值为当前要执行指令字节数 跳转、调用、返回指令会在执行阶段改变PC内容 假设 ACALL这句地址为 0104H, HERE为0106H, PTOMO 为0108H, ITOP为XXXXH 执行过程如下: 首先从0000H开始 AJMP MAIN 取指时PC=0002H 执行后PC=0100H,下一条执行MAIN MAIN执行到MOV TMOD,#01H这句时 PC=0104H 到ACALL ... 的时候,先取指令,PC=0106H,再执行ACALL ACALL执行时,先将PC值0106H压栈,然后将PC改为PTOMO这句的值,也就是PC=0108H 接下来到PTOMO这句,取指,PC增加,执行......直到RET 执行RET时,取指阶段后PC=XXXXH,然后执行时将0106H弹回PC 于是到HERE这句,取指,PC=0108H, 执行,将PC改为0106H 响应中断时,先将当前PC压栈,然后机器内部自动执行一条调用指令,执行000BH地址的指令 然后又是转移,去执行ITOP,直到RETI 如果单片机是在执行完HERE这句响应中断,会返回到HERE处 否则,也可能返回到PTOMO这句... 此外,我猜测,PTOMO、ITOP中的O可能也是0,不过这个就无所谓了~ ================ 以上

以下为关联文档:

单片机汇编语言编程这个是用P1口接发光管的汇编程序 ORG 0000H INITIA: LJMP 0200H ORG 0800H DELAY: MOV R7,#10 DEL1: MOV R6,#125 DEL2: MOV R5,#200 DJNZ R5,$ DJNZ R6,DEL2 DJNZ R7,DEL1...

关于51单片机汇编语言程序ORG 0000H LJMP MAIN ORG 000BH LCALL TIMER0 ORG 1000H MAIN: LCALL INIT WAIT : CJNE R0,#10,WAIT MOV R0,#0 RRC A MOV P1,A SJMP WAIT INIT MOV TMOD,#01H MOV TH0,#3CH...

汇编语言编写一个51单片机的程序首先搞清LED管是高电平导通还是低电平导通。 如果是低电平导通,P1赋0x00时,发光管全亮,0xff时,全灭。 具体程序: #define uint unsigned int #define uchar unsigned char void d...

单片机计数程序汇编语言ORG 0H AJMP START ORG 100H START:MOV SP,#60H MOV P1,#0FFH MOV R5,#0 LOOP:JNB P3.1,LOOP0 JB P3.1,LOOP LOOP0:JNB P3.1,LOOP0 INC R5 CJNE R5,#1,LOOP1 CLR P1.0 LOOP1...

单片机用c语言编一个程序要求用内部定时计数器对30个脉冲进行看了一下你的要求,单片机里有个GATE位的设置如果你懂得用,编这个程序就不难了。下面是我个人按照你要求刚编的程序: /*********************** 功能:内部定时/计数器记录脉冲个...

急!51单片机定时计数器实验编程汇编语言将计数值按二进制数在P1口驱动发光二极管显示出来,到15秒后,计数值清零再从0开始计。 --这些发光二极管,是低电平发光,还是高电平发光? 下面的程序,适合于低电平发光: ORG 0000H LJ...

基于MSP430单片机的菜单程序设计思路以及简单示例最好C语言我以前倒是做过,不过程序还有点问题,调时间的时候容易过界,但正常走时候就正常了。开发环境用的IAR,单片机用f149,显示用的1602的四线模式。你自己看着改程序吧,其实我也是51上移...

KEIL C51单片机汇编语言编程问题NAME CS_T ? PR? CS_T? CS_T SEGMENT CODE PUBLIC CS_T RSEG ? PR? CS_T? CS_T 以上是什么意思 编译软件 肯定 不认 , 以下程序 应该 可以编译 CS_T: PUSH ACC ; 这程序看不出...

跪求单片机c51用汇编语言写的程序功能为:8只发光二极管依次点/* 实验目的:初步了解单片机I/O口的工作原理,进一步掌握51单片机汇编指令。 * 实验内容:用汇编指令对单片机I/O口进行编程,控制8个发光二极管的流水亮灭。 */ /* 程序详细功能...

推荐阅读
图文推荐