سلام ، من یه پروژه فرکانس متر 8051 دارم که برنامشو نوشتم ولی توی پروتئوس روی lcd چیزی نشون نمیده :sad: فکر کنم برنامه ی lcd یا وقفه ها مشکل داره
پایه های lcd رو هم درست وصل کرد. اینم برنامه:
ORG 0
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 001BH
LJMP T1ISR
ORG 0030H
MAIN:
MOV R0,#0
MOV R3,#20
MOV IE,#10001010B
MOV TMOD,#61H
MOV TH1,#00H
SETB TR1
AA: MOV TL0,#0B0H
MOV TH0,#3CH
SETB TR0
HERE1:JNB TF0,HERE1
HERE2:JNB TF1,HERE2
T0ISR:
CLR TF0
CLR TR0
DJNZ R3,AA
MOV B,#255
MOV A,R0
MUL AB
ADD A,TL1
MOV R1,A
MOV A,B
ADDC A,TH1
MOV R2,A
CALL LCD
MOV R0,#0
MOV R3,#20
SETB TR0
RETI
T1ISR:
INC R0
CLR TR1
CLR TF1
RETI
LCD:
MOV A,#38H
CALL COMMAND
CALL DELAY
MOV A,#0CH
CALL COMMAND
CALL DELAY
MOV A,#06H
CALL COMMAND
CALL DELAY
MOV A,#01H
CALL COMMAND
CALL DELAY
MOV A,#'f'
CALL DISPLAY
CALL DELAY
MOV A,#'r'
CALL DISPLAY
CALL DELAY
MOV A,#'e'
CALL DISPLAY
CALL DELAY
MOV A,#'q'
CALL DISPLAY
CALL DELAY
MOV A,#':'
CALL DISPLAY
CALL DELAY
MOV A,R2
CALL DISPLAY
CALL DELAY
MOV A,R1
CALL DISPLAY
CALL DELAY
MOV A,#'H'
CALL DISPLAY
CALL DELAY
MOV A,#'Z'
CALL DISPLAY
CALL DELAY
COMMAND:
MOV P2,A
CLR P0.0
CLR P0.1
SETB P0.2
CLR P0.2
RET
DELAY:
MOV R4,#100
BB: MOV R5,#200
CC: DJNZ R5,CC
DJNZ R4,BB
RET
DISPLAY:
MOV P2,A
SETB P0.0
CLR P0.1
SETB P0.2
CLR P0.2
RET
END
تو رو خدا کمک کنید! خیلی مهمه :cry:

ORG 0
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 001BH
LJMP T1ISR
ORG 0030H
MAIN:
MOV R0,#0
MOV R3,#20
MOV IE,#10001010B
MOV TMOD,#61H
MOV TH1,#00H
SETB TR1
AA: MOV TL0,#0B0H
MOV TH0,#3CH
SETB TR0
HERE1:JNB TF0,HERE1
HERE2:JNB TF1,HERE2
T0ISR:
CLR TF0
CLR TR0
DJNZ R3,AA
MOV B,#255
MOV A,R0
MUL AB
ADD A,TL1
MOV R1,A
MOV A,B
ADDC A,TH1
MOV R2,A
CALL LCD
MOV R0,#0
MOV R3,#20
SETB TR0
RETI
T1ISR:
INC R0
CLR TR1
CLR TF1
RETI
LCD:
MOV A,#38H
CALL COMMAND
CALL DELAY
MOV A,#0CH
CALL COMMAND
CALL DELAY
MOV A,#06H
CALL COMMAND
CALL DELAY
MOV A,#01H
CALL COMMAND
CALL DELAY
MOV A,#'f'
CALL DISPLAY
CALL DELAY
MOV A,#'r'
CALL DISPLAY
CALL DELAY
MOV A,#'e'
CALL DISPLAY
CALL DELAY
MOV A,#'q'
CALL DISPLAY
CALL DELAY
MOV A,#':'
CALL DISPLAY
CALL DELAY
MOV A,R2
CALL DISPLAY
CALL DELAY
MOV A,R1
CALL DISPLAY
CALL DELAY
MOV A,#'H'
CALL DISPLAY
CALL DELAY
MOV A,#'Z'
CALL DISPLAY
CALL DELAY
COMMAND:
MOV P2,A
CLR P0.0
CLR P0.1
SETB P0.2
CLR P0.2
RET
DELAY:
MOV R4,#100
BB: MOV R5,#200
CC: DJNZ R5,CC
DJNZ R4,BB
RET
DISPLAY:
MOV P2,A
SETB P0.0
CLR P0.1
SETB P0.2
CLR P0.2
RET
END
تو رو خدا کمک کنید! خیلی مهمه :cry:
دیدگاه