No.91 作者:009423 邮件: ID:8551 登陆:6次 QQ:66464104 文章数:45篇 最后登陆IP:61.163.71.68 最后登陆:2003/4/2 16:49:03 注册:2003/1/6 20:54:00 财富:83 发帖时间:2003/3/12 15:22:00 发贴者IP:61.163.71.8 标题:009423:[原创]单片机编程的一个小问题!我急需解答! 摘要:No.91[原创]单片机编程的一个小问题!我急需解答! 我的单片机是at89c51,其复位电路采用的是DS1232L,接法为: ds1232:1----------ds1232:4中间为复位开关 ds1232:3,4-------接地 ds1232:5--------89c51:rst ds1232:7----------89c51:ale ds1232:2,8-------+5v 我用89c51的p0.0(驱动脉冲)\p0.1(控制方向),p2.0(驱动脉冲)\p2.1(控制方向)来驱动两个步进电机,其程序如下:但是在程序运行过程中出现以下问题,我不知道该怎样解决,请各位予以帮助,我将不胜感激: 问题一:每次打开电源开关,单片机上电,程序不从头开始运行, 而从(1)处开始运行。 问题二:如果在程序结尾加上一下语句:ajmp $,(也就是让单片机只运行一遍),程序便不会出错,如果不加该语句,让单片机循环运行该程序,则会在运行第二遍时,运行到(1)处,步进电机2(也就是p2.0所驱动的电机)便会一直运行下去(不仅仅是100个脉冲),程序不再运行.进入死循环,请问为什么! ORG 0000H LJMP START ORG 0030H START: MOV R0, #100 SETB P0.1 LOOP1: CLR P0.0 ACALL DEL2 SETB P0.0 ACALL DEL1 DJNZ R0, LOOP1 acall del3 (1) MOV R7, #100 SETB P2.1 LOOP4: CLR P2.0 ACALL DEL2 SE ......
>>返回讨论的主题
|