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
Comment