基于51单片机的数字电子时钟
基于51單片機的數字電子時鐘
單片機課程設計要求使用51單片機完成一個電子時鐘,要求滿足基本功能的同時增添豐富的功能參考了很多大佬的方案代碼才勉強完成,工程文件下載點擊此鏈接歡迎交流。如遇下載問題可以留言通訊郵箱,聯系作者發送壓縮文件。
鏈接:https://pan.baidu.com/s/1knwCMcBalNPlbAU6IScuoQ
提取碼:7a9i
該時鐘完成的功能:數碼管動態顯示;蜂鳴器鬧鐘;蜂鳴器音樂;按鍵控制
文檔包括:Proteus仿真、Keil5開發的C語言代碼、AD16繪制的PCB工程
參考鏈接:
基于單片機的電子時鐘設計(keil+protues仿真,含代碼及原理圖)
51單片機蜂鳴器播放小星星兩只老虎歡樂頌 源程序
硬件方案
主控是STC89C51單片機、七段顯示數碼管作為顯示電路、L7805作為電源、7個按鍵構成輸入、5V無源蜂鳴器輸出音樂
功能按鍵
K1:切換顯示內容 時間 日期 鬧鐘 無(待拓展 可以接個DHT11 再顯示溫濕度)
K2:切換設置位
K3:音樂播放 按下后直接播放選擇的音樂 只能在開啟鬧鐘的情況下才能播放
K4:音樂切換按鍵 一共4首音樂 歡樂頌 兩只老虎 小星星 生日快樂
K5:減1
K6:加1
K7:鬧鐘開關 鬧鐘顯示F為關 T為開 播放音樂時長按可以退出播放 此時鬧鐘自動關閉
仿真圖
使用Proteus做代碼和功能的仿真
PCB板
使用Altium Designer16繪制PCB板,對技術要求不高,走線電流能滿足要求就可以。封裝庫可以去立創商城中找對應元器件下載文件
C語言代碼
使用keil編譯的代碼 但是上傳后直接顯示注釋亂碼了,所以就貼一個主函數的
/*************************************************** 主函數 ***************************************************/ void main() {Timer0_Init();Timer1_Init();display_flag = 0;change_flag = 0;music_flag = 0;music_play_flag = 0;alarm_clock_flag = 0; while(1) {Key_scan();Key_play_judge();switch (display_flag){case 0:Display_Time(second,minute,hour);break;case 1:Display_Time(day,month,year); break;case 2:Display_Alarm_Clock(); break;default: break;}if(alarm_clock_flag&&hour_alarm==hour&&minute_alarm==minute)Buzzer_music();//鬧鐘時間到 開啟音樂if(music_play_flag&&alarm_clock_flag)Buzzer_music();//開啟音樂&音樂播放按鍵if(minute==0&&second==0)Buzzer_Didi(); //整點報時 } }實物效果
PCB文件交給嘉立創打板,回來的板子自己焊接,有一些小問題,不過板子一次就成功了
總結
以上是生活随笔為你收集整理的基于51单片机的数字电子时钟的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 打字机打字,退格效果
- 下一篇: CiteSpace关键词时区图含义详细解