基于單片機的 LED 花樣照明時鐘設計

摘要 本設計是基于單片機的 LED 花樣照明 并附加時鐘設計 . 單片機也叫微控制器 Micro Control Unit, 簡稱 MCU ), 因其價格低廉 功能強大 在實際應用中得到廣泛認可 . 本設計的核心模塊是STC89C52RC 單片機 利用單片機驅動 74HC595 來實現 LED 心形花樣流水燈功能 驅動 DS1302 實現實時時鐘功能, 驅動 LCD12864 實現顯示時鐘 日期 節日等功能 .
關鍵詞 STC89C52RC 74HC595 LCD12864 DS1302 LED

引言

為滿足大眾的審美需求,本文設計了一款既實用又美觀的 LED 花樣流水燈時鐘.這一款帶有心形花樣流水燈的時鐘在設計上充分考慮到需求者的心理,在設計時集成了多種功能,設計成品不死板,可以滿足大眾在選擇工藝品時的需求.

2 總體設計方案

利用 STC89C52RC 單片機的 P1.0~P1.2 三個引腳控制 74HC595 實現 LED 花樣照明功能、用P2.0~P2.2 三個引腳控制實時時鐘芯片 DS1302 實現電子時鐘的功能、用 P0 口、P2.3~P2.5 十一個引腳控制點陣圖形液晶顯示模塊 LCD12864 實現在LCD12864 上顯示年、月、日、星期、時、分、秒、節日及 附 加 功 能 .P1.3~P1.6 四 個 引 腳 接 四 個 按 鍵K1~K4. 其中 K1 控制 LED 花樣照明的閃爍模式,K2~K4 調節時間、日期.總體方案的框圖如圖 1 所示.

3 關鍵模塊介紹

3.1 單片機最小系統

能讓單片機在上電后正常工作所需要的最少器件組合而成的系統稱之為單片機最小系統.單片機最小系統中最關鍵的部分是單片機、時鐘電路和復位電路.單片機最小系統如圖 2 所示.
(1) 單片機:本文采用了宏晶公司生產的STC89C52RC 單片機,因其價格低廉,功耗較低,可 靠性高,無法解密等優點,已經在電子設計行業被廣泛采用.STC89C52RC 的工作電壓為直流 5V,其內部集成了 8 位 的 CPU、512B 的 RAM、8KB 的ROM、4個并行 8 線 I/O 端口、3類 6 個中斷源.單片機內部基本組成如圖 3 所示.
(2)時鐘電路:單片機的第 18 和第 19 引腳間跨接一個晶體振蕩器(簡稱晶振)來形成自激振蕩
器,從而產生脈沖并送入單片機內部時鐘電路.這樣就可以在單片機運行過程中產生唯一的單片機時序.
(3)復位電路:單片機在上電運行后單片機會處在一個不確定的初始狀態,這時就需要一個外部電路來讓單片機回到一個確定的初始狀態,并且從這個初始狀態開始工作.讓單片機從不確定的狀態回到初始狀態的過程稱為復位.

3.2?8位串入并出移位緩存器 74HC595

由于單片機的輸出端口有限,想要驅動 32 個LED 燈流水工作就會占用單片機全部的輸出端口,
不切實際. 因此就必須用外部電路進行端口擴展,以減少單片機端口的占用.用 74HC595 就可以只占用單片機的 3 個端口并實現 8 位輸出功能.本設計使 用 4 個 74HC595 的 級 聯 實 現 32 位 輸 出 .74HC595 共有 16 個引腳,引腳連線圖如圖 4 所示,其中 Q1~Q7 為并行輸出端,Q7' 為串行數據輸出端,MR 為復位端,SHcp 為 8 位存儲寄存器的時鐘信號,STcp 為 8 位移位寄存器的時鐘信號,CE 為使能端,Ds 為串行輸入端,Q0 為并行輸出端. 其功能表如表 1 所示.

3.3 LCD12864 液晶顯示

LCD12864 是一塊圖形點陣液晶顯示模塊,有128 個列點×64 個行點.顯示時每個英文字母占 16個行點 8 個列點,每個漢字占 16 個行點 16 個列點.LCD12864 在本設計中用來顯示輸出. 其中第一 行顯示重要節日,第二行顯示年、月、日,第三行顯示時、分、秒、星期,第四行顯示一句名言.LCD12864共有 20 個引腳,引腳連線圖如圖 5 所示,其中 V0 為 LCD 驅動電壓輸入端,RS 為并行的指令 / 數據選擇信號(低電平寫指令,高電平寫數據),R/W 是并行的讀寫選擇信號(低電平是寫,高電平是讀),E 為并行的使能信號,DB0~DB7 為并行數據輸入端,PSB 為并 / 串行接口(高電平是并行,低電平是串行),RST 為復位端,VOUT 為負壓輸出端.

