STC 12864LCD驱动

/*---2010 PAST LCD测试小板通过显示---12:3------*/
/*----S1按下显示-蔡沁钰小朋友--------*/
/*----S2按下显示-百草园小学校--------*/
        #include <reg51.h>
        #include <intrins.h>
         /*定义管脚*/
        sbit RS = P1^7;
        sbit RW = P1^6;
        sbit E = P1^5;
        sbit RES = P0^6;
        sbit PSB = P0^7;
        sbit RED = P3^4;
        sbit GREEN= P3^5;
        sbit S1= P3^2;
        sbit S2= P3^3;
        #define Lcd_Bus P2        //MCU P2<------> LCM
/*------------------检查忙位-----------------------------*/
        void chk_busy()
            {
             RS=0;
             RW=1;
             E=1;
             Lcd_Bus=0xff;
             while((Lcd_Bus&0x80)==0x80);
             E=0;
            }
/*------------------延时子程序-----------------------------*/
         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)
           {
             chk_busy();
             RS=0;
             RW=0;
             E=1;
             Lcd_Bus=cmdcode;
             delay(5);在数据写入的时候加入适当的延时
             E=0;
             delay(5);
             }
/*-------------------写数据到LCD----------------------------*/
          void write_data(unsigned char Dispdata)
          {
            chk_busy();
            RS=1;
            RW=0;
            E=1;
            Lcd_Bus=Dispdata;
            delay(5);///在数据写入的时候加入适当的延时
            E=0;
            delay(5);
           }
/*------------------初始化LCD屏--------------------------*/
           void lcdreset()
            {
             PSB=0;
             delay(300);
             PSB=1;       
             RW=0;
             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);
            }
/*------------------显示1-蔡沁钰小朋友---*/
           void display1()
            {
                delay(2000);
                write_com(0x80);
                write_data(0xB2);
                write_data(0xCC);/*---------*/
                write_com(0x81);
                write_data(0xC7);
                write_data(0xDF);/*---------*/
                write_com(0x82);
                write_data(0xEE);
                write_data(0xDA);/*---------*/
                write_com(0x83);
                write_data(0xD0);
                write_data(0xA1);/*---------*/
                write_com(0x84);
                write_data(0xC5);
                write_data(0xF3);/*---------*/
                write_com(0x85);
                write_data(0xD3);
                write_data(0xD1);/*---------*/
                delay(30);
            }
/*------------------显示2--百草园小学校-----------*/
           void display2()
            {
                delay(2000);
                write_com(0x80);
                write_data(0xB0);
                write_data(0xD9);/*---------*/
                write_com(0x81);
                write_data(0xB2);
                write_data(0xDD);/*---------*/
                write_com(0x82);
                write_data(0xD4);
                write_data(0xB0);/*---------*/
                write_com(0x83);
                write_data(0xD0);
                write_data(0xA1);/*---------*/
                write_com(0x84);
                write_data(0xD1);
                write_data(0xA7);/*---------*/
                write_com(0x85);
                write_data(0xD0);
                write_data(0xA3);/*---------*/
            }
/*------------------主循环程序--------------------------*/     
           void   main()
          {
            lcdreset();
            while(1)
              {
                RED=0;
                GREEN=1;
                                    //初始化LCD屏
                if(!S1)
                {
                 display1();
                 }
                delay(6000);
                if(!S2)
                {
                 display2();
                 }
                RED=1;
                GREEN=0;
                delay(6000);
               }
            }


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/7276.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java学习记录最后一篇

面向对象编程 封装 该露的露&#xff0c;该藏的藏 我们程序设计要追求“高内聚&#xff0c;低耦合”。高内聚就是类的内部数据细节由自己完成&#xff0c;不允许外部干涉&#xff1b;低耦合&#xff1a;仅暴露少量的方法给外部使用。 封装&#xff08;数据的隐藏&#xff0…

AI部署指南

部署指南 建议大家尽可能的自己去部署&#xff0c;如果实在懒得搞&#xff0c;可以找我来帮你部署&#xff0c;详情参考 服务器代部署说明。 由于时间仓促&#xff0c;文档可能尚未详尽&#xff0c;我将在后续逐步补充详细的说明文档。 架构草图 项目依赖 必选依赖 MySQ…

PCB机打孔机程序(三)

///<-检测STOP/ OUT41; delay(80); //延时 OUT10; //开检测光标下总线 if(!IN5) //光标下检测 …

5月3日江苏某厂冷却塔清洗工作汇报-智渍洁

5月3日 施工人员&#xff1a;张能超&#xff0c;张伟&#xff0c;刘平&#xff0c;曾巧 施工事项&#xff1a;空冷器脱脂 今日工作进度&#xff0c;清洗6台遇到的问题&#xff0c;就是那个喷雾器不经用&#xff0c;一会儿又坏了 重庆智渍洁环保科技有限公司专注于工业清洗&…

记录创建项目java version 没有8的问题

问题&#xff1a; 解决方案 java版本选择21&#xff08;21可以兼容jdk8&#xff09; SpringBoot选择3.2.5 进入项目后手动在pom.xml中修改版本

C# 事务- TransactionScop 类 如何使用

在C#中&#xff0c;TransactionScope 类位于 System.Transactions 命名空间下&#xff0c;用于简化跨多个资源管理器&#xff08;如数据库连接&#xff09;的事务处理。以下是一个基本的使用示例&#xff0c;展示了如何使用 TransactionScope 来确保一系列操作的原子性&#xf…

安卓手机原生运行 ARM Ubuntu 24.04 桌面版(一)

