51单片机按键控制两位数码管循环显示0~60
2025-09-30 来源:cnblogs
// File Name: 按键控制数码管循环显示
// Author: hhhmxk
// Date: 2020.10.25
#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit key = P3^4;
sbit w1 = P3^0;
sbit w2 = P3^1; // 数码管位选端口
#define dx P2 // 数码管段选端口
u8 code seg_tab[] = {
0x40, 0x79, 0x24, 0x30, 0x19,
0x12, 0x02, 0x78, 0x00, 0x10
}; // encode
void display(u8 num);
void delay_ms(u16 num);
void main()
{
u8 count;
count = 0;
while(1)
{
if(key == 0)
{
delay_ms(10);
if(key == 0)
{
count = count==60? 0 : count+1;
while(!key); // 松手检测
}
}
display(count);
}
}
void display(u8 num)
{
u8 shiwei, gewei; // 数字的十位 个位
shiwei = num/10; //取模 34/10 = 3
gewei = num%10; //取余 34%10 = 4
w1 = 1; //高位位选
dx = seg_tab[shiwei] | 0x80; //去掉后面的小点 下面同理
delay_ms(2);
w1 = 0;
w2 = 1; //低位位选
dx = seg_tab[gewei] | 0x80;
delay_ms(2);
w2 = 0;
}
void delay_ms(u16 num)
{
u16 x, y;
for(x = num; x > 0; x--)
for(y = 110; y > 0; y--);
}
上一篇:51单片机波特率计算
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 蓝牙信道探测技术原理与开发套件实践
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析
- Microchip 推出生产就绪型全栈边缘 AI 解决方案,赋能MCU和MPU实现 智能实时决策