3.4 實時時鐘 DS1302

DS1302 是 DALLAS 公司生產的一款帶涓流充電的計時芯片.可以計算年、月、日、時、分、秒、星期,直到 2100 年,并有閏年調節功能.DS1302 的VCC2 和 GND 引腳接電源正極和負極,當外部電源停止工作后 DS1302 的 8 引腳 VCC1 的備用電源會繼續給 DS1302 供電,這就解決了掉電后數據會丟失的困擾,這也是 DS1302 的優點之一.DS1302使用的是簡單的 3 線串行接口,接口容易,并且與單片機連線通信時占用單片機的端口少,可節省單片機有限的輸入輸出端口.DS1302 共有 8 個引腳,引腳連線圖如圖 6 所示,其中 RST 為使能信號,SCLK 為串行時鐘信號.

3.5 鍵盤

按鍵是單獨的一個按鈕,按鈕的一端接電源或地,按下按鈕后實現按鈕兩端電位相同的功能.本設計采用的是一端接地的獨立式鍵盤,共 4 個按鍵分別接在 P1.3~P1.6 引腳,每個按鍵實現不同的功能.其中按鍵 1 實現每按一下按鍵 LED 照明變化一個模式的功能,按鍵 2,3,4 實現調節時間、日期的功能。
本設計所用的按鍵開關為機械彈性開關.機械彈性按鍵開關在按下或松開時會有抖動,如圖 7 所示,抖動持續的時間非常短,一般只有 5~10ms 的時間,雖然這個時間非常短,卻不可忽視.這就要求用有效的方法來消除這個電位忽高忽低的抖動過程.我們可以通過編程時延時一段時間的方法來消除抖動.具體做法就是在按鍵按下后不是立即檢測按鍵的電位,而是讓單片機延時 5~10ms 的時間后再去檢測按鍵的電位,如果 5~10ms 后按鍵的電位仍為 0(按鍵另一端接地)則證明按鍵已經確實按下,反之則沒有按下.

4 程序設計及調試

4.1 LED 花樣照明部分的設計

在單片機上電工作后,LED 花樣流水燈一開始不工作,在按下 K1 鍵后 LED 花樣流水燈開始工作,此時 LED 花樣流水燈按模式一閃爍.如果不繼續按 K1,LED 花樣流水燈會一直按模式一閃爍.當再一次按下 K1 后,LED 花樣流水燈按模式二閃爍.如果不繼續按 K1,LED 花樣流水燈會一直按模式二閃爍. 再按下 K1 后會按模式三閃爍……一共有六種閃爍方式.其中第六種模式為全亮模式,在全亮模式后再按一次按鍵后進入全滅模式(即關閉模式).進入關閉模式后再次按下 K1 又會按模式一閃爍,以此循環.其中六種模式分別為:模式一:LED 燈從下往上依次點亮.

模式二:LED 燈從上往下依次點亮.
模式三:LED 燈從第一個開始依次點亮.
模式四:LED 燈從最后一個開始依次熄滅.
模式五:LED 燈從下往上依次交替點亮.
模式六:LED 燈全亮.

4.2 按鍵調時部分的設計

K2~K4 實現調節時間的功能.K2 按下后實現調節時間、日期的功能,按第一下實現調小時功能,按第二下實現調分鐘功能,按第三下實現調秒功能,按第四下實現調年功能,按第五下實現調月功能,按第六下實現調日功能,按第七下實現調星期功能,按第八下時鐘恢復工作,再按一下又實現調小時功能……如此反復.K3 實現調節時間 / 日期時的加 1 功能,即每按一次對應調節的時間 / 日期加1.K4 實現調節時間 / 日期時的減 1 功能,即每按一次對應調節的時間 / 日期減 1.

4.3 調試

