#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit k1 = P1^0; //加
sbit k2 = P1^1; //减
sbit k3 = P1^2; //复位
void key(void);
void display(void);
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90}; //数组
char m=99,n=98; //显示初值,m,n的值决定开机显示数值
//延时程序
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
//显示程序
void display(void)
{P2=0X08;
P0=table[m%10]; //显示个位
delayms(5);
P2=0X04;
P0=table[m/10]; //显示十位
delayms(5);
P2=0X02;
P0=table[n%10]; //显示百位
delayms(5);
P2=0X01;
P0=table[n/10]; //显示千位
delayms(5);
}
//按键处理
void key()
{
if(k1==0) //检测按键是否被按下
{ //延时消抖
delayms(10);
if(k1==0) //再次检测是否真正按下按键
{
m++; //m自加一
if(m>=100) //如果m加到100则n加一 (限制m的取值范围) 个位、十位最大显示99
{
n++; //n自加一
m=0; //使m又从0开始计数
if(n>=100) //如果n加到100则m=n=99 (限制n的取值范围) 百位、千位最大显示99
{
m=99; //最大显示9999
n=99;
}
}
}
while(!k1); //按键松开
}
if(k2==0) //检测按键是否被按下
{ //延时消抖
delayms(10); //再次检测是否真正按下按键
if(k2==0)
{ //m自减一
m--;
if(m<=0) //如果m减到0则n减一 (限制n的取值范围) 个位、十位最小显示00
{
m=99; //重新给m装初值
n--; //n自减一
if(n==-1) //如果n减到-1,则m=n=0 (限制n的取值范围) 百位、千位最小显示00
{
n=0; //最小显示0000
m=0;
}
}
}
while(!k2); //按键松开
}
if(k3==0) //检测按键是否被按下
{
delayms(10); //延时消抖
if(k3==0) //再次检测是否真正按下按键
{
m=0; //复位,显示0000
n=0;
}
while(!k3); //按键松开
}
}
void main()
{
while(1)
{ //调用按键检测
key(); //数码管显示
display();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
单片机倒计时程序.zip (181个子文件)
7seg 509B
99s 1KB
STARTUP.A51 6KB
t1.uvgui.Administrator 83KB
t1.uvgui.Administrator 83KB
t1.asm 2KB
t1.asm 2KB
T2.asm 2KB
t4.asm 2KB
求求了.asm 799B
逆.asm 698B
99s1.asm 698B
顺.asm 478B
7seg.asm 478B
TT.asm 344B
7seg_uvopt.bak 55KB
t1_uvopt.bak 54KB
逆_uvopt.bak 54KB
t1_uvopt.bak 54KB
按键倒计时_uvopt.bak 54KB
T2_uvopt.bak 54KB
倒计时_uvopt.bak 54KB
t1_uvproj.bak 14KB
t1_uvproj.bak 14KB
7seg_uvproj.bak 13KB
T2_uvproj.bak 13KB
逆_uvproj.bak 0B
t1_uvproj.bak 0B
顺_uvproj.bak 0B
按键倒计时_uvproj.bak 0B
t3_uvproj.bak 0B
t4_uvproj.bak 0B
倒计时_uvproj.bak 0B
求求了_uvproj.bak 0B
按键.c 2KB
t1.c 1016B
djis 1KB
按键倒计时.hex 1KB
t1.hex 549B
T2.hex 535B
T2.hex 535B
t4.hex 535B
t1.hex 535B
99s.hex 515B
djis.hex 515B
t1.hex 405B
求求了.hex 369B
逆.hex 343B
顺.hex 185B
倒计时.hex 142B
t1.build_log.htm 972B
t1.build_log.htm 972B
t1.lnp 67B
t1.lnp 67B
djis.lnp 38B
99s.lnp 37B
t1.lnp 37B
按键倒计时.lnp 31B
求求了.lnp 29B
7seg.lnp 25B
倒计时.lnp 25B
顺.lnp 21B
t4.lnp 21B
T2.lnp 21B
逆.lnp 21B
STARTUP.LST 14KB
t1.lst 7KB
t1.lst 7KB
t4.LST 7KB
T2.LST 7KB
求求了.LST 4KB
按键.LST 4KB
99s1.LST 4KB
逆.LST 4KB
t1.LST 3KB
7seg.LST 3KB
顺.LST 3KB
TT.LST 2KB
按键倒计时.M51 7KB
t1.M51 6KB
t1.m51 6KB
djis.M51 5KB
99s.M51 5KB
t1.m51 5KB
t4.M51 5KB
T2.M51 5KB
求求了.M51 4KB
逆.M51 4KB
7seg.M51 3KB
顺.M51 3KB
倒计时.M51 2KB
按键.OBJ 4KB
t1.OBJ 2KB
t1.obj 1KB
t1.obj 1KB
t4.OBJ 1KB
T2.OBJ 1KB
求求了.OBJ 867B
99s1.OBJ 765B
STARTUP.OBJ 758B
共 181 条
- 1
- 2
资源评论
- Misekooo2022-06-22用户下载后在一定时间内未进行评价,系统默认好评。
- m0_701110012022-05-02用户下载后在一定时间内未进行评价,系统默认好评。
- 尘世隐心2021-11-04用户下载后在一定时间内未进行评价,系统默认好评。
TNT_W_110M
- 粉丝: 5
- 资源: 9
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功