#include"reg51.h"
#define uint unsigned int
#define uchar unsigned char
uchar code Seg[]={0x00,0x04,0x08,0x0c,0x10,0x14,0x18,0x1c};//位码码值
uchar code TAB[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};//段码码值
int n=0;
sbit KEY1=P3^1;//按键数字增
sbit KEY2=P3^0;//按键数字减
/*********************延时函数*************************/
void Delay(uint ctn)
{
uint i;
for(i=0;i<ctn;i++);
}
/********************显示函数*************************/
void Display(void)
{
P2=Seg[0]; //个位位选
P0=TAB[n/1%10];//个位段值
Delay(200); //短暂延迟
P0=0x00; //消影
P2=Seg[1];
P0=TAB[n/10%10];
Delay(200);
P0=0x00;
}
/********************主函数***************************/
void main(void)
{
while(1)
{
if(KEY1==0)
{
Delay(200);
while(!KEY1);
n++;
if(n==100)n=0;
}
if(KEY2==0)
{
Delay(200);
while(!KEY2);
n--;
if(n<=-1)n=99;
}
Display();
}
}
基于51单片机的数码管按键控制
最新推荐文章于 2024-05-01 23:55:23 发布