導航:首頁 > 操作系統 > 基於51單片機的電子鍾

基於51單片機的電子鍾

發布時間:2022-06-10 18:50:24

Ⅰ 基於51單片機的電子時鍾請求幫忙

電子鍾可以用proteus模擬實現,8位一體共陰數碼管顯示時分秒,再用3個按鍵調節時間。模擬圖如下。

Ⅱ 基於51單片機的旋轉LED數字電子鍾

這可是要做出實物才能實現的功能。要做實物,還要遙控,這製作很有難度。可不是就憑你這幾句就能做到的,就算給你電路圖,可實際製作過程,需要什麼元件和工具清楚嗎?做不到,就等於一堆空話。

Ⅲ 51單片機做數字電子鍾

這么復雜的東西給這么少分 暈死了 你也太小氣了吧,分多的話還可能幫你動動腦

Ⅳ 51單片機實現電子時鍾

可以用中斷或者專門給調試這個子程序,調試時執行子程序,調試完跳出

Ⅳ 51單片機電子時鍾

才1毛錢

Ⅵ 用51單片機設計一個電子鍾

巧了,國親無聊做了一個玩玩,給你看看把,其實電子鍾挺簡單的,下面是程序:

#include<reg52.h>

#defineucharunsignedchar

#defineuintunsignedint

sbitch=P3^2;

sbitkey=P3^5;

sbitkey1=P3^4;

uchart0,numn,numy,numr,nums,numf,numm,sw,w,q,b,s,g,sw1,w1,q1,b1,s1,g1,rq,temp,x;

uintu;

voidinit();

voiddisplay(uchar,uchar,uchar,uchar,uchar,uchar);

voiddelay(uintz)

{

uintx,y;

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

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

}

voidmain()

{

init();

while(1)

{

if(rq==1)

{

if(rq==1)

display(sw,w,q,b,s,g);

}

elseif(rq==2)

{

if(rq==2)

display(sw1,w1,q1,b1,s1,g1);

}

elseif(rq==3)

{

if(rq==3)

display(w,w,w,w,w,w);

}

elseif(rq==4)

{

uchari;

temp=0x01;

for(i=0;i<8;i++)

{

P1=~temp;

delay(100);

temp<<=1;

}

temp=0x80;

for(i=0;i<8;i++)

{

P1=~temp;

delay(100);

temp>>=1;

}

temp=0x01;

for(i=0;i<8;i++)

{

P1=temp;

delay(100);

temp<<=1;

}

temp=0x7F;

for(i=0;i<8;i++)

{

P1=temp;

delay(100);

temp>>=1;

}

}

else

rq=1;

}

}

voidinit()

{

rq=1;

x=1;

nums=22;

numf=0;

numm=0;

numn=9;

numy=10;

numr=15;

TMOD=0x11;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

IT0=1;

IT0=2;

EA=1;

EX0=1;

EX1=1;

ET0=1;

TR0=1;

ET1=1;//IE=0x82//CPU開中斷,CT0開中斷

}

voidtimer0()interrupt1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

t0++;

if(key==0)

{

delay(50);

if(key==0)

{

x++;

while(key==0);

}

}

if(x==2&rq==1)

{

//P0=0xf3;

if(key1==0)

{

numf++;

while(key1==0);

}

}

elseif(x==3&rq==1)

{

//P0=0xfc;

if(key1==0)

{

nums++;

while(key1==0);

}

}

elseif(x==2&rq==2)

{

//P0=0xcf;

if(key1==0)

{

numr++;

while(key1==0);

}

}

elseif(x==3&rq==2)

{

//P0=0xf3;

if(key1==0)

{

numy++;

while(key1==0);

}

}

elseif(x==4&rq==2)

{

//P0=0xfc;

if(key1==0)

{

numn++;

while(key1==0);

}

}

else

{

x=1;

}

if(t0==20)

{

t0=0;

numm++;

}

if(numm==60)

{

numm=0;

numf++;

}

if(numf==60)

{

for(u=500;u>0;u--)

{

bell=0;

delay(1);

bell=1;

delay(1);

}

numf=0;

nums++;

}

if(nums==24)

{

nums=0;

numr++;

}

if(numr==30)

{

numr=0;

numy++;

}

if(numy==12)

{

numy=0;

numn++;

}

if(numn==100)

{

numn=0;

}

g=numm%10;

s=numm/10;

b=numf%10;

q=numf/10;

w=nums%10;

sw=nums/10;

g1=numr%10;

s1=numr/10;

b1=numy%10;

q1=numy/10;

w1=numn%10;

sw1=numn/10;

}

voidexert0()interrupt0

{

delay(50);

rq++;

while(ch==0);

}

voidt0int()interrupt3

{

TR1=0;

bell=!bell;

TH1=timer0h;

TL1=timer0l;

TR1=1;

}

voidexert1()interrupt2

{

rq=100;

}

voiddisplay(ucharsw,ucharw,ucharq,ucharb,uchars,ucharg)

