- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
lcd12864显示程序
/*************************************************名??? 称:LCD12864_ST7920并行测试程序试验功能:测试基于ST7920控制芯片的LCD12864的显示????????? 并行方式连接;晶振11.0592M编??? 写:JiangX.net*************************************************/
#include reg52.h#include ziku.h#include intrins.h#define uchar unsigned char#define uint unsigned int????//宏定义
/*****LCD接口定义*****/sbit LCD_RS? = P2^0;?????//1:输入数据 ;0:输入命令sbit LCD_RW? = P2^1;?????//1:读数据? 0:写数据sbit LCD_EN? = P2^2;?????//LCM使能端sbit LCD_PSB = P2^3;? ?????//串并口选择 1:并口模式; 0:串口模式;#define LCD_DATA? P0?????//LCD总线端口
/*****LCD功能初始化指令*****/#define CLEAR_SCREEN?0x01???//清屏指令:清屏且AC值为00H#define AC_INIT???0x02???//将AC设置为00H。且游标移到原点位置#define CURSE_ADD??0x06???//设定游标移到方向及图像整体移动方向(默认游标右移,图像整体不动)#define FUN_MODE??0x30???//工作模式:8位基本指令集#define DISPLAY_ON??0x0c???//显示开,显示游标,且游标位置反白#define DISPLAY_OFF??0x08???//显示关#define CURSE_DIR??0x14???//游标向右移动:AC=AC+1#define SET_CG_AC??0x40???//设置AC,范围为:00H~3FH#define SET_DD_AC??0x80
/*****汉字地址表*****/uchar code addr_tab[]={?????//便于根据汉字坐标求出地址0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,//第一行汉字位置0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,//第二行汉字位置0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,//第三行汉字位置0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,//第四行汉字位置};
/*****n(ms)延时子程序*****/void delayms(uint t)?????//约延时n(ms){?uint i;?while(t--)?{??for(i=0;i125;i++);?}????????}
/*****等待LCD忙*****/void WaitBusy(void)??????//延时一小段时间,等待LCD空闲{?uchar i=5;??? while(i--);}
/*****写指令代码*****/void Lcd_WriteCmd(uchar cmdcode){?? ?LCD_RS = 0;?? ?LCD_RW = 0;?? ?LCD_EN = 1;?WaitBusy();?? ?LCD_DATA = cmdcode;?? ?LCD_EN = 0;}
/*****写数据*****/void Lcd_WriteData(uchar dispdata){?? ?LCD_RS = 1;?? ?LCD_RW = 0;?? ?LCD_EN = 1;?WaitBusy();?? ?LCD_DATA = dispdata;?? ?LCD_EN = 0;}
/*****初始化LCD*****/void Lcd_Init(){??? ?LCD_PSB = 1;?delayms(50);?? ?Lcd_WriteCmd(0x30);???? ???//选择基本指令集?delayms(1);?? ?Lcd_WriteCmd(0x30);?????? ???//选择8bit数据流?delayms(1);?? ?Lcd_WriteCmd(0x0c);?????? ???//开显示(无游标、不反白)?delayms(1);?? ?Lcd_Write
文档评论(0)