PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > MPASM

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

MPASM Lập trình bằng hợp ngữ là một việc làm vô cùng vất vả, tuy nhiên, để hiểu và làm việc với vi điều khiển, hợp ngữ trở thành một công cụ khá đắc lực ...

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 16-04-2007, 12:48 PM   #1
friends
Đệ tử 1 túi
 
Tham gia ngày: Jul 2006
Bài gửi: 19
:
Thumbs up Lcd

Cac huynh de cho minh hoi chut xiu :
Chuong trinh ben duoi minh viet de hien thi ki tu A len LCD ,nhung khi mo phong no thi khong chay ,minh khong biet sai o cho nao ,cac huynh de kiem tra dum va sua dum cho minh nha ,minh dang lam de tai nen dang can gap .Cam on nhieu!

Code:
TITLE "HIEN THI LEN LCD"
PROCESSOR P16F876A
#INCLUDE <P16F876A.INC> ;CHEN THU VIEN LIEN KET CHO CHUONG TRINH
__CONFIG 3F71H ;CAU HINH CAC BIT HE THONG
ERRORLEVEL -302 ;BO DI CAC LOI CHON BANK

cblock 0X020

LCD_TEMP
LCD_TEMP1
DELAY 
X_DELAY 
endc 
LCD_DATA EQU PORTB 
LCD_DATA_TRIS EQU TRISB
LCD_CTRL EQU PORTA 

; PORTA control bits
LCD_E EQU 2 
LCD_RW EQU 1 
LCD_RS EQU 0


org 0x000
GOTO START 
START 

;HIEN THI NHIET DO LEN LCD

LCDINIT

CLRF LCD_CTRL 

MOVLW 0x01E
CALL X_DELAY500 ; 30 * 0.5mS = 15mS

MOVLW 0x038 ; 8-bit-interface, 2-lines
CALL LCDPUTCMD
MOVLW 0x000 ; disp.off, curs.off, no-blink
CALL LCDDMODE
CALL LCDCLEAR
MOVLW 0x004 ; disp.on, curs.off
CALL LCDDMODE
MOVLW 0x002 ; auto-inc (shift-cursor)
CALL LCDEMODE
;MOVLW 0x01E
;CALL X_DELAY500
CALL LCDPUTCHAR
RETURN
;************************************************* *********************

LCDBUSY
BSF STATUS,RP0 ; bank 1
MOVLW 0x0FF ; Set PORTB for input
MOVWF LCD_DATA_TRIS
BCF STATUS, RP0 ; bank 0
BCF LCD_CTRL, LCD_RS ; lenh dang duoc viet len LCD
BSF LCD_CTRL, LCD_RW ; vdk doc du lieu tu LCD
BSF LCD_CTRL, LCD_E ; cho phep giao tiep LCD
MOVF LCD_DATA, W ; Read busy flag + DDram address
BCF LCD_CTRL, LCD_E ; cam
ANDLW 0x80 ; Check Busy flag, High = Busy
BTFSS STATUS, Z
GOTO LCDBUSY
LCDNOTBUSY
BCF LCD_CTRL, LCD_RW
BSF STATUS, RP0 ; bank 1
MOVLW 0x000
MOVWF LCD_DATA_TRIS ; Set PORTB for output
BCF STATUS, RP0 ; bank 0
RETURN
;************************************************* ********************

LCDDMODE
ANDLW 0x007 ; Strip upper bits
IORLW 0x008 ; Function set
CALL LCDPUTCMD
RETURN
;************************************************* *********************

LCDCLEAR
MOVLW 0x001
CALL LCDPUTCMD
RETURN
;************************************************* ********************

LCDEMODE
ANDLW 0x003 ; Strip upper bits
IORLW 0x004 ; Function set
CALL LCDPUTCMD
RETURN

;************************************************* *********************

LCDPUTCHAR
Movlw 0x080 ;dinh dia chi de xuat A
CALL LCDPUTCMD 
Movlw 'A'
movwf LCD_TEMP
CALL LCDBUSY ; Wait for LCD to be ready
BCF LCD_CTRL, LCD_RW ; vdk viet du lieu len LCD
BSF LCD_CTRL, LCD_RS ; du lieu dang duoc viet len LCD
BSF LCD_CTRL, LCD_E ; cho phep giao tiep LCD
MOVF LCD_TEMP, W 
MOVWF LCD_DATA ; Send data to LCD
BCF LCD_CTRL, LCD_E ; cam giao tiep LCD
RETURN



;************************************************* *********************

LCDPUTCMD
MOVWF LCD_TEMP ; Command to send is in W
CALL LCDBUSY ; Wait for LCD to be ready
BCF LCD_CTRL, LCD_RW ; vdk viet du lieu len LCD
BCF LCD_CTRL, LCD_RS ; lenh dang duoc viet len LCD
BSF LCD_CTRL, LCD_E ; cho phep giao tiep LCD
MOVF LCD_TEMP, W
MOVWF LCD_DATA ; Send data to LCD
BCF LCD_CTRL, LCD_E ; cam giao tiep LCD
RETURN

;************************************************* ******************
DELAY500
MOVLW D'165' ; +1 1 cycle
MOVWF DELAY ; +2 1 cycle
DELAY500_LOOP
DECFSZ DELAY, F ; step1 1 cycle
GOTO DELAY500_LOOP ; step2 2 cycles
DELAY500_END
RETURN ; +3 2 cycles

;*********************************** a delay of 'W' * 500mS
X_DELAY500
MOVWF X_DELAY ; +1 1 cycle
X_DELAY500_LOOP
CALL DELAY500 ; step1 wait 500uSec
DECFSZ X_DELAY, F ; step2 1 cycle
GOTO X_DELAY500_LOOP ; step3 2 cycles
X_DELAY500_END
RETURN ; +2 2 cycles
end

hinh mo_phong_LCD duoi day:
Hình Kèm Theo
File Type: gif mo_phong_LCD.gif (8.2 KB, 713 lần tải)

thay đổi nội dung bởi: namqn, 16-04-2007 lúc 07:00 PM.
friends vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 08:17 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam