请教控制芯片为T6963C的128*64的液晶驱动程序

[复制链接]
4022|11
 楼主| hlhfootbal 发表于 2008-11-29 11:54 | 显示全部楼层 |阅读模式
这几天在调试控制芯片为T6963C的128*64的液晶,不过没什么进展。液晶亮都没亮。<br /><br />驱动程序如下,请各位不啬赐教。<br />#include&nbsp;&ltmega16.h&gt<br />#include&nbsp;&ltdelay.h&gt<br /><br />#define&nbsp;WR&nbsp;PORTA.0<br />#define&nbsp;RD&nbsp;PORTA.1<br />#define&nbsp;CE&nbsp;PORTA.2<br />#define&nbsp;C_D&nbsp;PORTA.3<br /><br />void&nbsp;init_io()<br />{<br />&nbsp;&nbsp;DDRA=0XFF;//porta&nbsp;is&nbsp;output&nbsp;<br />&nbsp;&nbsp;CE=0;<br />&nbsp;&nbsp;DDRC=0XFF;//portc&nbsp;is&nbsp;output<br />&nbsp;&nbsp;PORTC=0XFF;<br />}<br /><br />void&nbsp;Re_Sta(unsigned&nbsp;char&nbsp;mark)<br />{<br />&nbsp;&nbsp;bit&nbsp;exit=0;<br />&nbsp;&nbsp;unsigned&nbsp;char&nbsp;state;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;C_D=1;<br />&nbsp;&nbsp;RD=1;<br />&nbsp;&nbsp;WR=1;<br />&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;RD=0;<br />&nbsp;&nbsp;state=PINC;<br />&nbsp;&nbsp;RD=1;<br />&nbsp;&nbsp;switch(mark)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;1:if(state&0x03)exit=1;break;/*check&nbsp;commad&nbsp;execution&nbsp;capability&nbsp;or&nbsp;check&nbsp;data&nbsp;read/write&nbsp;capability*/<br />&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;2:if(state&0x04)exit=1;break;/*check&nbsp;auto&nbsp;mode&nbsp;data&nbsp;read&nbsp;capability*/<br />&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;3:if(state&0x08)exit=1;break;/*check&nbsp;auto&nbsp;mode&nbsp;data&nbsp;write&nbsp;capability*/<br />&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;4:if(state&0x40)exit=1;break;/*error&nbsp;flag;used&nbsp;for&nbsp;screen&nbsp;peek&nbsp;and&nbsp;screen&nbsp;copy&nbsp;commads*/<br />&nbsp;&nbsp;&nbsp;&nbsp;default:break;&nbsp;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;if(exit==1)<br />&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;}<br />}<br /><br />void&nbsp;send_data(unsigned&nbsp;char&nbsp;dat)<br />{<br />&nbsp;&nbsp;C_D=0;<br />&nbsp;&nbsp;PORTC=dat;<br />&nbsp;&nbsp;WR=0;<br />&nbsp;&nbsp;WR=1;<br />}<br /><br />void&nbsp;send_com(unsigned&nbsp;char&nbsp;com)<br />{<br />&nbsp;PORTC=com;<br />&nbsp;WR=0;<br />&nbsp;WR=1;&nbsp;<br />}<br /><br />void&nbsp;send_d_c(unsigned&nbsp;char&nbsp;sta_sty,&nbsp;unsigned&nbsp;char&nbsp;dat_num,unsigned&nbsp;char&nbsp;dat1,unsigned&nbsp;char&nbsp;dat2,unsigned&nbsp;char&nbsp;com)<br />{<br />&nbsp;&nbsp;if(dat_num)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;Re_Sta(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;send_data(dat1);<br />&nbsp;&nbsp;&nbsp;&nbsp;if(dat_num==2)<br />&nbsp;&nbsp;&nbsp;&nbsp;Re_Sta(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;send_data(dat2);<br />&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;switch(sta_sty)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;1:Re_Sta(1);send_com(com);break;<br />&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;2:Re_Sta(2);send_com(com);break;<br />&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;3:Re_Sta(3);send_com(com);break;<br />&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;4:Re_Sta(4);send_com(com);break;<br />&nbsp;&nbsp;&nbsp;&nbsp;default:break;<br />&nbsp;&nbsp;}<br />}<br /><br />void&nbsp;init_lcd(void)<br />{<br />&nbsp;&nbsp;send_d_c(1,2,0x00,0x00,0x21);//set&nbsp;the&nbsp;position&nbsp;of&nbsp;curser<br />&nbsp;&nbsp;send_d_c(1,2,0x00,0x00,0x40);//set&nbsp;text&nbsp;home&nbsp;address<br />&nbsp;&nbsp;send_d_c(1,2,0X20,0X00,0X41);//set&nbsp;text&nbsp;area<br />&nbsp;&nbsp;send_d_c(1,2,0X00,0X80,0X42);//set&nbsp;graphic&nbsp;home&nbsp;address<br />&nbsp;&nbsp;send_d_c(1,2,0X20,0X00,0X43);//set&nbsp;graphic&nbsp;area&nbsp;<br />&nbsp;&nbsp;send_d_c(1,0,0x00,0x00,0x80);//set&nbsp;the&nbsp;logic&nbsp;of&nbsp;display,internal&nbsp;character&nbsp;generator&nbsp;mode<br />&nbsp;&nbsp;send_d_c(1,0,0x00,0x00,0x9f);//text&nbsp;on,graphic&nbsp;on,cursor&nbsp;on,blink&nbsp;on<br />&nbsp;&nbsp;send_d_c(1,0,0x00,0x00,0xaf);//8-line&nbsp;cursor<br />}<br /><br />void&nbsp;clear_lcd(void)<br />{<br />&nbsp;&nbsp;unsigned&nbsp;char&nbsp;i,j;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;send_d_c(1,2,0X00,0X00,0X24);//set&nbsp;address&nbsp;pointer<br />&nbsp;&nbsp;send_d_c(1,0,0x00,0x00,0xb0);//set&nbsp;auto&nbsp;write&nbsp;mode<br />&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt205;i++)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;for(j=0;j&lt=40;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Re_Sta(3);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C_D=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTC=0X00;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WR=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WR=1;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;send_d_c(3,0,0x00,0x00,0xb2);//set&nbsp;auto&nbsp;reset<br />}<br /><br />main()<br />{<br />&nbsp;&nbsp;delay_ms(200);<br />&nbsp;&nbsp;init_io();<br />&nbsp;&nbsp;init_lcd();<br />&nbsp;&nbsp;//clear_lcd();&nbsp;<br />}
fangui 发表于 2008-12-1 21:27 | 显示全部楼层

