课程设计名称 多功能音乐闹钟

上传人:飞*** 文档编号:42654665 上传时间:2018-06-03 格式:DOC 页数:23 大小:1.32MB
返回 下载 相关 举报
课程设计名称 多功能音乐闹钟_第1页
第1页 / 共23页
课程设计名称 多功能音乐闹钟_第2页
第2页 / 共23页
课程设计名称 多功能音乐闹钟_第3页
第3页 / 共23页
课程设计名称 多功能音乐闹钟_第4页
第4页 / 共23页
课程设计名称 多功能音乐闹钟_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《课程设计名称 多功能音乐闹钟》由会员分享,可在线阅读,更多相关《课程设计名称 多功能音乐闹钟(23页珍藏版)》请在金锄头文库上搜索。

1、课程设计名称:多功能音乐闹钟课程设计名称:多功能音乐闹钟小组成员小组成员:亓帅,潘跃龙,任少卿,沈荣宗亓帅,潘跃龙,任少卿,沈荣宗一 课程设计目的。1. 巩固对单片机课程的认识,学习数字时钟的多样化显示。2. 通过本次设计加深对单片机课程应用的理解。3. 锻炼自己自学以及独立解决问题的能力。4. 通过此次软硬件结合使用,锻炼实践能力和理论结合实际的能力。5. 锻炼团队分工能力以及协调能力。二 用途与功能。本作品可以显示和设置二十小时制的时分秒显示,可以设置和查看星期,内设七个周闹钟(周日到周六)和一个日闹钟,另外内设八首不同的好听铃声,可以根据个人喜好设置每个闹钟的响铃铃声,同时周闹钟可以设置

2、每周都闹或隔一周闹一次,日闹钟可以设置每天都闹或隔一天闹一次,功能强大且实用,特别适合以星期为生活周期的学生或上班族使用。三 硬件设计思想和电原理图。本次设计以 ATmega16 单片机实验板为基础设计平台,通过编程实现时钟显示以及闹钟的各种功能,通过外部按键操作实现在七段数码管上的显示。(由于我组实验板的 c 端口出现故障,临时改用了 b 端口,请谅解)四硬件单元的使用按键介绍:按键介绍:短按 k1 键进行时间校准(设置)和星期显示或设置,同时最后一位有闪烁效果,再按 k1 则依次闪烁要设置的位,直到最高位闪烁时继续再按一次 k1 键退出设置,要设置的位有闪烁效果,每秒闪两次,进行时间设置时

3、仍会显示时间的时分位,但秒位不显示,原先显示秒位的两个数码管显示星期,0 代表星期天,1 代表星期一,以此类推。1. 长按 k2 键进入闹钟设置状态(本作品内设八个闹钟) ,同时显示闹钟的响铃时间、响铃方式和闹钟编号。这种状态下六个数码管的高四位显示闹钟响铃的时分。最低位显示闹钟编号,0 到 6 为周闹钟对应周日到周六。倒数第二位显示响铃的方式,0 为该闹钟关,1 为每周(日)都响,2 为隔一周(日)响一次且忽略本周(日) ,3 为隔一周(日)响一次且本周(日)响。注意在此闹钟设置状态下不影响时钟走针。2. 闹钟设置状态下,短按 k1 键则最后一位有闪烁效果,再按 k1 则依次闪烁要设置的位,

4、直到最高位闪烁时继续再按一次 k1 键则无位闪烁但不退出闹钟设置状态,要设置的位有闪烁效果,每秒闪两次。3. 在闹钟设置状态下同时无位闪烁时,短按 k2 键,选择该闹钟的铃声,此时会有相应的铃声响起,本作品共内设 8 个不同铃声。4. 在任何情况下,有某个位闪烁时短按 k2 键,进行该位的数字大小的调节。5. 在时钟走时且无位闪烁时,短按 k2 无效,长按 k1 等同于短按k1。6. 闹铃响后,按下任意按键铃声停止。7. 闹铃响后,若置之不理,则铃声每隔一分钟响一次。五软件功能及测试。产品所用程序:/*File name ; demo_11_4.cChip type ; ATmega16Pro

5、gram type ; ApplicationClock frequency ; 1.000 000 MHzMemory model ; SmallExternal SPAM size ; 0Data stack size ; 256/*File name ; demo_11_4.cChip type ; ATmega16Program type ; ApplicationClock frequency ; 1.000 000 MHzMemory model ; SmallExternal SPAM size ; 0Data stack size ; 256*/#include #includ

6、e const unsigned char led_710 = 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;const unsigned char position6 = 0xC1,0xC2,0xC4,0xC8,0xD0,0xE0;const unsigned int t16 = 0,1912,1730,1518,1433,1276,1136,1012,956,865,759,716,638,568,506,470;const unsigned char d16 = 0,52,58,66,70,78,88,99,105,116,132,1

