首页 > 编程知识 正文

基于51单片机的数字电子时钟设计毕业论文,基于51单片机的数字时钟的设计论文

时间:2023-05-04 03:56:07 阅读:230302 作者:768

基于51单片机的数字电子时钟

单片机课程设计要求使用51单片机完成一个电子时钟,要求满足基本功能的同时增添丰富的功能参考了很多大佬的方案代码才勉强完成,工程文件下载点击此链接欢迎交流
链接:https://pan.baidu.com/s/12KeEo3PzwoYs56U8mBqAyw
提取码:rebu
该时钟完成的功能:数码管动态显示;蜂鸣器闹钟;蜂鸣器音乐;按键控制
文档包括: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文件交给嘉立创打板,回来的板子自己焊接,有一些小问题,不过板子一次就成功了

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。