51单片机 串口12864显示驱动

2023-05-16

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit CS = P2^5;       //片选信号(RS)
sbit SID = P2^6;   //串行数口 (R/W)
sbit CLK = P2^7;   //串行同步时钟 (E)

/*延时100us*/
void LCD12864_delay(uint t)     
{
     uint a,b;
    for(a=t;a>0;a--)
        for(b=10;b>0;b--);
}

/*发送数据*/
void sendbyte(uchar dat)
{
     uchar i;
    for(i=0;i<8;i++)
    {
         if(dat&0x80)
        {
             SID= 1;        
        }else{
             SID = 0;
        }
        dat = dat<<1;
        CLK = 0;
        CLK = 1;
    }
}
/*写指令*/
void write_com(uchar cmdcode)
{
    CS = 1;
    sendbyte(0xf8);                //写指令操作
    sendbyte(cmdcode & 0xf0);  
    sendbyte((cmdcode << 4) & 0xf0);  
    LCD12864_delay(2);
}

/*写数据*/
void write_data(uchar Dispdata)  
{  
    CS = 1;  
    sendbyte(0xfa);                 //写数据操作
    sendbyte(Dispdata & 0xf0);  
    sendbyte((Dispdata << 4) & 0xf0);  
    LCD12864_delay(2);  
} 


/*LCD12864初始化*/
void LCD_init()
{
        //显示字符初始化            
        write_com(0x30);                //基本指令操作
        LCD12864_delay(50);
        write_com(0x0c);                //显示开\关光标
        LCD12864_delay(50);
        write_com(0x01);                //清除LCD的显示内容
        LCD12864_delay(50);
//        //显示图片初始化            
//        write_com(0x36);                //扩充指令操作
//        delay_ms(5);
//        write_com(0x3e);                //
//        delay_ms(5);
//        write_com(0x0c);                //显示开\关光标
//        delay_ms(5);
//        write_com(0x01);                //清除LCD的显示内容
//        delay_ms(5);
}

/*设置显示位置*/
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_com(pos); 
}

/*显示 a行 b列 *c为显示的字符*/
void LCD_Display(uchar a,uchar b,uchar *c)
{
        LCD_pos(a,b);
        while(*c)
        {
                write_data(*c);
                c++;
        }
}

/*清除某一行*/
void LCD_clear_line(uchar n)
{
        uint i;
        LCD_pos(n,0);
        for(i=0;i<16;i++)
            {
                    write_data(' ');
            }
}//vo

//图片显示
/*图片全屏显示*/
void tupian(uchar p[][16])
{
     uchar x,y,a,b,c;
    write_com(0x34);    //关闭绘图功能
    x = 0x80;
    y = 0x80;
    for(c=0;c<2;c++)
    {
         for(a=0;a<32;a++)
        {
             write_com(y+a);
            write_com(x);
            for(b=0;b<16;b++)
                write_data(p[a+c*32][b]);
        }
        x=0x88;
    }
    write_com(0x36);     //打开绘图功能
    write_com(0x30);    
}

/*图片清屏*/
void qingping()        //清除DDRAM的数据:送入0
{
     uchar x,y,a,b,c;
    x=0x80;
    y=0x80;
    write_com(0x34);     //关闭绘图功能
    for(a=0;a<2;a++)
    {
        for(b=0;b<32;b++)
        {
            write_com(y+b);
            write_com(x);
            for(c=0;c<16;c++)
                write_data(0x00);    
        }
        x=0x88;
    }
    write_com(0x36);     //打开绘图功能
    write_com(0x30);
}



#ifndef _LCD12864_H_
#define _LCD12864_H_
#define uchar unsigned char
#define uint unsigned int

extern void write_com(uchar cmdcode);                //写指令
extern void write_data(uchar Dispdata);                //写数据
extern void LCD_init();                                //LCD12864初始化
extern void LCD_pos(uchar X,uchar Y);                //设置显示位置
extern void LCD_Display(uchar a,uchar b,uchar *c);  //显示 a行 b列 *c为显示的字符
extern void LCD_clear_line(uchar n);                  //清除某一行
extern void tupian(uchar p[][16]);                    //图片全屏显示
extern void qingping();                                //图片清屏

#endif
#include <reg52.h>
#include "LCD12864.h"
#define uchar unsigned char
#define uint unsigned int

