|  | 
 
| 
最近在学习oc8051,是参考leishangwen版主提供的《DE2上使用OC8051运行点灯程序》先来实践一下,其中(一)可以实现,但是(二)不能实现,下到板子上后led灯全亮,通过rtl仿真,看到p1口的输出,先是复位,然后0x01,然后变成0x00,之后又始终为0xFF,通过(二)给的汇编程序,发现跳转指令好像不能正确执行诶,因为rtl仿真时看到r2等寄存器好像不是按照程序变化的,不知道我理解的是否正确(仿真图如下)。我也通过网上查找一些资料,好像是说oc上下的8051存在一些bug,导致某些指令不能正常执行。
×
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册  
 汇编程序:
 
 
 
    
        复制代码
 LJMP 100h
     org 100h
     mov r2,#01
     mov p1,#0x01
incR1:
     mov p1,r1
     call delay
     inc r1
     jmp incR1
delay:
     mov r5,#00
dly:
     mov r7,#00
dly1:
     mov r6,#03
     djnz r6,$
     djnz r7,dly1
     djnz r5,dly
     ret
 
 
 
 仿真图:
 
 仿真图   
 
 
 
 
 《DE2上使用OC8051运行点灯程序》
 http://download.csdn.net/detail/leishangwen/5173363
 DE2上使用OC8051运行点灯程序(一)
 http://wenku.baidu.com/view/8df1381b6c175f0e7cd13783.html
 DE2上使用OC8051运行点灯程序(二)
 http://wenku.baidu.com/view/a9c444f3aef8941ea76e05c9.html
 | 
 |