基于51单片机倒计时秒表程序设计_51单片机倒计时秒表

其他范文 时间:2020-02-29 09:12:28 收藏本文下载本文
【www.daodoc.com - 其他范文】

基于51单片机倒计时秒表程序设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“51单片机倒计时秒表”。

基于51单片机倒计时秒表程序设计

typedef unsigned char UINT8;typedef unsigned int UINT16;code UINT8 SEGMENT[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};code UINT8 SELECT[8] ={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};#define S1 0x0e #define S2 0x0d #define S3 0x0b #define S4 0x07 sbit SPEAK=P3^5;sbit P3_3=P3^3;UINT8 Second;

void timer_10ms(void)//定时器T0定时10ms {

TMOD=0x01;TH0=0xdc;TL0=0x32;TR0=1;//启动T0 } void Delay(UINT16 t){

UINT16 i,j;

for(i=0;i

for(j=0;j

void Display(void){ static UINT8 num=0;P2=0xff;switch(num){

case 0:

P0=0xff;

break;

case 1:

P0=0xff;

break;

case 2:

P0=0xff;

break;

case 3:

P0=0xff;

break;

case 4:

P0=0xff;

break;

case 5:

P0=0xff;

break;

case 6:

P0=SEGMENT[Second%100/10];

break;

case 7:

P0=SEGMENT[Second%10];

break;} P2=SELECT[num];num++;num%=8;//if(num==8)num=0;} UINT8 Scankey(void){ UINT8 key;if((P3&0x0f)==0x0f)

return(0xff);Delay(10);

if((P3&0x0f)==0x0f)

return(0xff);key=P3&0x0f;while((P3&0x0f)!=0x0f);return(key);}

void main(){

UINT8 i;

EA=1;

//打开总中断

EX1=0;//打开外部中断1 IT1=1;TH0=0xdc;TL0=0x32;TR0=1;//启动T0

ET0=1;

Second=60;while(1)

{

Display();

Delay(2);

i = Scankey();

if(i==S1)//启动

{

EA=1;

}

else if(i == S2)//暂停

{

EA=0;

}

}

} } void int_0()interrupt 1 {

unsigned char z,aa;

for(aa=59;aa>0;aa--){

for(z=0;z

{

P0=SEGMENT[aa/10];

P2=SELECT[3];

delay(5);

//10ms

P0=SEGMENT[aa%10];

P2=SELECT[4];

delay(5);

//10ms

} } } }

下载基于51单片机倒计时秒表程序设计word格式文档
下载基于51单片机倒计时秒表程序设计.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文