Ⅰ 基於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分時,小時++,分清零...外加一個顯示或串口功能..就完成了一個簡單的電子時鍾