電路焊接完成后,在調試的過程中遇到了以下兩個問題:
問題一:流水燈工作時,本不該亮的 LED 燈在其他 LED 燈亮滅變化的瞬間會有短暫的閃爍,而且是所有的不該亮的 LED 燈都閃爍.
問題二:當只有一個 LED 燈亮時,LCD12864的屏幕亮度正常;當 LED 燈亮的個數越來越多時LCD12864 的亮度會越來越暗;當 LED 燈全亮時,LCD12864 的亮度最暗;當 LED 燈都滅時或只有少數幾個 LED 亮時,LCD12864 的亮度恢復正常. 導致 LED 燈瞬間閃爍的原因是有浪涌電流,在 LED 燈和限流電阻串聯后的兩端并聯一個電容起到濾波和增加抗干擾的功能.在并聯電容后完美
解決了 LED 燈的瞬間閃爍問題.LED 燈全亮時LCD12864 屏幕變暗的原因是電流不夠,因為調試時用的是電腦上的 USB 口提供的電源,而電腦的USB 口輸出電流有限導致 LED 燈全亮時,沒有足夠大的電流來驅動 LCD12864.

5 總結

首先經過構思選定方案,把一個整體的設計進行模塊化拆分,各個模塊都設計好之后再進行整合得到最終的設計成果最終設計的原理圖見附圖 1.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/37627.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/37627.shtml
英文地址,請注明出處:http://en.pswp.cn/web/37627.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

高效、便捷的游戲代理結算方案,Xinstall讓您的業務更上一層樓!

隨著游戲行業的蓬勃發展,越來越多的企業和個人開始涉足游戲代理領域。然而,在這個充滿機遇與挑戰的市場中,游戲代理結算問題成為了許多代理商和開發者頭疼的難題。繁瑣的結算流程、復雜的費用計算以及資金安全問題,都讓游戲代理結…

PHP語言學習02

好久不見&#xff0c;學如逆水行舟&#xff0c;不進則退&#xff0c;真是這樣。。。突然感覺自己有點廢。。。 <?php phpinfo(); ?> 新生第一個代碼。 要想看到運行結果&#xff0c;打開瀏覽器&#xff08;127.0.0.1/start/demo01.php&#xff09; 其中&#xff0c…

django @login_required 為什么會自動重定向到/accounts/login/?next=/myblog/post/new/

在Django中&#xff0c;login_required 裝飾器用于確保用戶在訪問某個視圖時已經登錄。如果用戶未登錄&#xff0c;那么Django會自動重定向用戶到登錄頁面。默認情況下&#xff0c;Django使用/accounts/login/作為登錄URL。如果用戶試圖訪問一個需要登錄的視圖&#xff0c;比如…

proto文件應該如何撰寫

什么是.pb.h 和 .pb.cc 文件&#xff1f; protobuf的核心是一個.proto文件&#xff0c;我們自定義一個.proto來創建我們的協議數據&#xff0c;然后使用protocol buffer 編譯器工具編譯生成兩個"文件名.pb.cc"和"文件名.pb.h"的文件。 Protocol Buffers&…

K-Planes代碼記錄

隨記 原文 K-Planes: Explicit Radiance Fields in Space, Time, and Appearance&#xff0c;又要換baseline&#xff0c;可是效果不好能怎么辦呢&#xff0c;我可不可以發瘋。k-planes的代碼又是非常工程瑣碎的&#xff0c;大佬的代碼果然不顧小白死活。隨便記錄下整個過程。…

制造型企業生產管理的技巧,你都用過哪些?

作為管理者&#xff0c;一談到生產管理&#xff0c;你可能會想到很多生產過程中的問題&#xff1a;訂單準交率不高、計劃達成率不高、生產效率低、再制品太多、生產周期長等等一系列問題&#xff1b;如果你不僅僅是一名管理者&#xff0c;你還是一名企業主&#xff0c;你甚至經…

實踐Go的命令模式

簡介 現在的軟件系統往往是分層設計。在業務層執行一次請求時&#xff0c;我們很清楚請求的上下文&#xff0c;包括&#xff0c;請求是做什么的、參數有哪些、請求的接收者是誰、返回值是怎樣的。相反&#xff0c;基礎設施層并不需要完全清楚業務上下文&#xff0c;它只需知道…

Bootstrap更改默認的“請在電子郵件地址中包含@”

摘要&#xff1a; 今天開發一個外貿系統&#xff0c;必須全部英文的&#xff0c;但是使用到bootatrp 4的input標簽的type"email"輸入沒有含“”符號時會提示&#xff1a;“請在電子郵件地址中包含”中文提示&#xff01;一開始以為是中國下載的谷歌是瀏覽器自帶的提示…

[思考記錄.產品改進]假如異常日志可以自動上報

最近考慮日志收集的事情&#xff0c;主要出發點是&#xff1a; 1、在問題出現后能方便快速地收集相關的線索和證據&#xff0c;幫助快速定位和解決問題。因為反饋問題往往在發生之后&#xff0c;如果在這個時候能快速方便地拿到有用信息是件很舒服的事情&#xff0c;而在獲取日…

