No.66219 作者:龙胜 邮件:lilongsheng1982@sina.com ID:27668 登陆:3次 文章数:1篇 最后登陆IP:221.232.73.120 最后登陆:2005/6/23 19:57:20 注册:2004/11/14 7:39:59 财富:107 发帖时间:2004/11/14 7:42:25 发贴者IP:221.232.93.22 标题:龙胜:使用的是TIANMA公司的TM128×32AD P1-1的图形液晶显示器,我这样写驱动可以吗?请各位大侠指教一下哦! 摘要:No.66219使用的是TIANMA公司的TM128×32AD P1-1的图形液晶显示器,我这样写驱动可以吗?请各位大侠指教一下哦! /************************************************************* 文件明.Lcd.c 实现液晶的驱动,提供显示的基本功能 使用的是TIANMA公司的TM128×32AD P1-1的图形液晶显示器 驱动器为HD61202U **************************************************************/ //**********包含头文件*************** #include <PublicHead.h> #include <Lcd.h> //*************端口定义********************** sbit LCD12832_DI = P3 ^ 4; //数据或命令危 //为1表示要显示的数据,为0表示控制数据 sbit LCD12832_RW = P3 ^ 3; //读写 //为1表示读出,为0表示写入 sbit LCD12832_E = P3 ^ 2; //使能端,wei0 you xiao sbit LCD12832_CS = P3 ^ 7; //片选,wei 1 you xiao//一下订正同此 #define LCD12832_DATA P2 //数据口 void ClearScreen( UNCHAR, UNCHAR, UNCHAR ); //清屏操作 UNCHAR StatusRead(); //读液晶当前状态 void SetX( UNCHAR ); //设置x轴位置,以字符行8个点管理 void SetY( UNCHAR ); //设置y轴位置 void SetStartLine( UNCHAR ); //设置StartLine轴位置 void WriteDisplayData( UNCHAR ); //向RAM写要求显示的数据 UNCHAR ReadDisplayData( UNCHAR );//从RAM读出显示的数据 void SetDisplayOn( void ); //设置显示开 void SetDisplayOff( void ); //设置显示关 /**************************************/ //******设置内部RAM地址指令******** //************************************************ //******设置x轴位置 void SetX( x ) //设置x轴位置,要求W/R=0,D/I=0以字符行管理 UNCHAR x; { UNCHAR h; h = StatusRead(); //检测状态 while ( h & 0x80 ); //此时的wr=1,di=0 LCD12832_RW = 0; //此时的wr=0,di=0 LCD12832_DATA = ( x * 8 ) & 0x0BF; //写入参数,乘8==> 这样便于以字符行管理 LCD12832_CS = 1; //片选,wei 0 you xiao LCD12832_E = 0; //使能端,wei0 you xiao } //************************************************ //******设置y轴位置 void SetY( y ) //设置y轴位置,要求W/R=0,D/I=0 UNCHAR y; { UNCHAR h; h = StatusRead(); //检测状态 while ( h & 0x80 ); LCD12832_RW = 0; //此时的wr=0,di=0 LCD12832_DATA = y & 0x7F; //写入参数 //写入参数 LCD12832_CS = 1; //片选,wei 0 you xiao LCD12832_E = 0; //使能端,wei0 you xiao } //************************************************ //******设置开始行 void SetStartLine( StartLine ) //设置StartLine轴位置,要求W/R=0,D/I=0 UNCHAR StartLine; { UNCHAR h; h = StatusRead(); //检测状态 while ( h & 0x80 ); LCD12832_RW = 0; //此时的wr=0,di=0 LCD12832_DATA = StartLine & 0x0FF; //写入参数 //写入参数 LCD12832_CS = 1; //片选,wei 0 you xiao LCD12832_E = 0; //使能端,wei0 you xiao } //******设置内部RAM数据读写指令******** //************************************************ //******写液晶,一次一个字节 void WriteDisplayData( W_DisplayData ) //向RAM写要求显示的数据 UNCHAR W_DisplayData; { UNCHAR h; h = StatusRead(); //检测状态 while ( h & 0x80 ); //此时的wr=0,di=0 LCD12832_RW = 0; LCD12 ......
>>返回讨论的主题
|