当前位置: 代码迷 >> 单片机 >> 关于51单片机的一个作业题解决办法
  详细解决方案

关于51单片机的一个作业题解决办法

热度:64   发布时间:2016-04-28 15:23:49.0
关于51单片机的一个作业题
同学选了个关于选修课,问我个作业题,当时告诉我是用汇编写的,原本以为学过没啥问题的,但是一看差异太大,所以贴出来问问怎么搞的。


阅读程序,给每条指令加上注释,并总结出该程序段实现的功能。


P1_0	BIT	P1.0
     P1_7 BIT P1.7
     ORG 0000H
     LJMP MAIN
     ORG 000BH
     LJMP TIME0      
     ORG 001BH
     LJMP COUNT1     
MAIN:  CLR P1_7
         CLR P1_0       
     MOV TMOD,#61H
     MOV TH0,#3CH
     MOV TL0,#0B0H 
     MOV TH1,#0ECH
     MOV TL1,#0ECH 
     MOV IP,#08H   
     SETB ET0       
     SETB ET1       
     SETB EA       
     SETB TR0  
     SETB TR1       
DELAY: SJMP DELAY
TIME0:  CPL P1_0
      MOV TH0,#3CH
      MOV TL0,#0B0H
      RETI
COUNT1:CPL P1_7
          RETI
      END

------解决方案--------------------
LZ还算是诚实,我给一个大概的,具体的还得请LZ的同学去细查书籍。


P1_0 BIT P1.0
     P1_7 BIT P1.7;定义P10和P17口
     ORG 0000H   ;起始地址0000,复位后,就会跳到这里执行
     LJMP MAIN    ;跳到MAIN标号,体系结构决定的,预留前三个字节指令的意义
     ORG 000BH   ;定时器0中断
     LJMP TIME0   ;中断服务函数   
     ORG 001BH   ;计数器1中断
     LJMP COUNT1  ;中断服务
MAIN:  CLR P1_7
         CLR P1_0            ;把IO上对应的这两位都清0
     MOV TMOD,#61H
     MOV TH0,#3CH
     MOV TL0,#0B0H 
     MOV TH1,#0ECH
     MOV TL1,#0ECH 
     MOV IP,#08H     ;以这段为对定时器0和定时器1的配置,具体的计算,找书看看吧
     SETB ET0       
     SETB ET1          ;使能两个中断
     SETB EA           ;开全局中断
     SETB TR0  
     SETB TR1          ;启动两个定时器
DELAY: SJMP DELAY                ;死循环
  相关解决方案