uchar code tu1[][16] = {
0xC0,0x01,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFC,0x03,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x8F,0xB8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x3F,0xFF,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x07,0xFF,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xC0,0x7F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFD,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0xE1,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x3F,0xF1,0xDF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x07,0xFF,0xC3,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0xE0,0x7F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0F,0xFC,0x07,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x01,0xFF,0xC0,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x1F,0xF8,0x1F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x03,0xFF,0x01,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x7F,0xE0,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xFE,0x07,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0xC0,0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x1F,0xF8,0x0F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x03,0xFF,0x80,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x1F,0xC0,0x00,0x00,0x3F,0xF0,0x1F,0xF8,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
0x00,0xFF,0xF8,0x00,0x00,0x07,0xFE,0x03,0xFF,0x80,0x00,0x01,0xF8,0x00,0x00,0x00,
0x01,0xFF,0xFE,0x00,0x00,0x00,0xFF,0xE0,0x3F,0xF0,0x00,0x03,0xFE,0x00,0x00,0x00,
0x07,0xE0,0x3F,0x00,0x00,0x00,0x0F,0xFC,0x07,0xFE,0x7F,0x83,0xFF,0x00,0x00,0x00,
0x0F,0x80,0x0F,0x80,0x00,0x00,0x01,0xFF,0x80,0xFF,0xFF,0xFB,0xFF,0x80,0x00,0x00,
0x1E,0x00,0x03,0xC0,0x00,0x00,0x00,0x3F,0xF8,0x0F,0xFF,0xFF,0xFF,0xC0,0x00,0x00,
0x3C,0x00,0x01,0xE0,0x00,0x00,0x00,0x03,0xFF,0x3F,0xFF,0xFF,0xFF,0xC0,0x00,0x00,
0x38,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x7F,0xFC,0x3F,0xFF,0xFF,0xE0,0x00,0x00,
0x38,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x0F,0xFE,0x03,0xFF,0xFF,0xF0,0x00,0x00,
0x30,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x01,0xFF,0xC0,0x7F,0xFF,0xF8,0x00,0x00,
0x30,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x03,0xDF,0xF8,0x0F,0xFF,0xFC,0x00,0x00,
0x30,0x00,0x00,0x70,0x00,0xFE,0x00,0x00,0x03,0x83,0xFF,0x00,0xFF,0xFC,0x00,0x00,
0x30,0x00,0x00,0x70,0x03,0xFF,0xC0,0x00,0x07,0x80,0x7F,0xF0,0x7F,0xFE,0x00,0x00,
0x30,0x00,0x00,0x70,0x0F,0xFF,0xE0,0x00,0x07,0x00,0x07,0xFE,0x3F,0xFF,0x00,0x00,
0x38,0x00,0x00,0xF0,0x1F,0x01,0xF0,0x00,0x07,0x00,0x00,0xFF,0xBF,0xFF,0x80,0x00,
0x38,0x00,0x00,0xE0,0x1C,0x00,0x70,0x00,0x07,0x00,0x00,0x1F,0xFF,0xFF,0xC0,0x00,
0x3C,0x00,0x01,0xE0,0x38,0x00,0x38,0x00,0x07,0x00,0x00,0x01,0xBF,0xFF,0xE0,0x00,
0x1E,0x00,0x03,0xC0,0x38,0x00,0x38,0x00,0x07,0x80,0x00,0x00,0x7F,0xFF,0xE0,0x00,
0x0F,0x80,0x0F,0x80,0x38,0x00,0x38,0x00,0x03,0x80,0x00,0x00,0x7F,0xFF,0xF0,0x00,
0x07,0xE0,0x3F,0x00,0x1C,0x00,0x70,0x00,0x03,0xC0,0x00,0x00,0xF7,0xFF,0xF8,0x00,
0x03,0xFF,0xFE,0x00,0x1F,0x01,0xF0,0x00,0x01,0xE0,0x00,0x01,0xE7,0xFF,0xFC,0x00,
0x00,0xFF,0xF8,0x00,0x0F,0xFF,0xE0,0x00,0x00,0xF0,0x00,0x03,0xE7,0xFF,0xFE,0x00,
0x00,0x3F,0xE0,0x00,0x07,0xFF,0xC0,0x00,0x00,0x7C,0x00,0x0F,0xC3,0xFF,0xFF,0x00,
0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x3F,0x80,0x7F,0x03,0xFF,0xFF,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFE,0x03,0xFF,0xFF,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xF8,0x03,0xFF,0xFF,0xC0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xC0,0x01,0xFF,0xFF,0xE0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xF0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xF0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xF8,
0x03,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xBF,0xFC,
0x03,0x0E,0x00,0x70,0x01,0x81,0xC0,0xE3,0x00,0x00,0x00,0x00,0x00,0xFF,0xBF,0xFE,
0x06,0x06,0x00,0x30,0x00,0xC0,0xC0,0xC3,0x00,0x00,0x00,0x00,0x00,0x7F,0x1F,0xFE,
0x0F,0xC6,0x00,0x30,0x00,0x1E,0xC1,0x87,0xE0,0x00,0x00,0x00,0x00,0x7F,0xFF,0xFE,
0x06,0xC6,0x03,0xFC,0x00,0x1E,0xC1,0xFF,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xFE,
0x06,0xCF,0x80,0x30,0x03,0xB6,0xC3,0xC6,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFE,
0x07,0xFE,0x00,0x30,0x07,0xB6,0xC0,0xCF,0x80,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFE,
0x06,0xC6,0x01,0xFF,0xC1,0xB6,0xC1,0x8F,0xE0,0x00,0x00,0x00,0x00,0x01,0xFF,0xFE,
0x3F,0xF6,0x0F,0x60,0x01,0xB6,0xC3,0xDF,0x80,0x00,0x00,0x00,0x00,0x00,0x0F,0xFE,
0x03,0xC6,0x00,0x66,0x01,0xF6,0xC0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,
0x06,0xC6,0x03,0x66,0x03,0xB6,0xC1,0xE3,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,
0x0C,0xC6,0x03,0x3E,0x03,0x60,0xC3,0x1B,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x19,0xDE,0x07,0xE6,0x00,0x00,0xC0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x8C,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};     //图片数据

