共2条
1/1 1 跳转至页
际踅涣?ST7920 求助:ST7920液晶的绘图功能怎么弄啊?都调了2天了,还是不行
问
求助:ST7920液晶的绘图功能怎么弄啊?都调了2天了,还是不行!都调晕了!大家知道的帮帮我吧!
谢谢了! 答 1: 我这两天刚好也在学习这个,有点资料不知道对你有用没这个是12864的程序
//延时子程序
void delay(unsigned int t)
{ unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<10;j++);
}
//写命令到LCD
void write_com(unsigned char cmdcode)
{ RS=0;
RW=0;
E=1;
Lcd_Bus=cmdcode;
E=0;
delay(5);
}
//写数据到LCD
void write_data(unsigned char Dispdata)
{ RS=1;
RW=0;
E=1;
lcd_Bus=Dispdata;
E=0;
delay(5);
}
//初始化LCD屏
void lcdinit()
{ delay(2000);
write_com(0x30); //选择基本指令集
delay(10);
write_com(0x30); //选择8bit数据流
delay(5);
write_com(0x0c); //开显示(无游标,不反白)
delay(10);
write_com(0x01); //清显示并设地址指针为00H
delay(500);
write_com(0x06); //指定在资料的读取及写入时设定游标的
//移动方向及指定显示的位移
delay(0);
}
//显示字符串
void hzkdis(unsigned char code *s)
{ while(*s>0)
{ wrire_data(*s);
s++;
delay(50);
}
}
//显示文本
void ceshi()
{ write_com(0x01);
delay(5);
write_com(0x82);
hzkdis("TOPWAY");
write_com(0x88);
hzkdis("LM3033 测试程序");
}
//显示图片
void Disp_Img(unsigned char code *img)
{ unsigned int j=0;
unsigned char x,y,i;
for(i=0;i<9;I+=8)
for(y=0;y<32;y++)
for(x=0;x<8;x++)
{ write_com(0x36);
write_com(y+0x80);
write_com(x+0x80+i);
write_com(0x30);
write_data(img[j++]);
write_data(img[j++]);
}
}
unsigned char code BMP[]={0x00,0x00,......}
void main()
{ lcdinit(); //初始化LCD屏
delay(10);
while(1)
{
cashi(); //显示文本
delay(5000);
write_com(0x01); //清屏
delay(10);
Disp_Img(BMP); //显示图画
delay(1000);
write_com(0x01); //清屏
delay(10);
}
} 答 2: 谢谢!谢谢!我找的就是 显示图片 这部分,文本都已经搞定!
我用的是串行通讯!我的显示是往指定的地址送数据
display(地址,数据1,数据2) 一般只刷新局部!
显示图画这部分调了两天了,没有什么进展!谢谢你哦!
答 3: 我的时序和你的一样的阿?怎么我的就不好用呢?晕倒!
我的时序和你的一样的阿?怎么我的就不好用呢?晕倒!
谢谢了! 答 1: 我这两天刚好也在学习这个,有点资料不知道对你有用没这个是12864的程序
//延时子程序
void delay(unsigned int t)
{ unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<10;j++);
}
//写命令到LCD
void write_com(unsigned char cmdcode)
{ RS=0;
RW=0;
E=1;
Lcd_Bus=cmdcode;
E=0;
delay(5);
}
//写数据到LCD
void write_data(unsigned char Dispdata)
{ RS=1;
RW=0;
E=1;
lcd_Bus=Dispdata;
E=0;
delay(5);
}
//初始化LCD屏
void lcdinit()
{ delay(2000);
write_com(0x30); //选择基本指令集
delay(10);
write_com(0x30); //选择8bit数据流
delay(5);
write_com(0x0c); //开显示(无游标,不反白)
delay(10);
write_com(0x01); //清显示并设地址指针为00H
delay(500);
write_com(0x06); //指定在资料的读取及写入时设定游标的
//移动方向及指定显示的位移
delay(0);
}
//显示字符串
void hzkdis(unsigned char code *s)
{ while(*s>0)
{ wrire_data(*s);
s++;
delay(50);
}
}
//显示文本
void ceshi()
{ write_com(0x01);
delay(5);
write_com(0x82);
hzkdis("TOPWAY");
write_com(0x88);
hzkdis("LM3033 测试程序");
}
//显示图片
void Disp_Img(unsigned char code *img)
{ unsigned int j=0;
unsigned char x,y,i;
for(i=0;i<9;I+=8)
for(y=0;y<32;y++)
for(x=0;x<8;x++)
{ write_com(0x36);
write_com(y+0x80);
write_com(x+0x80+i);
write_com(0x30);
write_data(img[j++]);
write_data(img[j++]);
}
}
unsigned char code BMP[]={0x00,0x00,......}
void main()
{ lcdinit(); //初始化LCD屏
delay(10);
while(1)
{
cashi(); //显示文本
delay(5000);
write_com(0x01); //清屏
delay(10);
Disp_Img(BMP); //显示图画
delay(1000);
write_com(0x01); //清屏
delay(10);
}
} 答 2: 谢谢!谢谢!我找的就是 显示图片 这部分,文本都已经搞定!
我用的是串行通讯!我的显示是往指定的地址送数据
display(地址,数据1,数据2) 一般只刷新局部!
显示图画这部分调了两天了,没有什么进展!谢谢你哦!
答 3: 我的时序和你的一样的阿?怎么我的就不好用呢?晕倒!
我的时序和你的一样的阿?怎么我的就不好用呢?晕倒!
共2条
1/1 1 跳转至页
回复
| 有奖活动 | |
|---|---|
| 2026年“我要开发板活动”第三季,开始了! | |
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
我要赚赏金打赏帖 |
|
|---|---|
| 以启明云端ESP32P4开发板实现TF卡读写功能被打赏¥28元 | |
| 【分享开发笔记,赚取电动螺丝刀】树莓派5串口UART0配置被打赏¥25元 | |
| 【STM32F103ZET6】17:分享在Rtos项目中断管理的使用经验被打赏¥23元 | |
| 【STM32F103ZET6】16:分享在中断中恢复串口任务,遇到的问题被打赏¥31元 | |
| 在FireBeetle2ESP32-C5上实现温度大气压检测及显示被打赏¥21元 | |
| 【分享开发笔记,赚取电动螺丝刀】SAME51双串口收发配置被打赏¥27元 | |
| Chaos-nano操作系统在手持式VOC检测设备上的应用被打赏¥37元 | |
| 【分享开发笔记,赚取电动螺丝刀】关于在导入第三方库lib时,wchart类型冲突的原因及解决方案被打赏¥30元 | |
| 在FireBeetle2ESP32-C5上实现温湿度检测和显示被打赏¥20元 | |
| 在FireBeetle2ESP32-C5上实现光照强度检测及显示被打赏¥21元 | |
我要赚赏金
