|
上傳資料希望各位喜歡
QQ截圖20151104010641.png (16.88 KB, 下載次數(shù): 166)
下載附件
2015-11-4 01:07 上傳
pcb.jpg (76.23 KB, 下載次數(shù): 194)
下載附件
2015-11-4 01:07 上傳
電源.jpg (6.82 KB, 下載次數(shù): 146)
下載附件
2015-11-4 01:07 上傳
自制光耦1.jpg (12.74 KB, 下載次數(shù): 160)
下載附件
2015-11-4 01:07 上傳
自制光耦2.jpg (11.92 KB, 下載次數(shù): 194)
下載附件
2015-11-4 01:07 上傳
程序預(yù)覽:
- #include<reg52.h>
- fanhui();
- duanma[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//共陽(yáng)數(shù)字段碼 0-9
- sbit g1=P2^1;sbit g2=P2^3;sbit g3=P2^5;sbit g4=P2^7; //位選
- sbit key1=P1^1;sbit key2=P1^5;sbit key3=P1^7;//按鍵
- sbit spek=P1^0; //蜂鳴器
- sbit powr=P2^0; //繼電器開關(guān)
- sbit chumo=P1^3; //觸摸選項(xiàng)
- char sum=0,s=59,min=0,h=0,add=0;
- void delay()
- {
- int a,b;
- for(a=10;a>0;a--)
- for(b=50;b>0;b--);
- }
- delay1()
- {
- int a,b;
- for(a=50;a>0;a--)
- for(b=300;b>0;b--);
- }
- /////////////////////////////////////////////////////
- ////////////////////時(shí)間處理函數(shù)/////////////////////
- /////////////////////////////////////////////////////
- jishi()
- {
- if(s<0)
- {
- s=59;min--;
- }
- if(min<0)
- {
- min=59;
- h--;
- }
- if(h<0)
- {
- h=23;
- }
- }
- /////////////////////////////////////////////////////
- ////////////////////顯示函數(shù)/////////////////////////
- /////////////////////////////////////////////////////
- xianshi()//
- {
- P0=duanma[h/10];////小時(shí)顯示
- g1=0;
- delay();
- g1=1;
- P0=duanma[h%10];
- g2=0;
- delay();
- g2=1;
- if(add>25)
- {
- P0=duanma[min/10]+0x80;/////分顯示
- g3=0;
- delay();
- g3=1;
- P0=duanma[min%10]+0x80;
- g4=0;
- delay();
- g4=1;
- }
- else
- {
- P0=duanma[min/10];/////分顯示
- g3=0;
- delay();
- g3=1;
- P0=duanma[min%10];
- g4=0;
- delay();
- g4=1;
- }
- }
- //////////////////////////////////////////////////////
- ////////////////待機(jī)程序/////////////////////////////
- /////////////////////////////////////////////////////
- daiji()
- {
- powr=1;
- g4=g3=g2=g1=1;
- delay1();delay1();delay1();delay1();delay1();
- while(1)
- {
- delay1();delay1();
- if(chumo==1)
- {
- delay();
- if(chumo==1)
- {
- while(chumo==1);
- spek=0;
- delay1();
- spek=1;
- sum=0,s=59,min=0,h=0,add=0;//重新對(duì)初始變量賦值
- powr=0;
- break;
- }
- }
- }
- fanhui();//重頭開始
- }
- ////////////////////////////////////////////////////////
- //////////////////返回起始點(diǎn)//////////////////////////////
- /////////////////////////////////////////////////////
- fanhui() //開始標(biāo)號(hào)
- {
- while(1) //預(yù)備顯示
- {
- g1=g2=g3=g4=0; //顯示三條橫線(---)0xbf
- P0=0xbf;
- delay1();
- delay1();
- delay1();
- delay1();
- g1=g2=g3=g4=1;
- delay1();
- delay1();
- delay1();
- delay1();
- if(key1==0)
- {
- spek=0;
- delay1();
- if(key1==0)
- while(key1==0);
- spek=1;
- break;
- }
- if(chumo==1) ///////檢測(cè)有無(wú)關(guān)閉指令
- {
- delay1();delay1();delay1();delay1();
- if(chumo==1)
- {
- while(chumo==1);
- spek=0;
- delay1();
- spek=1;
- daiji();
- }
- }
- }
- }
- /////////////////////////////////////////////////////
- ////////////////////按鍵函數(shù)/////////////////////////
- /////////////////////////////////////////////////////
- anjian()
- {
- if(chumo==1)
- {
- delay1();delay1();
- if(chumo==1)
- {
- while(chumo==1);
- spek=0;
- delay1();
- spek=1;
- daiji();
- }
- }
- if(key1==0)
- {
- delay1();
- if(key1==0)
- {
- spek=0;
- delay1();
- spek=1;
- while(key1==0);
- while(1)
- {
- P0=duanma[h/10];////小時(shí)顯示
- g1=0;
- delay();
- g1=1;
- P0=duanma[h%10];
- g2=0;
- delay();
- g2=1;
- P0=duanma[min/10]+0x80;/////分顯示
- g3=0;
- delay();
- g3=1;
- P0=duanma[min%10]+0x80;
- g4=0;
- delay();
- g4=1;
- while(add>49)
- {
- g1=g2=g3=g4=1;
- }
- if(key2==0) //時(shí)調(diào)整加、、、、、、、、、
- {
- delay1();
- if(key2==0)
- {
- spek=0;
- delay1();
- spek=1;
- if(h==24)
- {
- h=0;
- }
- else
- h++;
- }
- }
- if(key3==0) //分調(diào)整加、、、、、、、、、
- {
- delay1();
- if(key3==0)
- {
- spek=0;
- delay1();
- spek=1;
- if(min==60)
- {
- min=0;
- }
- else
- min++;
- }
- }
- if(key1==0) //調(diào)試確定并退出調(diào)試狀態(tài)
- {
- delay();
- if(key1==0)
- {
- spek=0;
- delay1();
- spek=1;
- while(key1==0);
- break; //跳出本while語(yǔ)句,即本函數(shù)結(jié)束
- }
- }
- }
- }
- }
- }
- /////////////////////////////////////////////////////
- ////////////////////主函數(shù)///////////////////////////
- /////////////////////////////////////////////////////
- void main()
- {
- TMOD=0x01;
- TH0=(65535-20000)/255;
- TL0=(65535-20000)%255;
- EA=1;
- ET0=1;
- TR0=1;
- chumo=0;
- while(1)
- {
- if(chumo==1)
- {
- delay1();
- if(chumo==1)
- while(chumo==1);
- spek=0;
- delay1();
- spek=1;
- powr=0;
- break;
- }
- }
- fanhui(); //調(diào)用初始返回函數(shù)
- while(1) //執(zhí)行主程序
- {
- xianshi();
- anjian();
- if(h==0)
- {
- if(min==0)
- {
- if(add<25)
- {
- g4=g3=g2=g1=1;
- delay1();
- delay1();
- delay1();
- delay1();
- }
- if(s==0)
- {
- daiji();
- }
- }
- }
- }
- }
- /////////////////////////////////////////////////////
- ////////////////////秒表定時(shí)中斷服務(wù)函數(shù)/////////////
- /////////////////////////////////////////////////////
- dingshi()interrupt 1
- {
- TH0=(65535-20000)/255;
- TL0=(65535-20000)%255;
- add++;
- if(add==50)
- {
- add=0;
- s--;
- jishi();
- }
- }
復(fù)制代碼
|
-
-
觸摸臺(tái)燈.rar
2015-7-25 13:15 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
3.16 MB, 下載次數(shù): 339, 下載積分: 黑幣 -5
智能燈
評(píng)分
-
查看全部評(píng)分
|