chào các anh!!e mới lần đầu làm việc với LCD ko hiểu code của e có vấn đề gì mà e mo phỏng bằng protues nó ko chạy gì hết ạ!!a nào gặp rồi hoặc biết cách khắc phục thì chỉ giúp e với e xin đa tạ!!!
Code:
org 0000h
en equ p3.7
rs equ p3.6
rw equ p3.5
data1 equ p1
;*********************khoitaolcd*************************************
init_lcd:
Mov data1,#38h ;cau hinh cho lcd giao tiep data 8bit che do 2 hang
clr rs ;bao cho lcd biet day la lenh
clr rw ;dua rw xuong muc thap de gui lenh hoac du lieu
setb en ;bat dau mot lan lam viec voi lcd
clr en ;hoan thanh 1 lan gui cho lcd bat dau xu li
call wait_lcd ;doi lcd xu li xong moi tiep tuc
mov data1,#0eh ;yeu cau on lcd & on con tro duoi hang
clr rs
clr rw
setb en ;tiep tuc lan gui lenh thu 2
clr en
call wait_lcd
mov data1,#06h ;yeu cau lcd tu dich con tro sau khi in 1 ki tu
clr rs
clr rw
setb en
clr en
call wait_lcd
ret
;************************************ham wait_lcd******************************
wait_lcd:
Clr rs
mov data1,#0ffh ;cau hinh p1 la port nhap
setb en
clr rs
setb rw
check_busy:
Clr en
setb en
mov a,data1 ;doc du lieu ve
jb acc.7,check_busy ;lcd con ban thi doi tiep
ret
;***********************************chuong trinh clear_lcd*************************
clear_lcd:
Clr rs
clr rw
mov data1,#01h ;gui lenh xoa lcd
setb en
clr en
call wait_lcd
ret
;*************************************lcd_command************************************
lcd_command:
Mov data1,a ;dua command_data len bus
clr rs ;chon thanh ghi lenh
clr rw ;chon write len lcd
setb en
clr en ;tao canh xuong
call wait_lcd ;cho lcd thuc hien
ret
;***************************************chuong trinh write_lcd***********************
write:
Mov data1,a ;dua data len bus
setb rs ;chon thanh ghi data
clr rw ;cho phep ghi
setb en
clr en
call wait_lcd
ret
;************************************chuong trinh chinh*******************************
call init_lcd
call clear_lcd
mov a,#'h'
call write
mov a,#'e'
call write
mov a,#'l'
call write
mov a,#'l'
call write
mov a,#'o'
call write
mov a,#' '
call write
mov a,#'w'
call write
mov a,#'o'
call write
mov a,#'r'
call write
mov a,#'l'
call write
mov a,#'d'
call write
sjmp $
end
Vậy là anh bạn này ngại đọc code free vì sợ khó rồi, vậy thì những người khác cũng ngại đọc code của anh bạn thì sao nhỉ ?
Comment