完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
#define uchar unsigned char #define uint unsigned int uchar table[]={"X:"}; uchar table1[]={"Y:"}; ***it rs=P2^5;//数据命令选择端 RS寄存器选择,RS=1数据寄存器,RS=0指令寄存器 ***it rw=P2^6; ***it en=P2^7;//使能端 en为低电平时液晶屏开始执行命令。 uchar num,num1,x1,y1; uchar a,b; void delay(uint n)//延时程序 { while(n>0) n--; } bit Busy(void) { bit busy_flag = 0; rs = 0; rw = 1; en = 1; delay(5); busy_flag = (bit)(P0 & 0x80); en = 0; return busy_flag; } void write_com(uchar com) //液晶写命令程序 { while(Busy()); rw=0; rs=0;//等0输入是命令 en=0;//液晶使能信号初始化 delay(10); P0=com;//把com参数,液晶的命令值送到P0口 delay(10);//延时,按照液晶时序图要的要求 en=1;//使能信号,0到1表示上升沿打开可以写命令数据到液晶里 delay(10); en=0;//使能信号恢复0 } void write_data(uchar date) //液晶写数据程序 { while(Busy()); rs=1; //等1表示输入是数据 rw=0; en=0; delay(10); P0=date; //把date参数,液晶的数据送到P0口; delay(10); en=1; delay(10); en=0; } void init() //液晶初始化程序 { en=0; delay(50); write_com(0x38); //0x38是按照液晶文档说明写 0011 1000 显示模式设置:设置为16*2显示,5*7点阵,8位数据接口 delay(50); write_com(0x0c); //0000 1100 显示开关及光标设置,开显示,不显示光标,光标不闪烁 delay(10); write_com(0x06); //0000 0110 输入模式设置,光标右移,文字不移动 delay(10); write_com(0x01); //0000 0001 液晶全清屏指令 } void convertx() { uint temp; temp=x1; table[8]=(temp/100)+'0'; //液晶第9位字符为坐标的百位数,例如120度的1 table[9]=((temp/10)%10)+'0'; //液晶的第10位字符为坐标的十位,例如2 table[10]=(temp%10)+'0'; //液晶的第11位字符为坐标的个位,例如0 } void converty() { uint tem; tem=y1; table1[8]=(tem/100)+'0'; //液晶第9位字符为坐标的百位数,例如120度的1 table1[9]=((tem/10)%10)+'0'; //液晶的第10位字符为坐标的十位,例如2 table1[10]=(tem%10)+'0'; //液晶的第11位字符为坐标的个位,例如0 } void main() { x1=0xb5; y1=0xb2; delay(30); init(); convertx(); //液晶的第一行开始地址 for(num=0;num<16;num++) //显示16位数据,后面的几位没有用到就不写到16,以免后面的几位会出现一个随机数据显示乱码 {a=0x80+num; write_com(a); write_data(table[num]); //液晶需要显示的内容 } converty(); for(num1=0;num1<16;num1++) //显示16位数据,后面的几位没有用到就不写到16,以免后面的几位会出现一个随机数据显示乱码 {b=0xc0+num1; write_com(b); write_data(table1[num1]); //液晶需要显示的内容 } while(1); }
|
|
相关推荐
7个回答
|
|
从图上看 字母和数字可以显示 那么你屏蔽Y的字符 先从X查起来
|
|
|
|
先显示一个点试试,在固定的坐标上显示.
|
|
|
|
我分别屏蔽了X和Y之后就成了这样。屏蔽了Y后能显示出数来,但是屏蔽了X后显示的就是Y跑到了第一行,数在第二行。
|
|
|
|
|
|
|
|
本帖最后由 z1ht 于 2016-4-25 11:22 编辑
把X后面的:换成:(全角) 问题出在:上,液晶会把半角的:转成全角的:但是它是按照汉字处理,首地址必须是偶数0,2,4之类的。你看看液晶上的:占几个格 |
|
|
|
|
|
|
|
z1ht 发表于 2016-4-25 11:09 试了,没效果啊,依然是X的值与Y的值是混着显的 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
479 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-内核编译之初次编译
229 浏览 0 评论
334 浏览 0 评论
165 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》 第十六章 WATCH_DOG实验
496 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11972 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 16:24 , Processed in 2.860697 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号