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