基于51单片机的倒计时实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于51单片机的倒计时实现,精确到毫秒。

#include

#define uchar unsigned char

#define uint unsigned int

uchar t1,shu,shi,ge,miao1,miao2;

sbit wei1=P2^0;

sbit wei2=P2^1;

sbit wei3=P2^2;

sbit wei4=P2^3;

void display(uchar shi,uchar ge,uchar miao1,uchar miao2); uchar code table[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f};

void delay(uint z) //延时

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void init()

{

shu=60;

t1=100;

TMOD=0x01;

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

ET0=1; // 开始计时

EA=1;

TR0=1; // 开所有中断

}

void timer0() interrupt 1 //定时器0

{

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

t1--;

miao1=t1/10;

miao2=t1%10;

if(t1==0)

{

t1=100;

shu--;

shi=shu/10;

ge=shu%10;

if(shu==0)

{

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

TR0=0;

}

}

}

void display(uchar shi,uchar ge,uchar miao1,uchar miao2) //显示{

P2=0xfe;

P0=table[shi];

delay(5);

P2=0xfd;

P0=table[ge];

delay(5);

P2=0xfb;

P0=table[miao1];

delay(5);

P2=0xf7;

P0=table[miao2];

delay(5);

}

void main()

{

init();

shi=5;ge=9;

display(shi,ge,miao1,miao2);

while(1)

{

display(shi,ge,miao1,miao2);

}

}

相关文档
最新文档