我才刚刚接触单片机,都是自学的。在实际中遇到很多问题,我知道只有站在巨人的肩上才能看得更远;我希望前辈给我这个雏鸟指点指点◎!<br />我用伟福6000的软件模拟器编译,<br />mode equ 00h<br />count equ 5000<br />times equ 200<br />disp reg p1<br />(编译后说的是操作码错误,我不明白,我看书书上说reg指令于equ指令类似,只不过右边的是寄存器,输出或输入端口,储存器地址;如果指令正确的话那么编译以后也应该没有问题,可是编译后确说是操作码错误,望指教!)<br />led reg p0.7<br />(出现上面的问题后,我不用reg 指令,直接用p0.7和p1)<br />org 30h<br />jmp start<br />start:<br /> MOV disp,#0ffh(改为:mov p1,#0ffh)<br /> clp led(改为:mov p0.7,#0)<br /> mov tmod,#mode<br />loop:<br /> (加上:clr p0.7用来弥补下面因修改clp led 后程序失去的功能,即当r3超过60后,改变p0.7的状态) <br /> mov r1,#0h<br /> mov r3,#60<br />next:<br /> mov r0,#times<br /> mov a,r1<br /> da a<br /> mov r1,a<br /> mov p1,a<br />again:<br /> mov th0,#(8192-count)/32 <br /> mov thl,#(8192-count).mod.32<br />[ 在改完程序后再编译,程序乃还有问题,问题是说为定义标识符:mod ;此处我也不明白望高手指教!]<br /> setb tr0<br />wait:<br /> jbc tf0,timeout<br /> jmp wait<br />timeout:<br /> CLR tr0<br /> djnz r0,again<br /> inc r1<br /> djnz r3,next<br /> cpl led(改为setb p0.7)<br /> <br /> jmp loop<br /> end <br />最后我想问问你们对于da指令的应用,什么时候需要切换到寄存器组?再单片机中寄存器组有那些,功能是都是什么!<br /> <br /> |
|