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++);
}
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- 蓝牙信道探测技术原理与开发套件实践
- Microchip 推出生产就绪型全栈边缘 AI 解决方案,赋能MCU和MPU实现 智能实时决策
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析




