求单片机编程高手解答一下这道题

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-04
解答一下下面这道编程题

这是累乘法,后面就是1+1*2+2*3+6*4+24*5.....
就是这个题目的解题思路 也可以用for来执行 更容易懂

这种程序一下子要做20个分支,其实就是考核散转分支程序吗,做3~5个分支,会做就行了,重复做20个分支没有必要。

假设晶振12MHz,参考如下程序

ORG  0000H   
AJMP  MAIN     ;跳转到主程序去运行 
ORG  0003H   ;外部中断0入口地址 
LJMP  EX0INT    ;转到中断服务程序去运行 
ORG   200H     
MAIN: 
   MOV  P1,#0FFH  ; 熄灭掉P1端口的灯 
   SETB P3.2;让P3.2这引脚置为高电平,等下按下其所接的开关将有下降沿触发 
   SETB   IT0          ;外部中断0条件 下降沿触发
   SETB   EX0          ;外部中断0条件  使能外部中断
   SETB   EA           ;外部中断0条件 使能总中断
LOOP:AJMP  LOOP       ;

EX0INT:CPL  P1         ;对P1脚取反,即让P1.0所接的LED亮起来 
     ACALL  DELAY1MS         ;延时,1MS 
     RETI              ;中断服务程序返回,返回到LOOP处等待下次中断 
DELAY1MS:   ;延时子程序,12MHZ 延时时间为1MS
    MOV   R1,#1 
D: MOV   R2,#2 
T: MOV   R3,#248 
    DJNZ  R3,$ 
    DJNZ  R2,T 
    DJNZ  R1,D 
    RET        ;子程序返回指令,子程序的设计一般都是因为主程序要调用它, 
               ;调用完是要返回到主程序继续运行下一个语句的     
    END


晶振频率是多少?

 

正确程序如下:

;
    ORG   00H    
    SJMP  ST
 
    ORG   03H
    SETB  F0
    RETI
 
ST: MOV   IE, #81H
    SETB  IT0 
    JNB   F0, $      ;等待中断
 
FL: XRL   P1, #255
    DJNZ  R7, $
    DJNZ  R7, $
    SJMP  FL
 
END


  • 求高手解答单片机问题.
    答:1.执行CALL指令前SP=40H,A=30H,但是在SUBR中对SP压栈2009H,在执行RET指令后将2009H送回PC,造成单片机跳转到0x2009处继续执行指令,但这个位置不是程序中规定的指令开始地址,所以运行后A=30H,SP=42H 2.A是8位的寄存器吧?0+1+2+...+100得到的是16位的数据,A里装不下呢,程序这么写...
  • 求高手解答单片机问题。
    答:25、假定(SP)=40H,(39H)=30H,(40H)=60H。执行下列指令:--题目有错,39H、40H,不是连续的单元,不能当做本题目的已知条件。POP DPH ,POP DPL后,DPTR的内容为( ),SP的内容是( )。26、单片机的堆栈栈顶由( SP )来指示,复位时起位置在( 07H )单元。27、单片机内部...
  • 求单片机高手解答 空白的都是要填的
    答:1.单片机应用系统是由 软件 和 硬件 组成的。2、除了单片机和电源外,单片机最小系统包括 复位 和 时钟 电路。3、MCS-51系列单片机的XTAL1和XTAL2引脚是 晶振 引脚。4、MCS-51系列单片机的应用程序一般存放在 程序存储器 中。5、MCS-51系列单片机的复位电路有两...
  • 单片机初学者,单片机汇编语言不懂,谁能帮我看下,谢谢 ORG 0000H MOV...
    答:MOV P1,#0FFH ;给P1口赋值FFH,即P1口全部置1P1.0=1;P1.0口置1,这里单独给P1口的第一位置1.;这个程序没写完,至少应该结尾处有一个END,为了使程序可控,结束前加一个死循环较好。因此需要加如下两句:SJMP $ ;原地循环,这样可以保持以前的状态END ;程序结束,这也是伪指令,通知编译器,所有程序到此完结。 本...
  • 求单片机编程高手解答一下这道题
    答:假设晶振12MHz,参考如下程序 ORG 0000H AJMP MAIN ;跳转到主程序去运行 ORG 0003H ;外部中断0入口地址 LJMP EX0INT ;转到中断服务程序去运行 ORG 200H MAIN: MOV P1,#0FFH ; 熄灭掉P1端口的灯 SETB P3.2;让P3.2这引脚置为高电平,等下按下其所接的开...
  • 单片机汇编高手进 ,这道题怎么算 求详细过程?
    答:SP保存的是ACALL指令之后的下一条指令的地址,ACALL指令占了2字节,所以ACALL SUBTRN之后指令的地址是0125H,则61H=25H,62H=01H。 ATF144X | 发布于2013-02-28 举报| 评论 11 0 ACALL指令占了2字节,SUBTRN占了2字节,所以ACALL SUBTRN之后下一条指令的地址是0127H。0345H27H01H 小兆86 | 发布...
  • 请各位高手回答一下下面的单片机程序问题!谢谢!
    答:执行 DJNZ Rn, rel 指令耗用2个机器周期,即2μs 该段程序执行该类指令总次数=250x200x10=500000 耗用时间 = 500000x2μs = 10^6μs =1s 若改为延时0.1 第三行指令改为 LOOP1: MOV R1, #01 若改为延时0.5s, 第三行指令改为 LOOP1: MOV R3, #05 若改为延时2s, 第三行...
  • 急求单片机几道试题答案,哪位高手来帮下忙,谢谢
    答:CLR C MOVA A,#B1H RLC A 3、(1)下列程序段执行后,(R0)=(7FH ),(7EH)=( 00H ),(7FH)=( 40H )。MOV R0,#7EH MOV 7EH ,#0FFH MOV 7FH,#40H INC @R0 INC R0 (2)设(SP)=60H,(ACC)=37H,(B)=78H执行下列指令 PUSH ...
  • 恳求各位高手:帮忙看一下这个单片机课设题目呗。题目为 ADC0808转换 谢 ...
    答:1.基本知识 ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。(1).ADC0809的内部逻辑结构 由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通...
  • 单片机考试求答案,急急急!请高手帮忙!
    答:13、用汇编语言编写的程序称为 源 程序,通过汇编后得到的用机器码表示的程序称为 目标 程序。14、编程时,一般在中断服务子程序和调用子程序中需用保护和恢复现场,保护现场用 PUSH 指令,恢复现场用 POP 指令。8、 RRC A为循环左移指令( 错,是带进位位的 循环右移指令。