Chào các bạn mình đang lam bài tập về đo nhiệt độ và hiển thị ra LCD, mình đẫ cho hiển thị ra lcd rồi nhưng kết quả ko đúng ,Mong các ban giúp mình đây là phần mềm mình đẫ viết :
Code:
;=========================================================
title "Do nhiet do va hien thi ra LCD.asm"
processor p16f877a
include <P16f877a.inc>
;_CONFIG_CP_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC&_LVP_OFF
dem0 equ 0x20
dem1 equ 0x21
dem2 equ 0x22
lenhlcd equ 0x23
delay12 equ 0x24
A EQU 0X25
org 0x0030
REGAD1 res 1 ;khai bao bien co ten regad1 nam o
;dia chi 30h va chiem 1 byte
org 0x0000
goto start
start
org 0x0010
;=========================================================
;khoi tao PORTB la lenh dieu khien lcd
;khoi tao PORTC la data
;khoi tao ADC
;=========================================================
BANKSEL TRISB ;CHON NGAN HANG THANH GHI CO CHUA TRISB VA TRISC
BANKSEL TRISC
CLRF TRISB ;PORTB LA XUAT
CLRF TRISC ;PORTC LA XUAT
BANKSEL PORTB ;CHON NGAN HANG THANH GHI CO CHUA PORTB VA PORTC
BANKSEL PORTC
;=========================================================
;khoi tao ADC
;=========================================================
movlw b'00000001' ;ADC ngo vao la Analog
movwf ADCON1
;=========================================================
;chuong trinh chinh
;=========================================================
call dkhienlcd
MAIN call delay40ms
call donhietdo
call hthi
goto MAIN
;=========================================================
;chuong trinh con dieu khien LCD
;=========================================================
dkhienlcd
movlw h'01' ;lenh xoa man hinh
movwf lenhlcd
call madieukhien
call delay40ms
movlw h'02' ;lenh return home tra bo dem AC =0
movwf lenhlcd
call madieukhien
call delay40ms
movlw h'06' ;lenh entry mode lam con tro dich chuyen
movwf lenhlcd
call madieukhien
call delay40ms
movlw h'0e' ;lenh hien thi man hinh
movwf lenhlcd
call madieukhien
call delay40ms
movlw h'34' ;lenh funtion co cac kieu giao tiep 8bit ,hien thi 1 hang va 5x10 diem anh
movwf lenhlcd
call madieukhien
call delay40ms
MOVLW H'80' ;chon vung nho DDRAM
MOVWF lenhlcd
CALL madieukhien
call delay40ms
RETURN
madieukhien
movf lenhlcd,0
movwf PORTC
bcf PORTB,0 ;chan RS ,chan RS va R/W =0 thi ghi va thanh ghi lenh IR
bcf PORTB,1 ;chan RW
bsf PORTB,2 ;tao ra 1 xung tren chan E
bcf PORTB,2
return
delay40ms
movlw d'50'
movwf dem0
del2 movlw H'FF'
movwf dem1
del1 decfsz dem1
goto del1
decfsz dem0
goto del2
return
;=========================================================
;chuong trinh con do nhiet do
;=========================================================
DONHIETDO
MOVLW H'01' ;BAT NGUON CHO ADC VA CHON KENH THU 0
MOVWF ADCON0
DEL3 DECFSZ DELAY12,F
GOTO DEL3
BSF ADCON0,2 ;BAT DAU CHUYEN DOI BANG CACH SET BIT GO/DONE
GODONE BTFSC ADCON0,2 ;KIEM TRA GO/DONE=1 THI NHAY TOI NHAN GODONE
GOTO GODONE
MOVF ADRESH,0 ;GO/DONE=0 THI LUU KET QUA
RETURN
hthi
MOVWF REGAD1
MOVF REGAD1,0
MOVWF A
MOVF A,0
MOVWF PORTC ;dua ket qua hien thi ra LCD
BSF PORTB,0
BCF PORTB,1
BSF PORTB,2
BCF PORTB,2
RETURN
END

Comment