单片机源程序如下:
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
//共阳极数码管段码
uchar code SEG7[]={/*0,1,2,3,4,5,6,7,8,9,*/0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,};
uchar s=5;//设置时间
uchar sx=5; //显示时间
uchar run;//开始
uchar num[4];
uchar num1;
uchar num2;
//数码管位码端口
sbit P30=P3^0;
sbit P31=P3^1;
//按键端口定义
sbit P32=P3^2;
sbit P33=P3^3;
sbit P34=P3^4;
sbit P35=P3^5;
sbit P36=P3^6;
//延时函数ms
void delayms(uint t)
{
uint i,j;
for(i=0;i<t;i++)
for(j=0;j<120;j++);
}
//数码管显示
void dis()
{
//------------------
//显示
P0=SEG7[sx%100/10];
P30=1;delayms(2);P30=0;
//显示
P0=SEG7[sx%10];
P31=1;delayms(2);P31=0;
//------------------
}
//显示控制
void key()
{
//复位
if(P32==0){sx=s;run=0;P2=0XFF;}
//停止
if(P33==0){run=0;P2=0XFF;}
//开始
if(P34==0){if(sx>0)run=1;}
if(run==0)
{
//加1
if(P35==0){s=s+1;sx=s;while(P35==0);}
//减1
if(P36==0){s=s-1;sx=s;while(P36==0);}
}
}
全部资料51hei下载地址:
数码管定时打铃.rar
(52.48 KB, 下载次数: 32)
|