我用过

  
 楼主| hlhfootbal 发表于 2008-12-2 21:16 | 显示全部楼层

楼上能提供调试通过的程序给我吗?

谢谢!
keyanfeng 发表于 2008-12-2 22:23 | 显示全部楼层

LPC2131的

LPC2131的.<br /><br /><br />//&nbsp;T6963C.c<br /><br />#include&nbsp;&quot;T6963.h&quot;<br /><br />//&nbsp;软件延时函数。用于LCM显示输出时序控制<br />//&nbsp;输入:&nbsp;无<br />//&nbsp;输出:&nbsp;无<br />void&nbsp;DELAY5(void)<br />{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i;<br />//&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;&nbsp;i&lt100;&nbsp;i++);<br />&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;&nbsp;i&lt10;&nbsp;i++);<br />}<br /><br /><br />//&nbsp;读状态位子程序<br />//&nbsp;输入:&nbsp;read_bit&nbsp;(0~7)<br />//&nbsp;输出:&nbsp;bit(0:disable/no&nbsp;error/display&nbsp;off;&nbsp;1:&nbsp;enable/error/normal&nbsp;display)<br />unsigned&nbsp;char&nbsp;LCMReadStatus(unsigned&nbsp;char&nbsp;read_bit)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;status_rd;<br />&nbsp;&nbsp;&nbsp;&nbsp;SET_LCM_CD();<br />&nbsp;&nbsp;&nbsp;&nbsp;CLR_LCM_RD();<br />&nbsp;&nbsp;&nbsp;&nbsp;LCM_BUS_DIR_IN();<br />&nbsp;&nbsp;&nbsp;&nbsp;DELAY5();<br />&nbsp;&nbsp;&nbsp;&nbsp;status_rd&nbsp;=&nbsp;LCM_InData();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;LCM&nbsp;data&nbsp;bus<br />&nbsp;&nbsp;&nbsp;&nbsp;DELAY5();<br />&nbsp;&nbsp;&nbsp;&nbsp;LCM_BUS_DIR_OUT();<br />&nbsp;&nbsp;&nbsp;&nbsp;SET_LCM_RD();<br />&nbsp;&nbsp;&nbsp;&nbsp;if(status_rd&nbsp;&&nbsp;(1&nbsp;&lt&lt&nbsp;read_bit))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<br />}<br /><br />//&nbsp;写指令和写数据子程序<br />//&nbsp;输入:&nbsp;dat_num:参数数目;&nbsp;dat[2]:参数;&nbsp;cmd_code:命令代码<br />//&nbsp;输出:&nbsp;无<br />void&nbsp;LCMWriteCmd(unsigned&nbsp;char&nbsp;dat_num,unsigned&nbsp;char&nbsp;dat[2],unsigned&nbsp;char&nbsp;cmd_code)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;&nbsp;i&ltdat_num;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(LCMReadStatus(0)&nbsp;==&nbsp;0);&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;检查命令执行使能<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(LCMReadStatus(1)&nbsp;==&nbsp;0);&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;检查数据读写使能<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLR_LCM_CD();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CD=0,写数据<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DELAY5();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LCM_OutData(dat);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;写入数据<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLR_LCM_WR();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DELAY5();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SET_LCM_WR();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;while(LCMReadStatus(0)&nbsp;==&nbsp;0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;检查命令执行使能<br />&nbsp;&nbsp;&nbsp;&nbsp;while(LCMReadStatus(1)&nbsp;==&nbsp;0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;检查数据读写使能&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SET_LCM_CD();<br />&nbsp;&nbsp;&nbsp;&nbsp;DELAY5();<br />&nbsp;&nbsp;&nbsp;&nbsp;LCM_OutData(cmd_code);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;写入命令代码<br />&nbsp;&nbsp;&nbsp;&nbsp;CLR_LCM_WR();<br />&nbsp;&nbsp;&nbsp;&nbsp;DELAY5();<br />&nbsp;&nbsp;&nbsp;&nbsp;SET_LCM_WR();<br />}<br /><br />//&nbsp;写数据子程序<br />//&nbsp;输入:&nbsp;dat:写入数据<br />//&nbsp;输出:&nbsp;无<br />void&nbsp;LCMWriteDat(unsigned&nbsp;char&nbsp;dat)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;CLR_LCM_CD();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CD=0,写数据<br />&nbsp;&nbsp;&nbsp;&nbsp;DELAY5();<br />&nbsp;&nbsp;&nbsp;&nbsp;LCM_OutData(dat);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;写入数据<br />&nbsp;&nbsp;&nbsp;&nbsp;CLR_LCM_WR();<br />&nbsp;&nbsp;&nbsp;&nbsp;DELAY5();<br />&nbsp;&nbsp;&nbsp;&nbsp;SET_LCM_WR();<br />}<br /><br />//&nbsp;读数据子程序<br />//&nbsp;输入:&nbsp;无<br />//&nbsp;输出:&nbsp;dat_read:&nbsp;读入的8位数据<br />unsigned&nbsp;char&nbsp;LCMReadDat(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;dat_read;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(LCMReadStatus(0)&nbsp;==&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;while(LCMReadStatus(1)&nbsp;==&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;CLR_LCM_CD();<br />&nbsp;&nbsp;&nbsp;&nbsp;CLR_LCM_RD();<br />&nbsp;&nbsp;&nbsp;&nbsp;LCM_BUS_DIR_IN();<br />&nbsp;&nbsp;&nbsp;&nbsp;DELAY5();<br />&nbsp;&nbsp;&nbsp;&nbsp;dat_read&nbsp;=&nbsp;LCM_InData();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;读入数据保存在dat_read<br />&nbsp;&nbsp;&nbsp;&nbsp;DELAY5();<br />&nbsp;&nbsp;&nbsp;&nbsp;LCM_BUS_DIR_OUT();<br />&nbsp;&nbsp;&nbsp;&nbsp;SET_LCM_RD();<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;dat_read;<br />}<br /><br />//&nbsp;初始化设置子程序<br />void&nbsp;LCMInit(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;dat[2];<br />&nbsp;&nbsp;&nbsp;&nbsp;LCM_CC_DIR();<br />&nbsp;&nbsp;&nbsp;&nbsp;LCM_BUS_DIR_OUT();<br />&nbsp;&nbsp;&nbsp;&nbsp;LCM_RESET_L();<br />&nbsp;&nbsp;&nbsp;&nbsp;DELAY5();<br />&nbsp;&nbsp;&nbsp;&nbsp;DELAY5();<br />&nbsp;&nbsp;&nbsp;&nbsp;DELAY5();<br />&nbsp;&nbsp;&nbsp;&nbsp;DELAY5();<br />&nbsp;&nbsp;&nbsp;&nbsp;DELAY5();<br />&nbsp;&nbsp;&nbsp;&nbsp;LCM_RESET_H();<br />&nbsp;&nbsp;&nbsp;&nbsp;CLR_LCM_CS();<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;dat[0]&nbsp;=&nbsp;0x00;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;显示首址为0<br />&nbsp;&nbsp;&nbsp;&nbsp;dat[1]&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(2,dat,0x42);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置图形显示区域首址<br />&nbsp;&nbsp;&nbsp;&nbsp;dat[0]&nbsp;=&nbsp;0x10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;16*8&nbsp;=&nbsp;128&nbsp;bit<br />&nbsp;&nbsp;&nbsp;&nbsp;dat[1]&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(2,dat,0x43);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置图形显示区域宽度<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />/*<br />&nbsp;&nbsp;&nbsp;&nbsp;dat[0]&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;dat[1]&nbsp;=&nbsp;0x10;<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(2,dat,0x40);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置文本显示区域首址<br />&nbsp;&nbsp;&nbsp;&nbsp;dat[0]&nbsp;=&nbsp;0x10;<br />&nbsp;&nbsp;&nbsp;&nbsp;dat[1]&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(2,dat,0x41);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置文本显示区域<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;dat[0]&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;dat[1]&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(2,dat,0x21);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置光标指针<br /><br />*/<br />&nbsp;&nbsp;&nbsp;&nbsp;dat[0]&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;dat[1]&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(2,dat,0x22);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置移位寄存器<br />&nbsp;&nbsp;&nbsp;&nbsp;dat[0]&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;dat[1]&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(2,dat,0x24);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置地址指针<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />/*<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(0,dat,0x92);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置闪烁关,光标开<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(0,dat,0xa7);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;光标形状设置<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(0,dat,0x80);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;显示方式设置&nbsp;内部CGROM<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(0,dat,0x9c);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;显示开关设置&nbsp;开文本和图形显示<br />*/<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(0,dat,0x88);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;显示方式设置,外部CGRAM<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(0,dat,0x98);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;显示开关设置&nbsp;开图形显示,关文本显示<br /><br />}<br /><br />//&nbsp;LCM显示储存区清0<br />void&nbsp;LCMClear(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;dat[2];<br />&nbsp;&nbsp;&nbsp;&nbsp;dat[0]&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;dat[1]&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(2,dat,0x24);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置显示储存器首址<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(0,dat,0xb0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置自动写方式<br />&nbsp;&nbsp;&nbsp;&nbsp;for(i=0x2000;&nbsp;i&gt0;&nbsp;i--)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(LCMReadStatus(3)&nbsp;==&nbsp;0);&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;检查自动写方式使能<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteDat(0);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(0,dat,0xb2);<br />}<br /><br />//&nbsp;在指定的位置上画点<br />//&nbsp;输入:&nbsp;位置坐标(x,y),&nbsp;颜色color(1为亮,0为灭)<br />//&nbsp;输出:&nbsp;<br />void&nbsp;GUIPoint(uint8&nbsp;x,uint8&nbsp;y,uint8&nbsp;color)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;dat[2];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;LCM写入参数<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;temp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;LCM的左下角为坐标原点(0,0),显示时假设LCM的左上角为坐标原点,故要进行坐标转换<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;y&nbsp;=&nbsp;LCM_Y_MAX&nbsp;-&nbsp;y;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;坐标转换<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;=&nbsp;(y&nbsp;*&nbsp;LCM_X_MAX&nbsp;+&nbsp;x)/8;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;计算显示地址指针<br />&nbsp;&nbsp;&nbsp;&nbsp;dat[0]&nbsp;=&nbsp;(uint8)(temp&nbsp;%&nbsp;256);<br />&nbsp;&nbsp;&nbsp;&nbsp;dat[1]&nbsp;=&nbsp;(uint8)(temp&nbsp;/&nbsp;256);<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(2,dat,0x24);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置地址指针<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(0,dat,0xc5);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;读入显示RAM的数据<br />&nbsp;&nbsp;&nbsp;&nbsp;dat[0]&nbsp;=&nbsp;LCMReadDat();<br />&nbsp;&nbsp;&nbsp;&nbsp;if(color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;修改显示RAM的数据<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dat[0]&nbsp;=&nbsp;dat[0]&nbsp;|&nbsp;(0x01&nbsp;&lt&lt&nbsp;(7&nbsp;-&nbsp;x%8));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;1&nbsp;-&gt&nbsp;dat[0].(7-x%8)<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dat[0]&nbsp;=&nbsp;dat[0]&nbsp;&&nbsp;(~(0x01&nbsp;&lt&lt&nbsp;(7&nbsp;-&nbsp;x%8)));&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;0&nbsp;-&gt&nbsp;dat[0].(7-x%8)<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(1,dat,0xc4);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;更新显示数据<br />}<br /><br />//&nbsp;T6963.h<br />#include&nbsp;&quot;config.h&quot;<br />#ifndef&nbsp;__T6963_H&nbsp;<br />#define&nbsp;__T6963_H<br /><br />#define&nbsp;LCM_X_MAX&nbsp;&nbsp;&nbsp;&nbsp;128<br />#define&nbsp;&nbsp;&nbsp;&nbsp;LCM_Y_MAX&nbsp;&nbsp;&nbsp;&nbsp;128<br /><br />/*&nbsp;定义LCM与MCU接口的引脚&nbsp;*/<br />#define&nbsp;&nbsp;&nbsp;&nbsp;LCM_RST&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&lt&lt&nbsp;17<br />#define&nbsp;&nbsp;&nbsp;&nbsp;LCM_WR&nbsp;&nbsp;1&nbsp;&lt&lt&nbsp;18<br />#define&nbsp;&nbsp;&nbsp;&nbsp;LCM_RD&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&lt&lt&nbsp;19<br />#define&nbsp;&nbsp;&nbsp;&nbsp;LCM_CS&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&lt&lt&nbsp;20<br />#define&nbsp;&nbsp;&nbsp;&nbsp;LCM_CD&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&lt&lt&nbsp;21<br />#define&nbsp;&nbsp;&nbsp;&nbsp;LCM_DAT&nbsp;&nbsp;&nbsp;&nbsp;(0xff&nbsp;&lt&lt&nbsp;18)<br /><br />/*&nbsp;定义&nbsp;LCM复位&nbsp;*/<br />#define&nbsp;&nbsp;&nbsp;&nbsp;LCM_RESET_H()&nbsp;&nbsp;&nbsp;&nbsp;IO0SET&nbsp;=&nbsp;LCM_RST<br />#define&nbsp;&nbsp;&nbsp;&nbsp;LCM_RESET_L()&nbsp;&nbsp;&nbsp;&nbsp;IO0CLR&nbsp;=&nbsp;LCM_RST<br /><br />/*&nbsp;定义&nbsp;LCM接口的IO引脚方向&nbsp;*/<br />#define&nbsp;&nbsp;&nbsp;&nbsp;LCM_CC_DIR()&nbsp;&nbsp;&nbsp;&nbsp;IO0DIR&nbsp;=&nbsp;IO0DIR&nbsp;|&nbsp;(LCM_WR&nbsp;|&nbsp;LCM_RD&nbsp;|&nbsp;LCM_CS&nbsp;|&nbsp;LCM_CD&nbsp;|&nbsp;LCM_RST)<br />#define&nbsp;LCM_BUS_DIR_IN()&nbsp;&nbsp;&nbsp;&nbsp;IO1DIR&nbsp;=&nbsp;IO1DIR&nbsp;&&nbsp;(~LCM_DAT)<br />#define&nbsp;&nbsp;&nbsp;&nbsp;LCM_BUS_DIR_OUT()&nbsp;&nbsp;&nbsp;&nbsp;IO1DIR&nbsp;=&nbsp;IO1DIR&nbsp;|&nbsp;LCM_DAT<br /><br />/*&nbsp;定义LCM数据总线起始的GPIO,即D0对应的GPIO值(P1.18)&nbsp;*/<br />#define&nbsp;&nbsp;LCM_BUS&nbsp;&nbsp;&nbsp;&nbsp;18<br />/*&nbsp;LCM输出总线数据宏定义&nbsp;*/<br />#define&nbsp;&nbsp;&nbsp;&nbsp;LCM_OutData(dat)&nbsp;&nbsp;&nbsp;&nbsp;IO1CLR&nbsp;=&nbsp;0xff&nbsp;&lt&lt&nbsp;LCM_BUS;&nbsp;&nbsp;&nbsp;&nbsp;IO1SET&nbsp;=&nbsp;(dat&0xff)&nbsp;&lt&lt&nbsp;LCM_BUS<br />/*&nbsp;LCM读入总线数据宏定义&nbsp;*/<br />#define&nbsp;&nbsp;&nbsp;&nbsp;LCM_InData()&nbsp;&nbsp;&nbsp;&nbsp;(unsigned&nbsp;char)((IO1PIN&nbsp;&&nbsp;LCM_DAT)&nbsp;&gt&gt&nbsp;LCM_BUS)<br /><br />/*&nbsp;定义控制信号线电平信号&nbsp;*/<br />#define&nbsp;&nbsp;&nbsp;&nbsp;SET_LCM_CS()&nbsp;&nbsp;&nbsp;&nbsp;IO0SET&nbsp;=&nbsp;LCM_CS<br />#define&nbsp;CLR_LCM_CS()&nbsp;&nbsp;&nbsp;&nbsp;IO0CLR&nbsp;=&nbsp;LCM_CS<br />#define&nbsp;&nbsp;&nbsp;&nbsp;SET_LCM_CD()&nbsp;&nbsp;&nbsp;&nbsp;IO0SET&nbsp;=&nbsp;LCM_CD<br />#define&nbsp;&nbsp;&nbsp;&nbsp;CLR_LCM_CD()&nbsp;&nbsp;&nbsp;&nbsp;IO0CLR&nbsp;=&nbsp;LCM_CD<br />#define&nbsp;&nbsp;&nbsp;&nbsp;SET_LCM_RD()&nbsp;&nbsp;&nbsp;&nbsp;IO0SET&nbsp;=&nbsp;LCM_RD<br />#define&nbsp;&nbsp;&nbsp;&nbsp;CLR_LCM_RD()&nbsp;&nbsp;&nbsp;&nbsp;IO0CLR&nbsp;=&nbsp;LCM_RD<br />#define&nbsp;&nbsp;&nbsp;&nbsp;SET_LCM_WR()&nbsp;&nbsp;&nbsp;&nbsp;IO0SET&nbsp;=&nbsp;LCM_WR<br />#define&nbsp;&nbsp;&nbsp;&nbsp;CLR_LCM_WR()&nbsp;&nbsp;&nbsp;&nbsp;IO0CLR&nbsp;=&nbsp;LCM_WR<br /><br />/*&nbsp;定义外部函数&nbsp;*/<br />extern&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;LCMReadStatus(unsigned&nbsp;char&nbsp;read_bit);<br />extern&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;LCMWriteCmd(unsigned&nbsp;char&nbsp;dat_num,unsigned&nbsp;char&nbsp;dat[2],unsigned&nbsp;char&nbsp;cmd_code);<br />extern&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;LCMWriteDat(unsigned&nbsp;char&nbsp;dat);<br />extern&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;LCMReadDat(void);<br />extern&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;LCMInit(void);<br />extern&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;LCMClear(void);<br />extern&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GUIPoint(uint8&nbsp;x,uint8&nbsp;y,uint8&nbsp;color);<br /><br />#endif
 楼主| hlhfootbal 发表于 2008-12-2 22:48 | 显示全部楼层

