我想写用独立按键,控制液晶12864显示汉字和数字。一个键,显示一行

子&持 子&持 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include<reg51.h>#include<intrins.h>#include<stdlib.h>#define uchar unsigned char#define uint unsigned int /*端口定义*/#define LCD_data P0sbit LCD_RS = P3^5;sbit LCD_RW = P3^6;sbit LCD_EN = P3^4;sbit LCD_PSB = P3^7;sbit wela = P2^6;sbit dula = P2^7;uchar code dis[]={"我爱单片机"};uchar code dis[]={"我不会秃头"};uchar code dis[]={"我爱学习"};uchar code dis[12];void delay_1ms(uint x){uint i,j;for(j=0;j<x;j++) for(i=0;i<110;j++);}/*写指令数据到LCD*//*RS=L,RW=L,E=高脉冲,D0-D7=指令码。*/void write_cmd(uchar cmd){ LCD_RS=0; LCD_RW=0; LCD_EN=0; P0=cmd; delay_1ms(5); LCD_EN=1; delay_1ms(5); LCD_EN=0;}/*写显示数据到LCD*//*RS=H,RW=L,E=高脉冲,D0-D7=数据。*/void write_dat(uchar dat){ LCD_RS=1; LCD_RW=0; LCD_EN=0; P0=dat; delay_1ms(5); LCD_EN=1; delay_1ms(5); LCD_EN=0;}/*设定显示位置*/void lcd_pos(uchar X,uchar Y){ uchar pos; if(X==0) {X=0x80;}else if(X==1) {X=0x90;}else if(X==2) {X=0x88;}else if(X==3) {X=0x98;}pos=X+Y;write_cmd(pos); //显示地址}/*LCD初始化设定*/void lcd_init(){ LCD_PSB=1; //并口方式 write_cmd(0x30); //基本指令操作 delay_1ms(5); write_cmd(0x0C); //显示开,关光标 delay_1ms(5); write_cmd(0x01); //清除LCD的显示内容 delay_1ms(5); }/*主程序*/main(){ uchar i; wela=0; dula=0; delay_1ms(10); //延时 lcd_init(); //初始化LCD lcd_pos(1,0); //设置显示位置为第二行的第一个字符 i=0; while(dis2[i]!='\0') { write_dat(dis2[i]); //显示字符 i++; } lcd_pos(2,0); //设置显示位置为第三行的第1个字符 i=0; while(dis3[i]!='\10'); { write_dat(dis3[i]); //显示字符 i++ } lcd_pos(3,0); //设置显示位置为第四行的第一个字符 i=0; while(dis4[i]!='\0') { write_dat(dis4[i]); i++; }} 老是提示我有错 button.c(15): error C279: 'dis': multiple initialization
button.c(16): error C279: 'dis': multiple initialization
button.c(86): error C202: 'dis2': undefined identifier
button.c(88): error C202: 'dis2': undefined identifier
button.c(93): error C202: 'dis3': undefined identifier
button.c(95): error C202: 'dis3': undefined identifier
button.c(97): error C141: syntax error near '}'
button.c(100): error C202: 'dis4': undefined identifier
button.c(102): error C202: 'dis4': undefined identifier
...全文

相关推荐

STM32 实现12864液晶屏显示汉字和图片,且可在任意位置画点、横线、竖线、斜线。

要实现汉字显示,我们需要一个汉字库,通常为GBK编码或Unicode编码。STM32通过读取汉字库中的字模数据,将每个汉字转换成点阵形式,再通过液晶屏的控制指令将其逐点显示出来。

祝老师

51单片机驱动12864液晶屏Proteus仿真完整教程

在嵌入式系统开发中,液晶显示模块承担着人机交互的关键角色。从基础的点阵显示原理出发,并行总线读写时序是驱动外设的核心技能,理解数据线、控制线与使能信号的配合逻辑,是掌握复杂外设驱动的分水岭。借助Proteus仿真平台,开发者无需实物硬件即可完成电路搭建与程序调试,大幅降低学习成本。本文从元器件选型、电路接线、Keil驱动代码到仿真调试,系统讲解12864液晶屏的并行驱动方法,并针对仿真实战中的花屏、乱码、对比度异常等常见问题给出有效排查方案。适用于课程设计、电子竞赛及单片机入门进阶场景,帮助读者建立从底层时

Creamy络

KS0108 12864液晶屏驱动原理与C51实战详解

液晶显示驱动是嵌入式系统的基础技术之一,其核心在于控制器与微处理器的通信时序与显存管理。KS0108作为经典的并行接口液晶控制器,通过页地址与列地址的二维寻址机制,配合6800时序协议,实现了对128x64点阵屏的像素级控制。掌握其驱动原理,不仅能深入理解显示设备的底层工作方式,更能为后续学习SPI、I2C等更复杂的接口协议奠定坚实基础。本文以C51单片机为例,详细解析了KS0108的硬件架构、字模取模原理,并提供了从初始化、清屏到动态刷新的完整工程实践代码,特别针对时序调试、显示缓冲区优化等常见痛点给出了

Surenon

绝对经典的液晶12864显示汉字+字母数字

本主题聚焦于“液晶12864显示汉字+字母数字”,这指的是128x64像素分辨率的点阵液晶显示屏,能够同时显示汉字、字母和数字。

四夕立羽

12864液晶Proteus仿真之汉字和图片显示.

12864液晶显示屏是一种常见的点阵式液晶显示器,常用于嵌入式系统和电子设备的用户界面显示。在本项目中,我们将探讨如何在Proteus仿真环境中实现12864液晶上的汉字与图片显示。

yanguantianxiashi1
评论 2
收藏 已收藏
分享
返回顶部
子&持
C语言 70,040 成员 243,237 内容