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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)定時(shí)計(jì)數(shù)器的電路設(shè)計(jì)

          單片機(jī)定時(shí)計(jì)數(shù)器的電路設(shè)計(jì)

          作者: 時(shí)間:2012-10-14 來(lái)源:網(wǎng)絡(luò) 收藏

          如果你有一個(gè)器,在你設(shè)定的時(shí)間到達(dá)時(shí)提醒你,你就再也不用擔(dān)心忘記了煤氣灶上煮的東西,使東西煮糊了或者水燒干了;午睡睡過(guò)了頭了。本文介紹一個(gè)用AT89C205l制作的倒計(jì)數(shù)器,可在1~99分鐘內(nèi)設(shè)置時(shí)間,時(shí)間到達(dá)時(shí)會(huì)用嘟、嘟的報(bào)警聲提醒你,在定時(shí)過(guò)程中用數(shù)碼管顯示剩余的時(shí)間。

          本文引用地址:http://www.ex-cimer.com/article/170780.htm

          電路工作原理:

          倒計(jì)數(shù)定時(shí)器電路見圖.電路由電路、數(shù)碼顯示電路和報(bào)警電路等部分組成。

          AT89C2051、X1、R1、C1等組成電路,Rl、C1組成單片機(jī)的復(fù)位電路,接通電源的瞬間,由于電源電壓通過(guò)對(duì)C1的充電過(guò)程,單片機(jī)AT89C2051的復(fù)位端1腳獲得一個(gè)高電平復(fù)位脈沖,使得單片機(jī)進(jìn)入初始狀態(tài)。

          數(shù)碼管DSl、DS2、三極管VT2、VT3、電阻R3~R11等組成數(shù)碼顯示電路,兩個(gè)數(shù)碼管分別顯示分和十分。由于每個(gè)數(shù)碼管有七個(gè)筆劃段A-G顯示單元(小數(shù)點(diǎn)DP在這里沒(méi)有使用),按常規(guī)的驅(qū)動(dòng)方法要7×2=14條。I/O線,對(duì)于AT89C2051來(lái)說(shuō)顯然不夠,因此這里采用動(dòng)態(tài)掃描顯示的方式來(lái)解決這一問(wèn)題,只需要7+2=9條I/O線。動(dòng)態(tài)掃描顯示是把兩個(gè)數(shù)碼管的七個(gè)筆劃段A~G的同名端連在一起,而每一個(gè)數(shù)碼管的公共端COM是各自獨(dú)立地受I/0線控制,AT89C2051向字形輸出口送出字形碼時(shí),所有數(shù)碼管接收到相同的字形碼,但是究竟哪一位顯示,則取決于COM端,而COM端是由P3.5和P3.7口控制的,P3.5和P3.7口采用分時(shí)的方法,通過(guò)VT2、VT3輪流控制兩個(gè)數(shù)碼管的COM端,使兩個(gè)數(shù)碼管輪流點(diǎn)亮。由于AT89C2051的P1口能灌入較大的電流,所以這里采用了共陽(yáng)的數(shù)碼管。

          在輪流點(diǎn)亮掃描過(guò)程中,每位數(shù)碼管點(diǎn)亮?xí)r間是極短的,由于人的視覺(jué)暫留現(xiàn)象,盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。

          發(fā)光二極管VDl作工作狀態(tài)指示,在定時(shí)期間其閃爍顯示,其余時(shí)間則不顯示。VTl、R2、sPl等組成報(bào)警電路,定時(shí)結(jié)束時(shí)發(fā)出報(bào)警聲。

          按鈕s1、s2為定時(shí)時(shí)間設(shè)定按鈕,s1設(shè)定分位,s2設(shè)定十分位,分位和十分位分別進(jìn)行設(shè)置,按動(dòng)相應(yīng)的按鈕,對(duì)應(yīng)的數(shù)碼管顯示的數(shù)字即會(huì)隨之改變。 按鈕s3為定時(shí)開始啟動(dòng)按鈕,設(shè)定好定時(shí)時(shí)間后按一下s3即啟動(dòng)定時(shí)器進(jìn)人倒計(jì)時(shí),定時(shí)時(shí)問(wèn)到達(dá)后發(fā)出報(bào)警聲,同時(shí)數(shù)碼管顯示時(shí)間為0HD,報(bào)警和顯示各占0.25秒交替進(jìn)行,持續(xù)時(shí)間為60秒。如果要提前結(jié)束報(bào)警只要按一下s3即可,結(jié)束報(bào)警后電路回到初始狀態(tài),這時(shí)顯示的定時(shí)時(shí)間為上一次設(shè)定的時(shí)問(wèn),這對(duì)于反復(fù)使用同一定時(shí)時(shí)間的場(chǎng)合十分方便,如用作英語(yǔ)口語(yǔ)測(cè)試定時(shí)器。

          主程序流程圖見圖,程序使用匯編語(yǔ)言編寫。程序由主程序、定時(shí)中斷子程序、數(shù)碼顯示子程序、延時(shí)子程序等模塊組成,主程序由鍵盤處理、報(bào)警等部分組成。

          由于采用了動(dòng)態(tài)掃描顯示的方式,雖然簡(jiǎn)化了電路,節(jié)省了IO線,但占用cPu的時(shí)間多,因此必須采用調(diào)用定時(shí)中斷的方式來(lái)計(jì)時(shí),以減小CPu負(fù)擔(dān),定時(shí)器的定時(shí)時(shí) 間 為60ms,調(diào)用1000次即為1分鐘。延時(shí)子程序主要供顯示子程序和報(bào)警程序調(diào)用,延時(shí)時(shí)間為0.5ms,延時(shí)時(shí)間決定了數(shù)碼顯示的刷新頻率和報(bào)警的音頻頻率,這兩個(gè)頻率均為1000Hz.

          字形碼的輸出用了口的P1.1~P1.7,P1.0為空,P1口輸出的數(shù)據(jù)通過(guò)查表獲得。數(shù)據(jù)位和字形的對(duì)應(yīng)關(guān)系如附表所示,因?yàn)閿?shù)碼管為共陽(yáng)型,所以相應(yīng)的輸出位為0時(shí)筆段亮。存儲(chǔ)器20h、21h單元分別作分位數(shù)和十分位數(shù)的存儲(chǔ)單元,其數(shù)值作為查表的地址值。表中P1.0為空,其值均取1.

          動(dòng)態(tài)掃描顯示由數(shù)碼顯示子程序完成,當(dāng)分位數(shù)送到P1口時(shí),P3.5輸出低電平,vT3導(dǎo)通,數(shù)碼管DS2顯示分位數(shù);當(dāng)十分位數(shù)送到P1口時(shí),P3.7輸出低電平,vT2導(dǎo)通,數(shù)碼管顯示十分位數(shù)。這樣輪流工作即可顯示兩位數(shù)的時(shí)間。由于采用了動(dòng)態(tài)掃描顯示的方式,所以在主程序的鍵盤處理、報(bào)警等部分也要分時(shí)調(diào)用數(shù)碼顯示子程序,只有這樣才能正確地顯示數(shù)碼時(shí)間,以便進(jìn)行操作。

          印刷電路板采用萬(wàn)能電路板,ICl用AT89C2051單片機(jī),用12MHz的石英晶體,D1、D2選用共陽(yáng)型的LED數(shù)碼管,用阻抗為16Ω的無(wú)源電磁式蜂鳴器,其余元器件的參數(shù)見第一頁(yè)圖。

          安裝前先將匯編源程序編譯成目標(biāo)文件即HEX文件,再用編程器將HEX文件寫入AT89C205 1芯片。

          設(shè)置定時(shí)時(shí)間時(shí),按動(dòng)s1或s2一次對(duì)應(yīng)的數(shù)位增加1,到9后再按一下即回到0,如果按下后不松開,則數(shù)字不斷翻動(dòng),每0.2秒跳一個(gè)數(shù),到你所需要的數(shù)后松開即可。

          注:開機(jī)后定時(shí)時(shí)間的初始值為00,可根據(jù)需要修改程序來(lái)調(diào)整這個(gè)初始值,例如要把初始值調(diào)整為45分鐘,只需要將程序第9行和第10行修改成mov 20h,#5h和mov 21h,#4h即可。

          塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理


          評(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); })();