No.5644 作者:windowswp98 邮件:windowswp98@sina.com.cn ID:4326 登陆:1次 QQ:28566322 文章数:9篇 最后登陆IP: 最后登陆:2001/12/23 10:37:00 注册:2001/12/23 10:37:00 财富:31 发帖时间:2002/2/8 14:04:00 发贴者IP:210.15.53.29 标题:windowswp98:C51编程:再次请教混合编程问题 摘要:No.5644C51编程:再次请教混合编程问题 上次经过大虾门的热心帮助,受益非浅,但是我在进行软件防真时,程序会死机。再次请各位大 虾指点一、二,谢谢了 程序在调用汇编子程序时会死机, 死机时执行代码为:003EH F6 MOV @R0, A 003FH D8FD DJNZ R0, 003EH 主程序: #include "reg51.h" #define uint unsigned int extern uint Left(uint temp); //申明函数头 void Delay(uint i) //延时程序 { uint j; for(;i>0;i--) for(j=0;j<120;j++) {;} } void main() { uint led=0x55; while(1) { P1=Left(led);//调用函数,实现左移 Delay(100); //延时 } } 汇编子程序: PUBLIC _Left _Left: MOV A,R7 ;第一个参数在R7中 RL A MOV R7,A ;返回值也在R7中 RET END 主程序汇编代码: 0000H 02003B LJMP 003BH 0003H 22 RET 0004H D3 SETB C 0005H EF MOV A, R7 0006H 9400 SUBB A, #00H 0008H EE MOV A, R6 0009H 9400 SUBB A, #00H 000BH 4015 JC 0022H 000DH E4 CLR A 000EH FD MOV R5, A 000FH FC MOV R4, A 0010H 0D INC R5 0011H BD0001 CJNE R5, #00H, 0015H 0014H 0C INC ......
>>返回讨论的主题
|
老古网执行:31毫秒 最大:7276毫秒 查询6次
|
|