使用38译码器来驱动数码管来节省IO端口

(1)什么是38译码器?

38译码器有3个输入端口A、B、C和8个输出端口Y0-Y7。由输入端口控制输出端口的值

(2)为什么要使用38译码器

回想之前的驱动动态数码管的时候,一个段码端口控制显示的数字,一个com端口控制哪个数码管工作,段码端口接8个IO引脚,com端口接8个IO引脚。这样很浪费IO口资源,为了节省IO资源,使用38译码器接在com口,这样可以使用3个输入引脚控制8个com端口了。J15接到J16端口。

(3)为什么3个输入端可以控制8个输出端口值?

3个输入端口,每一个端口有两种状态(0或1),3个端口可以组成8中不同的状态。

(4)3个输入端口如何控制8个输出端口?

根据74LS138芯片的数据手册查询38译码器芯片的译码表即可。

分析数据手册可以得到:

(1)G1、G2*两个端口是使能引脚,并且要想让38译码器工作,G1接高电平,G2*接低电平。所以看上面38译码器的原理图中G1接VCC,G2*接GND。

(2)当ABC三个输入端口输入不同的值时,Y0-Y7会对应的输出低电平,回想动态数码管是共阴数码管,而38译码器Y0-Y7默认输出高电平,这样衔接的天衣无缝。

实验分析:

第一步:八个数码管阳极接一个IO端口,来负责输出显示的数字(也就是输出对应的段码)。

第二步:八个数码管的com端分别接入38译码器的Y0-Y7引脚。由38译码器的ABC三个输入端来控制数码管的com端口从而达到控制哪个数码管工作的目的。

第三步:根据原理图接线,J15-J16、ABC分别接P1.0、P1.1、P1.2

第四步:测出数码管的段码和38译码器的译码表。

第五步:编程。

实验代码:

#include

void delay(void)

{

unsigned char i=0,j=0;

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

for(j=0;j<20;j++);

}

void main(void)

{

/*  P0.0接到 A,P0.1接到B,P0.2接到C

P0端口是段码口,控制要显示的数字

P1端口是38译码器的端口,通过com端控制第几个数码管工作

*/

/*  测试38译码器的位码

c b a

000     Y0输出低电平 第1个数码管工作        对应十六进制数0x1

001     Y1输出低电平 第2个数码管工作        对应十六进制数0x2

010     Y2输出低电平 第3个数码管工作        对应十六进制数0x3

011     Y3输出低电平 第4个数码管工作        对应十六进制数0x4

100     Y4输出低电平 第5个数码管工作        对应十六进制数0x5

101     Y5输出低电平 第6个数码管工作        对应十六进制数0x6

110     Y6输出低电平 第7个数码管工作        对应十六进制数0x7

111     Y7输出低电平 第8个数码管工作        对应十六进制数0x8

*/

unsigned char duanma[8]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};

//段码

unsigned char weima[8]={0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7};                  //38译码器的位码

unsigned char i=0;

while(1)

{

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

{

P1=weima[i];    //38译码器的位码

P0=duanma[i];   //八个数码管的段码

delay();

P0=0;       //消隐

}

}

}

实验总结:

(1)使用38译码器就是为了节省IO口,如果IO口够用可以不使用38译码器。

(2)动态数码管的阳极接在P0这个IO端口上,控制数码管显示的数字,阴极接在38译码器的八个输出引脚上Y0-Y7,Y0-Y7由38译码器的ABC三个输入引脚控制。控制哪个数码管工作。

(3)测试数码管的段码和38译码器的位码。

(4)先分析原理图看如何接线,再看38译码器的数据手册看它怎么工作。最后编程。

(5)着重实验分析过程,而非知识本身,多总结学习方法。

