爱问知识人 爱问教育 医院库

单片机汇编语言编程问题

首页

单片机汇编语言编程问题

各位帮个忙啊,我学不懂汇编语言,这学期选修单片机,老师要求我们用汇编语言编写程序,然后翻译成机器代码在实验箱上实验.第一个是实现二极管灯的闪烁.请大虾们帮个忙啊.

提交回答
好评回答
  • 2018-04-03 10:05:44
      只要把汇编指令都写出来了,你就可以到指令表中找到每一条指令所对应的机器码,然后你只要在机器码后面加上操作数即可,比如,把一个30H单元送入A累加器;指令是这样的:MOV A , 30H 。那么你可以在指令表中查到执行这条指的机器码是1110 0101,但是由于这条指令后面的那个30H单元的数是根据你的要求在不断的变的,机器没规定你只能用30H单元,所以这个30的操作数必须由你填,它们和在一块儿,这条指令的机器码是:1110 0101 0011 0000用十六进制来表示:E530,很明显前两位E5是机器指定的,而后两位30是你自己加进去的。
      共是十六位,占用两个字节……。 你说的LED灯闪烁,不知是指的流水灯还是一只发光二极管在不停地闪烁?但不管是哪一种,有一点很重要。你在编写此程序时必须要考虑延时,因为51单片机的晶体振荡器最低频率可能是6M(具体数值我已记不清了)。也就是说单片机的每一个机器周期所占用的时间仅2微秒,如果你不考虑延时的话,那么你设计的那盏灯,它闪烁的结果是;亮2微秒,熄2微秒,也就是说每一秒钟要亮暗50万次,肉眼看这盏灯根本就不会有熄灭的时候,只是比不闪的灯暗了一半。
      我们生活中用的白炽灯,每秒钟亮暗100次,你能感觉出灯泡有熄灭的时候吗?更何况那是50万次啊! 比如设计流水灯的程序,不妨可以这样考虑它的算法。计数寄存器的高八位加上低八位,合起来也只有十六位,它能数的数最大也就是65535,就算单片机用的是最低的6M的晶体振荡器,一个机器周期是12个机器节拍,所以,每一个机器周期占用2微秒时间,从0数到65535,仅用了131070微秒就数完了,约130毫秒,如果就按这个延时去改变灯的亮暗时间,那么这盏灯每秒钟要亮暗3、4次,肉眼虽然能够看到灯有熄灭的时间了。
      但是眼睛看这样的灯总不会那么舒服,所以至少应让它延时到1秒钟亮暗一次。为了计算方便,就让计数器数100毫秒的时间吧!等计数器数到100毫秒后,就让它再数一次,然后再数一次……,等它数满5次后,这就是500毫秒(半秒钟),然后,我们再去改变灯的亮暗状态。
       这个程序可以这样来编: MOV A ,#0FEH ;最低位设为0 MOV P1, A ;点亮最低位灯 MOV TCON,#10H ;T1为方式1,定时 BEGIN: MOV R7 ,#05H ;设循环5次 STAR: MOV TH1 #3CH ;计数器数100毫秒 MOV TL1 #AFH SETB TR1 ;开始计数 ROU: JBC TF1 SE ;100毫秒到否? SJMP ROU ;等待到100毫秒 SE: CLR TR1 ;关闭计数器 DJNZ R7 STAR ;5次循环到否? RL A ;把0向左移一位 MOV P1 ,A ;改下一只灯亮 SJMP BEGIN 。
      

    如***

    2018-04-03 10:05:44

其他答案

    2018-04-03 05:05:44
  • 51的单片机
         ORG  0000H
      R2,#2
      L1:MOV R3,#200
      L2:MOV R4,#200
      L3:NOP
         NOP
         DJNZ R4,L3
         DJNZ R3,L2
         DJNZ R2,L1
         CPL P1.7
         JMP MAIN
         END
    Medwin编写C51汇编
    

    王***

    2018-04-03 05:05:44

类似问题

换一换

相关推荐

正在加载...
最新资料 推荐信息 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):