以下是我编的用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