完善资料让更多小伙伴认识你,还能领取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) { 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); //显示字符! } } |
|
相关推荐
1 个讨论
|
|
171 浏览 1 评论
779 浏览 1 评论
960 浏览 2 评论
为什么在频率为10^3 Hz处,产生的相移就可以确定约为-90度
1549 浏览 1 评论
【高手问答】电路的功能是为了0.6v到40v之间调压,运放发热严重
4084 浏览 8 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 03:38 , Processed in 0.612488 second(s), Total 46, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号