求一个STC-89C52RC控制12864液晶显示的程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一个STC-89C52RC控制12864液晶显示的程序相关的知识,希望对你有一定的参考价值。
最好是完整的,可直接编译的C语言(KEIL)程序,显示随便一句话就行。小弟是单片机初学者,先谢谢各位大虾了。
为什么,我编译下载后,液晶显示毫无反应,需要设置什么吗,我用流水灯程序下载后是能实现的,硬件应该是没问题的?还有我的12864是带字库的。
#include<reg52.h>
#define Data P0
#define uint unsigned int
#define uchar unsigned char
sbit RS = P2^0;
sbit RW = P2^1;
sbit E = P2^2;
sbit PSB = P1^3;
sbit RET = P1^6;
/////////////////////////////////////////////////////////////////////////
// Bitmap点阵数据表 //
// 图片: C:\..桌面\1111.bmp,横向取模左高位,数据排列:从左到右从上到下 //
// 图片尺寸: 128 * 64 //
/////////////////////////////////////////////////////////////////////////
unsigned char code nBitmapDot[] = // 数据表
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xF3,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xBF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFF,
0xFF,0xFF,0xC8,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xBF,0xFF,0xF0,0xFF,0xFD,0xEF,0xFF,
0xFF,0xFF,0x9F,0x7F,0xFF,0x93,0xFF,0xFF,
0xFF,0x3F,0xFF,0xEE,0xFF,0xFB,0xF7,0xFF,
0xFF,0xFF,0x3F,0xBF,0xFF,0xBF,0xFF,0xFF,
0xFF,0x7F,0xFF,0xDF,0x7F,0xFB,0xFB,0xFF,
0xFF,0xFF,0x7F,0x9F,0xFF,0x7F,0xFF,0xFF,
0xFF,0x3F,0xFF,0xCF,0x3F,0xF7,0xFF,0xFF,
0xFF,0xFC,0xFF,0xDF,0xFF,0x7F,0xFF,0xFF,
0xFF,0x9F,0xFF,0xEF,0x8F,0xF7,0xFC,0xFF,
0xFF,0xFB,0xFF,0xEF,0xFE,0xFF,0xFF,0xFF,
0xFF,0xDF,0xFF,0xEF,0xE0,0x0F,0xFF,0xBF,
0xFF,0xE7,0xFF,0xE7,0xFD,0xFF,0xFF,0xFF,
0xFF,0xDF,0xFF,0xCF,0xFF,0xFF,0xFF,0xDF,
0xFF,0xCF,0xFF,0xF3,0xF3,0xFF,0xFF,0xFF,
0xFF,0xDF,0xFF,0xDF,0xFF,0xFF,0xFF,0xF7,
0xFF,0x3F,0xFF,0xF9,0xC7,0xFF,0xFF,0xFF,
0xFF,0xC3,0xFF,0x9F,0xFF,0xFF,0xFF,0xFD,
0x28,0xFF,0xFF,0xFC,0xBF,0xFF,0xFF,0xFF,
0xFF,0xFC,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xDF,0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xDF,0xFF,0xBF,0xDF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xDF,0xDF,0xFF,0xBF,0xDF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xE3,0xFF,0xFF,
0x9F,0xDE,0x0F,0xBF,0xDF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xE3,0xFC,0xCD,0xFF,0xFE,
0xFF,0x99,0xF7,0xFF,0xDF,0xFF,0xFF,0xFF,
0xFF,0xFC,0x7F,0xE4,0xFD,0x5D,0xFF,0xFF,
0xFF,0x93,0xFB,0xBF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xE7,0xFF,0xEE,0x7F,0x5D,0xFF,0xFF,
0xF7,0x9B,0xFB,0xFF,0xDF,0xFF,0xFF,0xFF,
0xFF,0xEF,0xFF,0xDF,0x7F,0xBD,0xFF,0xFF,
0xFF,0x5F,0xFB,0xBF,0xDF,0xFF,0xFF,0xFF,
0xFF,0xEF,0xFF,0xDF,0xBF,0x3D,0xFF,0xFF,
0xF7,0x7B,0xFB,0xBF,0xDF,0xFF,0xFF,0xFF,
0xFF,0xEF,0xFF,0x94,0x3F,0x3D,0xFF,0xFF,
0xFE,0x5F,0xFB,0xBF,0xDF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xBF,0xBF,0x3D,0xFF,0xFF,
0xF0,0xDB,0xFB,0xBF,0xDF,0xFF,0xFF,0xFF,
0xFF,0xEF,0xFF,0x7F,0xDF,0x3D,0xFF,0xFF,
0xFF,0xDF,0xFB,0xBF,0xBF,0xFF,0xFF,0xFF,
0xFF,0xEF,0xFE,0xFF,0xDF,0x3D,0xFF,0xFF,
0xFF,0xDB,0xFB,0xBF,0xBF,0xFF,0xFF,0xFF,
0xFF,0xE7,0xFE,0xFF,0xCF,0x7E,0xFB,0xFF,
0xFF,0xDB,0xF3,0xDF,0x7F,0xFF,0xFF,0xFF,
0xFF,0xF7,0xFE,0xFF,0xFF,0x7F,0x6B,0xFF,
0xFF,0xDD,0xE7,0xE0,0x7F,0xFF,0xFF,0xFF,
0xFF,0xF0,0x17,0xFF,0xFF,0x7F,0xFF,0xFF,
0xFF,0xDC,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x9F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x5E,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x40,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xF8,0x00,0x47,0xFF,0xFF,0xC3,0xFE,
0x7F,0xFF,0xFF,0xFF,0xF9,0xFF,0xFF,0xFF,
0xFF,0xF8,0x50,0x03,0xFF,0xFF,0x7D,0xFE,
0xFF,0xFF,0xFF,0xFF,0xFE,0x1F,0xFF,0xFF,
0xFF,0xFB,0xFF,0xFF,0xFF,0x17,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFF,0xFF,0x0F,0xFF,0xFF,
0xFF,0xF9,0xFF,0xFF,0xFD,0xF7,0x7E,0xFE,
0xFF,0xFC,0x40,0x1F,0xFF,0xEF,0xFF,0xFF,
0xFF,0xF9,0xFF,0xFF,0xFB,0xFF,0xFE,0xFE,
0xFF,0xFC,0xFF,0xE0,0x10,0x77,0xFF,0xFF,
0xFF,0xFE,0x00,0x07,0xFB,0xFA,0xFE,0xFE,
0x7F,0xFF,0x7F,0xFF,0xEF,0x37,0xFF,0xFF,
0xFF,0xF8,0xC1,0x0B,0xFF,0xFB,0xFE,0xFE,
0x7F,0xFF,0x02,0x28,0x42,0x67,0xFF,0xFF,
0xFF,0xF8,0x38,0x0B,0xF7,0xFF,0x7E,0xFE,
0x7F,0xFF,0xFF,0xFF,0xFF,0xEF,0xFF,0xFF,
0xFF,0xF8,0x08,0xA3,0xF9,0x6B,0x65,0xFF,
0x7F,0xFF,0xFF,0xFF,0xFF,0xEF,0xFF,0xFF,
0xFF,0xF8,0x08,0x27,0xF7,0xFF,0x1F,0xFD,
0x7F,0xFF,0xFF,0xFF,0xFF,0xCF,0xFF,0xFF,
0xFF,0xF9,0xFF,0xFF,0xFB,0xFF,0xBF,0xFD,
0x7F,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFF,
0xFF,0xF9,0xFF,0xFF,0xFB,0xFF,0x9F,0xFE,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xF9,0xFF,0xFF,0xFD,0x4F,0xE0,0x3F,
0x63,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xF9,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x1C,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x02,0x9F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
;
void delayUs() ;
void wait();
void writeData(uchar dat)
wait();
RS = 1;
RW = 0;
E = 0;
Data = dat;
E = 1;
delayUs();
E = 0;
void delayUs()
uint j,i;
for(i=2;i>0;i--)
for(j = 1; j > 0; j--);
void delayMs(uint a)
uint i, j;
for(i = a; i > 0; i--)
for(j = 100; j > 0; j--);
bit checkBusy()
bit busy;
RS = 0;
RW = 1;
E = 1;
delayUs();
busy = (bit)(Data&0x80);
E = 0;
return busy;
void wait()
while(checkBusy());
void writeCmd(uchar cmd)
wait();
RS = 0;
RW = 0;
E = 0;
delayUs();
Data = cmd;
delayUs();
E = 1;
delayUs();
E = 0;
void init()
RET=1;
PSB = 1; //并口方式
writeCmd(0x30); //基本指令, 扩充指令为34H
delayMs(20);
writeCmd(0x0c); //显示开, 关光标
delayMs(20);
writeCmd(0x01); //清屏
delayMs(20);
void display(uchar * p)
uchar x,y;
for(y=0;y<32;y++)
for (x=0;x<8;x++)
writeCmd(0x36);
writeCmd(0x80+y);
writeCmd(0x80+x);
writeData(p[2*x+16*y]); writeData(p[2*x+16*y+1]); writeCmd(0x30);
for(y=0;y<32;y++)
for (x=0;x<8;x++)
writeCmd(0x36);
writeCmd(0x80+y);
writeCmd(0x80+x+8);
writeData(p[2*x+16*y+512]); writeData(p[2*x+16*y+513]); writeCmd(0x30);
void main()
RET=0;
init();
while(1)
display(nBitmapDot); delayMs(100000);
参考技术A 128*64只是分辨率,有几款不同芯片的液晶,要点量液晶需要确定液晶上使用的控制器芯片,对应的连接然后按连接的方式编写程序,一般上层的写数据的基本是通用的,不过低层的和液晶接口的读写函数不同,液晶的初始化函数不同,建议你重点检查读写及初始化函数是否正确。你说的带字库的一般是ST7920芯片的,不过分并口和串口两种接口的,首先要确定接口是对应的,一楼给的程序是用并口的,P0口接数据,其他信号用IO模拟的。本回答被提问者采纳 参考技术B 那你用的应该是12864带中文字库,控制芯片是ST7920,你只要从字库里调出你想要的东东就可以了;有一个中文字库码表,上面有说怎么调! 参考技术C http://wenku.baidu.com/view/5d316e3f5727a5e9856a6178.html
参考
注意硬件是否和程序的端口一致。。。
求cmd命令大全。谢谢各位电脑大虾。。。。
ASSOC 显示或修改文件扩展名关联。ATTRIB 显示或更改文件属性。
BREAK 设置或清除扩展式 CTRL+C 检查。
BCDEDIT 设置启动数据库中的属性以控制启动加载。
CACLS 显示或修改文件的访问控制列表(ACL)。
CALL 从另一个批处理程序调用这一个。
CD 显示当前目录的名称或将其更改。
CHCP 显示或设置活动代码页数。
CHDIR 显示当前目录的名称或将其更改。
CHKDSK 检查磁盘并显示状态报告。
CHKNTFS 显示或修改启动时间磁盘检查。
CLS 清除屏幕。
CMD 打开另一个 Windows 命令解释程序窗口。
COLOR 设置默认控制台前景和背景颜色。
COMP 比较两个或两套文件的内容。
COMPACT 显示或更改 NTFS 分区上文件的压缩。
CONVERT 将 FAT 卷转换成 NTFS。您不能转换
当前驱动器。
COPY 将至少一个文件复制到另一个位置。
DATE 显示或设置日期。
DEL 删除至少一个文件。
DIR 显示一个目录中的文件和子目录。
DISKCOMP 比较两个软盘的内容。
DISKCOPY 将一个软盘的内容复制到另一个软盘。
DISKPART 显示或配置磁盘分区属性。
DOSKEY 编辑命令行、调用 Windows 命令并创建宏。
DRIVERQUERY 显示当前设备驱动程序状态和属性。
ECHO 显示消息,或将命令回显打开或关上。
ENDLOCAL 结束批文件中环境更改的本地化。
ERASE 删除一个或多个文件。
EXIT 退出 CMD.EXE 程序(命令解释程序)。
FC 比较两个文件或两个文件集并显示它们之间的不同。
FIND 在一个或多个文件中搜索一个文本字符串。
FINDSTR 在多个文件中搜索字符串。
FOR 为一套文件中的每个文件运行一个指定的命令。
FORMAT 格式化磁盘,以便跟 Windows 使用。
FSUTIL 显示或配置文件系统的属性。
FTYPE 显示或修改用在文件扩展名关联的文件类型。
GOTO 将 Windows 命令解释程序指向批处理程序
中某个带标签的行。
GPRESULT 显示机器或用户的组策略信息。
GRAFTABL 启用 Windows 在图形模式显示扩展字符集。
HELP 提供 Windows 命令的帮助信息。
ICACLS 显示、修改、备份或还原文件和
目录的 ACL。
IF 在批处理程序中执行有条件的处理过程。
LABEL 创建、更改或删除磁盘的卷标。
MD 创建一个目录。
MKDIR 创建一个目录。
MKLINK 创建符号链接和硬链接
MODE 配置系统设备。
MORE 逐屏显示输出。
MOVE 将一个或多个文件从一个目录移动到另一个目录。
OPENFILES 显示远程用户为了文件共享而打开的文件。
PATH 为可执行文件显示或设置搜索路径。
PAUSE 停止批处理文件的处理并显示信息。
POPD 还原由 PUSHD 保存的当前目录上一次的值。
PRINT 打印一个文本文件。
PROMPT 改变 Windows 命令提示。
PUSHD 保存当前目录,然后对其进行更改。
RD 删除目录。
RECOVER 从损坏的磁盘中恢复可读取的信息。
REM 记录批处理文件或 CONFIG.SYS 中的注释。
REN 重新命名文件。
RENAME 重新命名文件。
REPLACE 替换文件。
RMDIR 删除目录。
ROBOCOPY 复制文件和目录树的高级实用程序
SET 显示、设置或删除 Windows 环境变量。
SETLOCAL 开始用批文件改变环境的本地化。
SC 显示或配置服务(后台处理)。
SCHTASKS 安排命令和程序在一部计算机上按计划运行。
SHIFT 调整批处理文件中可替换参数的位置。
SHUTDOWN 让机器在本地或远程正确关闭。
SORT 将输入排序。
START 打开单独视窗运行指定程序或命令。
SUBST 将驱动器号与路径关联。
SYSTEMINFO 显示机器的具体的属性和配置。
TASKLIST 显示包括服务的所有当前运行的任务。
TASKKILL 终止正在运行的进程或应用程序。
TIME 显示或设置系统时间。
TITLE 设置 CMD.EXE 会话的窗口标题。
TREE 以图形显示启动器或路径的目录结构。
TYPE 显示文本文件的内容。
VER 显示 Windows 的版本。
VERIFY 告诉 Windows 验证文件是否正确写入磁盘。
VOL 显示磁盘卷标和序列号。
XCOPY 复制文件和目录树。
WMIC 在交互命令外壳里显示 WMI 信息。
路过... 参考技术A winver检查Windows版本,write写字板,winmsd系统信息,mobsync同步命令。
notepad打开记事本,nslookup网络管理的工具向导,ntbackup系统备份和还原。
cmd指的是命令提示符。命令提示符是在操作系统中提示进行命令输入的一种工作提示符。在不同的操作系统环境下,命令提示符各不相同。
- 官方服务
- 官方网站官方网站
以上是关于求一个STC-89C52RC控制12864液晶显示的程序的主要内容,如果未能解决你的问题,请参考以下文章
STC89C52RC+ LCD1602+PCF8574转IIC接口屏幕驱动显示+Proteus仿真
51单片机(STC89C52RC)读取DHT11模块温度湿度信号采集显示数码管