【C51自学笔记】数码管(静态与动态显示)+74HC138+点阵的动态显示

发布者:CrystalRose最新更新时间:2022-04-22 来源: eefocus关键字:C51  数码管  静态  动态显示  74HC138 手机看文章 扫描二维码
随时随地手机看文章

数码管:

数码管由7个发光二极管组成一个日字形,如果需要显示小数点,那么就再加一个点,就是8段数码管。      

数码管显示亮度高,响应速度快,分共阴和共阳两种形式,常用的有单个的和4联的,还有两联的和专门用来显示时间的。


分类:共阴;共阳

编码问题:

必须对数字或字符进行编码。因此为LED显示器提供的编码正好是一个字节。也有采用BCD-7段译码芯片的。

显示问题:

静态显示方式


静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。


动态显示


动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。

数码管下方有一个反相器。默认P3输出1,即默认数码管共阴。

现在需要操作P1,扫描所有数码管

如何扫描:


P3:10000 P1送入数字编码

P3:01000 P1送入数字编码

P3:00100 P1送入数字编码

P3:00010 P1送入数字编码

P3:00001 P1送入数字编码

送入数字编码:按照16进制编码表即可


其他类型的数码管:

四个管子同时接出a---dp


74HC138译码器

A1,A2,A3三个加权(A0A1A2的输入相当于一个八进制数)输入可以产生八个互斥输出Y0-Y7

输入输出特性:

使能条件:E1E2 :低电平 E3:高电平


芯片使用:

G2A G2B G1:代表E1E2E3


ABC:A0A1A2

 

点亮数码管:


 //静态显示

 #include

 

unsigned char a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c};

 

int main()

{

P1=a[1];

//接地端默认使数码管共阴

while(1);

return 0;

}

 //数码管的动态显示

 /*

 思路:

 1.向138芯片的A123输出选中数码管,选中谁 谁是低电平

 

 2.同时P10输出十六进制

 */

 

 #include

 

sbit smgen=P2^3;//573芯片 高电平 

sbit rs=P3^6;//其他芯片会影响 所以用这个脚关闭那个芯片。

 

unsigned char table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c};//对应着数字

unsigned char table2[]={0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70};

//总线驱动:A1A2A3

 

void delay(unsigned int a)

 

{

while(a--);

}

 

unsigned int t;

 

void main()

{

unsigned char i;

rs=0;//OE接地

t = 50;

while(1)

{

for(i=0;i<8;i++)

{

P2=table2[i];

smgen=1;

P1=table1[i];

delay(t);

}

}

}


点阵:

如何显示:


上图原理图中:横向是P0 纵向是P1 此板使用左边原理图。延序号有P0-P7

如果想让点阵点亮,则保证P0i = 0;P1j = 1


举例:动态显示数字0:

P0选中第一列 P0 = 1111 1110  ;P1 = 0000 0000 

P0选中第二列 P0 = 1111 1101  ;P1 = 0000 0000 

P0选中第三列 P0 = 1111 1011  ;P1 = 0011 1110 

P0选中第四列 P0 = 1111 0111  ;P1 = 0100 0001 

P0选中第五列 P0 = 1110 1111  ;P1 = 0100 0001 

P0选中第六列 P0 = 1101 1111  ;P1 = 0100 0001 

P0选中第七列 P0 = 1011 1111  ;P1 = 0011 1110 

P0选中第八列 P0 = 0111 1111  ;P1 = 0000 0000 

 #include

#define uchar unsigned char 

#define uint unsigned int

 

sbit en1=P2^0;//573高电平

sbit en2=P2^3;//573高电平

sbit rs=P3^6;//某个芯片需要关闭

 

uchar table1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

uchar table2[]={0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00};

 

void init(void)

{

en1=1;

en2=1;

rs=0;

}

 

void delay(uint a)

{

while(a--);

}

 

void main()

