<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 消費(fèi)電子 > 免電源的電話使用計(jì)時(shí)器

          免電源的電話使用計(jì)時(shí)器

          ——
          作者: 時(shí)間:2007-10-09 來(lái)源:21IC中國(guó)電子網(wǎng) 收藏

          前言: 

              在通訊溝通頻繁的今日,相信家家戶戶都有一臺(tái)以上的電話機(jī),您家必定發(fā)生過(guò)打完電話后未掛好而造成電話無(wú)法打進(jìn)的困擾吧?;蛘吣募胰嘶蛲禄蚺笥汛螂娫捯淮蚓痛蛄嗽S久又不自知吧。

            下面為您介紹一款DIY制作「免電源電話使用」供您避免上述現(xiàn)象之產(chǎn)生,總共才用了12個(gè)元件(單片機(jī)1個(gè),LED七字顯示數(shù)碼管2個(gè),電容3個(gè),電阻1個(gè),橋式整流子1個(gè),電感1個(gè),石英晶體1個(gè),穩(wěn)壓二極管1個(gè),按鍵1個(gè)),相信只需要20多元及1個(gè)休息日即可組裝完成做出一個(gè)前所未有的趣味電子產(chǎn)品了。

          特點(diǎn)說(shuō)明: 

          DIY制作基本上要有著三個(gè)特點(diǎn):

          一看就懂:指電路簡(jiǎn)單明了。

          一買就有:指電路容易取得。

          一做就成:指制作成功率高。

            當(dāng)您看完本篇文章之后一定會(huì)有種躍躍欲試的感覺,那么請(qǐng)跟著感覺走是不會(huì)錯(cuò)的。整個(gè)DIY制作雖然小小的,不過(guò)特點(diǎn)倒是挺多項(xiàng)。 

            免用外部電源,整個(gè)DIY電子產(chǎn)品是利用電話線電壓來(lái)工作的,故可免除許多煩人的事(指怕停電,浪費(fèi)電,體積大,成本高,配線難),在使用上沒有任何不適的感覺,也不須擔(dān)心電信局測(cè)試。 

            對(duì)通話品質(zhì)無(wú)影響,所謂的無(wú)影響其實(shí)有著二個(gè)含意,一為無(wú)雜訊干擾,一為通話音量不增減。大家都知道多位數(shù)的LED七段顯示得用掃描方式,如此一來(lái)會(huì)有脈沖電流雜訊產(chǎn)生,這點(diǎn)對(duì)聽覺靈敏的耳朵而言是不可忽視的。另外整個(gè)電路的AC阻抗得非常的低,以免除聲音的衰減。針對(duì)這二個(gè)要求,這里介紹一個(gè)簡(jiǎn)單又實(shí)用的電源取得電路供您參考。 

            LED七段顯示,非常適合夜晚來(lái)使用,同時(shí)由于亮度很夠,即使在白天也是清清楚楚,這點(diǎn)就是LCD顯示望塵莫及的。 

            LED顯示不但能做使用時(shí)間的顯示之外,也能表示電話線正被使用中,故可當(dāng)未掛好話筒之提醒指示之用。 

            LED顯示采用最省元件的互補(bǔ)式,即一個(gè)LED七段顯示器為共陰,另一為共陽(yáng),如此即可直接用單片機(jī)四個(gè)I/O直接推動(dòng)而得到最高亮度了。 

            利用OTP型單片機(jī)EM78P156來(lái)做核心控制,整個(gè)程序小小的,若您想更改或增加功能都是非常容易的。 

          功能說(shuō)明:

            當(dāng)您的電話使用后沒有放置好,或者是打電話聊長(zhǎng)天的時(shí)候給您顯示通話使用時(shí)間給予心理壓力?;旧峡伤闶怯刑嵝阎甘炯帮@示二大功能。 

          提醒指示: 

            只要LED七段顯示器點(diǎn)亮則表示電話線正被使用,此時(shí)不是您正在打電話就是話筒未被放置好。

          顯示: 

            只要話筒一被拿起,電話回路被建立后單片機(jī)開始做計(jì)時(shí)及顯示動(dòng)作,以分為單位,最大可顯示99分,之后又從0開始。若您要有精準(zhǔn)的計(jì)時(shí)時(shí)可在電話通之后按CLR鍵,此時(shí)單片機(jī)清除計(jì)數(shù)從新開始計(jì)數(shù)顯示。

          線路圖: 

          圖1線路說(shuō)明:

            整個(gè)線路說(shuō)實(shí)在的,太小了,不過(guò)增一分則肥,減一分則瘦。還是老老實(shí)實(shí)的交待清楚吧,那么您要購(gòu)買或更換電路時(shí)才不會(huì)走冤枉路。 
          直接從電話線路取得工作電源,見圖2 :

            為一簡(jiǎn)單的檢波器π型濾波器及基納穩(wěn)壓器所構(gòu)成,經(jīng)過(guò)這5個(gè)元件的打點(diǎn)而得到從電話端看到的是一個(gè)AC低阻抗,同時(shí)隔離了單片機(jī)掃描LED七段顯示器所衍生的雜音。另外5V的穩(wěn)壓二極管更提供了很穩(wěn)定的電源供電路使用。有二個(gè)地方需注意的是5V穩(wěn)壓二極管得選購(gòu)5W以上的比較不會(huì)過(guò)熱,同時(shí)電感得選購(gòu)直流內(nèi)阻低的,愈低愈不會(huì)發(fā)熱。

            LED七段顯示器采用一共陰極,一共陽(yáng)極的,故顏色及亮度最好選相近的。

            當(dāng)PORT5輸出為HIGH時(shí),共陽(yáng)極的LED七段顯示器被選到,此時(shí)PORT6輸出為L(zhǎng)OW時(shí)LED被點(diǎn)亮,反之LED不會(huì)亮。當(dāng)PORT5輸出為L(zhǎng)OW時(shí),共陽(yáng)極的LED七段顯示器被選到,此時(shí)PORT6輸出為HIGH時(shí)LED被點(diǎn)亮,反之LED不會(huì)亮。之所以要四個(gè)I/O都并聯(lián)在一起是要保證有50mA的輸出顯示電流,不是四個(gè)并聯(lián)使用的話則顯示亮度會(huì)打折扣。

          {{分頁(yè)}}

          單片機(jī)部份,圖4 

            選用 臺(tái)灣EMC 公司的EM78P156 OTP或8位單片機(jī),不但指令少,程序撰寫容易外,所需外部元件也是精簡(jiǎn)得很,我們不妨看看只需一個(gè)32768Hz的石英晶體及一個(gè)助振電容就行了,另外的1K電阻是關(guān)機(jī)泄放電流用的,可避免重置失效,而CLR按鍵是用來(lái)清除顯示時(shí)間的。若您不再乎那撥號(hào)時(shí)間的誤差則可以不用此元件的。

          程序列:

          ; FILE NAME:T_CARE0.DT 
          ; DATE :1999,5,5 
          ; BY :HWANG JYN_GUO 
          ; CIRCUIT :T_CARE0.321 
          ;
          ; FUNCTION DESCRIPTION: 
          ; USING TCC TO GET 1 SEC INTERRUPT 
          ; 32768/(2*64*256)= 1 SEC 
          ; CRYSTAL MODE 32768 Hz 
          ; 2 CYCLE AND 2 CLOCK MODE 

          PC == 02
          RF == 03 ;STATUS
          FZ == 02 ;FLAG OF ZERO
          FC == 00 ;FLAG OF CARRY
          P5 == 0X05 ;PORT 5
          P6 == 0X06 ;PORT 6
          DL == 0X10 ;DELAY LOOP
          MIN == 0X11 ;MINUTE
          SEC == 0X12 ;SECOND
          DD == 0X13 ;DISPLAY DIGIT
          DDH == 0X14 ;DISPLAY DIGIT HIGH
          AB == 0X15 ;A BACK_UP
          RFB == 0X16 ;RF BACK_UP 
          ORG 0
          0000 JMP INIT ;PROGRAM START
          ORG 8
          ;TCC INTERRUPT---------------------------------------------
          TCCI:
          0008 MOV AB,A ;AB <- A
          0009 SWAP AB ;AB <- BA
          000A SWAPA RF
          000B MOV RFB,A ;RFB<- FR
          000C INC SEC
          CHECK:
          000D MOV A,SEC
          000E SUB A,@59 ;59-SEC=A
          000F JBC RF,FC
          0010 JMP C_MIN
          0011 CLR SEC
          0012 INC MIN
          C_MIN:
          0013 MOV A,MIN
          0014 SUB A,@99 ;99-MIN=A
          0015 JBS RF,FC
          0016 CLR MIN
          TCCE:
          0017 SWAPA RFB
          0018 MOV RF,A ;RF<- RFB
          0019 SWAPA AB ;A <- BA
          001A BC 0X0F,0 ;CLEAR TCC_INT
          001B RETI
          ;TABLE 7 SEGEMENT------------------------------------------------------
          T7:
          001C ADD PC,A ; GFE DCBA
          001D RETL @0B01000000 ;0 0100 0000
          001E RETL @0B01111001 ;1 0111 1001
          001F RETL @0B00100100 ;2 0010 0100
          0020 RETL @0B00110000 ;3 0011 0000
          0021 RETL @0B00011001 ;4 0001 1001
          0022 RETL @0B00010010 ;5 0001 0010
          0023 RETL @0B00000010 ;6 0000 0010
          0024 RETL @0B01011000 ;7 0101 1000
          0025 RETL @0B00000000 ;8 0000 0000
          0026 RETL @0B00010000 ;9 0001 0000
          ;DELAY ------------------------------------------------------------------------
          DELAY:
          0027 MOV P5,A
          0028 MOV A,@20
          0029 MOV DL,A 
          D_1:
          002A DJZ DL
          002B JMP D_1
          002C MOV A,@0XFF
          002D IOW P6
          002E RET
          ;INIT ------------------------------------------------------------------------------
          INIT:
          002F MOV A,@0X00
          0030 MOV MIN,A
          0031 MOV SEC,A
          0032 IOW 0X0E ;DISABLE WDT
          0033 IOW P5 ;PORT 5 OUTPUT
          0034 IOW P6 ;PORT 6 OUTPUT
          0035 MOV A,@0X01
          0036 IOW 0X0F ;ENABLE TCC_INT
          0037 MOV A,@0X05 ;1/64
          0038 CONTW
          0039 ENI
          ;SCAN ---------------------------------------------------------------------------
          SCAN:
          003A MOV A,MIN
          HTD:
          003B CLR DDH
          H_H:
          003C ADD A,@246 ;A=A-10
          003D JBS RF,FC
          003E JMP H_L
          003F INC DDH
          0040 JMP H_H 
          H_L:
          0041 ADD A,@10
          0042 CALL T7
          0043 IOW P6
          0044 MOV P6,A
          0045 MOV A,@255 ;DISPLAY DIGIT 0
          0046 CALL DELAY
          0047 MOV A,DDH
          0048 CALL T7
          0049 IOW P6
          004A XOR A,@0XFF
          004B MOV P6,A
          004C MOV A,@00 ;DISPLAY DIGIT 1
          004D CALL DELAY
          004E JMP SCAN 
          程序說(shuō)明:
          程序就像日常說(shuō)話一樣,只要能夠表達(dá)清楚意思,那么,愈短愈受人歡迎(當(dāng)然得在保證有正常功能的情況下而言)。此次DIY制作的軟件程序長(zhǎng)度僅有78個(gè)指令,夠短了吧,相信看懂也不難。整個(gè)程序可以分成5個(gè)段落來(lái)做說(shuō)明,寄存器使用說(shuō)明:
          DL ----- 子程序用寄存器
          MIN ----- 存放分鐘資料寄存器
          SEC ----- 存放秒鐘資料寄存器
          DD ----- 存放顯示位數(shù)資料寄存器
          DDH ----- 存放顯示資料寄存器
          AB ----- 存放ACC的副本
          RFB ----- 存放STATUS的副本 
          TCC中斷子程序: 
          從0000--001B行為每秒發(fā)生一次的TCC中斷子程序,其中0008--000B及0017--0019行為進(jìn)入及離開中斷子程序的ACC及STATUS保留動(dòng)作。其中000C為每進(jìn)入一次中斷子程序就將SEC這寄存器予以進(jìn)位。其中000D--0012為判斷SEC寄存器是否大于59,是則將MIN寄存器予以進(jìn)位并清除SEC寄存器。其中0013--0016為判斷MIN寄存器是否大于99,是則將MIN寄存器予以清除,其中001A為清除TCC中斷旗標(biāo)。
          LED字型轉(zhuǎn)換程序: 
          從001C--0026行存放了字型轉(zhuǎn)換表,可將0--9的數(shù)字轉(zhuǎn)成相對(duì)的LED七字顯示器的資料。
          顯示時(shí)間長(zhǎng)度延遲程序: 
          從0028--002B延遲程序,而0027及002C--002D為啟動(dòng)顯示及關(guān)掉顯示之指令。
          微控制器啟始設(shè)定程序: 
          從002F--0039行對(duì)微控制器內(nèi)部相關(guān)硬件做了必要性的設(shè)定動(dòng)作。值得特別一提的是0035--0039行對(duì)TCC中斷記數(shù)器予以設(shè)定成每秒中斷一次。計(jì)算式如下:
          系統(tǒng)時(shí)基/(2周期模式



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();