DELAY()

请问这个函数延时多长时间?如果没有延时函数会不会影响数据的读写?
 楼主| hlhfootbal 发表于 2008-12-2 22:51 | 显示全部楼层

0x2000是怎么来的?

for(i=0x2000;&nbsp;i&gt0;&nbsp;i--)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(LCMReadStatus(3)&nbsp;==&nbsp;0);&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;检查自动写方式使能<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteDat(0);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />请问你写的次程序是用在多大的屏上的?0x2000是怎么来的?
keyanfeng 发表于 2008-12-2 23:06 | 显示全部楼层

这个好久以前写的

DELAY(),<br />如果是51,随便插一两个nop就行了,<br />你没看见我用的是ARM7吗,所以调用了一个delay函数。<br /><br />我的屏是128*128,<br />为什么是2000,<br />得看你的LCM的资料吧。<br />这个是好久以前的,<br />我自己都忘记了。<br />
keyanfeng 发表于 2008-12-2 23:30 | 显示全部楼层

0x2000指8K显示RAM

楼主可以看这个资料,<br />http://www.syntoplcd.com/CONPDF/T6963C.pdf
 楼主| hlhfootbal 发表于 2008-12-3 10:32 | 显示全部楼层

读不懂GUIPoint()函数

1、uint8是不是unsigned&nbsp;int?<br />2、temp&nbsp;=&nbsp;(y&nbsp;*&nbsp;LCM_X_MAX&nbsp;+&nbsp;x)/8;&nbsp;为什么要除以8?你的液晶是否设置成8*8的显示方式?<br />3、dat[0]&nbsp;=&nbsp;(uint8)(temp&nbsp;%&nbsp;256);<br />&nbsp;&nbsp;&nbsp;dat[1]&nbsp;=&nbsp;(uint8)(temp&nbsp;/&nbsp;256);看不懂。<br />4、&nbsp;LCMWriteCmd(0,dat,0xc5);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;读入显示RAM的数据<br />&nbsp;&nbsp;&nbsp;&nbsp;这个指令是做什么用的?如果是想令液晶显示数据的话,应该用0xc4指令吧?<br />5、dat[0]&nbsp;=&nbsp;LCMReadDat();<br />&nbsp;&nbsp;&nbsp;&nbsp;if(color)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;修改显示RAM的数据<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dat[0]&nbsp;=&nbsp;dat[0]&nbsp;|&nbsp;(0x01&nbsp;&lt&lt&nbsp;(7&nbsp;-&nbsp;x%8));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;1&nbsp;-&gt&nbsp;dat[0].(7-x%8)<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dat[0]&nbsp;=&nbsp;dat[0]&nbsp;&&nbsp;(~(0x01&nbsp;&lt&lt&nbsp;(7&nbsp;-&nbsp;x%8)));&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;0&nbsp;-&gt&nbsp;dat[0].(7-x%8)<br />&nbsp;&nbsp;&nbsp;&nbsp;LCMWriteCmd(1,dat,0xc4);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;更新显示数据<br />&nbsp;dat[0]&nbsp;=&nbsp;dat[0]&nbsp;|&nbsp;(0x01&nbsp;&lt&lt&nbsp;(7&nbsp;-&nbsp;x%8));这个语句看部懂。<br /><br />谢谢解答!<br /><br /><br />
 楼主| hlhfootbal 发表于 2008-12-4 15:18 | 显示全部楼层

