日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
帶鬧鐘智能電子鐘
帶鬧鐘智能電子鐘
 更新時(shí)間:2009-7-9 16:50:05  點(diǎn)擊數(shù):0
【字體: 字體顏色
電路特點(diǎn) 以一片AT89C2051單片機(jī)為主體,其顯示數(shù)據(jù)從P3.0-P3.7口輸出,P1口輸出對(duì)應(yīng)的六位位選信號(hào)。電子鐘程序設(shè)計(jì)時(shí)使用了T0作為計(jì)時(shí),T1為調(diào)整時(shí)顯示用。只要對(duì)程序稍加更改,可以很容易的實(shí)現(xiàn)8路定時(shí)功能。 電子鐘只用一個(gè)輕觸式按鍵來完成所有的設(shè)置。為了使鬧鐘音量足夠大,采用了PNP型三極管8550來驅(qū)動(dòng)蜂鳴器,驅(qū)動(dòng)電阻用1K的,蜂鳴器為5V小型蜂鳴器。若用NPN來驅(qū)動(dòng)蜂鳴器音量要小一點(diǎn)。LED數(shù)碼管位驅(qū)動(dòng)用8850,電子鐘采用自制的3A開關(guān)電源供電。如圖1。供電效率高,可和7-24V的直流電源直接連接,電子鐘工作電流20MA左右。                圖1  LM2576做的3A電源 電子鐘功能 一、時(shí)間顯示:六位LED數(shù)碼管顯示時(shí)間,按24小時(shí)制分別顯示“時(shí)時(shí):分分:秒秒”,最小單位為秒。精確度5秒/月(與晶振有關(guān),可加電容調(diào)整)。 二.走時(shí)調(diào)整: 長按按鍵0。5秒鐘以上,可以進(jìn)入鬧鐘和時(shí)間設(shè)置狀態(tài),按“鬧鐘分”、“鬧鐘時(shí)”、“走時(shí)分”、“走時(shí)時(shí)”的順序進(jìn)行設(shè)置。 設(shè)置方法為: 1、  走時(shí)和鬧鐘調(diào)整: 走時(shí)狀態(tài),長按按鍵0。5秒鐘以上后松開按鍵,“鬧鐘分”以0。3秒的速度閃爍顯示,再次按下按鍵不要松開,“鬧鐘分”會(huì)快速的從00到59之間變化,從而達(dá)到快速設(shè)定時(shí)間的目的。當(dāng)顯示到需要的時(shí)間時(shí)松開按鍵,會(huì)自動(dòng)進(jìn)入到設(shè)置“鬧鐘時(shí)”的狀態(tài),可以同樣的方法設(shè)置“鬧鐘時(shí)”。當(dāng)松開按鍵后此時(shí)有兩種選擇,一是長按按鍵退出鬧鐘設(shè)置狀態(tài),返回到正常走時(shí);二是短按一下按鍵進(jìn)入繼續(xù)設(shè)置時(shí)間的狀態(tài)。 設(shè)置方法相同。 注意:為了對(duì)只要設(shè)置鬧鐘時(shí)不影響電子鐘的走時(shí)精確度,在設(shè)置鬧鐘的時(shí)候,秒鐘位走時(shí)不停止,正常顯示,但對(duì)鬧鐘設(shè)置無任何影響。在進(jìn)入走時(shí)設(shè)置后自動(dòng)把秒設(shè)置為00秒,以確保可以在設(shè)置后從00秒開始走時(shí),有利于提高我們調(diào)時(shí)的準(zhǔn)確性。 2、  鬧鐘開關(guān)設(shè)置:只要短按一下按鍵即可開啟或關(guān)閉鬧鐘。 走時(shí)狀態(tài),短按一下按鍵可以查詢鬧鐘時(shí)間,約顯示兩秒鐘后,自動(dòng)設(shè)置鬧鐘開關(guān)。其中00為鬧鐘關(guān)閉狀態(tài)、01為鬧鐘開啟狀態(tài)。設(shè)置完畢自動(dòng)退出。 注意:如果原來鬧鐘為開啟狀態(tài)則關(guān)閉鬧鐘,反之,開啟鬧鐘。第一次通電工作時(shí)默認(rèn)為鬧鐘開啟。 硬件電路實(shí)現(xiàn) 電路如圖2所示,因有秒鐘位,末設(shè)置秒點(diǎn)閃爍,如果要秒位可在VCC與數(shù)碼管的DP之間接一個(gè)1K電阻即可達(dá)到12:00顯示的效果。                                   圖2  電子鐘原理圖 電路所用的元件較少,根據(jù)實(shí)際情況可以調(diào)整R8的阻值來改變數(shù)碼管亮度。 本人所做的實(shí)物如圖3、圖4所示。圖3         實(shí)物圖圖4        實(shí)物圖源程序 源程序如下:      ORG       0000H              ;程序開始入口                   LJMP      START                   ORG       0003H              ;外中斷0中斷程序入口                   RETI                   ORG       000BH              ;定時(shí)器T0中斷程序入口                   LJMP      INTT0              ;跳至INTTO執(zhí)行           ORG       0013H              ;外中斷1中斷程序入口           RETI           ORG       001BH              ;定時(shí)器T1中斷程序入口           LJMP      INTT1           ORG       0023H              ;串行中斷程序入口地址                   RETI ;---------------主程序----------------------;              START:MOV     R0,#70H             ;70給R0,清70-7FH顯示內(nèi)存                    MOV     R7,#0FH          CLEARDISP:MOV     @R0,#00H            ;0給R0中的數(shù)為地址的內(nèi)存中存放(70H)                    INC     R0                    DJNZ    R7,CLEARDISP                    MOV     78H,#2              ;默認(rèn)時(shí)間為12:00,鬧鐘5:00                    MOV     79H,#1                    MOV     74H,#2              ;防止上電時(shí)數(shù)碼管顯示00小時(shí)                    MOV     75H,#1                    MOV     66H,#1              ;中斷退出時(shí)66H為1時(shí),分、時(shí)計(jì)時(shí)單元數(shù)據(jù)移入顯存標(biāo)志                    MOV     68H,#1              ;上電默認(rèn)鬧鐘開狀態(tài)                    MOV     7DH,#6              ;鬧鐘時(shí)十位                    MOV     7CH,#3                    MOV     69H,#0                    MOV     7AH,#0AH            ;放入"熄滅符"數(shù)據(jù)                    MOV     TMOD,#11H           ;設(shè)T0、T1為16位定時(shí)器                    MOV     TL0,#0B0H           ;50MS定時(shí)初值(T0計(jì)時(shí)用)                    MOV     TH0,#3CH                    SETB    EA                  ;總中斷開放                    SETB    ET0                 ;允許T0中斷                    SETB    TR0                 ;T0定時(shí)器開始計(jì)時(shí)                    MOV     R4,#14H             ;1秒定時(shí)用初值(50MS×20)            START1:LCALL   DISPLAY             ;顯示子程序                    LCALL   BEEP                ;鬧鐘查詢                    JNB      P1.7,SETTIME        ;P1.7口為0時(shí)轉(zhuǎn)時(shí)間調(diào)整程序                    JMP     START1              ;P1.7口為1時(shí)跳回START1 ;-----------------------時(shí)間鬧鐘調(diào)整系統(tǒng)--------------------------;              NFLAG:MOV          A,68H           ;設(shè)置鬧鐘開關(guān)狀態(tài)                    CJNE         A,#1,BEE68                    MOV          68H,#0                    JMP          E6              BEE68:MOV          68H,#1                 E6:MOV          66H,#8          ;中斷退出66H不為1時(shí)分、時(shí)計(jì)時(shí)單元數(shù)據(jù)移入顯存標(biāo)志                    MOV          72H,7BH                    MOV          73H,7CH                    MOV          74H,7DH                    MOV          75H,7EH                    LCALL        DDL                    LCALL        DDL                    MOV          72H,68H                    MOV          73H,69H                    MOV          74H,7AH                    MOV          75H,7AH                    LCALL        DDL                    LCALL        DDL                    MOV          66H,#1                    LJMP       START1            SETTIME:LCALL        DDL                    JB             P1.7,NFLAG     ;鍵按下時(shí)間小于1秒,設(shè)置鬧鐘開關(guān)狀態(tài)并查看鬧鐘時(shí)間,不關(guān)走時(shí),確保準(zhǔn)確,大于1秒調(diào)時(shí)                    MOV          TL1,#0B0H      ;T1閃爍定時(shí)初值                    MOV          TH1,#3CH                    MOV          R2,#06H        ;進(jìn)入調(diào)時(shí)狀態(tài),賦閃爍定時(shí)初值                    MOV          66H,#8         ;調(diào)鬧鐘時(shí)保持走時(shí),關(guān)閉時(shí)鐘顯示數(shù)據(jù)                    SETB         ET1            ;允許T1中斷                    SETB         TR1            ;開啟定時(shí)器T1               SET1:LCALL        DISPLAY        ;調(diào)用顯示,防止鍵按下無顯示                    JNB          P1.7,SET1      ;P1.7口為0等待鍵釋放                    MOV       R5,#00H        ;清設(shè)置類型閃爍標(biāo)志              SETN1:INC         R5             ;鬧鐘分調(diào)整               SET5:LCALL        DISPLAY                    JB             P1.7,SET5             SEETN1:LCALL        DDL            ;有鍵按下大于1秒分時(shí)間連續(xù)加(0.5秒加1),小于1秒轉(zhuǎn)調(diào)時(shí)狀態(tài)                    JB             P1.7,SET6      ;鍵釋放查詢,鍵釋放自動(dòng)轉(zhuǎn)調(diào)時(shí)                    MOV               R0,#7CH                    LCALL      ADD1                    MOV               A,R3                    CLR          C                    CJNE        A,#60H,HHN1               HHN1:JC            SEETN1                    LCALL      CLR0                    JMP          SEETN1               SET6:INC         R5             ;鬧鐘時(shí)調(diào)整              SEET6:LCALL        DISPLAY                    JB          P1.7,SEET6            SEETNH1:LCALL        DDL                    JB             P1.7,SETF                    MOV          R0,#7EH                    LCALL        ADD1                    MOV          A,R3                    CLR          C                    CJNE        A,#24H,HOUU1              HOUU1:JC           SEETNH1                    LCALL      CLR0                     JMP       SEETNH1               SETF:LCALL        DISPLAY                    JB             P1.7,SETF                    LCALL        DDL                    JNB          P1.7,SETOUT     ;短按調(diào)時(shí),長按退出                    CLR          ET0                    CLR          TR0                    MOV       70H,#00H        ;設(shè)定后的時(shí)間從00秒開始走時(shí)                    MOV       71H,#00H                    INC         R5               SET3:LCALL        DISPLAY                    JB             P1.7,SET3              SETMM:LCALL        DDL                    JB             P1.7,SET4                    MOV               R0,#77H                    LCALL      ADD1                    MOV               A,R3                    CLR          C                    CJNE        A,#60H,MMH                MMH:JC          SETMM                    LCALL      CLR0                    AJMP         SETMM               SET4:INC          R5              SEET4:LCALL        DISPLAY                    JB          P1.7,SEET4              SETHH:LCALL        DDL                    JB             P1.7,SETOUT1                    MOV          R0,#79H                    LCALL        ADD1                    MOV          A,R3                    CLR          C                    CJNE        A,#24H,HOUU               HOUU:JC           SETHH                    LCALL      CLR0                    AJMP       SETHH            SETOUT1:SETB     ET0                    SETB       TR0             ;計(jì)時(shí)開始             SETOUT:MOV     R5,#00H         ;清設(shè)置類型閃爍標(biāo)志                    CLR        TR1             ;關(guān)閉T1                    CLR        ET1             ;關(guān)T1中斷                    MOV          66H,#1            SETOUT2:LCALL        DISPLAY                    JNB          P1.7,SETOUT2                    LJMP        START1 ;--------------------------延時(shí)1秒鐘-----------------------;                DDL:MOV          18H,#36               DDL0:MOV          17H,#239               DDL1:LCALL        DISPLAY                    DJNZ         17H,DDL1                    DJNZ         18H,DDL0                    RET ;----------------------------T0中斷程序------------------------;             INTT0: PUSH  ACC                   ;打包                    PUSH  PSW                    CLR   ET0                    CLR   TR0                    MOV   A,#0B7H                    ADD   A,TL0                    MOV   TL0,A                    MOV   A,#3CH                    ADDC  A,TH0                    MOV   TH0,A                    SETB  TR0                    DJNZ  R4, OUTT0             ;20次中斷未到中斷退出            ADDSS:  MOV R4,#14H               ;20次中斷到(1秒)重賦初值                    MOV         R0,#71H               ;指向秒計(jì)時(shí)單元(70-71H)                    ACALL ADD1                  ;調(diào)用加1程序(加1秒操作)                    MOV   A,R3                  ;秒數(shù)據(jù)放入A(R3為2位十進(jìn)制數(shù)組合)                    CLR   C                     ;清進(jìn)位標(biāo)志                    CJNE  A,#60H,ADDMM            ADDMM:  JC         OUTT01                ;小于60秒退出                    ACALL CLR0                  ;等于或大于60秒清0                    MOV  R0,#77H               ;指向分計(jì)時(shí)單元(76H-77H)                    ACALL ADD1                    MOV         A,R3                    CLR   C                    CJNE  A,#60H,ADDHH             ADDHH: JC     OUTT0                    ACALL CLR0                    MOV  R0,#79H               ;指向小時(shí)計(jì)時(shí)單元(78H-79H)                    ACALL ADD1                    MOV   A,R3                    CLR   C                    CJNE  A,#24H,HOUR              HOUR: JC    OUTT0                    ACALL CLR0             OUTT0: MOV   A,66H                 ;查詢標(biāo)志                    CJNE  A,#1,OUTT01                    MOV   72H,76H               ;中斷退出時(shí)將分、時(shí)計(jì)時(shí)單元數(shù)據(jù)移入對(duì)應(yīng)顯示單元                    MOV   73H,77H                    MOV   74H,78H                    MOV   75H,79H             OUTT01:POP  PSW                   ;出棧                    POP   ACC                    SETB  ET0                   ;開放T0                    RETI                        ;中斷返回 ;---------------------------加1程序--------------------------;              ADD1: MOV          A,@R0          ;取當(dāng)前計(jì)時(shí)單元數(shù)據(jù)到A                    DEC          R0             ;指向前一地址                    SWAP         A              ;A中數(shù)據(jù)高四位與低四位交換                    ORL           A,@R0          ;前一地址中數(shù)據(jù)放入A中低四位                    ADD           A,#01H         ;A加1操作                    DA             A              ;十進(jìn)制調(diào)整                    MOV          R3,A           ;移入R3寄存器                    ANL           A,#0FH         ;高四位變0                    MOV                @R0,A          ;放回前一地址單元                    MOV          A,R3           ;取回R3中暫存數(shù)據(jù)                    INC            R0             ;指向當(dāng)前地址單元                    SWAP         A              ;A中數(shù)據(jù)高四位與低四位交換                    ANL           A,#0FH         ;高四位變0                    MOV          @R0,A          ;數(shù)據(jù)放入當(dāng)削地址單元中                    RET              CLR0: CLR          C                    CLR          A              ;清累加器                    MOV               @R0,A          ;清當(dāng)前地址單元                    DEC         R0             ;指向前一地址                    MOV               @R0,A          ;前一地址單元清0                    RET                         ;子程序返回 ;-------------------------調(diào)時(shí)閃爍程序----------------------; INTT1:          PUSH    ACC                 PUSH    PSW                 MOV     TL1,#0B0H                 MOV     TH1,#3CH                 DJNZ    R2,INTT1OUT                ;0.3秒未到退出中斷(50MS中斷6次)                 MOV     R2,#06H               ;重裝0.3秒定時(shí)用初值                 CPL     02H                    ;0.3秒定時(shí)到對(duì)閃爍標(biāo)志取反                 JB      02H,FLASH1             ;02H位為1時(shí)顯示單元"熄滅"                 MOV     A,R5                 CJNE    A,#01H,NL                 JMP     NNN1              NL:CJNE    A,#02H,NL1                 LJMP    NNN1             NL1:CJNE    A,#03H,NL2                 LJMP    NLL             NL2:CJNE    A,#04H,INTT1OUT                 LJMP    NLL             NLL:MOV     72H,76H                 MOV     73H,77H                 MOV     74H,78H                 MOV     75H,79H                 AJMP    INTT1OUT            NNN1:MOV     72H,7BH                 MOV     73H,7CH                 MOV     74H,7DH                 MOV     75H,7EH        INTT1OUT:POP     PSW                       ;恢復(fù)現(xiàn)場                 POP     ACC                 RETI                         ;中斷退出          FLASH1:MOV     A,R5                 CJNE    A,#01H,ML                 LJMP    MNN1              ML:CJNE    A,#02H,ML1                 LJMP    MNN2             ML1:CJNE    A,#03H,MN                 LJMP    MLL              MN:CJNE    A,#04H,INTT1OUT                 LJMP    MHL             MLL:MOV     72H,7AH                 MOV     73H,7AH               ;顯示單元(72-73H),將不顯示分?jǐn)?shù)據(jù)                 MOV     74H,78H                 MOV     75H,79H                 AJMP    INTT1OUT             MHL:MOV     72H,76H                 MOV     73H,77H                 MOV     74H,7AH               ;顯示單元(74-75H),小時(shí)數(shù)據(jù)將不顯示                 MOV     75H,7AH                 AJMP    INTT1OUT            MNN1:MOV     72H,7AH                 MOV     73H,7AH               ;顯示單元(72-73H),將不顯示鬧鐘分?jǐn)?shù)據(jù)                 MOV     74H,7DH                 MOV     75H,7EH                 AJMP    INTT1OUT            MNN2:MOV     72H,7BH                 MOV     73H,7CH                 MOV     74H,7AH                 MOV     75H,7AH               ;顯示單元(74-75H),鬧鐘小時(shí)數(shù)據(jù)將不顯示                 AJMP    INTT1OUT ;-------------------------顯示-------------------------------;  DISPLAY:MOV    DPTR,#DISDATA          MOV    A,70H          MOVC   A,@A+DPTR          MOV    P3,A          CLR    P1.0          NOP          NOP          NOP          SETB   P1.0          MOV    A,71H          MOVC   A,@A+DPTR          MOV    P3,A          CLR    P1.1          NOP          NOP          NOP          SETB   P1.1          MOV    A,72H          MOVC   A,@A+DPTR          MOV    P3,A          CLR    P1.2          NOP          NOP          NOP          SETB   P1.2          MOV    A,73H          MOVC   A,@A+DPTR          MOV    P3,A          CLR    P1.3          NOP          NOP          NOP          SETB   P1.3          MOV    A,74H          MOVC   A,@A+DPTR          MOV    P3,A          CLR    P1.4          NOP          NOP          NOP          SETB   P1.4          MOV    A,75H          MOVC   A,@A+DPTR          MOV    P3,A          CLR    P1.5          NOP          NOP          NOP          SETB   P1.5          RET     BEEP:MOV   A,68H           ;查詢標(biāo)志          CJNE  A,#1,BEERE          MOV   A,78H           ;查詢鬧鐘時(shí)個(gè)位          CJNE  A,7DH,BEERE          MOV   A,79H           ;查詢鬧鐘時(shí)十位          CJNE  A,7EH,BEERE          MOV   A,76H           ;查詢鬧鐘分個(gè)位          CJNE  A,7BH,BEERE          MOV   A,77H           ;查詢鬧鐘分十位          CJNE  A,7CH,BEERE       BB:CLR   P1.6          LCALL DDL          SETB  P1.6          LCALL DDL          JNB   P1.7,BEERR    BEERE:RET    BEERR:SETB  P1.6          MOV   68H,#0          LCALL DISPLAY          JNB   P1.7,BEERR          JMP   BEERE  DISDATA:DB 0C0H,0F9H,64H,70H,59H,52H,42H,0F8H,40H,50H,0FFH   ;0123456789空白        END
  • 上一篇: 電話回?fù)芊⻊?wù)告知裝置
  • 下一篇: 基于AT89S52單片機(jī)的毫歐表電路設(shè)計(jì)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1