void main()
{
    LCD_init();
    tupian(tu1);
    LCD_Display(0,6,"文");
     while(1)
    {
                     
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

51单片机 串口12864显示驱动 的相关文章

  • html5是什么?五大浏览器、网页基本骨架结构与含义、常用标签——学习HTML5第一天的心得总结,若有错误望指正,我将持续更新与大家共同进步。

    注意 xff1a 上方P标签所说的块元素不可嵌套块元素是指在p元素中不建议嵌套块元素 xff0c 如不建议 lt P gt lt div gt lt div gt lt P gt 这种嵌套 xff0c 其他块元素则根据需求嵌套即可 1 ht
  • 新手入门 - 详解 frp 内网穿透 frpc.ini 配置

    本文为 Stille 原创文章 经实践 测试 整理发布 如需转载请联系作者获得授权 并注明转载地址 转载地址 xff1a 新手入门 详解 frp 内网穿透 frpc ini 配置 思有云 IOIOX 前言 本站关于 frp 内网穿透的相关教
  • pixhawk硬件设计粗略解析

    文章目录 前言一 pixhawk是什么 xff1f 二 pixhawk硬件解析总结 前言 本片是个人对NFCYv5飞控的硬件设计的个人分析与笔记 为什么要这么做呢 xff1f 原因很简单 xff0c 一是对pixhawk硬件组成有更加深入的
  • Android IPC机制

    本文首发于个人博客 胖蔡叨叨叨 xff0c 更多相关信息可点击查看 Android IPC机制 IPC IPC Inter Process Communication 进程间通信 xff0c 是指系统中运行的不同进程间的信息交互过程 And
  • PX4的控制与输出

    文章目录 前言控制器部分输出部分控制组混控器混控器的启动信号输出 前言 这篇记录一下自己分析PX4从位置控制 gt 速度控制 gt 姿态控制 gt 角速度控制 gt 电机输出的源码框架的阅读与理解 xff0c 便于之后自己修改控制器 在这个
  • 悬停油门的参数估计方法

    悬停油门的参数估计方法 估计悬停油门 xff0c 实际上就是完成油门值与飞机加速度之间的映射关系 xff0c 准确的估计值可以让飞行控制更为准确 在PX4中 xff0c 对悬停油门的估计方法采用的是扩展卡尔曼滤波 xff0c Fast dr
  • D435/D435i使用技巧

    D435 D435i使用技巧 D435 D435i是目前市场上使用最为方便的双目深度相机 虽然淘宝上其价格有些让人望而却步 xff0c 但是咸鱼上成色不错的D435 D435i 价格就在1000左右 xff0c 依旧是自主无人机视觉定位和感
  • PX4 imu传感器配置

    PX4 传感器配置 坐标系定义 旋转变化 reference 在机器人中各个坐标系之间的变换是非常常见的 xff0c 而在ROS tf 工具中 xff0c 以及Eigen 中 我们常常会见到RPY的旋转表示和四元数的旋转表示 当然学航空出生
  • PX4常用sh命令

    PX4常用sh命令 基于NUTTXnsehll的设计 xff0c PX4还自定义了一些sh命令 xff0c 可以在调试飞控时起到重要作用 这些命令在PX4开发者手册中 xff0c 都有提到 但是为了方便后期使用 xff0c 这里再单独做一下
  • 强化学习介绍(RL)

    一 简介 机器学习有三大分支 xff0c 监督学习 无监督学习和强化学习 xff0c 强化学习是系统从环境学习以使得奖励最大的机器学习 人工智能中称之为强化学习 xff0c 在控制论中被称之为动态规划 xff0c 两者在概念上是等价的 也被
  • 深度学习中高斯噪声:为什么以及如何使用

    来源 xff1a DeepHub IMBA 本文约1800字 xff0c 建议阅读8分钟 高斯噪声是深度学习中用于为输入数据或权重添加随机性的一种技术 在数学上 xff0c 高斯噪声是一种通过向输入数据添加均值为零和标准差 的正态分布随机值
  • 面向算法选择的元学习研究综述

    来源 xff1a 专知 本文为综述介绍 xff0c 建议阅读5分钟本文对基于元学习的算法选择进行综述总结 xff0c 为研究人员了解相关领域的发展现状提供参考 摘要 xff1a 随着人工智能的快速发展 xff0c 从可行的算法中选择满足应用
  • tortoise git 冲突解决

    1 背景 使用tortoise git 解决conflict 2 解释 Git进行同步的时候 xff0c 经常会出现冲突 xff0c 有时候冲突的选项会有三种选项 xff1a 1 Resolved xff1a 直接把文件标识为冲突已经解决
  • win11旗舰版安装WSL子系统和环境-7搭建图形化界面和Docker容器

    搭建图形化界面和Docker容器 Win10Linux子系统 xff08 WSL xff09 图形界面的安装 https blog csdn net NovaSliver article details 83190269 utm mediu
  • 推荐几款Nodejs实现的web框架

    本文首发于个人博客 胖蔡叨叨叨 xff0c 点击可查看原文 Nodejs在近些年可以说是发展异常的迅猛 xff0c 由于同样使用的js原因 xff0c 对于前端开发人员可以说是非常的友善了 xff0c Github上有关nodejs的贡献也
  • chatgpt_academic学术优化(配置使用教学-保姆级)

    一 Anaconda 下载及安装 1 官网下载链接 xff1a www anaconda com 2 安装 xff08 1 xff09 下载完成后 xff0c 双击exe进行安装 xff08 2 xff09 安装完成后 xff0c 点击An
  • C++正则表达式regex_match,regex_search和regex_replace简单使用

    C 43 43 正则表达式 零 前言一 说明二 测试代码三 运行结果 零 前言 正则表达式是非常强大的文本处理和字符串处理工具 xff0c C 43 43 11之前一直没有引入正则表达式 xff0c 只能使用boost库中的 xff0c C
  • debian桌面启动不了的问题

    怎么发生的 xff1f 昨天安装了一堆的软件后 xff0c 发现桌面没法在桌面进行应用程序切换 xff0c 然后就重启了一下系统 xff0c 想恢复 xff0c 结果 xff0c 重启后 xff0c 开机就直接进shell了 分析 做了一些
  • Byobu 命令行终端的强大利器

    My heart is in the work xff01 工作以来接触到Linux系统的地方挺多 xff0c Android的源码下载 xff0c 服务器的连接等等 xff0c 用的越多越发现Linux的强大与方便 一次偶然间 xff0c
  • .NET下基于API封装的DirectUIHWND窗体访问

    直接切入正题 1 添加引用 项目 gt 添加引用 gt C Progmme 1 MSN Messenger msnmsgr exe 2 using MessengerAPI 声明 private MessengerAPI Messenger

随机推荐