AIGC重塑創意設計:不僅能帶來新技術,更能引發新思考

隨著科技的飛速發展&#xff0c;AIGC&#xff08;生成式人工智能&#xff09;已經逐漸成為創意設計領域的一股新勢力。從影視制作到游戲設計&#xff0c;從平面廣告到數字媒體&#xff0c;AIGC的影響力無處不在&#xff0c;它不僅帶來了全新的技術手段&#xff0c;更在深層次上…

Linux-筆記 嵌入式gdb遠程調試

目錄 前言 實現 1、內核配置 2、GDB移植 3、準備調試程序 4、開始調試 前言 gdb調試器是基于命令行的GNU項目調試器&#xff0c;通過gdb工具我們可以實現許多調試手段&#xff0c;同時gdb支持多種語言&#xff0c;兼容性很強。 在桌面 Linux 系統&#xff08;如 Ubuntu、Cent…

跨越地域界限:Eureka實現跨區域服務發現全解析

跨越地域界限&#xff1a;Eureka實現跨區域服務發現全解析 在微服務架構的浪潮中&#xff0c;服務的分布式部署已成為常態。隨著業務的全球擴展&#xff0c;服務往往需要跨區域甚至跨國界進行部署。在這樣的背景下&#xff0c;服務發現機制面臨著新的挑戰——如何實現不同區域…

如何在服務器中找到數據庫文件路徑

在服務器中找到數據庫文件路徑的具體方法取決于您所使用的數據庫管理系統和服務器的操作系統。以下是一些常見的數據庫系統&#xff08;如MySQL、Microsoft SQL Server、Oracle、PostgreSQL和MongoDB&#xff09;的文件路徑查找方法的詳細步驟&#xff1a; MySQL 通過命令行查…

Redis基礎教程(三):redis命令

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;歡迎各位來到我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里不僅可以有所收獲&#xff0c;同時也能感受到一份輕松歡樂的氛圍&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

08 - Python面向對象編程進階

面向對象進階 在前面的章節我們已經了解了面向對象的入門知識&#xff0c;知道了如何定義類&#xff0c;如何創建對象以及如何給對象發消息。為了能夠更好的使用面向對象編程思想進行程序開發&#xff0c;我們還需要對Python中的面向對象編程進行更為深入的了解。 property裝…

六西格瑪綠帶培訓的證書有什么用處?

近年來&#xff0c;六西格瑪作為一套嚴謹而系統的質量管理方法&#xff0c;被廣泛運用于各行各業。而六西格瑪綠帶培訓證書&#xff0c;作為這一方法論中基礎且重要的認證&#xff0c;對于個人和企業而言&#xff0c;都具有不可忽視的價值。本文將從多個角度深入探討六西格瑪綠…

重寫功能 rewrite

Nginx服務器利用 ngx_http_rewrite_module 模塊解析和處理rewrite請求&#xff0c;此功能依靠 PCRE(perl compatible regular expression)&#xff0c;因此編譯之前要安裝PCRE庫&#xff0c;rewrite是nginx服務器的重要功能之 一&#xff0c;用于實現URL的重寫&#xff0c;URL的…

充電寶口碑哪個好?好用充電寶品牌有哪些?好用充電寶推薦

充電寶作為我們日常生活和出行的重要伙伴&#xff0c;其品質和性能直接影響著我們的使用體驗。今天&#xff0c;就來和大家探討一下充電寶口碑哪個好&#xff0c;為大家盤點那些備受贊譽的好用充電寶品牌&#xff0c;并向您推薦幾款值得入手的充電寶&#xff0c;外出時不再擔心…

mac英語學習工具:Eudic歐路詞典 for Mac 激活版

Eudic歐路詞典是一款非常受歡迎的英語學習軟件&#xff0c;它提供了豐富的詞匯解釋、例句、同義詞、反義詞等功能&#xff0c;幫助用戶更好地理解和掌握英語單詞。 以下是Eudic歐路詞典的一些主要特點&#xff1a; 海量詞匯庫&#xff1a;Eudic歐路詞典擁有龐大的詞匯庫&#…

flutter photo_manager 報錯:Error: ‘DecoderCallback‘ isn‘t a type.

看看是不是你的photo_manager版本少于3.0。如果是少于3.0&#xff0c;請及時升級到3.0及以上版本&#xff0c;同時因為photo_manager3.0不再提供 AssetEntityImageProvider 這個方法&#xff0c;會導致報錯&#xff0c;不要慌&#xff0c;請添加下方的庫即可解決問題&#xf…