自己顶下!

  
 楼主| hlhfootbal 发表于 2008-12-4 18:29 | 显示全部楼层

今天我用示波器挂了下波形

今天我用示波器挂了下波形发现只有RD控制信号起作用。PORTC口只有PORTC.7和PORTC.2有波形,这波形也不正常,是锯齿波,幅度只有3.3V。PORTC.6低电平,PORTC.5高电平,PORTC.4低电平,PORTC.3高电平,PORTC.1高电平,PORTC.0高电平。<br />根据以上的现象,我推测Re_Sta()有问题,没有读到正确的状态。Re_Sta()函数如下。各位帮我看看有什么问题,具体程序在最上面。谢谢!<br />void&nbsp;Re_Sta(unsigned&nbsp;char&nbsp;mark)<br />{<br />&nbsp;&nbsp;bit&nbsp;exit=0;<br />&nbsp;&nbsp;unsigned&nbsp;char&nbsp;state;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;DDRC=0X00;//portc&nbsp;is&nbsp;input<br />&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;RD=0;<br />&nbsp;&nbsp;//nop<br />&nbsp;&nbsp;//nop<br />&nbsp;&nbsp;state=PINC;<br />&nbsp;&nbsp;//_NOP();<br />&nbsp;&nbsp;//_NOP();<br />&nbsp;&nbsp;RD=1;<br />&nbsp;&nbsp;switch(mark)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;1:if(state&0x03)exit=1;break;/*check&nbsp;commad&nbsp;execution&nbsp;capability&nbsp;or&nbsp;check&nbsp;data&nbsp;read/write&nbsp;capability*/<br />&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;2:if(state&0x04)exit=1;break;/*check&nbsp;auto&nbsp;mode&nbsp;data&nbsp;read&nbsp;capability*/<br />&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;3:if(state&0x08)exit=1;break;/*check&nbsp;auto&nbsp;mode&nbsp;data&nbsp;write&nbsp;capability*/<br />&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;4:if(state&0x40)exit=1;break;/*error&nbsp;flag;used&nbsp;for&nbsp;screen&nbsp;peek&nbsp;and&nbsp;screen&nbsp;copy&nbsp;commads*/<br />&nbsp;&nbsp;&nbsp;&nbsp;default:break;&nbsp;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;if(exit==1)<br />&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;DDRC=0XFF;//PORTC&nbsp;IS&nbsp;OUTPUT<br />}
yjs1314 发表于 2008-12-22 14:54 | 显示全部楼层

根据LCD的时序,先确定硬件有没有问题?

根据LCD的时序,先确定硬件有没有问题?&nbsp;WR&nbsp;RD&nbsp;CD和CS高低状态是否确定,另外LCD的数据口,在操作的时候要注意输入输出方向的变化。这个芯片我用在240128上面,先后在C8051和AVR上面都移植过,很方便就显示起来了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

133

主题

417

帖子

1

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