下載手機(jī)汽配人

求STC89c52單片機(jī)用倒計時控制繼電器開、合的C語言程序,晶振12.000

1. 有4個數(shù)碼管(共陽) 顯示千、百、十、個(秒)。 2. 開機(jī)時顯示00:00,通過4個按鍵(微動開關(guān))分別控制個、十、百、千各位0~9的顯示,實(shí)現(xiàn)對預(yù)定時間設(shè)定,按一下加一,0~9循環(huán)。 3. 時間設(shè)定后倒計時開始,待數(shù)碼管顯示0000時,繼電器斷開,下游斷電。 4.單片機(jī)晶振12.000。 5.數(shù)碼管:共陽數(shù)碼管,段位:P0.0~P0.7。控制極:P2.0~P2.3。 6.開關(guān):千位~~~個位是P1.0~~~P1.3。 7.繼電器:P3.0 從沒學(xué)過C語言,單片機(jī)也是覺得感興趣,剛剛開會學(xué)習(xí)的。 跪求,跪求,跪跪求哪位大神、高手、天才能幫我解決一下。感激涕零啊~~~
提問者:網(wǎng)友 2018-07-23
最佳回答
這是數(shù)字時鐘的C程序,如果要實(shí)現(xiàn)對繼電器的開關(guān)控制,就可以在主程序中加入對時間的控制。也就是說,在你定義的某個時間上,繼電器會實(shí)現(xiàn)開或者合的狀態(tài)!由于單片機(jī)對數(shù)碼管的控制引腳有別,程序還得自己加以修改。 #include //#include #define uchar unsigned char #define uint unsigned int uchar code table[]={ 0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xd8, 0x80,0x90};//數(shù)字顯示 sbit duan=P2^1;//段選定義 sbit wei=P2^2;//位選定義 sbit k1=P3^2;//選擇 秒/分/時 調(diào)試定義 sbit k2=P3^3;//增減調(diào)試定義 /*定義初始化變量*/ uchar miao=0; uchar fen=0; uchar shi=0; uchar mst=0;//標(biāo)準(zhǔn)化時間 uchar key=0; void display();//顯示子程序 void delay(uchar z); void time_pro(); void keyscan(); main() { mst=0; miao=0; TMOD=0x01;//time0為定時器,選擇方式1 TH0=(65535-50000)/256; TL0=(65535-50000)%256; EA=1; ET0=1; TR0=1; wei=1; P0=0x3f; wei=0; duan=1; P0=table[0]; duan=0; P1=0x55;//點(diǎn)亮流水燈 while(1) { display(); time_pro(); if(k1==0) keyscan(); //繼電器開合控制加在此處:時間可以根據(jù)自己的需求任意定義 //例如:if(shi==17&&fen==21&&miao==52) { jidianqi=0;//0就表示繼電器關(guān)閉 } if(shi==23&&fen==57&&miao==34) { jidianqi=1;//1就表示繼電器開啟 } } } /*顯示子程序*/ void display() { wei=1; P0=0x01; wei=0; P0=0xff;//清屏 duan=1; P0=table[miao%10];//顯示秒鐘的
回答者:網(wǎng)友
產(chǎn)品精選
搜索問答
還沒有汽配人賬號?立即注冊

我要提問

汽配限時折扣

本頁是網(wǎng)友提供的關(guān)于“求STC89c52單片機(jī)用倒計時控制繼電器開、合的C語言程序,晶振12.000”的解答,僅供您參考,汽配人網(wǎng)不保證該解答的準(zhǔn)確性。