基于S6B0724的12864液晶的问题,跪求指点。急!

[复制链接]
3313|4
 楼主| stonejust 发表于 2007-7-31 17:33 | 显示全部楼层 |阅读模式
最近遇到的问题,液晶说什么也不显示,期望高手指点。程序如下:<br />&nbsp;&nbsp;&nbsp;&nbsp;list&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p=16f873a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;list&nbsp;directive&nbsp;to&nbsp;define&nbsp;processor<br />&nbsp;&nbsp;&nbsp;&nbsp;#include&nbsp;&ltp16f873a.inc&gt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;processor&nbsp;specific&nbsp;variable&nbsp;definitions<br />;&nbsp;&nbsp;&nbsp;&nbsp;__CONFIG&nbsp;&nbsp;&nbsp;_CP_OFF&nbsp;&&nbsp;_WDT_ON&nbsp;&&nbsp;_BODEN_ON&nbsp;&&nbsp;_PWRTE_ON&nbsp;&&nbsp;_XT_OSC<br />;-------------------------------<br />;RB1&nbsp;&nbsp;--&gt&nbsp;&nbsp;SID<br />;RB0&nbsp;&nbsp;--&gt&nbsp;&nbsp;SCL<br />;RC0&nbsp;&nbsp;--&gt&nbsp;&nbsp;RS<br />;RC1&nbsp;&nbsp;--&gt&nbsp;&nbsp;CS1<br />;RA3&nbsp;&nbsp;--&gt&nbsp;&nbsp;RESET<br />;-------------------------------<br />;*****&nbsp;VARIABLE&nbsp;DEFINITIONS<br />&nbsp;&nbsp;&nbsp;&nbsp;CBLOCK&nbsp;&nbsp;&nbsp;&nbsp;0X20<br />PR_COUNT<br />PR_OUT<br />PR_DATA<br />LCD_D_CON1<br />LCD_D_CON2<br />DAT1<br />DAT2<br />D5_COUNT1<br />D5_COUNT2<br />&nbsp;&nbsp;&nbsp;&nbsp;ENDC<br />;**********************************************************************<br />&nbsp;&nbsp;&nbsp;&nbsp;ORG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0X000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;PROCESSOR&nbsp;RESET&nbsp;VECTOR<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;INITIAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;GO&nbsp;TO&nbsp;BEGINNING&nbsp;OF&nbsp;PROGRAM<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;ORG&nbsp;&nbsp;&nbsp;&nbsp;0X004&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;INTERRUPT&nbsp;VECTOR&nbsp;LOCATION<br />&nbsp;&nbsp;&nbsp;&nbsp;RETFIE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;RETURN&nbsp;FROM&nbsp;INTERRUPT<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />INITIAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;初始化程序<br />;--------------------------------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />;SPECIAL&nbsp;&nbsp;REG&nbsp;&nbsp;<br />;--------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;CLRWDT<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;STATUS,RP0<br />&nbsp;&nbsp;&nbsp;&nbsp;CLRF&nbsp;&nbsp;&nbsp;&nbsp;PORTA<br />&nbsp;&nbsp;&nbsp;&nbsp;CLRF&nbsp;&nbsp;&nbsp;&nbsp;PORTB<br />&nbsp;&nbsp;&nbsp;&nbsp;CLRF&nbsp;&nbsp;&nbsp;&nbsp;PORTC<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0X80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;10000000<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;ADCON0<br />&nbsp;&nbsp;&nbsp;&nbsp;CLRF&nbsp;&nbsp;&nbsp;&nbsp;ADRESH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;873<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0C0H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;11000000<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;RCSTA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;&nbsp;&nbsp;&nbsp;STATUS,RP0<br />&nbsp;&nbsp;&nbsp;&nbsp;CLRF&nbsp;&nbsp;&nbsp;&nbsp;TRISA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;CLRF&nbsp;&nbsp;&nbsp;&nbsp;TRISB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;RB0-RB7,总线<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0X80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;1000,0000<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TRISC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0X02&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;ADCON1<br />&nbsp;&nbsp;&nbsp;&nbsp;CLRF&nbsp;&nbsp;&nbsp;&nbsp;ADRESL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;873<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0X0D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;0000&nbsp;1110<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;OPTION_REG<br />;-------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;STATUS,RP0<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_INITIAL<br />;-------------------------------<br />;上电&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />;-------------------------------&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;&nbsp;&nbsp;&nbsp;STATUS,RP0<br />&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;&nbsp;&nbsp;&nbsp;PCON,1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;POWER-ON<br />&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;&nbsp;&nbsp;&nbsp;PCON,0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;BOD<br />;---------------------------------<br />;&nbsp;&nbsp;&nbsp;&nbsp;MAIN&nbsp;&nbsp;&nbsp;&nbsp;PROGRAM<br />;---------------------------------<br />MAIN<br />&nbsp;&nbsp;&nbsp;&nbsp;CLRWDT<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;STATUS,RP0<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0B0H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;初始页地址<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PR_DATA<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_PR1<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;10H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;初始列地址高8位<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PR_DATA<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_PR1<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;初始列地址低8位<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PR_DATA<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_PR1<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0A5H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;全显<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PR_DATA<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_PR1<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_DELAY1<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_DELAY1<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_DELAY1<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;$<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;MAIN<br />;---------------------------------<br />;&nbsp;&nbsp;&nbsp;&nbsp;-SUBPROGRAM-&nbsp;&nbsp;&nbsp;&nbsp;液晶初始化<br />LCD_INITIAL<br />;---------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;STATUS,RP0<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;PORTA,3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;硬件复位<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_DELAY1<br />&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;&nbsp;&nbsp;&nbsp;PORTA,3<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0E2H&nbsp;&nbsp;&nbsp;&nbsp;;软件复位<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PR_DATA<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_PR1<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_DELAY1<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0A2H&nbsp;&nbsp;&nbsp;&nbsp;;LCD&nbsp;BIAS=1/9<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PR_DATA<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_PR1<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0A0H&nbsp;&nbsp;&nbsp;&nbsp;;列地址移动方向:ADC=0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PR_DATA<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_PR1<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0C8H&nbsp;&nbsp;&nbsp;&nbsp;;行扫描方向:SHL=1<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PR_DATA<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_PR1<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_DELAY1<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;02FH&nbsp;&nbsp;&nbsp;&nbsp;;电源控制模式:vc,vr,vf=111<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PR_DATA<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_PR1<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_DELAY1<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;26H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;内部调整电阻比:R2,R1,R0=111<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PR_DATA<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_PR1<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_DELAY1<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;81H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;对比度寄存器模式<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PR_DATA<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_PR1<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;20H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;对比度寄存器值<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PR_DATA<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_PR1<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;40H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;起始行<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PR_DATA<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_PR1<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0E0H&nbsp;&nbsp;&nbsp;&nbsp;;写入数据时列地址自动加1,读不变<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PR_DATA<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_PR1<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0AFH&nbsp;&nbsp;&nbsp;&nbsp;;开显示<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PR_DATA<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;LCD_PR1<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;RETURN<br />;---------------------------------<br />;&nbsp;&nbsp;&nbsp;&nbsp;-SUBPROGRAM-&nbsp;&nbsp;&nbsp;&nbsp;写入控制命令<br />LCD_PR1<br />;---------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;STATUS,RP0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;8H<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PR_COUNT<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;PORTC,1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;选芯片<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;PORTC,0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;选命令寄存器<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVF&nbsp;&nbsp;&nbsp;&nbsp;PR_DATA,W&nbsp;&nbsp;&nbsp;&nbsp;;将要发送的数据送入发送寄存器PR_OUT<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PR_OUT<br />LCD_I_WRITE1<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;PORTB,0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;SCL=0<br />&nbsp;&nbsp;&nbsp;&nbsp;BTFSS&nbsp;&nbsp;&nbsp;&nbsp;PR_OUT,7&nbsp;&nbsp;&nbsp;&nbsp;;判断发送寄存器最高位值,输出到SID<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;PORTB,1<br />&nbsp;&nbsp;&nbsp;&nbsp;BTFSC&nbsp;&nbsp;&nbsp;&nbsp;PR_OUT,7<br />&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;&nbsp;&nbsp;&nbsp;PORTB,1<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;&nbsp;&nbsp;&nbsp;PORTB,0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;SCL=1<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;DECFSZ&nbsp;&nbsp;&nbsp;&nbsp;PR_COUNT,F&nbsp;&nbsp;&nbsp;&nbsp;;判断循环次数<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;LCD_I_WRITE2&nbsp;&nbsp;&nbsp;&nbsp;;不为0跳转至LCD_I_WRITE2<br />&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;&nbsp;&nbsp;&nbsp;PORTC,1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;为0,恢复芯片并返回<br />&nbsp;&nbsp;&nbsp;&nbsp;RETURN<br />LCD_I_WRITE2<br />&nbsp;&nbsp;&nbsp;&nbsp;RLF&nbsp;&nbsp;&nbsp;&nbsp;PR_OUT,F&nbsp;&nbsp;&nbsp;&nbsp;;左移一位<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;LCD_I_WRITE1<br />&nbsp;&nbsp;&nbsp;&nbsp;RETURN<br />;---------------------------------<br />;&nbsp;&nbsp;&nbsp;&nbsp;-SUBPROGRAM-&nbsp;&nbsp;&nbsp;&nbsp;写入显示数据<br />LCD_PR2<br />;---------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;8H<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PR_COUNT<br />&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;&nbsp;&nbsp;&nbsp;PORTC,0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;选数据寄存器<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;PORTC,1<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVF&nbsp;&nbsp;&nbsp;&nbsp;PR_DATA,W<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PR_OUT<br />LCD_D_WRITE1<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;PORTB,0<br />&nbsp;&nbsp;&nbsp;&nbsp;BTFSS&nbsp;&nbsp;&nbsp;&nbsp;PR_OUT,7<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;PORTB,1<br />&nbsp;&nbsp;&nbsp;&nbsp;BTFSC&nbsp;&nbsp;&nbsp;&nbsp;PR_OUT,7<br />&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;&nbsp;&nbsp;&nbsp;PORTB,1<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;&nbsp;&nbsp;&nbsp;PORTB,0<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;DECFSZ&nbsp;&nbsp;&nbsp;&nbsp;PR_COUNT,F<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;LCD_D_WRITE2<br />&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;&nbsp;&nbsp;&nbsp;PORTC,1<br />&nbsp;&nbsp;&nbsp;&nbsp;RETURN<br />LCD_D_WRITE2<br />&nbsp;&nbsp;&nbsp;&nbsp;RLF&nbsp;&nbsp;&nbsp;&nbsp;PR_OUT,F<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;LCD_D_WRITE1<br />&nbsp;&nbsp;&nbsp;&nbsp;RETURN<br />;---------------------------------<br />;&nbsp;&nbsp;&nbsp;&nbsp;-SUBPROGRAM-&nbsp;&nbsp;&nbsp;&nbsp;400us&nbsp;&nbsp;&nbsp;&nbsp;4M晶振,延时400us<br />LCD_DELAY1<br />;---------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;STATUS,RP0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;17H<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;LCD_D_CON1<br />LCD_DLOOP1<br />&nbsp;&nbsp;&nbsp;&nbsp;CLRWDT<br />&nbsp;&nbsp;&nbsp;&nbsp;DECFSZ&nbsp;&nbsp;&nbsp;&nbsp;LCD_D_CON1,1<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;LCD_DLOOP1<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP<br />&nbsp;&nbsp;&nbsp;&nbsp;RETURN<br />;---------------------------------<br />;&nbsp;&nbsp;&nbsp;&nbsp;-SUBPROGRAM-&nbsp;&nbsp;&nbsp;&nbsp;0.64S&nbsp;&nbsp;&nbsp;&nbsp;4M晶振,延时约0.64s<br />LCD_DELAY2<br />;---------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;STATUS,RP0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;80H<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;LCD_D_CON2<br />LDLOOP<br />&nbsp;&nbsp;&nbsp;&nbsp;DECFSZ&nbsp;&nbsp;&nbsp;&nbsp;LCD_D_CON2<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;$+2<br />&nbsp;&nbsp;&nbsp;&nbsp;RETURN<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;DELAY_5MS<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;LDLOOP<br />&nbsp;&nbsp;&nbsp;&nbsp;RETURN<br />;---------------------------------<br />;&nbsp;&nbsp;&nbsp;&nbsp;-SUBPROGRAM-&nbsp;&nbsp;&nbsp;&nbsp;5MS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4M晶振,延时5ms<br />DELAY_5MS<br />;---------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;STATUS,RP0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0FH<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;D5_COUNT1<br />D5_LOOP2<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;6DH<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;D5_COUNT2<br />D5_LOOP1<br />&nbsp;&nbsp;&nbsp;&nbsp;DECFSZ&nbsp;&nbsp;&nbsp;&nbsp;D_COUNT1,1<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;D5_LOOP1<br />&nbsp;&nbsp;&nbsp;&nbsp;DECFSZ&nbsp;&nbsp;&nbsp;&nbsp;D_COUNT2,1<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;D5_LOOP2<br />&nbsp;&nbsp;&nbsp;&nbsp;RETURN<br />;---------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;END<br />小弟先谢过了。
 楼主| stonejust 发表于 2007-8-1 08:31 | 显示全部楼层

补充一下,我使用的液晶是工作在串口方式下的。

自己顶一下。
 楼主| stonejust 发表于 2007-8-6 13:24 | 显示全部楼层

能显示了,就是显示的不对。

问题解决了一部分,硬件复位后增加一延时就好了。但是还是显示的不太对,正在找毛病。
佐客 发表于 2011-12-28 22:36 | 显示全部楼层
为啥你不用串行显示啊?
yewuyi 发表于 2011-12-29 10:15 | 显示全部楼层
继续自己努力
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

72

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部