使用单片机3个IO口+74HC595驱动驱动控制LCD1602液晶

发布者:RadiantDusk最新更新时间:2021-12-29 来源: eefocus关键字:单片机  IO口  74HC595  驱动控制  LCD1602液晶 手机看文章 扫描二维码
随时随地手机看文章

此内容有一定的深度,初学者不建议看。


最近一直在研究数码管驱动芯片 74HC595 ,发现一件很好玩的事情,那就是


用74HC595做驱动调试程序时,发现它只能输出,不能输入。


查找大量资料,从某个网友制作的mylib.c(NES)中获得了一条指令:


#define bin(_a,_b,_c,_d,_e,_f,_g,_h) ((_a)<<7|(_b)<<6|(_c)<<5|(_d)<<4|(_e)<<3|(_f)<<2|(_g)<<1|(_h))


分别是8 7 6 5 4 3 2 1位


我就想既然情况是这样的,那么能不能完全用74595来控制整个1602呢?于是…就有个下面这个有趣的过程了


废话不多说,先上电路系统仿真图

在这里插入图片描述

STC单片机 型号stc89c52系列

在这里插入图片描述

实物效果图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

单片机C语言参考源代码如下:


#include


#include “lcd595.ini”


const uchar type_t[]={

0x1f,0x02,0x02,0x02,


    0x02,0x02,0x02,0x00

1

};


const uchar line1[]=“Have a nice day!”;


const uchar line2[]=“HE Wcommands”;


void main()


