P IC 单片机笔记之LCD 与MAX485 通信 实验环境: Proteus 编程语言: 汇编 编程环境: MPLAB IDE 单片机: PIC16F877 晶振: 4MHz 实验目的:该实验旨在熟悉用PIC 单片机控制LCD 液晶显示的编程,并利用PIC 单片机自身的USART 模块实现MAX485 通信的仿真设计,熟悉串口通信的编程和设置。实验效果如下面图片: 图(1)系统总图 图(2)液晶接线图 部分程序源代码 ORG 0X0000 GOTO MAIN ORG 0X0004 MOVWF BW SWAPF STATUS,0 CLRF STATUS MOVWF BSTATUS MOVF FSR,0 MOVWF BFSR MOVF PCLATH,0 MOVWF BPCH ;***************************以上是中断现场保护 CLRF PCLATH BTFSS INTCON,5 GOTO NT0INT BTFSC INTCON,2 GOTO T0INT NT0INT: MOVLW PIE1 MOVWF FSR BTFSS INDF,4 GOTO INTOUT BTFSC PIR1,4 GOTO TXINT ;******************以上是中断源判别 INTOUT: CLRF STATUS MOVF BFSR,0 MOVWF FSR MOVF BPCH,0 MOVWF PCLATH SWAPF BSTATUS,0 MOVWF STATUS SWAPF BW,1 SWAPF BW,0 RETFIE ;***********************************以上是中断现场恢复 T0INT: BCF INTCON,2 MOVLW 0X14 MOVWF TMR0 DECFSZ TM0D GOTO INTOUT MOVLW .200 MOVWF TM0D DECFSZ TM0D1 GOTO INTOUT MOVLW .20 MOVWF TM0D1 BSF PORTC,3 BCF RCSTA,4 BANKSEL TXSTA BSF TXSTA,5 BCF STATUS,RP0 GOTO INTOUT ;********************************定时器0 中断函数 TXINT: MOVF LEN1,0 SUBWF LEN,0 BTFSC STATUS,C GOTO TEXIT ADDLW 1 BTFSC STATUS,Z GOTO TINT1 ADDLW 1 BTFSC STATUS,Z GOTO TINT2 MOVLW STC1 ADDWF LEN,0 MOVWF FSR MOVF INDF,0 MOVWF TXDATA TSEND: INCF LEN BANKSEL TXSTA BSF TXSTA,0;停止位 BCF STATUS,RP0 MOVF TXDATA,0 MOVWF TXREG GOTO INTOUT ;**************************8 TINT1: MOVF CRCH,0 MOVWF TXDATA GOTO TSEND TINT2: MOVF CRCL,0 MOVWF TXDATA GOTO TSEND TEXIT: CLRF LEN;发送结束处理 BCF PORTC,3 BANKSEL TXSTA BCF TXSTA,5 BCF STATUS,RP0 BSF RCSTA,4 GOTO INTOUT ;***************************u sart 发送中断处理函数 TCRC: ADDWF PCL DT "\r" TXTB: ADDWF PCL DT "COME ON.BOY!" ;************************...