狠狠躁夜夜躁人人爽超碰97香蕉|色婷婷日日躁夜夜躁|亚洲一区欧美一区在线播|久久久久久性高|伊人久久大香线蕉亚洲

歡迎來到同城快修-附近家電維修、家電清洗、家電安裝服務平臺

24小時家電維修熱線:

400—1558638

當前位置:主頁 > 空調 > 維修資訊 >

蜂鳴器源代碼(無源蜂鳴器代碼)

發布日期:2023-02-11 11:42:56 瀏覽:
蜂鳴器源代碼(無源蜂鳴器代碼)

前沿拓展:

蜂鳴器源代碼

在我的博客里有比較規范的ds18b20溫度測量程序,你可看一下,也許有幫助。
對于你的具體要求,你要改寫一下程序。


ELEJ-CDC1簡介

ELEJ-CDC1是一款創意型數字時鐘(即Creative Digital Clock)。之所以說它是創意制作,其實就是使用常規的數碼管和常見元器件,實現通常時鐘具備的功能的同時,還通過硬件改進和軟件設置,巧妙實現通常時鐘不具備的功能——人性化用戶體驗。

時鐘太常見了,是生活中極其普通的物品之一,我們只需瞧一下鐘,就能說出時間,而且我們也把這看成是很自然的事情。功能完善的時鐘可以計時間(Clock)和日期(Calendar),即年、月、星期、日、時、分和秒的實時參數。時鐘有很多種,按照不同的分類標準可以分為不同的類型,對于按照模擬數字量分為傳統的模擬時鐘和數字時鐘,這里主要分析一下數字時鐘。

數字時鐘可以由模塊化的時鐘電路實現,可以由數字門電路+時鐘發生電路實現,也可以由控制器(單片機)+定時器實現,還可以由控制器+RTC芯片實現等,其實這里也不用“等”了,因為似乎沒有其他方法了。你可能會說從網上下載一個時鐘軟件不也是嘛,哈哈,告訴你吧,其實這樣的軟件用的時鐘信號是你計算機主板上的RTC芯片時鐘或者集成在某個大規模集成電路內部的RTC模塊提供的。

RTC即為實時時鐘,它是可提供時間(通常也提供日期)的時鐘器件。RTC通常包含一個可長期供電的電池,即使在沒有電源供電的情況下也可以保持時間的跟蹤。

有很多著名廠商和很多著名的RTC芯片,玩單片機的應該沒有不知道DS1302、DS12887和PCF8523等芯片的;RTC著名廠商有很多,比如Maxim(美信〈達拉斯半導體〉)、NXP(恩智浦)、Intersil(英特矽爾)等。筆者曾經使用過美信的DS3231用作智能電表的時鐘計量,調過英特矽爾的ISL12022M,DS3231和ISL12022M,它們都集成了晶體振蕩器,精度極高,且外圍電路十分簡單,基本無需外圍元器件,其實DS3231和ISL12022M的功能也很相似、性能也差不多。恩智浦的RTC芯片有很多款,比如本文要介紹的ELEJ-CDC1,使用的是PCF8523。PCF8523性能很不錯,使用的是I2C總線與控制器連接,且是高速I2C總線(Fm+),可以達到1MHz,在某些實時性要求極高的系統中非常適用。常見的PCF8523有SO8和TSSOP14封裝,TSSOP14引腳間距較小,引腳排列很密,不容易焊接,大家可以選擇SO8封裝的,容易焊接。

制作實時時鐘非常有趣,可以同時學會很多與界面顯示相關的技術、控制器接口技術、數字處理技術和按鍵功能實現技術等,對于各種智能家用電器的顯示界面設計有參考意義,例如冰箱、洗衣機、電磁爐等的顯示界面。關于實時數字顯示器件的選擇,可以是LED、數碼管、點陣屏、LCD等,實際學習可以逐個調試掌握、真正搞懂,然后獨立開發基于控制器的項目就不成問題了。(不騙你,真的!)

