C51---4.1 静态数码管显示

发布者:Qinghua2022最新更新时间:2022-07-21 来源: csdn关键字:C51  静态  数码管显示 手机看文章 扫描二维码
随时随地手机看文章

数码管引脚定义

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

原理图

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

74HC138

通过74HC138译码器的 P2_2 P2_3 P2_4 控制LED1-LED8 输出0为选中

例如


P2_2=1//低位

P2_3=0

P2_4=1//高位


101十进制为5 则第5位为有效 并且低电平有效。数码管为共阴极连接,所以LED5被选中

通过74HC138译码器选择LED


74HC245

74HC245为双向数据缓冲器

在这里插入图片描述

OE为低电平有效,芯片使能

A0-A7 与 B0-B7一一相连

DIR控制方向选择,高电平方向为A0->B0,低电平方向为B0->A0


代码

在这里插入图片描述

思路:通过74HC138选择LED1-8中的数码管,例如选择LED6 ,则控制


P2_2=1//低位

P2_3=1

P2_4=0//高位


就选择中LED6


接下来根据要显示的数字,选择点亮a-g、dp对应的引脚

在这里插入图片描述

例如要数字6 则选择a、f、e、d、c、g 将他们置为高电平,其余置为低电平

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

B7为高位B0为低位 0111 1101即0x7D

设置P0=0X7D


mian函数

将8个数码管以及要显示的内容封装起来

在第二个数码管上显示6


#include


unsigned NixieTable[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,//0-9

   0x77,//A

   0x7C,//B

   0X39,//C

   0X5E,//D

   0X79,//E

   0X71,//F

   0X00//空

};


void Nixie(unsigned char Location,unsigned char Num)

{

switch(Location)

{

case 1:P2_4=1;P2_3=1;P2_2=1;break;

case 2:P2_4=1;P2_3=1;P2_2=0;break;

case 3:P2_4=1;P2_3=0;P2_2=1;break;

case 4:P2_4=1;P2_3=0;P2_2=0;break;

case 5:P2_4=0;P2_3=1;P2_2=1;break;

case 6:P2_4=0;P2_3=1;P2_2=0;break;

case 7:P2_4=0;P2_3=0;P2_2=1;break;

case 8:P2_4=0;P2_3=0;P2_2=0;break;

}

P0=NixieTable[Num];

}


void main()

{

Nixie(2,15);

while(1);

}

在这里插入图片描述

在第七个数码管上显示十六进制的15


#include


unsigned NixieTable[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,//0-9

   0x77,//A

   0x7C,//B

   0X39,//C

   0X5E,//D

   0X79,//E

   0X71,//F

   0X00//空

};


void Nixie(unsigned char Location,unsigned char Num)

{

switch(Location)

{

case 1:P2_4=1;P2_3=1;P2_2=1;break;

case 2:P2_4=1;P2_3=1;P2_2=0;break;

case 3:P2_4=1;P2_3=0;P2_2=1;break;

case 4:P2_4=1;P2_3=0;P2_2=0;break;

case 5:P2_4=0;P2_3=1;P2_2=1;break;

case 6:P2_4=0;P2_3=1;P2_2=0;break;

case 7:P2_4=0;P2_3=0;P2_2=1;break;

case 8:P2_4=0;P2_3=0;P2_2=0;break;

}

P0=NixieTable[Num];

}


void main()

{

Nixie(7,15);

while(1);

}

在这里插入图片描述

关键字:C51  静态  数码管显示 引用地址:C51---4.1 静态数码管显示

上一篇:C51---4.2 动态数码管显示
下一篇:C51---按键控制LED移位

推荐阅读最新更新时间:2024-11-13 10:24

