movwf PCLATH ; restore pre-isr PCLATH register contents
movf status_temp,w ; retrieve copy of STATUS register
movwf STATUS ; restore pre-isr STATUS register contents
swapf w_temp,f
swapf w_temp,w ; restore pre-isr W register contents
retfie ; return from interrupt
;******************************
main
bsf STATUS,RP0
movlw 07H
movwf ADCON1 ;设置RA口全部为普通数字IO口
clrf TRISA
clrf TRISC ; 定义RA口,RC口全部为输出
bcf STATUS,RP0
call _delay ;调用廷时,刚上电LCD复位不一定有PIC快
movlw 01H
movwf PORTC ; 清屏
call _enable
movlw 38H
movwf PORTC ; 8位数据,16字x2行,5x7点阵
call _enable
movlw 0CH ; 显示器开、光标不闪
movwf PORTC
call _enable
movlw 06H ; 文字不动,光标自动右移
movwf PORTC
call _enable
movlw 80H
movwf PORTC ; 第一行显示位置
call _enable
call _write1 ; 调用送第一行数子程序" www.55dianzi.com "
movlw 0C0H
movwf PORTC ; 第二行的位置
call _enable
call _write2 ; 调用送第二行数子程序"best wish to you"
goto $
;***********************
_write1
clrf count ;送第一行数字程序
again1
movf count,W
call _table1
movwf tmp1
call _write
incf count
movf tmp1,W
xorlw 00H
btfss STATUS,Z
goto again1
retlw 0
;*************************
_write2 ;送第二行数子程序
clrf count
again2
movf count,W
call _table2
movwf tmp1
call _write
incf count
movf tmp1,W
xorlw 00H
btfss STATUS,Z
goto again2
retlw 0
;**************************
_write ;送数据到LCD子程序
movwf PORTC
bsf PORTA,RS
bcf PORTA,RW
bcf PORTA,E
call _delay
bsf PORTA,E
retlw 0
;写入控制命令的子程序
_enable
bcf PORTA,RS
bcf PORTA,RW
bcf PORTA,E
call _delay
bsf PORTA,E
retlw 0
;******************************************************
_table1 ;取第一行的显示码 www.55dianzi.com
addwf PCL ;地址偏移量加当前PC值
dt " www.55dianzi.com "
retlw 00H
;-------------------- ----------------------------------
_table2 ;取第一行的显示码best wish to you
addwf PCL ;地址偏移量加当前PC值
dt "best wish to you"
retlw 00H
;********************************************************
;延时子程序
_delay
movlw 0x3c ;晶振为4 MHz,延时50ms
上一页 [1] [2] [3] 下一页
本文关键字:单片机 PIC单片机,单片机-工控设备 - PIC单片机