本论文是一篇地址类论文怎么写,关于基于51单片机控制的液晶显示屏C程序设计相关毕业论文格式模板范文。免费优秀的关于地址及参考文献及点阵方面论文范文资料,适合地址论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。
摘 要点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线和汉字.本文介绍了采用C语言实现对液晶显示器TG12864的控制.
关 键 词单片机;C语言;TG12864;液晶显示
中图分类号:TP271文献标识码:A文章编号:1671—7597(2013)031-017-02
1TG12864液晶原理
1.1TG12864显示原理
点阵式LCD其显示原理是控制LCD点阵中点的亮暗,亮和暗的点阵按一定规律可以组成汉字,组成一幅图形和曲线等.
有关论文范文主题研究: | 关于地址的论文范文集 | 大学生适用: | 硕士学位论文、函授毕业论文 |
---|---|---|---|
相关参考文献下载数量: | 45 | 写作解决问题: | 写作技巧 |
毕业论文开题报告: | 文献综述、论文设计 | 职称论文适用: | 核心期刊、职称评中级 |
所属大学生专业类别: | 写作技巧 | 论文题目推荐度: | 优质选题 |
1.2TG12864内部结构及相关指令
1.2.1TG12864内部结构
TG12864是一种图形点阵液晶显示器,它主要由行驱动器、列驱动器及128×64全点阵液晶显示器组成,有20个外部引脚.可以由单片机控制显示8×4个16×16点阵汉字.
1.2.2TG12864相关指令
该类液晶显示模块的指令系统比较简单,总共有七种.
1)显示开关指令.
功能:设置屏幕显示开/关,DB0等于1,开显示;DB0等于0,关显示.DB7~DB0等于0x3f,开显示;DB7~DB0等于0x3e,关显示.
2)显示起始行设置.
功能:显示起始行是由Z地址计数器控制的,该命令自动将A0~A5位地址送入Z地址计数器,起始地址可以是0~63范围内任意一行.Z地址计数器具有循环计数功能,用于显示行扫面同步,当扫描完一行后自动加一.DB7~DB0等于0xc0,显示从0行开始.
3)页设置.
功能:页地址存储在X地址计数器中,A2~A0可表示8页,读写数据对页地址没有影响,除本指令可改变页地址外,复位信号RST可把页地址计数器内容清零.DB7~DB0等于0xb8,显示从0页开始.
4)列地址设置.
功能:列地址存储在Y地址计数器中,读写数据对列地址有影响,在对DDRAM进行读写操作后,Y地址自动加一.DB7~DB0等于0x40,显示从0列开始.
5)读状态.
功能:读忙信号标志位BF,复位标志RST以及显示状态(ON/OFF)bf等于1,内部忙;bf等于0,内部空闲;res等于1,正处于复位初始化状态,res等于0,正常状态.
6)写数据.
写数据到DDRAM,DDRAM是存储图形数据的,写数据到DDRAM前,要先执行设置页地址及设置列地址命令.
7)读数据.
从DDRAM读数据,读数据前,要先执行设置页地址及设置列地址命令.
2应用程序设计
#include
#defineucharunsignedchar
#defineuintunsignedint
#definedisp_on0x3f//定义开显示
#definedisp_off0x3e//定义关显示
#definedis_x0xb8//定义显示0页
#definedis_y0x40//定义显示0列
#definedis_z0xc0//定义显示0行
#definedbP0
sbitrs等于P2^0;
sbitrw等于P2^1;
sbite等于P2^2;
sbitcs1等于P2^3;
sbitcs2等于P2^4;
sbitrst等于P2^5;
sbitbf等于P2^6;
sbitres等于P2^7;
ucharcodetab[]等于{/*青海工业职业学校*/0x01,0x00,0x01,0x00,0x3F,0xF8,0x01...};
voidcheck_busy(void);
voidchushihua(void);
voiddelay(uint);
voidwr_lcd(uchar,uchar);
voidclear_lcd(void);
voiddisplay(void);
void_disp(uchar,uchar,uchar,uchar,uchar,uchar*);
本篇论文url:http://www.sxsky.net/benkelunwen/060164490.html
voidmain()//主程序
{chushihua();display();while(1);}
voidchushihua(void)//液晶初始化函数
{rst等于0;delay(50);rst等于1;
cs1等于1;cs2等于1;
wr_lcd(0,disp_off);
wr_lcd(0,disp_on);}
voidwr_lcd(uchari,ucharj)//写液晶函数
{check_busy();
rs等于i;rw等于0;
db等于j;e等于1;
delay(1);
e等于0;}
voidcheck_busy(void)//检测忙闲函数
{db等于0xff;
rs等于0;rw等于1;
delay(1);
e等于1;
while(res||bf等于等于1);
e等于0;}
voidclear_lcd(void)//清屏函数{uchari,j;cs1等于1;cs2等于1;
wr_lcd(0,disp_on);
for(j等于0;j<8;j++)
{wr_lcd(0,dis_x+j);
wr_lcd(0,dis_y);
wr_lcd(0,dis_z);
for(i等于0;i<32;i++)
{wr_lcd(1,0x00);
wr_lcd(1,0x00);}
}
}
void_disp(ucharye,ucharlie,ucharhang,ucharls,ucharzs,uchar*ptr1)//液晶显示函数
{uchari,j,m,n,a;
wr_lcd(0,disp_on);
地址本科毕业论文怎么写啊
播放:34165次 评论:3925人
for(m等于0;m {for(n等于0;n {for(j等于0;j<2;j++)//每个字显示两页 {wr_lcd(0,dis_x+j+ye+m*2);//显示起始页设置 wr_lcd(0,dis_z);//显示起始行设置 wr_lcd(0,dis_y+lie+n*ls);//显示起始列设置 a等于j*ls+n*2*ls+m*zs*2*ls;//控制字的显示数组位 for(i等于0;i {wr_lcd(1,*(ptr1+a+i));} } } } } voiddisplay(void)//显示主程序 { uchar*ptr; clear_lcd(); cs1等于1;cs2等于0;//开左屏显示青海工业 ptr等于&tab[0];//取数组首地址 _disp(0,0,1,16,4,ptr);//显示从0页、0列开始,显示一行,每个字16列显示2个字 cs1等于0;cs2等于1;//开右屏显示职业学校 ptr等于&tab[128];//取数组的第128个元素地址 _disp(0,0,1,16,4,ptr);//显示从0页、0列开始,显示一行,每个字16列显示2个字