单片机
返回首页

51单片机day2——数码管依次显示实验

2025-10-28 来源:bilibili

/***

*八个八位数码管轮流显示0-9

*顺序:最后一位一次往前递进一位

*数码管接口:

*       1.数码管为共阳数码管

*       2.数码管一端由P0口经74HC245芯片链接至数码管a-dp

*       3.数码管另一端由P2^2-P2^4连接至74LS138译码器A-C管脚经处理后由74LS138译码器Y0-Y7管脚连接至数码管共阳端

* 原理:

*    1.8位数码管内由8个发光二极管组成,一端高电平另一端低电平即可点亮1位数码管

*    2.有八个接口接到8位数码管的一端,8位数码管的另一端统一接正(共阳)/接负(共阴)

*    3.单片机控制八个接口拉高/低控制数码管亮/灭组成不同字符

*思路:

*   1.每个数码管显示0-9后通过74LS138译码器切换到下一个数码管

***/

#include "reg52.h"     //头文件  


void delay(int a);     //延时函数

void smgxs(void);      //数码管显示0-9

void ymq(void);       //通过译码器切换要显示的数码管


sbit LS1=P2^2;       //接到译码器A角

sbit LS2=P2^3;       //接到译码器B角

sbit LS3=P2^4;       //接到译码器C角


int xssz[10]={0x3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};   //显示0-9的编码数组


void main()

 while(1)

 {

  ymq();    //调用译码器函数

 }

}


void smgxs(void)    //数码管函数:显示从0-9后返回

{

  int i;

  for(i=0;i<10;i++)  //循环10次

  {

   P0=xssz[i];     //根据i值的不同显示0-9

   delay(30000);    //延时方便观看

  }

  return;        //返回

}


void ymq(void)      //译码器:循环控制要显示的数码管

{

  int i;

  int LS1sz[8]={0,1,0,1,0,1,0,1};    //根据74LS138译码器的手册定义的P2^2向译码器A管脚发送的信息

  int LS2sz[8]={0,0,1,1,0,0,1,1};    //根据74LS138译码器的手册定义的P2^3向译码器B管脚发送的信息

  int LS3sz[8]={0,0,0,0,1,1,1,1};    //根据74LS138译码器的手册定义的P2^4向译码器C管脚发送的信息

  for(i=0;i<8;i++)   //依次调用八个数码管显示

  {

   LS1=LS1sz[i];    //向译码器A引脚发送的信息

   LS2=LS2sz[i];    //向译码器B引脚发送的信息

   LS3=LS3sz[i];    //向译码器C引脚发送的信息

   smgxs();      //数码管显示0-9

  }

  return;        //返回

}


void delay(int a)  //延时函数

{

  int i;

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

}


进入单片机查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

精选电路图
  • 1瓦线性调频增强器

  • 家用电器遥控器

  • 12V 转 28V DC-DC 变换器(基于 LM2585)

  • 红外开关

  • DS1669数字电位器

  • HA1377 桥式放大器 BCL 电容 17W(汽车音频)

    相关电子头条文章