可调电子音乐闹钟.zip
大小:70.35KB
价格:25积分
下载量:0
评分:
5.0
上传者:2303_80686753
更新日期:2025-09-22

新手51单片机入门实战-电子可调音乐闹钟项目

资源文件列表(大概)

文件名
大小
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/
-
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Delay.c
151B
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Delay.h
79B
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/DS1302.c
3.16KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/DS1302.h
396B
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Listings/
-
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Listings/Delay.lst
1.2KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Listings/DS1302.lst
6.26KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Listings/main.lst
12KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Listings/MatrixKey.lst
3.19KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Listings/music.lst
12.67KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Listings/Nixie.lst
1.79KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Listings/Project.m51
26KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Listings/Timer0.lst
1.96KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Listings/Timer1.lst
1.96KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/main.c
5.48KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/MatrixKey.c
1.54KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/MatrixKey.h
84B
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/music.h
3.07KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Nixie.c
608B
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Nixie.h
92B
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Objects/
-
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Objects/Delay.obj
888B
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Objects/DS1302.__i
122B
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Objects/DS1302.obj
7.81KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Objects/main.obj
20.49KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Objects/MatrixKey.__i
131B
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Objects/MatrixKey.obj
5.57KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Objects/music.__i
119B
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Objects/Nixie.__i
119B
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Objects/Nixie.obj
3.62KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Objects/Project
39.11KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Objects/Project.build_log.htm
982B
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Objects/Project.hex
9.21KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Objects/Project.lnp
268B
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Objects/Timer0.__i
122B
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Objects/Timer0.obj
2.76KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Objects/Timer1.obj
2.76KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Project.uvgui.会觉闻
72.46KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Project.uvopt
9.83KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Project.uvproj
15.65KB
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Timer0.c
638B
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Timer0.h
81B
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Timer1.c
636B
可调电子音乐闹钟/可调音乐闹钟-显示加按键加时钟加闹钟加音乐/Timer1.h
81B

资源内容介绍

请用keil软件打开和编辑,用专门的51单片机烧录软件去烧录(stc-isp)
#include <REGX52.H>#include "DELAY.H"#include "Nixie.H"#include "MatrixKey.H"#include "DS1302.H"#include "Timer1.H"#include "Timer0.H"#include "music.H"sbit Buzzer=P2^5;unsigned char MODE;//有三种模式,正常显示,时钟设置,闹钟设置unsigned char KeyNum;//瞬间键码值char Select;//数码管的位选(当前选择的数码管),Select>=0 && Select<=2unsigned char Flag;//数码管闪烁标志char ClockNum[3]={0,0,0};unsigned char FreqSelect,MusicSelect;//音乐播放函数void Musicplay(){if(Music[MusicSelect]!=0xFF)//如果不是停止标志位{FreqSelect=Music[MusicSelect];//选择音符对应的频率MusicSelect++;Delay(SPEED/4*Music[MusicSelect]);//选择音符对应的时值MusicSelect++;TR0=0;Delay(5);//音符间短暂停顿TR0=1;}else//如果是停止标志位{MusicSelect=0;}if(DS1302_Time[4]==ClockNum[1]+1){TR0=0;Buzzer=0;}}//时间显示函数(含音乐播放函数)void TimeShow(void){DS1302_ReadTime();Nixie(1,DS1302_Time[3]/10);//显示时Nixie(2,DS1302_Time[3]%10);Nixie(3,17);Nixie(4,DS1302_Time[4]/10);//显示分Nixie(5,DS1302_Time[4]%10);Nixie(6,17);Nixie(7,DS1302_Time[5]/10);//显示秒Nixie(8,DS1302_Time[5]%10);if(DS1302_Time[3]==ClockNum[0] && DS1302_Time[4]==ClockNum[1] && DS1302_Time[5]==ClockNum[2]){TR0=1;}if(TR0==1){Musicplay();}}//时间设置函数void TimeSet(void){//选择设置1if(KeyNum==1){Select++;if(Select>2){Select=0;}}//选择设置2if(KeyNum==2){Select--;if(Select<0){Select=2;}}//按键时间加if(KeyNum==3){if(Select+3==3){ DS1302_Time[Select+3]++; if(DS1302_Time[Select+3]>24) { DS1302_Time[Select+3]=0; }}if(Select+3==4){ DS1302_Time[Select+3]++; if(DS1302_Time[Select+3]>60) { DS1302_Time[Select+3]=0; }}if(Select+3==5){ DS1302_Time[Select+3]++; if(DS1302_Time[Select+3]>60) { DS1302_Time[Select+3]=0; }}}//按键时间减if(KeyNum==4){if(Select+3==3){ DS1302_Time[Select+3]--; if(DS1302_Time[Select+3]<0) { DS1302_Time[Select+3]=24; }}if(Select+3==4){ DS1302_Time[Select+3]--; if(DS1302_Time[Select+3]<0) { DS1302_Time[Select+3]=60; }}if(Select+3==5){ DS1302_Time[Select+3]--; if(DS1302_Time[Select+3]<0) { DS1302_Time[Select+3]=60; }}}//闪烁判断if(Select==0 && Flag==1){Nixie(1,16);Nixie(2,16);}else {Nixie(1,DS1302_Time[3]/10);Nixie(2,DS1302_Time[3]%10);}if(Select==1 && Flag==1){Nixie(4,16);Nixie(5,16);}else {Nixie(4,DS1302_Time[4]/10);Nixie(5,DS1302_Time[4]%10);}if(Select==2 && Flag==1){Nixie(7,16);Nixie(8,16);}else {Nixie(7,DS1302_Time[5]/10);Nixie(8,DS1302_Time[5]%10);}Nixie(3,17);Nixie(6,17);}//闹钟设置函数void ClockSet(){//选择设置1if(KeyNum==1){Select++;if(Select>2){Select=0;}}//选择设置2if(KeyNum==2){Select--;if(Select<0){Select=2;}}//按键时间加if(KeyNum==3){if(Select==0){ ClockNum[Select]++; if(ClockNum[Select]>24) { ClockNum[Select]=0; }}if(Select==1){ ClockNum[Select]++; if(ClockNum[Select]>60) { ClockNum[Select]=0; }}if(Select==2){ ClockNum[Select]++; if(ClockNum[Select]>60) { ClockNum[Select]=0; }}}//按键时间减if(KeyNum==4){if(Select==0){ ClockNum[Select]--; if(ClockNum[Select]<0) { ClockNum[Select]=24; }}if(Select==1){ ClockNum[Select]--; if(ClockNum[Select]<0) { ClockNum[Select]=60; }}if(Select==2){ ClockNum[Select]--; if(ClockNum[Select]<0) { ClockNum[Select]=60; }}}//闪烁判断if(Select==0 && Flag==1){Nixie(1,16);Nixie(2,16);}else {Nixie(1,ClockNum[0]/10);Nixie(2,ClockNum[0]%10);}if(Select==1 && Flag==1){Nixie(4,16);Nixie(5,16);}else {Nixie(4,ClockNum[1]/10);Nixie(5,ClockNum[1]%10);}if(Select==2 && Flag==1){Nixie(7,16);Nixie(8,16);}else {Nixie(7,ClockNum[2]/10);Nixie(8,ClockNum[2]%10);}Nixie(3,17);Nixie(6,17);}//主函数void main(){DS1302_Init();Timer1_Init();Timer0_Init();Buzzer=0;DS1302_SetTime();while(1){KeyNum=MatrixKey();if(KeyNum==5){if(MODE==0){MODE=1;Select=0;}//显示模式else if(MODE==1){MODE=2;DS1302_SetTime();}//时钟设置模式else if(MODE==2){MODE=0;}//闹钟设置模式}switch(MODE)//根据不同的功能执行不同的函数{case 0:TimeShow();break;case 1:TimeSet();break;case 2:ClockSet();break;}}}//定时器0中断负责音乐的播放void Timer0_Routine() interrupt 1{if(FreqTable[FreqSelect])//如果不是休止符{TL0 = FreqTable[FreqSelect]%256;//设置定时初值TH0 = FreqTable[FreqSelect]/256;//设置定时初值Buzzer=!Buzzer;//翻转蜂鸣器IO口}}//定时器1负责设置位的闪烁void Timer1_Routine() interrupt 3{static unsigned int T1Count;TL1 = 0x18;//设置定时初值TH1 = 0xFC;//设置定时初值T1Count++;if(T1Count>=300){T1Count=0;Flag=!Flag;}}