7、40,157,176,198,209;const unsigned char Max_note8=84,86,64,88,90,100,78,102;const unsigned char music8102=5,2,4,2,5,2,10,6,10,2,11,2,10,2,9,2,7,2,8,10,8,2,7,2,8,2,12,6,12,2,11,2,10,2,9,2,10,2,10,10,5,2,4,2,5,2,10,6,10,2,11,2,10,2,9,2,7,2,8,2,9,2,10,2,14,2,13,6,10,2,12,2,11,2,10,2,11,2,10,6,9,2,8,14,1

8、2,2,12,2,10,2,9,2,10,2,6,4,9,2,10,2,12,2,10,2,9,10,12,2,12,2,10,2,9,2,10,2,5,4,9,2,10,2,12,2,9,2,8,10,8,2,9,2,10,2,12,2,13,2,12,2,10,2,12,2,10,2,10,2,9,2,9,10,8,2,9,2,8,2,9,4,8,2,9,4,10,4,12,2,10,10,2,4,2,4,3,4,3,6,2,2,3,4,5,2,6,4,5,6,1,4,2,4,3,4,6,4,5,4,3,2,5,14,5,2,6,2,8,8,6,4,5,4,3,4,5,2,3,6,1,2,

9、2,2,3,6,1,2,1,4,3,4,2,2,2,4,3,4,5,4,8,12,8,4,7,8,6,4,5,4,6,4,8,4,3,4,2,4,1,8,1,4,1,4,1,4,8,8,6,4,5,4,3,4,2,4,1,4,2,24,3,4,5,4,8,12,8,4,7,8,6,4,5,4,6,4,8,4,3,4,2,4,1,8,1,4,1,4,1,4,8,8,6,4,5,4,3,4,2,4,1,4,1,24,8,4,7,4,8,12,9,4,10,4,9,4,8,4,7,4,8,12,8,4,8,4,5,4,5,4,1,4,6,12,6,4,5,4,1,4,1,4,3,4,2,12,4,4

10、,4,4,5,4,8,4,7,4,8,12,9,4,10,4,9,4,8,4,7,4,8,12,8,4,8,4,5,4,5,4,1,4,6,12,6,4,5,4,5,4,8,4,7,4,8,24,5,4,12,4,11,4,10,8,10,4,11,2,10,10,10,4,11,4,10,4,11,4,10,4,9,2,8,6,8,4,10,4,12,4,13,8,13,4,13,2,12,6,9,4,9,4,11,2,10,22,8,4,10,4,12,4,13,8,13,4,13,2,12,2,12,4,9,4,9,4,11,4,10,4,11,4,10,4,9,2,8,10,9,4,1

11、0,4,6,8,6,4,8,4,8,4,7,4,7,8,8,24,12,4,12,4,11,4,10,4,9,12,9,4,9,4,10,4,11,4,10,12,8,4,8,8,9,8,10,8,9,8,8,8,7,4,6,4,5,12,12,4,12,4,11,4,10,4,9,8,9,4,9,4,10,4,11,4,10,12,8,4,8,8,9,4,10,4,11,8,10,8,9,8,8,4,7,4,8,24,5,2,8,2,8,2,8,3,9,1,10,2,8,4,6,2,8,2,8,2,8,3,8,1,6,2,5,4,5,2,8,2,8,2,8,3,9,1,10,2,8,4,8,

12、2,9,2,9,2,9,1,8,1,9,1,10,1,9,6,5,2,8,2,8,2,8,3,9,1,10,2,8,4,8,2,6,2,8,2,8,2,9,2,8,6,5,2,8,2,8,2,8,4,12,2,11,2,10,2,8,2,8,8;unsigned char note_n;unsigned int int_n;int play_on;int clock_style=0,lazy_style=0,ci=0,cci;unsigned char week_clock8=0,1,2,3,4,5,6,7,time3,time_clock83 = 10,0,7,11,5,7,12,10,7,

13、13,15,7,14,20,7,15,25,7,16,30,7,17,35,7;unsigned char dis_buff6;unsigned char time_counter,key_stime_counter;unsigned char clock_state = 6,return_time;int point_on=0,set_on=0,time_1s_ok=0,key_stime_ok=0;int week;void display(void)static unsigned char posit = 0;PORTB = 0xFF;PORTA = led_7dis_buffposit

14、;if(set_on if(point_on PORTB = positionposit;if(+posit = 6) posit = 0;/Timer 0 比较匹配中断服务,2ms 定时#pragma interrupt_handler timer0_comp_isr:iv_TIMER0_COMPvoid timer0_comp_isr(void)display();if (+key_stime_counter = 5)key_stime_counter = 0;key_stime_ok = 1;if(!(+time_counter % 25) set_on = !set_on;if(time_counter = 100)time_counter = 0;time_1s_ok = 1;/T/C1 比较匹配 A 中断服务#pragma interrupt_handler timer1_compa_isr:iv_TIMER1_COMPAvoid timer1_compa_isr(void)if(!play_on)note_n = 0;int_n = 1;play_on = 1;elseif(-int_n = 0)TCCR1B = 0x08;if (note_n =100) press_time=0;if(+clock_style

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号