LCD12864驱动显示程序
这里是用的并行写法,后续会更新串行 。并行缺点就是太占用io口了,我其实更喜欢用串行。不过不是比赛要求都不怎么用了。
lcd12864.c
#include"lcd12864.h"
uchar code num[]={"0123456789 e:.-"};sbit RS = P3^5; //命令/数据选择
sbit RW = P3^6; //读写口
sbit E = P3^4; //使能端
sbit PSB = P3^7; //串并选择 void delay(uint t)
{uint i;while(t--)for(i=0;i<110;i++);
}bit busy() //查忙
{bit result;P0=0X00; RS=0; //命令/数据选择,为0时选择命令 RW=1; //读/写选择,为1时选择读E=1; //使能delay(1);result = (bit)(P0&0x80); //查忙标志位,等待标志位为0,即表示写入完毕E=0; //关闭读写 return (result);
}void wcode(uchar cmd) //向lcd写一命令
{while(busy()); //查忙RS=0; //命令/数据选择,为0时选择命令 RW=0; //读/写选择,为0时选择写E=0;_nop_();_nop_(); P0=cmd; //送入命令delay(1); //等待E=1; delay(1);E=0;
}void wdata(uchar dat) //向LCD写一数据
{while(busy());RS=1; //H为数据RW=0;E=0;P0=dat;delay(1);E=1;delay(1);E=0;
}void initlcd() //LCD初始化
{PSB=1; //设置为8BIT并口工作模式 H并行 L串行delay(10);wcode(0x34);delay(5);wcode(0x30); //选择基本指令集delay(5);wcode(0x0c); //开显示,无游标delay(5);wcode(0x01); //清除显示,并且设定地址指针为00Hdelay(5);wcode(0x06); //指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位
}void dis(uchar x,uchar y,uchar code *s) //任意位置显示字符串
{ //x为横坐标,y位纵坐标,*s表示指针,为数据的首地址switch(y) //选择纵坐标{case 0:wcode(0x80+x);break; //第一行case 1:wcode(0x90+x);break; //第二行case 2:wcode(0x88+x);break; //第三行case 3:wcode(0x98+x);break; //第四行default:break;}while(*s>0) //写入数据,直到数据为空{wdata(*s); //写数据delay(10); //下一字符s++;}
}
void showGB(uchar *HZ) //显示单个汉子
{wdata(HZ[0]); //写入汉字高八位数据wdata(HZ[1]); //写入低八位
}void wrnum(uchar s)
{wdata(num[s]);delay(1);
}
数据口D0-D7统一接的P0-P7端。
比赛设备提供的连线破图……烂画质(自己不重画了,将就看吧hh)
lcd12864.h
#ifndef __LCD12864_H_
#define __LCD12864_H_#include<reg51.h>
#include<intrins.H>#define uchar unsigned char
#define uint unsigned intextern void delay(uint t);
extern bit busy();
extern void wcode(uchar cmd);
extern void wdata(uchar d);
extern void initlcd();
extern void dis(uchar x,uchar y,uchar code *s);
extern void showGB(uchar *HZ);#endif
如果换成其他单片机芯片话,速度可能不同,导致时序就不一样,需要自行更改延时。
https://blog.csdn.net/zy19981110/article/details/89447521
LCD12864驱动显示程序相关推荐
- 51单片机+LCD12864驱动显示汉字模板+Proteus仿真
51单片机+LCD12864驱动显示汉字模板+Proteus仿真 Proteus仿真效果 汉字显示方法 汉字通过取模软件取模. 取模软件:pctolcd2002 取模方式: 工程文件架构 主程序代码 ...
- 74hc164驱动数码管c语言程序,基于51单片机的74HC164驱动数码管显示程序与仿真
基于51单片机的74HC164驱动数码管显示程序与仿真 基于51单片机的74HC164驱动一位数码管显示程序与仿真 #include #include #define uchar unsigned c ...
- LED数码管静态显示 C语言程序,PIC单片机驱动LED数码管显示程序
;*****该程序用于驱动led数码管显示,在8个LED数码管上依次显示数字1.2.3.4.5.6.7.8******* ;****http://www.51hei.com 单片机学习网经典程序已测试 ...
- 51单片机 IIC OLED驱动显示通用程序模板
51单片机 IIC OLED驱动显示通用程序模板 本模板是通过中景园OLED屏幕资料中提取保留ASCII字符集,点阵大小:6x8和8X16. 汉字取模方式 取模软件:pctolcd2002 /汉字取模 ...
- 【Proteus仿真】51单片机+LCD1602驱动显示模板程序
[Proteus仿真]51单片机+LCD1602驱动显示模板程序 Proteus仿真 范例工程架构 LCD1602相关驱动显示函数 //函数或者变量声明 extern void LCD1602_del ...
- 带中文字库的12864LCD显示程序
//带中文字库的12864LCD显示程序 #include <reg52.H> #include <intrins.H> #define uchar unsigned char ...
- 点阵LCD12864的显示原理(不带字库)
点阵LCD12864的显示原理(不带字库) 在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果.对于显示英文操作,由于英文字母种类很少,只需要8位(一字节 ...
- ESP8266+0.96OLED驱动显示(I2C)
文章目录 ESP8266 一.简介 二.管脚定义 三.代码 ESP8266 一.简介 这篇我们说一下ESP8266来驱动OLED显示屏显示,这里使用的是I2C的屏幕,像Arduino中有好几个库可以驱 ...
- LCD12864驱动(Proteus中用51单片机驱动AMPIRE128X64)
致谢:先贴张图来感谢一下我那傻逼的王志学长,要不是你给我的资料跟我用的LCD型号不一样,我TM早就驱动起来了. 填坑:1.TMD Proteus的AMPIRE128X64这个型号的LCD内部没有所谓的 ...
- Arduino框架下ESP32+合宙1.54“ 电子墨水屏(e-paper)驱动显示示例
Arduino框架下ESP32+合宙1.54" 电子墨水屏(e-paper)驱动显示示例 显示效果展示; 合宙1.54" 电子墨水屏 有关合宙1.54"电子墨水屏的介绍资 ...
最新文章
- 矩阵乘法的优化及其在卷积中的应用
- 冒烟测试与回归测试的区别
- 老板:kill -9的原理都不知道就敢到线上执行,明天不用来了!
- Intel Realsense pyrealsense rs.decimation_filter()类(通过使用具有特定内核大小的中值执行下采样)(抽取过滤器/抽取滤波器)
- 机器学习-分类算法-模型选择与调优09
- MySQL优化原理分析及优化方案总结
- 《Ruby程序员修炼之道》(第2版)—第1章1.1节进入Ruby的世界
- 「Leetcode」242. 有效的字母异位词:可以拿数组当哈希表来用,但哈希值不要太大!
- 一文读懂斗鱼上市:直播江湖风云再起,强行盈利背后的艰难上市路
- 标准盒子模型简单讲解
- matlab 矩阵 对称,如何使用Matlab产生对称矩阵
- python:TypeError:takes at least 8 arguments (9 given)
- Android安卓——入门学习
- 多标签文本分类研究进展概述
- 从本体的发展看图书情报学
- Python concurrent.future 使用教程及源码初剖
- NC UAP STUDIO授权
- 利用决策树算法对sklearn中红酒数据集进行可视化分类
- 常见建站安装软件教程 好东西
- 做一个Lead要那些技能?
热门文章
- 大气海洋数值模式经验总结
- 如何直观理解粒子滤波并进行Python编程实践
- STM32G474 CANFD 用例详解
- kitti数据集介绍论文Vision meets Robotics: The KITTI Dataset
- t580 thinkpad_ThinkPad T580性能如何?联想ThinkPad T580商务本详细评测
- ie降级,解决ie卡死,打不开,弹出页空白等问题
- 玩一下就停不下来的h5休闲小游戏
- 最新麦子学院33GWeb前端+Web前端开发从入门到精通完整版
- 基于OMAPL138 + Xilinx spartan6的电力数据采集与传输设计
- 人工智能算法:遗传算法