Code mình đã mô phỏng thành công trên Proteus nhưng khi ráp mạch thật thì LCD không hiện chữ gì cả mà chỉ hiện vài hàng đen ngang dọc. Bạn nào đã làm qua đề tài này làm ơn giúp mình.
LCD chân 1 nối nguồn, chân 2 nối mass, chân 3 nối mass luôn. chân 15 16 để trống.
8951 chân EA và chân PSEN nối nguồn, chân reset nối giữa tụ 10uf và R 10k. Không biết đúng không mà mạch không chạy...chán quá mình đã tháo ra và lắp lại mất lần cũng vậy.
Không hiểu sao mình không up hình lên diễn đàn được các bạn vào link sau xem đỡ.
http://lh5.ggpht.com/_f1vTmjZbxHA/St...M/AK%20LCD.JPG
Còn đây là code asm:
EN BIT P3.2
RS BIT P3.1
RW BIT P3.0
LCD_DATA EQU P1
ORG 000
MAIN:
SETB EN
CLR RS
CLR RW
MOV LCD_DATA,#38H ; Dat che do 2 dong
CLR EN
CALL DELAY
SETB EN
CLR RS
CLR RW
MOV LCD_DATA,#0CH ; Bat hien thi
CLR EN
CALL DELAY
LINE1:
MOV DPTR,#ON_LINE1
SETB EN
CLR RS
CLR RW
MOV LCD_DATA,#80H
CLR EN
CALL DELAY
CALL EXPORT
LINE2:
MOV DPTR,#ON_LINE2
SETB EN
CLR RS
CLR RW
MOV LCD_DATA,#0C0H
CLR EN
CALL DELAY
CALL EXPORT
EXPORT:
MOV R1,#0
LOOP:
MOV A, R1
MOVC A,@A+DPTR
SETB EN
SETB RS
CLR RW
MOV LCD_DATA,A
CLR EN
CALL DELAY
INC R1
CJNE R1,#20, LOOP
RET
DELAY:
MOV R7,#20
LOOP1:
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
LOOP2:
JNB TF0,LOOP2
CLR TF0
CLR TR0
DJNZ R7,LOOP1
RET
ORG 100H
ON_LINE1: DB ' KHOA CONG NGHE'
ORG 200H
ON_LINE2: DB 'DAI HOC CAN THO'
END
LCD chân 1 nối nguồn, chân 2 nối mass, chân 3 nối mass luôn. chân 15 16 để trống.
8951 chân EA và chân PSEN nối nguồn, chân reset nối giữa tụ 10uf và R 10k. Không biết đúng không mà mạch không chạy...chán quá mình đã tháo ra và lắp lại mất lần cũng vậy.
Không hiểu sao mình không up hình lên diễn đàn được các bạn vào link sau xem đỡ.
http://lh5.ggpht.com/_f1vTmjZbxHA/St...M/AK%20LCD.JPG
Còn đây là code asm:
EN BIT P3.2
RS BIT P3.1
RW BIT P3.0
LCD_DATA EQU P1
ORG 000
MAIN:
SETB EN
CLR RS
CLR RW
MOV LCD_DATA,#38H ; Dat che do 2 dong
CLR EN
CALL DELAY
SETB EN
CLR RS
CLR RW
MOV LCD_DATA,#0CH ; Bat hien thi
CLR EN
CALL DELAY
LINE1:
MOV DPTR,#ON_LINE1
SETB EN
CLR RS
CLR RW
MOV LCD_DATA,#80H
CLR EN
CALL DELAY
CALL EXPORT
LINE2:
MOV DPTR,#ON_LINE2
SETB EN
CLR RS
CLR RW
MOV LCD_DATA,#0C0H
CLR EN
CALL DELAY
CALL EXPORT
EXPORT:
MOV R1,#0
LOOP:
MOV A, R1
MOVC A,@A+DPTR
SETB EN
SETB RS
CLR RW
MOV LCD_DATA,A
CLR EN
CALL DELAY
INC R1
CJNE R1,#20, LOOP
RET
DELAY:
MOV R7,#20
LOOP1:
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
LOOP2:
JNB TF0,LOOP2
CLR TF0
CLR TR0
DJNZ R7,LOOP1
RET
ORG 100H
ON_LINE1: DB ' KHOA CONG NGHE'
ORG 200H
ON_LINE2: DB 'DAI HOC CAN THO'
END
Comment