現在,我們就一起開始制作吧!

ELEJ-CDC1硬件原理

ELEJ-CDC1由6個模塊電路構成:電源電路、控制器電路、RTC電路、數碼管電路、蜂鳴器電路和按鍵電路,其中電源電路、數碼管電路、蜂鳴器電路和按鍵電路與ELEJ-IDBC1智能數字電池充電器設計中的電路設計方法和電路原理一樣,只是數碼管在實際的排列時有所不同,而且數碼管選用的是1位的8段式數碼管。

下面主要介紹控制器電路、RTC電路和特殊處理的數碼管電路。

為了大家的制作方便,這個制作仍然使用STC的51控制器,ELEJ-CDC1使用的控制器型號為STC15F204EA,用DIP-20封裝,電路連接如圖1.1所示。STC15F204EA內部高精度R/C時鐘,常溫下溫漂5‰,時鐘從5~35MHz可選,這樣我們就無需再外置晶體振蕩器了。實際焊接在“洞洞板”上如圖1.2所示。

RTC芯片用NXP的PCF8523時鐘芯片,PCF8523電路圖如圖1.3所示。

圖1.3中電阻R11、R16和R17是上拉電阻,因為PCF8523的INT2、INT1/CLKOUT引腳都是開漏輸出,所以必須上拉,此外,SDA和SCL也必須上拉。仔細看看圖1.3,你會發現在+5V電源和PCF8523的VDD之間接了VD5、R15和C6,有什么用,不接可以嗎?很多時鐘芯片都不接的呀!說說原因吧:仔細閱讀PCF8523數據手冊的典型應用一節,你會發現它提供的典型應用電路連接有R15和C6,它倆的作用是限制VDD的壓擺率,如果VDD下降得過快,就不能確保內部電路可靠切換到備用電池供電;二極管VD5是為了防止電源反接燒壞PCF8523TS,PCF8523TS不便宜啊,燒的是錢呢!

注 :電壓轉換速率(Slew Rate),簡寫為SR,簡稱壓擺率,其定義是在1μs或者1ns的時間里電壓升高的幅度,直觀上講就是方波電壓由波谷升到波峰所需時間,單位通常有V/s、V/ms、V/μs和V/ns四種。電壓轉換速率用示波器就可以測量。

我使用的是TSSOP14封裝的,由于芯片引腳很密,所以我腐蝕了一塊轉接板,實物如圖1.4所示。注意:在制作中你可以使用SO8封裝的,無轉接板也可以焊接。

圖1.1 控制器電路

圖1.2 控制器實物圖

圖1.3 PCF8523電路圖

圖1.4 PCF8523腐蝕板

圖1.5 PCF8523腐蝕板焊接實物

焊接上芯片,通電藍色LED點亮,如圖1.5所示。

數碼管電路如圖1.6所示。其實仔細看看原理圖,和通常使用的電路沒有任何區別,其實就是驅動電路的設計。

圖1.6 數碼管電路圖

與通常使用不同的是數碼管的放置方式。如何實現顯示功能,以下詳細說明一下。

對于動態掃描顯示技術,幾乎每本書、每個資料都會說“動態顯示是多個數碼管交替顯示,利用人的視覺暫留作用,使人看到多個數碼管同時顯示。在編程時,需要輸出段選和位選信號,位選信號選中其中一個數碼管,然后輸出段碼,使該數碼管顯示所需要的內容,延時一段時間后,再選中另一個數碼管,再輸出對應的段碼,高速交替。”如果你是初學者,肯定感到有點迷惑!

那我就用圖來說明一下吧!動態掃描最根本的原理如圖1.7所示。

圖1.7 數碼管動態掃描原理