{

uchar i;

init();//初始化

while(1)

{

for(i=0;i<8;i++)

{

P0=table1[i];

P1=table2[i];

delay(40);

}

}

 

}

————————————————

版权声明:本文为CSDN博主「mmciel」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/F_zmmfs/article/details/81152044


关键字:C51  数码管  静态  动态显示  74HC138 引用地址:【C51自学笔记】数码管(静态与动态显示)+74HC138+点阵的动态显示

上一篇:【C51自学笔记】中断系统
下一篇:【C51自学笔记】ULN2003+蜂鸣器+继电器+步进电机

推荐阅读最新更新时间:2024-11-17 07:22

51单片机小白零基础教程——数码管静态显示,以及数码管拓展程序
一、数码管的显示原理 数码管:是一种可以显示数字和其他信息的电子设备,可以看成是多个二极管的组成。 数码管有单位数码管、双位数码管、四位数码管,我们开发板上的数码管为2个四位数码管。 数码管显示原理:通过点亮内部的发光二极管来发光 引脚:又被称为管脚,从集成电路内部电路引出与外围电路的接线,所有的引脚构成了这块芯片的接口 单位数码管的引脚有10个,内部一共有8个小的发光二级管,还有2个引脚是公共端,其实只有一个公共端,但是生产厂家为了封装统一,把这2个引脚连接在了一起。 数码管根据其公共端所接的阳极和阴极的不同,分为了共阴极数码管和共阳极数码管。 共阳极接法:几个二极管的阳极接在一起,接到VCC(高电平),
[单片机]
51单片机小白零基础教程——<font color='red'>数码管</font>的<font color='red'>静态</font>显示,以及<font color='red'>数码管</font>拓展程序
英飞凌扩展集成嵌入式纠错码(ECC)的抗辐射异步静态随机存取存储器(RAM)产品线
英飞凌扩展集成嵌入式纠错码(ECC)的抗辐射异步静态随机存取存储器(RAM)产品线,适用于航空等极端环境 【2024年1月15日,德国慕尼黑讯】卫星上的边缘计算和推理可实现近乎实时的数据分析和决策制定。随着联网设备的数量及其产生的数据量不断增长,这一点变得愈发重要。为满足太空应用中的这些高性能计算需求, 英飞凌科技股份公司旗下的Infineon Technologies LLC Memory Solution近日宣布推出采用英飞凌专利技术RADSTOP™设计的最新抗辐射(rad hard)异步静态随机存取存储器 。全新产品专为高可靠性和高性能极为关键的太空及其它恶劣环境应用而设计。 英飞凌抗辐射(rad hard)异步
[嵌入式]
英飞凌扩展集成嵌入式纠错码(ECC)的抗辐射异步<font color='red'>静态</font>随机存取存储器(RAM)产品线
FSMC-灵活的静态存储控制器
最近在学习SMT32的FSMC模块,现将我自己对FSMC的理解讲解一下,并对学习过程中遇到的疑点和难点进行分享。 0.前言 学习FSMC,我推荐《STM32F4xx中文参考手册》、《STM32F4开发指南-库函数版本_V1.1.pdf》和一些SRAM的技术文档,比如《IS62WV51216.pdf》。如果有STM32开发板那就更好了,如果没有开发板,只是想了解FSMC的工作原理及过程,可以参考STM32F407的程序代码,这些资料可以去正点原子官方网站免费下载:http://www.openedv.com/thread-13912-1-1.html。 本文主要是按照《STM32F4xx中文参考手册》FSMC部分讲解。对我在
[单片机]
FSMC-灵活的<font color='red'>静态</font>存储控制器
小型LDO稳压器IC结合低静态电流与高纹波抑制比
300mA小型封装低压差稳压器结合低静态电流、高纹波抑制比以及快速负载暂态回应,并在这些特征之间提供最佳权衡… 东芝电子元件及储存装置株式会社推出输出电流为300mA的TCR3UG系列小型封装低压差(LDO)稳压器,该系列产品适用于物联网模组、穿戴式装置和智慧型手机的电源管理。 LDO稳压器的静态电流受惠于纹波抑制比与负载暂态回应之间的权衡。TCR3UG系列稳压器在这些特征之间提供最佳权衡。TCR3UG系列稳压器还具备各种保护功能,例如过热保护、过电流保护和浪涌电流抑制。TCR3UG系列产品采用先进的小型WCSP4F封装,尺寸为:0.645mm x 0.645mm(标准值),t=0.33mm(最大值),有助于减小行动装置的
[半导体设计/制造]
键盘扫描-数码管递增显示程序
/* 程序效果:51单片机按键扫描数码管显示输入,数码管为递增显示,即像     手机打电话时输入号码一样,程序简单紧凑     理解相对困难,但只要把上一程序弄懂,本程序     即可理解。 程序设计者:http://www.51hei.com转载请保留版权. 注意:如果无法在keil里编译,请删除每一行的所有前导空白, */ #include reg52.h //头文件 #include intrins.h #define uchar unsigned char //宏定义 #define uint unsigned int sbit jdq=P3^5; //位声明,驱动继电器管脚 sbit fmq=P3^4; //位声
[单片机]
51单片机(二十三)—— 数码管中断扫描
在之前的数码管的文章中,我们对数码管的扫描都是以延时的方式实现,这样做比较浪费单片机资源,在延时的过程,单片机一直在计数,不能执行其它功能。在学习了定时器的定时功能后,我们可以通过定时器进行定时,在定时器的中断函数中对数码管进行扫描。这篇文章我们就对数码管的中断方式扫描进行研究。采用定时器0进行定时,定时器0的初始化代码如下所示。 void init_T0(void) { TMOD|= 0x01; //使用方式1,16位定时器 TH0=(65536-2000)/256; //给TH0和TL0赋初值,计时时长为2ms TL0=(65536-2000)%256; EA=1; //总中断打开 ET0=1;
[单片机]
51单片机(二十三)—— <font color='red'>数码管</font>中断扫描
51单片机学习之陆 —— 1.2 第一个c51程序(点亮流水灯)
由于学校的板子跟我买的板子有些差异,为了大家的阅读,以后的所有程序编写烧录都以老师发的板子为主。 1 事先准备   a 驱动安装,注意群中已经发了,吧板子的驱动装好哦。   b 烧写软件(烧录器) stc - isp (这里说明下,板子上的芯片是stc的,你还能看到它的型号stc89c52RC,用stc的烧写软件就可以了)    提问:什么是烧写软件?     答:就是把你写好代码(C或者是汇编)专程的 机器语言 通过一定的方式下载到单片机中。称为烧写。(就先这样简单理解吧)   c 编写软件 keil uVision 4 (我仅用它编译生成hex 文件)         notpad++ (我用它写c51的代码,然
[单片机]
51单片机学习之陆 —— 1.2 第一个<font color='red'>c51</font>程序(点亮流水灯)
74HC595驱动24位数码管
74HC595是一个8位移位寄存器的数字芯片,并具有输出锁存和三态输出。 既然可以驱动了那么多的数码管,驱动大屏点阵还是梦?绝对不是梦? 引脚功能: 第8脚GND,电源地。 第16脚VCC,电源正极 第14脚DATA,串行数据输入口,显示数据由此进入,必须有时钟信号的配合才能移入。 第13脚EN,使能口,当该引脚上为“1”时QA~QH口全部为“1”,为“0”时QA~QH的输出由输入的数据控制。 第12脚STB,锁存口,当输入的数据在传入寄存器后,只有供给一个锁存信号才能将移入的数据送QA~QH口输出。 第11脚CLK,时钟口,每一个时钟信号将移入一位数据到寄存器。 第10脚SCLR,复位口,只要有复位信号,寄存器内移入的数据
[单片机]
74HC595驱动24位<font color='red'>数码管</font>

推荐帖子

常需要在输入输出接口上设计隔离,请问一般在什么场合下加隔离芯片?典型的隔离芯片
请问一般在什么场合下加隔离芯片?典型的隔离芯片有哪些?好像高速隔离和普通数字隔离不同呀!常需要在输入输出接口上设计隔离,请问一般在什么场合下加隔离芯片?典型的隔离芯片一般在不同电压种类之间加隔离,一般在强弱电之间的隔离用光耦;在3V和5V之间电平转换用74245回复:常需要在输入输出接口上设计隔离,请问一般在什么场合下加隔离芯片?典型的隔:D您好!我想要类似的答案(最好有各种型号光隔的选用区别):下面是我网上找到的一些。只是太少了1隔离芯片种类很多,通常以频率进行区分,例如串
xuzongjin 单片机
Contiki(2) 怎么开始以及目的
显然,既然决定了不再纠结这纠结那,并且发现Contiki包含的东西远远比自己想象的要多得多。于是内心里越来越强烈的产生了一个想法:别想了,Contiki就Contiki吧。选择它,当然最开始是因为它频频出现在那些WSN/无线组网的协议里。其次,它是一个操作系统,是操作系统,就会有我想要了解,甚至独立抽出来的那些常见功能组件。内存管理;多线程调度;等等。然而,怎么开始却是不容易的。这里,继续上一次的开启记录,继续写这一过程中的思考和选择。一则我是一个只有靠书写才能清晰思路的
辛昕 RF/无线
嵌入式培训的烦恼
最近总在思考要不要去嵌入式培训,好矛盾,一方面觉得在大学学的东西真的太少了(虽然我觉得我在班上学习还是比较刻苦的,但是实践太少了,毕业压力太大了)自己自学又难度太大好多东西要花好多时间,我经常在21ic看arm的论坛好多都看不懂,想通过培训提高自己实践机会,关键是我不想出去以后就拿个2000多的工资,不甘于现状。但是另一方面培训费用又太昂贵了,对一个大学生来说一万多的培训费真的是负担。想听听大家的意见,特别是那些去培训过的学长们,想听听你们的心声,对培训怎么看?能不能达到他们说的培训后工资有
ihaveadre.am ARM技术
怎么会这样
本帖最后由paulhyde于2014-9-1509:17编辑我们学校今年竟然没人获全国奖项,郁闷啊!怎么会这样分析分析原因下一次加油啊回复楼主天涯逐日的帖子楼主下次加油!不管结果怎样,努力就会有收获。本帖最后由paulhyde于2014-9-1509:17编辑什么学校???走过过程就好。。。回复楼主天涯逐日的帖子本帖最后由paulhyde于2014-9-1509:17编辑原帖由天涯逐日于2009-10-
天涯逐日 电子竞赛
分享资料:EMI性能与设计的疏忽
在您的电源中很容易找到作为寄生元件的100fF电容器。您必须明白,只有处理好它们才能获得符合EMI标准的电源。从开关节点到输入引线的少量寄生电容(100毫微微法拉)会让您无法满足电磁干扰(EMI)需求。那100fF电容器是什么样子的呢?在Digi-Key中,这种电容器不多。即使有,它们也会因寄生问题而提供宽泛的容差。不过,在您的电源中很容易找到作为寄生元件的100fF电容器。只有处理好它们才能获得符合EMI标准的电源。图1是这些非计划中电容的一个实例。图中的右侧是一个垂直安装的FET,
qwqwqw2088 模拟与混合信号
boa+c语言写的cgi在开发板上 读写文件的问题
FILE*f; f=fopen(DATAFILE,\"r\"); 复制代码 就是不能执行,请高手帮助解决,分不够开口我现在只能给100boa+c语言写的cgi在开发板上读写文件的问题怎么个不能执行法?出现什么问题?问题解决了是相对路径和绝对路径的问题,在板子上要用绝对路径
oemguide 编程基础
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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