有一张RA8803液晶,控制芯片16F877A,不能点亮,哪位高手帮忙啊

[复制链接]
3615|6
 楼主| 王人言 发表于 2008-5-30 18:01 | 显示全部楼层 |阅读模式
程序和接线图如下:<br />/*************************************************************<br />FUNCTIONn:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LCD&nbsp;driver&nbsp;8080<br />AUTHOR:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;科技<br />DESCRIPTION:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RA8803&nbsp;<br />E-mail:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />CREAT&nbsp;DATE:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2006-2-25<br />MODIFICATION&nbsp;DATE:&nbsp;&nbsp;&nbsp;&nbsp;<br />***************************************************************/<br />#include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&ltpic.h&gt;//定义三个头文件<br /><br />#define&nbsp;RW_WR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RC1<br />#define&nbsp;E_RD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RC0<br />#define&nbsp;CS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RC2<br />#define&nbsp;RS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RC4<br />#define&nbsp;RST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RC5<br />#define&nbsp;DATA_BUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTD<br />#define&nbsp;BUSY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RC3<br />unsigned&nbsp;char&nbsp;font[]=<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;0xd2,0xab,0xd3,0xee,0xbf,0xc6,0xbc,0xbc,//耀宇科技<br />&nbsp;&nbsp;&nbsp;&nbsp;0xd2,0xab,0xd3,0xee,0xbf,0xc6,0xbc,0xbc//耀宇科技<br />};<br />//***************************************以下为函数申明<br />void&nbsp;Delay(unsigned&nbsp;char&nbsp;shijian);<br />void&nbsp;Write_Data(unsigned&nbsp;char&nbsp;dat);<br />void&nbsp;Write_Instruction(unsigned&nbsp;char&nbsp;cmd);<br />void&nbsp;LCD_Controller_Register(unsigned&nbsp;char&nbsp;dat);<br />void&nbsp;Misc_Register(unsigned&nbsp;char&nbsp;dat);<br />void&nbsp;Advance_Power_Setup_Register(unsigned&nbsp;char&nbsp;dat);<br />void&nbsp;Advance_Display_Setup_Register(unsigned&nbsp;char&nbsp;dat);<br />void&nbsp;Cursor_Control_Register(unsigned&nbsp;char&nbsp;dat);<br />void&nbsp;Cursor_Size_Control_Register(unsigned&nbsp;char&nbsp;dat);<br />void&nbsp;Memory_Access_Mode_Register(unsigned&nbsp;char&nbsp;dat);<br />void&nbsp;Active_Window(unsigned&nbsp;char&nbsp;x1,unsigned&nbsp;char&nbsp;y1,unsigned&nbsp;char&nbsp;x2,unsigned&nbsp;char&nbsp;y2);<br />void&nbsp;Display_Window(unsigned&nbsp;char&nbsp;x1,unsigned&nbsp;char&nbsp;y1,unsigned&nbsp;char&nbsp;x2,unsigned&nbsp;char&nbsp;y2);<br />void&nbsp;Cursor_Position_Register(unsigned&nbsp;char&nbsp;x,unsigned&nbsp;char&nbsp;y);<br />void&nbsp;Begin_Segment_Position_Register(unsigned&nbsp;char&nbsp;x);<br />void&nbsp;Shift_Action_Range(unsigned&nbsp;char&nbsp;y1,unsigned&nbsp;char&nbsp;y2);<br />void&nbsp;Blink_Time_Register(unsigned&nbsp;char&nbsp;dat);<br />void&nbsp;Frame_Rate_Polarity_Change_At_Common_A_B_Register(unsigned&nbsp;char&nbsp;dat1,unsigned&nbsp;char&nbsp;dat2);<br />void&nbsp;Shift_Clock_Control_Register(unsigned&nbsp;char&nbsp;&nbsp;dat);<br />void&nbsp;Interrupt_Setup_And_Status_Register(unsigned&nbsp;char&nbsp;at);<br />void&nbsp;Font_Control_Register(unsigned&nbsp;char&nbsp;dat);<br />void&nbsp;Font_Size_Control_Register(unsigned&nbsp;char&nbsp;dat);<br />void&nbsp;Display_Chinese(unsigned&nbsp;char&nbsp;fnt[]);<br />void&nbsp;Initial(void);<br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;Delay<br />**&nbsp;功能描述:&nbsp;延时时间=(n*9+17)*12/F<br />**&nbsp;输 入:&nbsp;n<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;无<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />void&nbsp;Delay(unsigned&nbsp;char&nbsp;shijian)<br />{&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;i;&nbsp;<br />&nbsp;&nbsp;for(i=shijian;i!=0;i--)//以10MS为基数的延时函数<br />{<br />unsigned&nbsp;int&nbsp;d=1000;//10MS延时函数,1000为10MS,2000为20MS<br />asm(&quot;clrwdt&quot;);<br />while(--d){;}<br />}<br />}<br />/****************************************<br />**&nbsp;函数名称:&nbsp;Write_Data<br />**&nbsp;功能描述:&nbsp;传送数据<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Busy,<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Write_Data(unsigned&nbsp;char&nbsp;&nbsp;dat)&nbsp;<br />{&nbsp;&nbsp;&nbsp;//while(BUSY);<br />&nbsp;&nbsp;&nbsp;&nbsp;DATA_BUS=dat;<br />&nbsp;&nbsp;&nbsp;&nbsp;E_RD=1;//置读取位为高,不能读<br />&nbsp;&nbsp;&nbsp;&nbsp;RS=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;CS=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;RW_WR=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;RW_WR=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;CS=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay(5);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br />/******************************************<br />**&nbsp;函数名称:&nbsp;Write_Instruction<br />**&nbsp;功能描述:&nbsp;传送命令<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Busy,<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Write_Instruction(unsigned&nbsp;char&nbsp;&nbsp;cmd)<br />{&nbsp;&nbsp;&nbsp;&nbsp;//while(BUSY);<br />&nbsp;&nbsp;&nbsp;&nbsp;DATA_BUS=cmd;<br />&nbsp;&nbsp;&nbsp;&nbsp;E_RD=1;//置读取位为高,不能读<br />&nbsp;&nbsp;&nbsp;&nbsp;RS=0;//为低时,存取缓存器,为高时,存取数据<br />&nbsp;&nbsp;&nbsp;&nbsp;CS=0;//片选端,为0时选通RA8803,为1时禁止工作<br />&nbsp;&nbsp;&nbsp;&nbsp;RW_WR=0;//写入信号,低电位动作,<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;RW_WR=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;CS=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay(5);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;LCD_Controller_Register<br />**&nbsp;功能描述:&nbsp;<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Write_Instruction<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;LCD_Controller_Register(unsigned&nbsp;char&nbsp;&nbsp;dat)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x00);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(dat);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;Misc_Register<br />**&nbsp;功能描述:&nbsp;<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Write_Instruction<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Misc_Register(unsigned&nbsp;char&nbsp;&nbsp;dat)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x01);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(dat);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;Advance_Power_Setup_Register<br />**&nbsp;功能描述:&nbsp;<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Write_Instruction<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Advance_Power_Setup_Register(unsigned&nbsp;char&nbsp;&nbsp;dat)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x02);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(dat);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;Advance_Display_Setup_Register<br />**&nbsp;功能描述:&nbsp;<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Write_Instruction<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Advance_Display_Setup_Register(unsigned&nbsp;char&nbsp;&nbsp;dat)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x03);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(dat);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;Cursor_Control_Register<br />**&nbsp;功能描述:&nbsp;<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Write_Instruction<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Cursor_Control_Register(unsigned&nbsp;char&nbsp;&nbsp;dat)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x10);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(dat);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;Cursor_Size_Control_Register<br />**&nbsp;功能描述:&nbsp;<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Write_Instruction<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Cursor_Size_Control_Register(unsigned&nbsp;char&nbsp;&nbsp;dat)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x11);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(dat);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;Memory_Access_Mode_Register<br />**&nbsp;功能描述:&nbsp;<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Write_Instruction<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Memory_Access_Mode_Register(unsigned&nbsp;char&nbsp;&nbsp;dat)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x12);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(dat);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;Active_Window<br />**&nbsp;功能描述:&nbsp;<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Write_Instruction<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Active_Window(unsigned&nbsp;char&nbsp;&nbsp;x1,unsigned&nbsp;char&nbsp;&nbsp;y1,unsigned&nbsp;char&nbsp;&nbsp;x2,unsigned&nbsp;char&nbsp;&nbsp;y2)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x40);&nbsp;//Active&nbsp;Window&nbsp;Left&nbsp;Register<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(x1);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x20);&nbsp;//Active&nbsp;Window&nbsp;Right&nbsp;Register<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(x2);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x50);&nbsp;//Active&nbsp;Window&nbsp;Top&nbsp;Register<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(y1);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x30);&nbsp;//Active&nbsp;Window&nbsp;Bottom&nbsp;Register<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(y2);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;Display_Window<br />**&nbsp;功能描述:&nbsp;<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Write_Instruction<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Display_Window(unsigned&nbsp;char&nbsp;&nbsp;x1,unsigned&nbsp;char&nbsp;&nbsp;y1,unsigned&nbsp;char&nbsp;&nbsp;x2,unsigned&nbsp;char&nbsp;&nbsp;y2)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x41);&nbsp;//Display&nbsp;Window&nbsp;Left&nbsp;Register<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(x1);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x21);&nbsp;//Display&nbsp;Window&nbsp;Right&nbsp;Register<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(x2);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x51);&nbsp;//Display&nbsp;Window&nbsp;Top&nbsp;Register<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(y1);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x31);&nbsp;//Display&nbsp;Window&nbsp;Bottom&nbsp;Register<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(y2);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;Cursor_Position_Register<br />**&nbsp;功能描述:&nbsp;<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Write_Instruction<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Cursor_Position_Register(unsigned&nbsp;char&nbsp;&nbsp;x,unsigned&nbsp;char&nbsp;&nbsp;y)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x60);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(x);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x70);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(y);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;Begin_Segment_Position_Register<br />**&nbsp;功能描述:&nbsp;<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Write_Instruction<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Begin_Segment_Position_Register(unsigned&nbsp;char&nbsp;&nbsp;x)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x61);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(x);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;Shift_Action_Range<br />**&nbsp;功能描述:&nbsp;<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Write_Instruction<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Shift_Action_Range(unsigned&nbsp;char&nbsp;&nbsp;y1,unsigned&nbsp;char&nbsp;&nbsp;y2)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x71);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(y1);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x72);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(y2);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;Blink_Time_Register<br />**&nbsp;功能描述:&nbsp;<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Write_Instruction<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Blink_Time_Register(unsigned&nbsp;char&nbsp;dat)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x80);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(dat);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;Frame_Rate_Polarity_Change_At_Common_A_B_Register<br />**&nbsp;功能描述:&nbsp;<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Write_Instruction<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Frame_Rate_Polarity_Change_At_Common_A_B_Register(unsigned&nbsp;char&nbsp;&nbsp;dat1,unsigned&nbsp;char&nbsp;&nbsp;dat2)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x81);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(dat1);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x91);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(dat2);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;Shift_Clock_Control_Register<br />**&nbsp;功能描述:&nbsp;<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Write_Instruction<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Shift_Clock_Control_Register(unsigned&nbsp;char&nbsp;&nbsp;dat)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0x90);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(dat);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;Interrupt_Setup_And_Status_Register<br />**&nbsp;功能描述:&nbsp;<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Write_Instruction<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Interrupt_Setup_And_Status_Register(unsigned&nbsp;char&nbsp;&nbsp;dat)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0xa0);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(dat);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;Font_Control_Register(<br />**&nbsp;功能描述:&nbsp;<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Write_Instruction<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Font_Control_Register(unsigned&nbsp;char&nbsp;&nbsp;dat)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0xf0);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(dat);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;Font_Size_Control_Register<br />**&nbsp;功能描述:&nbsp;<br />**&nbsp;输 入:&nbsp;dat<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:&nbsp;Write_Instruction<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-25<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Font_Size_Control_Register(unsigned&nbsp;char&nbsp;&nbsp;dat)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(0xf1);<br />&nbsp;&nbsp;&nbsp;&nbsp;Write_Instruction(dat);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br />/***********************************<br />**&nbsp;函数名称:&nbsp;Display_Chinese<br />**&nbsp;功能描述:&nbsp;Display_Chinese<br />**&nbsp;输 入:&nbsp;&nbsp;value<br />**&nbsp;输 出&nbsp;:&nbsp;无<br />**&nbsp;全局变量:无<br />**&nbsp;调用模块:LCD_Controller_Register,Cursor_Position_Register,Write_Data<br />**&nbsp;<br />**&nbsp;作 者:&nbsp;耀宇科技<br />**&nbsp;日 期:&nbsp;2006-2-10<br />******************************************/<br />#pragma&nbsp;disable<br />void&nbsp;Display_Chinese(unsigned&nbsp;char&nbsp;fnt[])<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;register&nbsp;unsigned&nbsp;char&nbsp;i,j;<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_Controller_Register(0xcd);<br />&nbsp;&nbsp;&nbsp;&nbsp;Cursor_Position_Register(0x00,0x00);<br />&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt0x10;i+=2)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(j=0;j&lt0x0f;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Write_Data(fnt);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Write_Data(fnt[i+1]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}<br /><br />#pragma&nbsp;disable<br />void&nbsp;Initial(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;TRISD=0X00;//设定数据端口为输出<br />&nbsp;&nbsp;&nbsp;&nbsp;TRISC=0X08;//RC3为输入,液晶端口状态忙位检测<br />&nbsp;&nbsp;&nbsp;&nbsp;PORTC=0Xff;//先输出0清端口状态<br />&nbsp;&nbsp;&nbsp;&nbsp;PORTD=0Xff;//清零端口<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay(30);//延时300ms<br />&nbsp;&nbsp;&nbsp;&nbsp;RST=0;//复位信号置低电平<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay(30);//延时300ms<br />&nbsp;&nbsp;&nbsp;&nbsp;RST=1;//复位信号置低电平<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay(10);//延时100ms<br />&nbsp;&nbsp;&nbsp;//&nbsp;while(BUSY);//忙信号检测<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_Controller_Register(0xcd);//缓存器00H正常模式,屏幕开启<br />&nbsp;&nbsp;&nbsp;&nbsp;Misc_Register(0xf1);//输出允许,BUSY高电平触发,4MHZ频率<br />&nbsp;&nbsp;&nbsp;&nbsp;Advance_Power_Setup_Register(0x10);<br />&nbsp;&nbsp;&nbsp;&nbsp;Advance_Display_Setup_Register(0x80);<br />&nbsp;&nbsp;&nbsp;&nbsp;Cursor_Control_Register(0x6b);<br />&nbsp;&nbsp;&nbsp;&nbsp;Cursor_Size_Control_Register(0x00);<br />&nbsp;&nbsp;&nbsp;&nbsp;Memory_Access_Mode_Register(0x91);<br />&nbsp;&nbsp;&nbsp;&nbsp;Active_Window(0x00,0x00,0x1d,0x7f);<br />&nbsp;&nbsp;&nbsp;&nbsp;Display_Window(0x00,0x00,0x1d,0x7f);<br />&nbsp;&nbsp;&nbsp;&nbsp;Begin_Segment_Position_Register(0x0);<br />&nbsp;&nbsp;&nbsp;&nbsp;Shift_Action_Range(0x00,0x9f);<br />&nbsp;&nbsp;&nbsp;&nbsp;Blink_Time_Register(0xaa);<br />&nbsp;&nbsp;&nbsp;&nbsp;Frame_Rate_Polarity_Change_At_Common_A_B_Register(0x00,0x00);<br />&nbsp;&nbsp;&nbsp;&nbsp;Shift_Clock_Control_Register(0x10);<br />&nbsp;&nbsp;&nbsp;&nbsp;Interrupt_Setup_And_Status_Register(0x11);<br />&nbsp;&nbsp;&nbsp;&nbsp;Font_Control_Register(0xa0);<br />&nbsp;&nbsp;&nbsp;&nbsp;Font_Size_Control_Register(0x0f);<br />&nbsp;&nbsp;&nbsp;&nbsp;Cursor_Position_Register(0x00,0x00);<br />}<br /><br />//#pragma&nbsp;disable<br />//void&nbsp;Step(void)&nbsp;interrupt&nbsp;0<br />//{<br />&nbsp;&nbsp;&nbsp;//&nbsp;while(IE0==1);<br />&nbsp;&nbsp;&nbsp;//&nbsp;return;<br />//}<br /><br />main()<br />{&nbsp;&nbsp;&nbsp;Initial();<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;RS=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LCD_Controller_Register(0xcd);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delay(600);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delay(600);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Display_Chinese(font);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delay(600);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delay(600);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /> 相关链接:<a href='https://bbs.21ic.com/upfiles/img/20077/2007715181545318.pdf'>https://bbs.21ic.com/upfiles/img/20077/2007715181545318.pdf</a>
zhbwgh 发表于 2008-5-31 10:01 | 显示全部楼层

re

楼主确定硬件没有问题了吗?不要急&nbsp;会搞出来的!
xieyuanbin 发表于 2008-5-31 10:04 | 显示全部楼层

哦,看看通讯波形,

仿真一下也可以<br />
 楼主| 王人言 发表于 2008-6-1 06:00 | 显示全部楼层

RE

谢谢,以上两位,已经搞出来了,就是有点花屏
yuntian 发表于 2008-6-4 19:08 | 显示全部楼层

频率要提高

之前也有这个问题,主要是把LCD的内部频率改为8MHz应该就可以了
zhbwgh 发表于 2008-6-5 21:47 | 显示全部楼层

re

楼主&nbsp;能说下原来是哪里的问题吗&nbsp;多谢
 楼主| 王人言 发表于 2008-6-6 15:18 | 显示全部楼层

回6楼

<br />以前的问题是出软件上,要一上电就置RW位为1,而我的程序没有做到这一点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

22

帖子

1

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