完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#define lcd_data P0 ***it RS = P2^0; ***it RW = P2^1; ***it E = P1^6; ***it PSB = P2^2; void delay(unsigned int k) enum // Header: // File Name: // Author: // Date: { }; { unsigned int i; unsigned char j; for(i=0;i for(j=0;j<10;j++); } } //******************************************************** //延时1ms函数 //******************************************************** void delay_ms(unsigned int k)//延时0.994us,晶振12M { unsigned int x,y; for(x=k;x>0;x--) for(y=121;y>0;y--); } //******************************************************** //写命令函数 //******************************************************** void LcdWcom(unsigned char WCom) { delay(1); RS=0; //指明操作对象为指令寄存器 RW=0; //指明为写操作 E=1; lcd_data=WCom; //将命令写入总线 E=0; } //******************************************************** //写数据函数 //******************************************************** void LcdWdata(unsigned char WData) { delay(1); RS=1; //指明操作对象为数据寄存器 RW=0; //指明为写操作 E=1; lcd_data=WData; //将数据写入总线 E=0; } //******************************************************** //显示初始化函数 //******************************************************** void Display_Init(void) { delay_ms(45); //延时45ms PSB=1; //8位并行口 //功能设定 LcdWcom(0x30); //设置为8位并行口,基本指令集 delay(10); LcdWcom(0x30); //再次设置为8位并行口,基本指令集 delay(5); // //显示开关控制 // LcdWcom(0x0c); //游标显示关,正常显示,整体显示开 // delay(10); //清除显示 LcdWcom(0x01); delay_ms(12); //延时12ms //进入点设置 LcdWcom(0x06); //设置为游标右移,DDRAM位地址加1,画面不移动 delay(5); LcdWcom(0x0C); //开显示 } //******************************************************** //设置光标函数 //参数说明:x为行号,y为列号 //******************************************************** void Set_Cursor(unsigned char x, unsigned char y) { unsigned char i; switch(x)//确定行号 { case 0x00: i=0x80; break;//第一行 case 0x01: i=0x90; break;//第二行 case 0x02: i=0x88; break;//第三行 case 0x03: i=0x98; break;//第四行 default : break; } i = y+i;//确定列号 LcdWcom(i);//写地址 } //******************************************************** //显示字符函数 //******************************************************** void Display_Char(unsigned char Alphabet) { delay(1); LcdWdata(Alphabet); //写入需要显示字符的显示码 } /**********************显示单个字符*************************/ void main() { while(1) { Set_Cursor(0,0); //光标地址设定 Display_Char(0x21); //显示字符! } } |
|
相关推荐
3 个讨论
|
|
不错,顶一下楼主,值得收藏
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 08:18 , Processed in 0.676403 second(s), Total 59, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号