以下是我编的用em78p153单片机控制led灯渐亮程序,没有发现有什么错误的地方,软件仿真过了。可是烧录后用万用表接p5口发现表的指针在3-4v间摆个不停。实在找不出软件有什么问题了。 会不会是153的ic不适合用于这样的控制啊?头疼。 R17 EQU 0X17 ;P5口输出高电平计数器 R14 EQU 0X14 ;R17--〉R14,延时用 R15 EQU 0X15 ;延时用 P5 EQU 0X5 ;P5口 MOV A,@0x0 MOV 0x5,A MOV A,@0x0 IOW 0x5
BBMIE:MOV A,@OXFF MOV R17,A CALL LOOP1 ;灯由亮变暗子程序 NOP NOP NOP JMP BBMIE
LOOP1:MOV A,@0X0 ;灯亮 MOV P5,A DJZ R17 JMP E1 JMP GMIE E1: MOV A,R17 MOV R14,A
D1: DJZ R14 ;延时R14*2*100US(r14=r17) JMP D1 MOV A,@0XF ;灯灭 MOV P5,A
COM R17 MOV A,R17 MOV R14,A D2: DJZ R14 ;延时R14*2*100US(r14=/r17) JMP D2 COM R17 JMP LOOP1
以下是波形解说图。
另外我加长乐延时时间,即在D1和D2延时出加了10个nop指令,结果发现烧录后的ic的p5口就一直是低电平保持不变,是什么原因啊??为何加多了几个nop就不行了?加nop如下: D1: NOP NOP …… NOP NOP (共10个nop指令) DJZ R14 ;延时R14*2*100US(r14=r17) JMP D1 MOV A,@0XF ;灯灭 MOV P5,A
|