家用定時供電插座的設(shè)計_第1頁
家用定時供電插座的設(shè)計_第2頁
家用定時供電插座的設(shè)計_第3頁
家用定時供電插座的設(shè)計_第4頁
家用定時供電插座的設(shè)計_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、家用定時供電插座的設(shè)計一、 設(shè)計要求本次設(shè)計要求實現(xiàn)一個具有定時、按鍵設(shè)置及控制、定時時間顯示等功能的定時開關(guān)插座,具體要求及指標如下: (2)具有定時時間顯示和時鐘顯示。 (3)可以利用按鍵調(diào)整顯示時間和定時時間。 (3)定時時間到繼電器上電,蜂鳴器響。二、設(shè)計說明本次設(shè)計時鐘電路,使用了AT89C52單片機芯片控制電路,單片機控制電路簡單且省去了很多復雜的線路,使得電路簡明易懂,使用鍵盤鍵上的按鍵來調(diào)整時鐘的分、秒,用蜂鳴器來進行定時提醒,同時使用C語言程序來控制整個時鐘顯示,使得編程變得更容易,這樣通過五個模塊:繼電器、鍵盤、芯片、蜂鳴器、LCD液晶顯示即可滿足設(shè)計要求。1 主電路主電路

2、主要就是芯片的運行,加載程序后,在外部時鐘的作用下,將按照程序運行,從而可以實現(xiàn)設(shè)計的要求,進行時鐘時間和定時時間的調(diào)整,并且能夠在到達定時時間后控制蜂鳴器發(fā)出聲響。 主電路2、顯示電路顯示電路即可以讓我們看到時間的調(diào)整和定時時間的調(diào)整,顯示調(diào)整后的時間。利用1602液晶顯示屏顯示時間,利用程序把1602芯片上對應的端口與單片機對應的I/O口進行連接,以便使時間能夠正確的在液晶屏上顯示。 1602芯片原理圖3、按鍵電路本設(shè)計中利用按鍵S9、S13、S17行時間的調(diào)整。其中S9為設(shè)定時間的按鍵,S13和S17為設(shè)定時間加和減的按鍵。蜂鳴器主要是到定時時間進行響鈴提請。 鍵盤電路原理圖蜂鳴器電路原

3、理圖4、繼電器電路 當電子時鐘走到和定時時間相同時,蜂鳴器響的同時繼電器也會吸合,以便使插座上電。 繼電器電路原理圖三、整體原理圖(見附圖)四、設(shè)計體會通過這次課程設(shè)計不僅使我鞏固了本課程所學的基本知識,還使我具有了撰寫科研報告的初步訓練能力,我相信這些能力在我以后的工作或者是再學習中一定會起到不小的作用,一切的辛苦和艱難都是值得的。在設(shè)計前應該對所要實現(xiàn)的功能有一定的了解,定下有大概的流程圖,把設(shè)計模塊化,寫程序時也應該一個模塊一個模塊的寫,這樣方便理解,也方便以后的檢查。在仿真和實物的過程中要了解所使用芯片的功能及引腳的排列方式,這樣焊接時比較方便。五、C語言程序#include<r

4、eg52.h>#define uchar unsigned char#define uint unsigned intuchar code table1="00:00:00"sbit dula=P26;sbit wela=P27;sbit lcden=P34 ;/位定義sbit lcdrw=P36;sbit lcdrs=P35;sbit s1=P30;sbit s2=P31;sbit s3=P32;sbit rd=P37;sbit beep=P23;/定義蜂鳴器 sbit replay=P06;定義繼電器uchar num,count,s1num;/顯示的位數(shù);響應中

5、斷數(shù);按鍵次數(shù);uint i;char shi,fen,miao,shi1,fen1,miao1;void delay(uint z)/延時程序 uint x,y; for(x=z;x>0;x-) for(y=110;y>0;y-);void write_com(uchar com)/控制指令 lcdrs=0; /低電平時選擇指令寄存器 lcdrw=0;/ 低電平時進行寫操作 delay(5); lcden=1; /E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令 P0=com; delay(5); lcden=0;void write_data(uchar date)

6、/數(shù)據(jù)指令 lcdrs=1; lcden=1; /均為高時是讀出數(shù)據(jù)的內(nèi)容 delay(5); P0=date; delay(5); lcden=0;void init()/初始化 dula=0; wela=0; lcdrw=0; lcden=0; delay(15); write_com(0x38);/設(shè)置為4位總線,單行顯示 delay(5); write_com(0x38); delay(5); write_com(0x38); write_com(0x38);/重復多次以確定可以正確設(shè)置 write_com(0x08);/無光標正常顯示 write_com(0x01);/清顯示 wri

