|
Tài trợ cho PIC Vietnam |
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 |
17-04-2013, 12:03 AM | #1 |
Nhập môn đệ tử
Tham gia ngày: Apr 2013
Bài gửi: 1
: |
Help hiển thị LCD 16x2
Mọi người xem giúp mình đoạn code sau: khi mô phỏng trên Proteus thì chạy được.
Còn khi nạp vào PIC thì ko hiển thị chữ gì. Giao tiếp 8 bit . data PORTB Điều khiển RD0 RD1 RD2 Ngôn ngữ MPASM, MPLAB IDE Code:
#INCLUDE <P16F877A.INC> __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _LVP_OFF & _HS_OSC ; thach anh 20MHz COUNT1 EQU 0X20 COUNT2 EQU 0X21 COUNT3 EQU 0X22 COUNT4 EQU 0X23 COUNT5 EQU 0X24 LCD_DATA EQU PORTB LCD_CONTROL EQU PORTD RS EQU RD0 RW EQU RD1 EN EQU RD2 ORG 0X000 goto start start org 0x005 BCF STATUS,RP1 BSF STATUS,RP0 CLRF TRISB CLRF TRISD BCF STATUS,RP0 ;--------------------------- ; BEGIN ;-------- KHOI TAO ----------------- BEGIN BCF LCD_CONTROL,EN CALL DELAY20MS MOVLW 0X38 CALL COMNWRT CALL DELAY20MS MOVLW 0X0E CALL COMNWRT CALL DELAY20MS MOVLW 0X01 CALL COMNWRT CALL DELAY20MS MOVLW 0X06 CALL COMNWRT CALL DELAY20MS MOVLW 0X80 CALL COMNWRT CALL DELAY20MS ;------------------------------ ; GHI DATA MOVLW A'N' CALL DATAWRT CALL DELAY20MS MOVLW A'A' CALL DATAWRT CALL DELAY20MS MOVLW A'M' CALL DATAWRT CALL DELAY20MS MOVLW A'E' CALL DATAWRT CALL DELAY20MS GOTO $ ;---------------------- ; COMMAND WRITE COMNWRT MOVWF LCD_DATA BCF LCD_CONTROL,RS BCF LCD_CONTROL,RW BSF LCD_CONTROL,EN NOP NOP NOP BCF LCD_CONTROL,EN RETURN ;---------------- ; DATA WRITE DATAWRT MOVWF LCD_DATA BSF LCD_CONTROL,RS BCF LCD_CONTROL,RW BSF LCD_CONTROL,EN NOP NOP NOP BCF LCD_CONTROL,EN RETURN DELAY20MS MOVLW D'20' MOVWF COUNT3 LOOP3 MOVLW D'100' MOVWF COUNT1 LOOP1 MOVLW D'200' MOVWF COUNT2 LOOP2 NOP NOP DECFSZ COUNT2 GOTO LOOP2 DECFSZ COUNT1 GOTO LOOP1 DECFSZ COUNT3 GOTO LOOP3 RETURN END |
|
|