30秒倒计时 c语言51单片机实现.docx
30秒倒计时 c语言51单片机实现 原理图: 程序: #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit dula=P26; sbit wela=P27; sbit D=P23; uint tt,temp,shi,ge,a; uchar code 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71; void delay(uint z); void chushi; void xianshi(uint temp); void main chushi; while(1) if(tt=20) tt=0; if(temp<=0) shuma= temp=30; D=0; while(1) xianshi(0); temp-; xianshi(temp); void delay(uint z) /延时子程序 uint x,y; for(x=z;x>0;x-) for(y=110;y>0;y-); void chushi /设置定时器1为工作方式1 temp=30; TMOD=0X01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; void zhongduan interrupt 1 /中断函数子程序不需要声明 TH0=(65536-50000)/256; TL0=(65536-50000)%256; tt+; void xianshi(uint temp) /显示子程序 uint shi,ge; shi=temp/10; ge=temp%10; P0=shumashi; dula=1; dula=0; P0=0xfe; wela=1; wela=0; delay(2); P0=shumage; dula=1; dula=0; P0=0xfd; wela=1; wela=0; delay(2);