4個數碼管輪流顯示一遍為一個周期T,即4個顯示ton之和,且由于每個顯示時間一樣,也即T=4×ton,在軟件實現手段上,我用的是定時器中斷,這樣便于main函數處理多個任務。使用的數碼管為共陽極的,所以ton時間數碼管的位引腳為低電平(以數碼管DS1為例:當LED_COM1=0,三極管導通,DS1選通,此時如果有段碼數據加到A-H引腳,則DS1顯示),即數碼管顯示,數碼管會按照300μs的時間輪流循環顯示,即:數碼管1→數碼管2→數碼管3→數碼管4→數碼管1……無限循環往復,由于“數碼管1→數碼管2→數碼管3→數碼管4”僅需要1200μs,即掃描頻率833Hz,我們眼睛是分辨不出它們是在逐個顯示的,我們可以看到的是每個數碼管都完整顯示。如果,你想仔細看看所謂的“掃描”是啥,你可以把T選得大一些,對應的ton=T/4也大些,那樣你就會看到數碼管逐個顯示,顯示的界面會讓你感覺很不舒服(一個接一個地閃爍顯示)。

圖1.8 ELEJ-CDC1數碼管實物

圖1.9 ELEJ-CDC1整機焊接面實物圖

總結一下:我們調試數碼管,說白了就是調試T(根據實際調試數據ton≈1ms時,顯示效果也很不錯,當然是越小越好了;掃描的速度足夠快,給人的印象就是一組穩定的顯示數據,不會有閃爍感),此外還要注意以下兩個問題。

(1)所謂的“消隱”問題,當你更新顯示的“段”的時候,顯示的位置還是在前一時間的“位”上;然后你再更新“位”,這就出現移動的效果了。解決方法:顯示下一位時先讓數碼管熄滅;在位的數碼顯示前,先關閉一下數碼管,這樣方可消除拖尾現象。

(2)驅動要足夠,例如,我在使用數碼管時均使用了三極管驅動,盡管STC控制器I/O口可以配置為推挽輸出,但是為了便于硬件移植,即51控制器通用,還是加了驅動,在實際制作調試時,你也可以選擇用STC控制器直接驅動。

ELEJ-CDC1創意數字時鐘數碼管實物如圖1.8所示,焊接面如圖1.9所示。

軟件設計思路

這里我直接用文字敘述:在沒有任何認為“干預”ELEJ-CDC1的情況下,ELEJ-CDC1從用戶接通電源起,工作步驟(也就是軟件執行過程)為控制器初始化、某些系統參數初始化→配置PCF8523、獲取RTC數據(通過I2C接口讀取)→處理RTC數據,處理結果暫時存儲在控制器緩存中→通過定時器中斷技術使控制器緩存中的RTC數據顯示在數碼管上→再讀取新的RTC數據,處理數據,實時顯示……就這樣只要用戶不斷電,ELEJ-CDC1就會“不知疲倦”地重復實時顯示RTC的實時數據。

然而,RTC芯片內部的數據在上電時,一般不會是當前的時間,怎么辦呢?一般人都知道重新校準時間。其實,從PCF8523角度來看,就是重新向PCF8523內部時鐘寄存器內寫入數據,覆蓋掉原始的不是當前時間的數據,然后PCF8523就從新的時間數據開始計時(時鐘源就是那個32768Hz的晶體振蕩器)。這樣,自然就需要一個校時程序,而且這個校時程序塊不是一直運行,只有用戶需要時才啟動,所以就需要一個開關。開關?你可能會驚訝:軟件里面哪里有開關呢?此時,如果你仔細想一想數字電路,是不是想起了0和1,就是啊,這個開關就用一個Bit變量實現,比如,變量為1時啟動校時程序塊,為0時運行時鐘。記住一點,校時程序塊和正常走時程序塊在同一時間絕不可能同時運行!

至于鬧鐘,也很簡單,每讀取一次RTC數據顯示,程序就判斷一次此時的時間和用戶設定的鬧鐘時間是否一樣,如果一樣,那就“鬧”吧!鬧多久?程序開發者自行設置,如果開發者愿意,甚至可以讓用戶自行配置;如果你既是開發者又是用戶,那我就不說啥了,隨你的心情,隨意配置吧!