本篇文章&#xff0c;聊一聊尝试让安卓手机原生运行 Ubuntu&#xff0c;尤其是运行官方未发布过的 ARM 架构的 Ubuntu 24.04 桌面版本。 写在前面 最近的几篇文章&#xff0c;都包含了比较多的实操内容、需要反复的复现验证&#xff0c;以及大量的调试过程&#xff0c;为了不…

Sy9-dhcp/dns服务配置

前言、 课程需要&#xff08;进入服务器综合配置使用阶段了&#xff09;&#xff0c;这里还是沿用桌面版的ubuntu来配置dhcp和dns&#xff0c;这里updated了新的版本。2024.5 server端环境&#xff1a; Win11VMS&#xff1a;192.168.105.1192.168.105.128 &#xff08;ubuntu…

vivado UltraScale 比特流设置

下表所示 UltraScale ™ 器件的器件配置设置可搭配 set_property <Setting> <Value> [current_design] Vivado 工具 Tcl 命令一起使用。

第08章 IP分类编址和无分类编址

8.1 本章目标 了解IP地址的用途和种类了解分类编址和无分类编址区别掌握IP地址、子网掩码、网关概念及使用掌握子网划分及超网划分方法掌握无分类编址的改变和使用 8.2 IP地址的用途和种类 分类编址&#xff1a;造成地址的浪费&#xff0c;以及地址不够用&#xff1b;无分类编…

【QEMU系统分析之实例篇(十八)】

系列文章目录 第十八章 QEMU系统仿真的机器创建分析实例 文章目录 系列文章目录第十八章 QEMU系统仿真的机器创建分析实例 前言一、QEMU是什么&#xff1f;二、QEMU系统仿真的机器创建分析实例1.系统仿真的命令行参数2.创建后期后端驱动qemu_create_late_backends()qtest_serv…

寒武纪及瑞芯微平台调用加速调研

文章目录 1 寒武纪加速平台简介1.1 加速平台简介1.1.1 算力硬件1.1.2 配套软件 1.2 部署流程简介1.3 部署环境搭建1.3.1 安装驱动1.3.2 安装CNToolKit1.3.3 配置模型移植开发环境 1.4 模型部署1.4.1 模型转换旧文件格式1.4.2 量化模型生成1.4.3 验证结果1.4.4 离线模型生成 1 寒…

【自用】了解移动存储卡的基本信息

前言 本文是看B站视频做的一个简单笔记&#xff0c;方便日后自己快速回顾&#xff0c;内容主要介绍了存储卡基本参数&#xff0c;了解卡面上的数字、图标代表的含义。对于日后如何挑选判断一张存储卡的好坏、判别一张存储卡是否合格有一定帮助。 视频参考链接&#xff1a;【硬…

【StarRocks系列】 Trino 方言支持

我们在之前的文章中&#xff0c;介绍了 Doris 官方提供的两种方言转换工具&#xff0c;分别是 sql convertor 和方言 plugin。StarRocks 目前同样也提供了类似的方言转换功能。本文我们就一起来看一下这个功能的实现与 Doris 相比有何不同。 一、Trino 方言验证 我们可以通过…

HTTP、RTSP、RTMP、RTP,RTCP,HLS,MMS的概念、区别、用法

背景知识 先有TCP/IP协议簇 5层模型&#xff0c;后有DoD 4层模型&#xff0c;再有OSI 7层模型。 TCP/IP协议簇&#xff08;TCP/IP Suite&#xff09;除了代表TCP与IP这两种通讯协议外&#xff0c;更包含了与TCP/IP相关的数十种通讯协议&#xff0c;例如&#xff1a;SMTP、DNS、…

使用docker-compose编排Lnmp(dockerfile) 完成Wordpress

目录 一、 Docker-Compose 1.1Docker-Compose介绍 1.2环境准备 1.2.1准备容器目录及相关文件 1.2.2关闭防火墙关闭防护 1.2.3下载centos:7镜像 1.3Docker-Compose 编排nginx 1.3.1切换工作目录 1.3.2编写 Dockerfile 文件 1.3.3修改nginx.conf配置文件 1.4Docker-Co…

Terraform代码的check块

check块是Terraform 1.5开始引入的新功能。 过去可以在resource块里的lifecycle块中验证基础设施的状态&#xff0c;check块填补了在apply后验证基础设施状态这一功能的空白。check块允许定义在每次plan以及apply操作后执行的自定义的验证。check块定义的验证逻辑是作为plan和a…

01嵌入式面经

华为嵌入式 stm32单片机和51单片机的区别 架构&#xff1a; STM32单片机&#xff1a;基于ARM Cortex-M系列处理器&#xff0c;具有先进的32位处理能力和丰富的外设资源。51单片机&#xff1a;基于Intel 8051系列处理器&#xff0c;是一种经典的8位单片机&#xff0c;具有较为简…

SpringBoot+Vue+Element-UI实现学生综合成绩测评系统

前言介绍 学生成绩是高校人才培养计划的重要组成部分&#xff0c;是实现人才培养目标、培养学生科研能力与创新思维、检验学生综合素质与实践能力的重要手段与综合性实践教学环节。而学生所在学院多采用半手工管理学生成绩的方式&#xff0c;所以有必要开发学生综合成绩测评系…

MySql 空间索引

在 MySQL 中&#xff0c;直接对几何数据类型&#xff08;如 POINT, LINESTRING, POLYGON 等&#xff09;使用 "几何索引" 的概念并不完全准确&#xff0c;因为 MySQL 不直接提供名为 "几何索引" 的索引类型。但是&#xff0c;你可以为这些几何数据类型创建…