keil c51中定义XDATA,CODE等类型的结构体方法
定义CODE型: typedef struct MenuItem { int i; unsigned char j; }code _MenuItem; //数据存放于FLASH中 定义XDATA型: typedef struct MenuItem { int i; unsigned char j; }xdata _MenuItem; //数据存放在外部RAM中 使用示例: _MenuItem m0_main ; //定义一个_MenuItem 类型的结构体数组
[单片机]
MSP430F5438A+TM1650四位数码管显示+16位AD转换器ADS1110
MSP430F5438A读取16位AD转换器ADS1110的采集值,通过TM1650串行驱动四位数码管进行显示。 开发环境采用IAR,数码管采用共阴极四位数码管,TM1650位串行控制方式,只需要2个IO口既可以实现 数据的显示,可以极大的减少IO口的占用。 系统电路图、TM1650数码管模块和程序如下所示。 /////////////////////////////主函数////////////////////////////////////// void main() { // uint j,p; WDTCTL = WDTPW + WDTHOLD; //关闭看门狗 Init_Sys(); //初
[单片机]
C51学习心得体会,递归调用程序设计举例
迭代(循环)与递归(调用)对比 (1)二者都是建立在控制结构基础上的,迭代使用的是循环结构,递归使用的是选择机构; (2)二者都用到了循环,迭代明确使用循环结构,递归通过反复调用函数实现循环; (3)二者都用到了终止条件测试,迭代在继续循环条件为假时结束,递归在到达基本实例时终止的。 (4)二者都可能是无限的。 递归举例 1、阶乘 N!=N*(N-1)*...*2*1 long factorial(long number) { if(number =1) return 1; else return (number*factorial(number-1)); } 2、求和N+(N-1)+(N-2)+...+2+1 int s
[单片机]
详谈C51的编程规范
作为一门工具,最终的目的就是实现功能。在满足这个前提条件下,我们希望我们的程序能很容易地被别人读懂,或者能够很容易地读懂别人的程序,在团体合作开发中就能起到事半功倍之效。在网上请求帮助时,如能以规范的写法贴出程序,网友会比较容易地明白你的问题,则会比较快的得到网友的帮助,否则让人看上半天也不明所以然,这样就达不到预期的效果了。因此,为了便于源程序的交流,减少合作开发中的障碍,希望大家能够探讨一下C51的编程规范。把各人认为好的建议提出来,然后做一个总结,作为一种大家一致认同的规范,我认为将会是一件很有意义的事。我先提出一些自已的想法,以此抛砖引玉。 一、注释 1,采用中文; 2,开始的注释: 文件(模块)注释内容: 公
[单片机]
瑞萨电子推出两款具有低静态电流双路输出同步控制器 适用于车载常开系统
全球领先的半导体解决方案供应商 瑞萨电子 集团(TSE:6723)今日宣布,推出两款具备最低 6µA 静态电流并集成 2A 拉电流 /3A 灌电流 MOSFET 驱动的全新 42V 双同步 控制器 ,为瑞萨 R-Car H3 和 R-Car M3 SoC 提供初级功率级解决方案。ISL78264 双同步降压控制器 管理中间的第一级 DC/DC 转换,将 12V 电池系统降压至 5V 和 3.3V,从而为车辆电子控制单元(ECU)、车载信息娱乐系统(IVI)和数字驾驶舱系统提供 50W-200W 功率水平的供电;ISL78263 双同步升降压控制器提供 DC/DC 转换,以支持 25W-100W 的功率水平。如在启动瞬时或启动
[汽车电子]
瑞萨电子推出两款具有低<font color='red'>静态</font>电流双路输出同步控制器 适用于车载常开系统
51单片机-多个数码管显示
1.余晖效应 流水灯如果在流速太快的基础上再加速,那么我们看到的则是一排灯都在亮着,这就叫人眼的余晖效应。同理,我们想让多个数码管同时亮,那么就要让三八译码器的IO0~IO5每个输出引脚轮流快速切换出低电平,需要显示什么数字再由P0的8个IO端口控制。 这里提供了一段代码供大家调试玩玩,用实验现象领悟余晖效应。 #include reg52.h sbit ADDR2 = P1^2; sbit ADDR1 = P1^1; sbit ADDR0 = P1^0; sbit ENLED = P1^4; sbit ADDR3 = P1^3; void main() { unsigned char i=1; uns
[单片机]
C51-关于中断系统
中断系统
[单片机]
C51-关于中断系统
keil c51 头文件的制作
编缉文本文件,保存文件时用后缀 .h 文件格式: #ifndef _ 文件名 _h_ #define _ 文件名 _h_ ...文件内容... #endif 使用时把这个文件复制到新建的project所在的文件夹内,在程序中包含这个文件(#include 文件名.h )就可以用了。
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
更多往期活动
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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