{

P2=tab[sw];

P0=tabwe[0];

delay(5);

P0=0xff;

P2=tab[w];

P0=tabwe[1];

delay(5);

P0=0xff;

P2=tab[q];

P0=tabwe[2];

delay(5);

P0=0xff;

P2=tab[b];

P0=tabwe[3];

delay(5);

P0=0xff;

P2=tab[s];

P0=tabwe[4];

delay(5);

P0=0xff;

P2=tab[g];

P0=tabwe[5];

delay(5);

P0=0xff;

}

下面這個是電路圖,圖我沒有畫啊,不過我用模擬去做,應該跟電路圖差不多了,你可以參考下,可以實現流水燈,鬧鈴,日期,時間,等功能,上面給你的是按照你的要求,另外我懶得改了所以多了個功能就是可以看日期,你看上面的程序,第一個按鈕ch,按一下查看日期,再按一下查看溫度(被刪了,隨機現在是隨機顯示一個數字),再按一下是流水燈,再按一下又回到時間,另外兩個鍵key/key1;按key是選擇鎖定分還是時,如果你當前顯示的是日期的話就是順序鎖定日,月,年,按key1調整,圖上顯示的是22點00分09秒,就這樣了

設計方案的話..........呵呵,AT89S52+6個數碼管+11.0592晶振+2個30P電容+3個按鈕+1個10UF電容如圖連接,你自己去寫方案把,分數給那麼少,就只幫你那麼多了

Ⅶ 51單片機設計電子時鍾。

#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit key1=P3^0;
sbit key2=P3^1;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar shi,fen,miao,num1 ,num2,num3,num4,num5,num6,num7;
void delayms (uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void miaodisplay (uchar num6,uchar num5)
{
P2=0x00;
P2=0x80;
P1=table[num6];
delayms(5);
P2=0x00;
P2=0x40;
P1=table[num5];
delayms(5);
}
void fendisplay(uchar num4,uchar num3)
{
P2=0x00;
P2=0x10;
P1=table[num4];
delayms(5);
P2=0x00;
P2=0x08;
P1=table[num3];
delayms(5);
}
void shidisplay(uchar num2,uchar num1)
{
P2=0x00;
P2=0x02;
P1=table[num2];
delayms(5);
P2=0x00;
P2=0x01;
P1=table[num1];
delayms(5);
}

void main ()
{
TMOD=0x01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
EA=1;
ET0=1;
TR0=1;
shi=0;
fen=0;
miao=0;
num7=0;
while (1)
{
num1=shi/10;
num2=shi%10;
num3=fen/10;
num4=fen%10;
num5=miao/10;
num6=miao%10;
miaodisplay(num6,num5);
P2=0x00;
P2=0x20;
P1=0xbf;
delayms(5);
fendisplay(num4,num3);
P2=0x00;
P2=0x04;
P1=0xbf;
delayms(5);
shidisplay(num2,num1);

}
}
void T0_time () interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
num7++;
if(num7==20)
{
num7=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
shi++;
if(shi==24)
{
shi=0;
fen=0;
miao=0;
}
}
}
}
}

Ⅷ c51單片機做電子時鍾

主程序如下:
void main(void )//主程序
{
TMOD=0x01;// 定時器1工作方式一
ET0=1;
EA=1;
TH0=(65536-50000)/256;//定時50ms
TL0=(65536-50000)%256;
TR0=1;//啟動定時器
while(1)
{
display();

}
}

//中斷子程序
void Timer0(void) interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
if(a==20){ a=0;sec++;}
if(sec==60){ sec=0;min++;}
if(min==60){ min=0;hour++;}
if(hour==24){ hour=0;}
}

Ⅸ 基於51單片機的簡易電子時鍾

我剛給別人做了一個,與你的功能稍有差別。可以正計時,可以倒計時。

Ⅹ 51單片機做電子時鍾

使用單片機的定時器中斷可實現。例如定時器中斷方式2,8位自動初值重裝,初值設置為0,晶振為11.0592M的情況下,中斷3600次為1秒鍾..多做幾個變數,比如秒、分、小時等...60秒時,分++,秒清零...60分時,小時++,分清零...外加一個顯示或串口功能..就完成了一個簡單的電子時鍾

閱讀全文

與基於51單片機的電子鍾相關的資料

熱點內容
手機程序加密有什麼作用 瀏覽:178
求黑馬程序員python教程 瀏覽:528
androidmvvm優缺點 瀏覽:894
unix下編譯庫文件 瀏覽:633
程序員的u盤 瀏覽:237
android根據經緯度獲取城市 瀏覽:564
python使用解釋器還是編譯器 瀏覽:358
以下關於有加密演算法及密鑰描述 瀏覽:219
linuxgethostname 瀏覽:416
程序員多數有對象 瀏覽:131
單片機延時程序計算 瀏覽:444
編譯原理語法翻譯 瀏覽:504
pr編譯出錯渲染存在偏移 瀏覽:262
如何製作自家的app 瀏覽:199
推薦一個解壓軟體rar解壓幫手 瀏覽:210
wd文檔加密器 瀏覽:748
伺服器上傳壓縮包一般是什麼格式 瀏覽:333
發送加密文件密碼幾位數 瀏覽:160
樹洞app怎麼樣 瀏覽:175
vivo編譯時間可以改么 瀏覽:150