c51,数码管,大佬围观

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define LED P0//段选线
sbit num0=P2^0;//位选线
sbit num1=P2^1;//位选线
uint num;
uchar f0;
uchar f1;
sbit key=P1^0;//开关
sbit key1=P1^1;
uchar code dis_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,//段码表0,1,2,3,4,5,6,7
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40};//段码表8,9,a,b,c,d,e,f,灭(16),-(17)
unsigned char SegBuf[2]={0};
//---延时函数---//
void delayled(uchar N)
{
uchar i,j;
for(i=0;i<N;i++)
for(j=0;j<125;j++);
}
//---填充显示缓冲区函数---//
void convert(uint n)
{
SegBuf[0] =n%10;
SegBuf[1] =n/10%10;
}
//---显示函数---//
void display(void)
{
LED=dis_code[SegBuf[0]];
num0=0;
delayled(3);
num0=1;
LED=dis_code[SegBuf[1]];
num1=0;
delayled(3);
num1=1;
}
//---显示数据---//
void Disp(uint n)
{
convert(n);
display() ;
}
//---主函数---//
void main()
{
num=0;//开始显示的数字为0
f0=1;//f0为按键标志位,如果按下键,f0=0,否则f0=1
f1=1;
while(1)
{
while (key==0)//键按下,显示,标志f0=0
{
Disp(num);
f0=0;
}
while (key==1)//键未按下,显示
{
Disp(num);
if (f0==0)
{
num=num+1;
f0=1;
}
}
}
}
相关推荐
51单片机红外遥控控制图片轮播与蜂鸣器音乐播放(含数码管编号显示)
用普通红外遥控器就能控制51单片机实现三张图片切换和两段蜂鸣器音频播放。按遥控器数字键1~3,单片机依次显示R001、R002、R003,同步在四位共阴数码管上实时刷新编号;按键4和5分别触发两段预设音频,通过软件延时驱动蜂鸣器发声,不依赖音频解码芯片。项目基于标准Keil C51开发,已集成NEC协议红外解码逻辑,兼容VS1838B等常见红外接收头。图片数据以数组形式固化在源码中,所有资源打包完整:包含主程序大作业.c、编译输出文件(.hex/.M51/.OBJ/.LST)、Keil工程(.uvproj/
STC89C52红外遥控解码+4位数码管实时显示工程(含Keil完整编译文件)
用STC89C52单片机直接接收NEC协议红外遥控信号,自动识别按键码(比如0x00FF10EF),实时转成十六进制格式,在4位共阳极数码管上滚动刷新显示。代码基于Keil C51开发,包含全部源文件(.c)、编译输出(.hex/.obj/.lst/.m51)、项目配置(.Uv2/.Opt/.plg)和备份文件,烧录即用,不用改代码就能跑。硬件只要接VS1838B红外接收头、4位数码管加限流电阻就行。程序用T0定时器配合INT0外部中断精准测量脉宽,逐位解析32位NEC帧结构——包括8位地址、8位地址反码、
#include BLEDevice.h.pages
#include BLEDevice.h.pages
科技中介服务机构如何利用智能体技术提升技术交易服务的专业性与便捷性?.docx
科技中介服务机构如何利用智能体技术提升技术交易服务的专业性与便捷性?
AI 完成消除游戏自动化经验总结
打包的测试代码工程,基本不侵入游戏