38译码器数码管c语言代码,38译码器驱动数码管电路图相关推荐

  1. 接口技术七段数码管c语言,031 实例7-七段数码管绘制

    [TOC] 一."七段数码管绘制"问题分析 1.1 问题分析 七段数码管 需求:用程序绘制七段数码管,似乎很有趣 该怎么做呢? turtle绘图体系 --> 七段数码管绘制 ...

  2. 数码管识别c语言代码,OpenCV之七段数码管识别(含代码)

    1 背景 利用opencv识别数码管,采用传统的穿线法,前提是利用深度学习目标检测的方法,在机柜中将数码管区域切割出来,然后再对切割出来的区域进行识别,判断数字是多少.切割出来的形状如图所示: 数码管 ...

  3. 3641bs数码管C语言程序,树莓派控制3641BS数码管显示数字

    3641BS数码管是一个小LED显示器,可以显示4位数字和4个小数点.它是没有驱动的,使用它的方法就是控制每一个LED灯的亮起和熄灭.这个型号的数码管长这个样子: 硬件准备 树莓派 显像管 – 不是3 ...

  4. 数码管stm32c语言怎么实现,stm32控制数码管 - ST MCU单片机论坛 - ST(意法半导体)MCU官方技术论坛 - 21ic电子技术开发论坛...

    #include "stm32f10x_lib.h"          //包含了所有的头文件 它是唯一一个用户需要包括在自己应用中的文件,起到应用和库之间界面的作用. #defi ...

  5. c语言出圈问题10人,第38套题:c语言出圈问题分析.doc

    第38套题:c语言出圈问题分析.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3 ...

  6. c语言八数码A星算法代码解析,八数码问题c语言a星算法详细实验报告含代码解析...

    八数码问题c语言a星算法详细实验报告含代码解析 (13页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 一.实验内容和要求 八数码问题:在3 ...

  7. 唯一可译码判断c语言_单片机基础实验数码管原理与C语言

    数码管的原理 数码管内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符.使用时,共阴极数码管公共端(com端)接地,共阳极数码管公共端接电源.每段发光二极管需5-10mA的驱 ...

  8. C语言代码示范与讲解+C语言编程规范及基础语法+编程实战

    上一篇文章:C语言程序设计概述+C语言简介+算法概述 C语言代码示范与讲解+C语言编程规范及基础语法+编程实战 一:代码示范集加讲解 1.C语言第一个代码:打印"This is the fi ...

  9. c语言坐标正反算代码,C语言代码逆向的实战十篇(原创)

    ); } printf("\n"); system("pause"); } (之前从VS2008复制过来的时候代码有高亮的,现在换了VC6就木有了..) 进入正 ...

最新文章

  1. 听歌识曲原理探究以及样例代码
  2. 国内大陆芯片70个细分领域重要代表企业!
  3. Spring Cloud中Hystrix、Ribbon及Feign的熔断关系是什么?
  4. iOS警告-This block declaration is not a prototype
  5. 《无码的青春》第四章 程序员的二象性,左手流氓,右手疯子
  6. 操作系统进程学习(Linux 内核学习笔记)
  7. 操作argc, argv的经典写法
  8. SCCM 2012系列2 服务器准备下
  9. heidisql 命令保存blob_git常用命令总结
  10. .NET反编译工具:de4dot
  11. 到底买苹果XS还是XR_苹果x苹果xr苹果xs的区别
  12. 基于Qt的连连看小游戏
  13. 从各行业的实际运用中,窥见华为云虚拟专用网络VPN的强大性能
  14. 硬件设计23之三极管开关原理与场效应管开关原理
  15. Mybatis 任务二:配置文件深入
  16. android悬浮窗口的实现
  17. stm32 MPU6050 6轴姿态传感器的介绍与DMP的应用
  18. python 查找excel内容所在的单元格_python 读取excel中单元格的内容
  19. dede网站SEO教程:织梦seo优化入门手册
  20. 2011年8月编程语言排行榜

热门文章

  1. 删除context node后遗留的问题
  2. SAP ABAP实用技巧介绍系列之 How is configuration data loaded
  3. workaround for error message Table maintenance not allowed for table XXX
  4. SAP Cloud Platform上Destination属性为odata_gen的具体用途
  5. SAP CRM Fiori My Appointment应用里点了Edit按钮后三个Roundtrip分析
  6. SAP Fiori + Vue = ? 1
  7. 使用jMeter构造大量并发HTTP请求进行微服务性能测试
  8. linux2.6内核分析,linux2.6内核分析——LRU链表
  9. 服务器c盘大文件怎么查询,怎么查看c盘隐藏文件_怎么查看c盘的大文件
  10. 挑战程序设计竞赛_实力爆棚!2019年,华中科技大学拿下亚洲区竞赛金牌4枚!...