讀到這里,你是不是感覺ELEJ-CDC1總體脈絡很清晰了呢!如果真的用心說是,那就好,你肯定可以獨立調試ELEJ-CDC1了,而且,你還可以學習很多工程設計調試的方法。再說得犀利些:如果你僅僅是為了做一個ELEJ-CDC1,完全或者基本沒有什么濃厚實物興趣驅使你,你可能在調試時非常痛苦,甚至不能讓ELEJ-CDC1正常運行。比如,你在調試ELEJ-CDC1時,你會徹徹底底地明白什么是數碼管動態顯示,為什么動態顯示要用定時器中斷,為什么不直接用延時掃描的方法,數碼管不同界面切換方法,I2C驅動如何寫(后續我會仔細說),甚至蜂鳴器振蕩頻率如何選擇……總之,我們喜歡電,我們可以在興趣中提高能力和扎實掌握解決實際工程問題的方法。哇!說多了,不過這樣的興趣就是動力,可以很隨意地步行10多里路去二手電子市場(偷笑)。

圖1.10 “AL:--”界面

圖1.11 “AL:on”界面

圖1.12 “12Hr”和“24Hr”界面

圖1.13 時間顯示界面

圖1.14 日期顯示界面

圖1.15 星期顯示界面

看幾張數碼管的界面圖片吧!如圖1.10~1.15所示。

好吧,這個版本的ELEJ-CDC1制作就介紹到這里吧,其實如果想再加其他功能,真的有點難,因為4K字節ROM空間的STC15F204EA放不下了,我就遇到此尷尬,不然ELEJ-CDC1最后一位本來打算用作“℃”顯示的數碼管就不會沒用上,我的代碼中,數碼管段碼就沒有全部放在code內,否則連鬧鐘功能也沒了。反正我們以后會讓ELEJ-CDC1升級的!

相關源程序可以到qq群657864614進行下載!

新店開張,為了提升人氣,即日起將開啟前所未有的優惠力度,相當于免費送了!商品限購,先買先得!所有商品均可以無理由退換,請放心購買!一個屬于電子工程師的專屬淘寶店,總有一款適合你:首頁-電子工程師小李-淘寶網

拓展知識:

主站蜘蛛池模板: 国产精品一区二区三区四区不卡| 日韩精品一区二区午夜成人版| 国产成人亚洲综合网色欲网久下载| 极品人妻少妇一区二区三区| 亚洲一区二区三区十八禁| 精品国产一区二区三| 波多野结衣在线播放| 欧美久久一区二区精品| 国产不卡一区二区在线观看视频| 亚洲综合成人婷婷五月在线观看| 插我一区二区在线观看 | 又大又黄又粗高潮免费| 人妻熟女一区| 中年人妻丰满av无码久久不卡 | 日本精品一区二区在线看| 亚洲欧洲综合有码无码| 高清自拍亚洲精品二区| 国产成人无码a在线观看不卡| 人妻伦理一区二区三区| 性少妇无码播放| 亚洲天堂av一区| 韩国三级无码hd中文字幕| 国产国拍亚洲精品永久软件| 国产精品一久久香蕉国产线看观看| 亚洲综合色自拍一区| 97久久久精品综合88久久| 中文字幕不卡av一区| 久久精品国产免费观看三人同眠| 久久久久国色av∨免费看| 51久久夜色精品国产水果派解说| 久久综合色天天久久综合图片| 国产日产高清欧美一区| 色翁荡熄又大又硬又粗又视频图片| 人妻体体内射精一区二区| 亚洲中文字幕在线第二页| 婷婷五月综合色中文字幕| 草裙社区精品视频三区免费看| 亚洲国产欧美国产综合一区| 人人爽人人片人人片av| 少妇熟女天堂网av| 好吊色欧美一区二区三区视频|