7、te_com(0x06);/向右顯示 write_com(0x0c);/ 顯示開關(guān)控制。 write_com(0x80+1);/d7為高時,顯示數(shù)據(jù)存儲地址TMOD=0x11;/工作方式3 TH0=(65536-50000)/256;/定時時間為50ms TL0=(65536-50000)%256; EA=1;/開總中斷 ET0=1;/打開定時器 TR0=1;/啟動定時器 write_com(0x80+4);/秒的設(shè)定 for(num=0;num<8;num+) write_data(table1num); delay(20); write_com(0x80+0x40+4); for(n

8、um=0;num<8;num+) write_data(table1num); delay(20); void write_sfm(uchar add,uchar date)/調(diào)整時間 uchar shi,ge; shi=date/10; ge=date%10; write_com(0x80+0x40+add);/控制指令,0x40:字符發(fā)生器RAM地址設(shè)置進行加 write_data(0x30+shi);/數(shù)據(jù)指令write_data(0x30+ge);void write_shedingsfm(uchar add1,uchar date1)/設(shè)定定時時間 uchar shi1,ge1

9、; shi1=date1/10; ge1=date1%10; write_com(0x80+add1);/控制指令 write_data(0x30+shi1); write_data(0x30+ge1);void keyscan() rd=0; if(s1=0) delay(5); if(s1=0) s1num+; while(!s1);/s1按下 if(s1num=1)/按下次數(shù) TR0=0;/停止定時器工作 write_com(0x80+0x40+11);/調(diào)整時間設(shè)置,控制秒設(shè)定 write_com(0x0f); /光標顯示 if(s1num=2) write_com(0x80+0x40

10、+8);/控制分鐘設(shè)定 write_com(0x0f);/控制光標閃爍 if(s1num=3) write_com(0x80+0x40+5);/控制時設(shè)定 write_com(0x0f); if(s1num=4) TR0=1;/啟動定時器,定時時間的設(shè)定 write_com(0x80+11);/控制秒的設(shè)定 write_com(0x0f);/光標顯示 if(s1num=5) write_com(0x80+8);/定時分鐘的設(shè)定 write_com(0x0f); if(s1num=6) write_com(0x80+5);/定時時的顯示 write_com(0x0f); if(s1num=7)

11、s1num=0; / 按鍵次數(shù)清零 write_com(0x0c);/顯示此時為無光標狀態(tài) if(s1num!=0)/有按鍵時 if(s2=0) delay(5); if(s2=0) while (!s2); if(s1num=1) miao+; if(miao=60) miao=0; write_sfm(10,miao);/第10位進行秒的設(shè)定 write_com(0x80+0x40+11);/控制秒的設(shè)定 if(s1num=2) fen+; if(fen=60) fen=0; write_sfm(7,fen); write_com(0x80+0x40+8); if(s1num=3) shi

12、+; if(shi=24) shi=0; write_sfm(4,shi); write_com(0x80+0x40+5); if(s1num=4) TR0=1;/定時器啟動 miao1+; if(miao1=60) miao1=0; write_shedingsfm(10,miao1); write_com(0x80+11); if(s1num=5) fen1+; if(fen1=60) fen1=0; write_shedingsfm(7,fen1); write_com(0x80+8); if(s1num=6) shi1+; if(shi1=24) shi1=0; write_shedi

13、ngsfm(4,shi1); write_com(0x80+5); if(s3=0) delay(5); if(s3=0) while (!s3); if(s1num=1) miao-; if(miao=-1) miao=59; write_sfm(10,miao); write_com(0x80+0x40+11); if(s1num=2) fen-; if(fen=-1) fen=59; write_sfm(7,fen); write_com(0x80+0x40+8); if(s1num=3) shi-; if(shi=-1) shi=23; write_sfm(4,shi); write_

14、com(0x80+0x40+5); if(s1num=4) TR0=1; miao1-; if(miao1=-1) miao1=59; write_shedingsfm(10,miao1); write_com(0x80+11); if(s1num=5) fen1-; if(fen1=-1) fen1=59; write_shedingsfm(7,fen1); write_com(0x80+8); if(s1num=6) shi1-; if(shi1=-1) shi1=23; write_shedingsfm(4,shi1); write_com(0x80+5); void main()/主函數(shù) init();/初始化函數(shù) while(1) keyscan();/鍵盤掃描 if(count=20)/響應中斷20次,時間1s count=0;/清零 miao+;/秒加1 if(miao=60)/60秒時分加1 miao=0; fen+; if(fen=60)/60分時時加1 fen=0; shi+; if(shi=24)/24時時時全為0,從00:00:00開始計時 shi=0; write_sfm(4,shi);/修改時 write_sfm(7,fen);/修改分 write_sfm(10,m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論