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

2020-02-29 其他范文 下载本文

基于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单片机倒计时秒表程序设计.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
基于51单片机倒计时秒表程序设计
点击下载文档
相关专题 51单片机倒计时秒表 秒表 单片机 程序设计 51单片机倒计时秒表 秒表 单片机 程序设计
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文