完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
#define uint unsigned int #define uchar unsigned char ***it PSB=P3^2;//串,并选择端 ***it RST=P3^4;//复位(低电平有效) ***it rs=P2^6; //数据命令选择端 ***it wr=P2^5; //读写选择端 ***it E=P2^7; //使能 void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void read_busy() //读取12864是否忙 { uchar t; E=0; P0=0xff;//释放数据线 rs=0; wr=1; E=1; delay(10); t=P0; while((t&0x80)==0x80) { t=P0; } E=0; } void write_order(uchar com) //写指令 { read_busy(); E=0; rs=0; wr=0; P0=com; delay(10); E=1; delay(10); E=0; } void write_data(uchar dat) //写数据 { read_busy(); E=0; rs=1; wr=0; P0=dat; delay(10); E=1; delay(10); E=0; } uint read_data() //读数据 { uint date; read_busy(); P0=0xff;//释放数据线 E=0; rs=1; wr=0; E=1; delay(10); date=P0; delay(10); E=0; return date; } void draw_point(uchar x,uchar y) //画点 { uchar i,j,n,bt1,bt2,yloc,xloc; uint h_bite,l_bite,t_byte,n_byte,byte; i=x/16; //确定横坐标 j=y%32; //确定纵坐标 n=x%16; //确定点亮的具体点位置 yloc=0x80+j;//y坐标 if(y>=32) { xloc=0x88+i; //X坐标 } else { xloc=0x80+i; //X坐标 } n_byte=0x8000>>n; write_order(0x34);//打开扩充指令集,关闭绘图显示 write_order(yloc);//写Y轴坐标 write_order(xloc);//写X轴坐标 read_data(); h_bite=read_data()<<8;//读出高八位数据 l_bite=read_data();//读出低八位数据 t_byte=h_bite|l_bite;//读出的两字节数据 byte=t_byte|n_byte; //重新写入的值 bt1=byte>>8; //重新写入的第一字节(高八位) bt2=byte; //重新写入的第二字节 (低八位) write_order(yloc); //重新写入Y坐标 write_order(xloc); //重新写入X坐标 write_data(bt1); write_data(bt2); write_order(0x36); //打开绘图显示 write_order(0x30); //恢复基本操作指令 } void clean() //绘图操作的清屏函数 { uchar i,j; write_order(0x34); for(i=0;i<16;i++) { write_order(0x80+i);//写横坐标 for(j=0;j<32;j++) { write_order(0x80+j); //写纵坐标 write_data(0x00); //清屏高八位 write_data(0x00); //清屏低八位 } } write_order(0x36); write_order(0x30); } void intil() //12864初始化 { PSB=1;//并行通信 RST=0;//液晶复位 delay(10); RST=1; write_order(0x0c);//开显示,关游标,关反白 write_order(0x06);//数据读取和写入时游标右移,显示右移 write_order(0x30);//8位数据并行通信,基本操作 write_order(0x01); //清屏 } void main() { intil(); clean(); draw_point(127,63); while(1); } |
|
相关推荐
2个回答
|
|
有效果图不?最好都上来看看
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
195 浏览 0 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
172 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
453 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
697 浏览 2 评论
602 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11988 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 13:55 , Processed in 0.680539 second(s), Total 71, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号