嵌入式课程设计 编程闹钟 广西大学.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式课程设计 编程闹钟 广西大学

可编程电子闹钟 设计总 系统结构框图 本设计采用ILI9341触摸屏作为基础,将程序写入STM32中,通过电阻触摸屏上不同的坐标来使用不同的功能。再将辅助用的美化图片通过Image2Lcd根据不同的分辨率生成代码放入Fonts.c中;Rcc.c作为系统时间控制三种功能的时间;EXTI.c实现外部中断即当闹钟时间到时中断RTC;用LCD.c记录一些文字,指针位置和颜色的变化及必要的设置。总体来说就是STM32中的程序和触摸屏完成设计。 系统各单元模块设计 时钟采用RTC和RCC两部分组成,其中RCC是系统时钟,系统所有功能的时间都是RCC系统时钟。STM32的实时时钟(RTC)是一个独立的定时器。RTC模块拥有一组连续计数的计数器,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。根据不同触摸点的位置(坐标)确定修改的年月日时分秒。 闹钟部分 闹钟程序分为逻辑部分和显示部分。逻辑部分是通过对 此次设计采用的是电阻屏 首先确认实用的该图片的分辨率应该是多少,这一点非常重要,否则在就是图片乱码。确认之后将图片先修改成规定的分辨率,再根据软件图 五、结论 附件:闹钟程序(逻辑部分) //显示主界面 void Display_Allarm_Main(void) { u8 i=0; LCD_Clear_Display(Vertical_LCD,BLACK);//清屏 LCD_Display_Window(Vertical_LCD,0,0,240,29,DARKGREEN); LCD_Display_Num_Chinese_Char_Number_16_16(Vertical_LCD,10,6,创建闹钟,4,:,NO_Number,WHITE,RED,Fill_OFF); LCD_Display_Window(Vertical_LCD,195,14,18,2,WHITE); LCD_Display_Window(Vertical_LCD,203,6,2,18,WHITE); LCD_Display_Window(Vertical_LCD,0,29,240,2,BLUE); for(i=1;i=Display_Allarm_Num;i++) { Display_Allarm_Interface(i); } } void Add_Allarm(void) { u8 i=0; Interface_Type=Add_Allarm_Type; Display_Set_Allarm_Interface();//添加闹钟界面 if(Success_Set==1)//表示成功添加 { Set_Allarm_Hour=Set_Allarm_Hour_Temp; Set_Allarm_Min=Set_Allarm_Min_Temp; //把当前设置的一周中星期几闹铃的值更新到数组中去 for(i=0;i7;i++) { Set_Allarm_Week[i]=Set_Allarm_Week_Temp[i]; } Set_Allarm_Loop=Set_Allarm_Loop_Temp; Display_Allarm_Num++;//显示的闹钟数量增加一个 All_Allarm_Hour[Display_Allarm_Num-1]=Set_Allarm_Hour;//把当前设置的闹钟的小时值更新到所有闹钟时间的数组中对应位置 All_Allarm_Min[Display_Allarm_Num-1]=Set_Allarm_Min;//把当前设置的闹钟的分值更新到所有闹钟时间分钟的数组中对应位置 //把当前设置的一周中星期几闹铃的值更新到数组中去 for(i=0;i7;i++) { All_Allarm_Week[Display_Allarm_Num-1][i]=Set_Allarm_Week[i]; } //更新当前设置的闹钟的重复与否参数写入数组中 All_Allarm_Loop[Display_Allarm_Num-1]=Set_Allarm_Loop; //由于成功添加了闹钟之后默认这个闹钟是打开的,因此需要更新所有闹钟状态的数组值,针对那种不重复的数组如果全部都闹过了以后自动将这个闹钟关闭了,再次开启这个闹钟又会开始闹铃 //当然在打开设置里面打开了的话就会将每天的已经闹过闹铃数组清0 All_Allarm_STA[Display_Allarm_Num-1]=1; //针对有效的闹钟进行查询,当天最接近报警时间的值,作为准备闹铃的时间 Find_Ne

您可能关注的文档

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档