用户评论 (0)

发表评论

captcha

相关资源

餐饮管理系统 JAVA+Vue+SpringBoot+MySQL

基于Vue.js和SpringBoot的餐饮管理系统,分为用户前台和管理后台,可以给管理员、员工、普通用户角色使用,包括菜品管理模块、论坛管理模块、供应商模块、公告信息模块、员工管理模块和系统基础模块,项目编号T252。项目录屏:https://www.bilibili.com/video/BV1Rz421q7Q1启动教程:https://www.bilibili.com/video/BV1pW4y1P7GR项目讲解视频:https://space.bilibili.com/417412814/channel/collectiondetail?sid=2242844

22.41MB10积分

社区养老服务系统 JAVA+Vue+SpringBoot+MySQL

基于Vue.js和SpringBoot的社区养老服务系统,分为用户前台和管理后台,可以给管理员、普通用户角色使用,包括物品种类模块、物品信息模块、社区服务模块、服务预约模块、社区活动模块和系统基础模块,项目编号T253。项目录屏:https://www.bilibili.com/video/BV13Z421T7Jm启动教程:https://www.bilibili.com/video/BV1pW4y1P7GR项目讲解视频:https://space.bilibili.com/417412814/channel/collectiondetail?sid=2242844

25.55MB10积分

小区团购管理系统 JAVA+Vue+SpringBoot+MySQL

基于Vue.js和SpringBoot的小区团购管理系统,分为用户前台和管理后台,可以给管理员、采购员、普通用户角色使用,包括商品管理模块、公告信息模块、采购员模块、用户管理模块和系统基础模块,项目编号T254。项目录屏:https://www.bilibili.com/video/BV1iw4m1Y7Bw启动教程:https://www.bilibili.com/video/BV1pW4y1P7GR项目讲解视频:https://space.bilibili.com/417412814/channel/collectiondetail?sid=2242844

25.64MB10积分

串口调试助手fireTools-win64-v1.0.3.2测试版

串口调试助手fireTools-win64-v1.0.3.2测试版

86.48MB10积分