{

    uchar i;


    LcdInit();


    LcdWriteCGRAM(0x00,type_t);


    LcdWriteData(0x00);


    LcdWriteCom(0x81);


    LcdPrintf("HE With");


    LcdWriteCom(0xc0);


    LcdPrintf("Commands");


    Lcd1602_Delay1ms(1000);


    LcdWriteCom(0x01);


    while(1){


            for(i=0;i<16;i++){


                    LcdWriteCom(0x80+i);


                    LcdWriteData(line1[i]);


                    Lcd1602_Delay1ms(100);


            }


            Lcd1602_Delay1ms(500);


            LcdWriteCom(0xc1);


            LcdWriteData(0x00);


            Lcd1602_Delay1ms(100);


            for(i=0;i<12;i++){


                    LcdWriteCom(0xc2+i);


                    LcdWriteData(line2[i]);


                    Lcd1602_Delay1ms(100);


            }


            LcdWriteCom(0x01);


            Lcd1602_Delay1ms(100);


关键字:单片机  IO口  74HC595  驱动控制  LCD1602液晶 引用地址:使用单片机3个IO口+74HC595驱动驱动控制LCD1602液晶

上一篇:8只数码管滚动显示8~F
下一篇:51单片机及DS18B20温度传感器的数字温度计设计

推荐阅读最新更新时间:2024-11-05 14:16

MCS-51单片机寻址方式有哪些?如何设置寻址方式?
什么是寻址方式? 答:指令给出参与运算的数据方式称为寻址方式。换句话说,寻址方式就是寻找确定参与操作的数的真正地址。 MCS-51单片机共有哪几种寻址方式? 答:在MCS-51系列单片机的指令系统中寻址方式共有7种,如表4-1所示。 表4-1 MCS-51系列单片机指令系统的寻址方式 序号 方式 使用的变量 寻址空间 1 立即寻址   程序存储器 2 直接寻址   内部 RAM 和特殊功能寄存器 3 寄存器寻址 R7-R0 、 A 、 B 、 C DPTR   4   寄存器 间接寻址 @R0 、 @R1 、
[单片机]
基于MSP430F1121单片机的Σ-ΔA/D转换器方案
Σ-ΔA/D技术具有高分辨率、高线性度和低成本的特点。本文基于TI公司的MSP430F1121单片机,介绍了采用内置比较器和外围电路构成类似于∑-△的高精度A/D实现方案,适合用于对温度、压力和电压等缓慢变化信号的采集应用。 在各种A/D转换器中,最常用是逐次逼近法(SAR)A/D,该类器件具有转换时间固定且快速的特点,但难以显著提高分辨率;积分型A/D 有较强的抗干扰能力,但转换时间较长;过采样Σ-ΔA/D由于其高分辨率,高线性度及低成本的特点,正得到越来越多的应用。根据这些特点,本文以TI公司的MSP430F1121单片机实现了一种类似于Σ-ΔA/D技术的高精度转换器方案。 MSP430F1121是16位RISC结构的
[单片机]
基于MSP430F1121<font color='red'>单片机</font>的Σ-ΔA/D转换器方案
STC12系列单片机解密介绍
STC单片机是由深圳宏晶公司销售的一款单片机芯片,至于设计和生产,有很多说法,网络上可以查到的资料,有的说是美国公司按照SST公司的内核设计的,由宏晶公司贴牌销售的,也有的说是由ST公司设计的。至于生产的说法更多,有的说是由台积电生产。有的说是由台湾其它公司代工生产的。而在宏晶公司的官方网站上看不到任何这个方面的信息,只有简单的两个页面,基本上全是芯片的PDF文件和ISP下载软件,并且发现用户手册的PDF手册是无法复制的,正如很多网友评论好象是遮遮掩掩,其实这样给设计人员选择带来了很多疑虑,好象没有了使用该产品的信心,不过做为解密工程师并不关心这个问题。 在STC89系列单片机推出后,曾经号称无法解密的单片机,但是经过芯片解密工
[单片机]
STC12系列<font color='red'>单片机</font>解密介绍
新手必看!单片机掉电检测与数据掉电保存方案
单片机在正常工作时,因某种原因造成突然掉电,将会丢失数据存储器(RAM)里的数据。在某些应用场合如测量、控制等领域,单片机正常工作中采集和运算出一些重要数据,待下次上电后需要恢复这些重要数据。 因此,在一些没有后备供电系统的单片机应用系统中,有必要在系统完全断电之前,把这些采集到的或计算出的重要数据保存在FLASH或EEPROM中。而通常的做法是,在这些系统中加入单片机掉电检测电路与单片机掉电数据保存。 用法拉电容可简单实现单片机掉电检测与数据掉电保存,电路见下图。这里用6V供电(如7806),为什么用6V不用5V是显而易见的。 电路中的二极管们一般都起两个作用: 一是起钳位作用,钳去0.6V,保证使大多数实用5V供电
[单片机]
STC89C52RC单片机超声波测距程序
网络上集的STC89C52RC单片机超声波测距程序及 电子制作 实物,使用单片机最小系统进行试验,超声波部分使用HC-SR04模块,测量范围:4-300cm,实际测量上最长可达到5.70m。下面是实物图,文章后面附源程序。 4-300cn,实际测量上最长可达到5.7m #include 'AT89X51.H' //头文件 unsigned char code fseg ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char code segbit ={0x80,0x40
[单片机]
STC89C52RC<font color='red'>单片机</font>超声波测距程序
意法半导体的微控制器和功率半导体获丰田汽车采用
横跨多重电子应用领域、全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST)宣布其32位微控制器和功率MOSFET获丰田汽车(Toyota)采用,用于开发新一代普税斯的DC-DC转换器。新一代普税斯是第四代混合动力汽车。   DC-DC转换器是被称作混合动力汽车(hybrid electric vehicle)心脏的动力控制单元的基本组件,还被用于逆变器和可变电压系统(variable-voltage system)。新一代普税斯的DC-DC转换器设计采用意法半导体的32位车用微控制器,用于控制电瓶或发电机输出的汽车14V子系统所使用的电压降低(voltage reduction)问题,例如汽车收音机
[嵌入式]
51单片机:用ADC0832做模数转换,测量电压大小
问题要求 利用51单片机,外加一个ADC0832模数转换器,设计一个可以实时测量电压的电路。测量电压的范围是0-5V(允许误差),要求测出的电压用数码管实时显示,精确到小数点后两位。 代码编写: //---------------------------------------------------------- // 用ADC0832测量电压,并将测量值显示在数码管上 //---------------------------------------------------------- #include reg51.h #include intrins.h #define uchar unsigned char
[单片机]
51<font color='red'>单片机</font>:用ADC0832做模数转换,测量电压大小
基于MCU的车载超级电容测试系统设计实现
伴随着科技的进步,电动汽车技术得到迅速的发展。相比内燃机汽车,电动汽车具有零排放、高能量效率、低噪声、低热辐射、易操纵和易维护等优点,将是未来汽车发展的方向,也是现行研究的热点。 电动汽车的动力电池有如下三类:燃料电池、蓄电池和超级电容。燃料电池、蓄电池和超级电容在能量密度和功率密度上有互补性 。单一使用蓄电池、燃料电池或者超级电容,难以用作电动汽车的动力源。混合电池是一比较理想的解决办法。采用混合电池驱动系统,特别利用超级电容快速充放电能实现汽车制动能量回收,以及燃料电池超大能量密度支持汽车持久行驶,使得燃料电池/超级电容组成的混合驱动系统成为电动车驱动的最佳方案 。 对于车载用电源,为达到较高功率和能量,超
[测试测量]
基于<font color='red'>MCU</font>的车载超级电容测试系统设计实现
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved