欢迎来到天天文库
浏览记录
ID:5231079
大小:27.00 KB
页数:5页
时间:2017-12-06
《基于51单片机控制液晶显示屏c程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于51单片机控制液晶显示屏C程序设计 摘要点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线和汉字。本文介绍了采用C语言实现对液晶显示器TG12864的控制。关键词单片机;C语言;TG12864;液晶显示中图分类号:TP271文献标识码:A文章编号:1671—7597(2013)031-017-021TG12864液晶原理1.1TG12864显示原理点阵式LCD其显示原理是控制LCD点阵中点的亮暗,亮和暗的点阵按一定规律可以组成汉字,组成一幅图形和曲线等。1.2TG12864内部结构及相关指令
2、1.2.1TG12864内部结构TG12864是一种图形点阵液晶显示器,它主要由行驱动器、列驱动器及128×64全点阵液晶显示器组成,有20个外部引脚。可以由单片机控制显示8×4个16×16点阵汉字。1.2.2TG12864相关指令该类液晶显示模块的指令系统比较简单,总共有七种。1)显示开关指令。5功能:设置屏幕显示开/关,DB0=1,开显示;DB0=0,关显示。DB7~DB0=0x3f,开显示;DB7~DB0=0x3e,关显示。2)显示起始行设置。功能:显示起始行是由Z地址计数器控制的,该命令自动将A0~
3、A5位地址送入Z地址计数器,起始地址可以是0~63范围内任意一行。Z地址计数器具有循环计数功能,用于显示行扫面同步,当扫描完一行后自动加一。DB7~DB0=0xc0,显示从0行开始。3)页设置。功能:页地址存储在X地址计数器中,A2~A0可表示8页,读写数据对页地址没有影响,除本指令可改变页地址外,复位信号RST可把页地址计数器内容清零。DB7~DB0=0xb8,显示从0页开始。4)列地址设置。功能:列地址存储在Y地址计数器中,读写数据对列地址有影响,在对DDRAM进行读写操作后,Y地址自动加一。DB7~D
4、B0=0x40,显示从0列开始。5)读状态。功能:读忙信号标志位BF,复位标志RST以及显示状态(ON/OFF)bf=1,内部忙;bf=0,内部空闲;res=1,正处于复位初始化状态,res=0,正常状态。6)写数据。5写数据到DDRAM,DDRAM是存储图形数据的,写数据到DDRAM前,要先执行设置页地址及设置列地址命令。7)读数据。从DDRAM读数据,读数据前,要先执行设置页地址及设置列地址命令。2应用程序设计#include#defineucharunsignedchar#defineuintunsi
5、gnedint#definedisp_on0x3f//定义开显示#definedisp_off0x3e//定义关显示#definedis_x0xb8//定义显示0页#definedis_y0x40//定义显示0列#definedis_z0xc0//定义显示0行#definedbP0sbitrs=P2 ;sbitrw=P2;sbite=P2;sbitcs1=P2;sbitcs2=P2;sbitrst=P2;sbitbf=P2;sbitres=P2;5ucharcodetab[]={/*青海工业职
6、业学校*/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*);voidmain()//主程序{chushihua();display();while(1
7、);}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);5e=0;}voidcheck_busy(void)//检测忙闲函数{db=0xff;rs=0;rw=1;delay(1);e=1;while(res
8、
9、b
10、f==1);e=0;}voidclear_lcd(void)//清屏函数 {uchari,j;cs1=1;cs2=1;wr_lcd(0,disp_on);for(j=0;j0;x--)for(i=0;i5
此文档下载收益归作者所有