ucos 实验设计 - 万年历.docx
《ucos 实验设计 - 万年历.docx》由会员分享,可在线阅读,更多相关《ucos 实验设计 - 万年历.docx(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、uc/os 实验设计 - 万年历一、 实验要求: 1、基于uc/os II 操作系统在三星S3C2440开发板进行设计 2、实时显示:不断显示当前的年月日、时间信息; 3、时间设置:可设置万年历的时钟和年月日信息,完成设置后,可更新 显示。二、 实验设计: 1. 模块划分首先要进行模块划分。在硬件上,使用 LED 数码管进行时间的显示,使 用四个按钮进行时间和闹钟设置,时间基准使用开发板上已集成的 RTC 模块。 由此,可以把编程分为几个模块: . 1) RTC 设置与读取:用于读取和设置时间; . 2) 数码管显示:用于显示当前时间; . 3) 按钮设置:用于捕获按钮活动; . 4) 顶层模
2、块:连接所有其他模块。 三、 实验内容1.显示时间查S3C2440开发板manual和自带例程RTC.mcp可知年月日时分秒都放在如下寄存器中,每次时间变化遍历更新这些寄存器。while (1) while (1) year = 0 x2000 + rBCDYEAR ; month = rBCDMON ; weekday = rBCDDAY ;date = rBCDDATE ; hour = rBCDHOUR ; min = rBCDMIN ; sec = rBCDSEC ;If ( sec != tmp ) tmp = sec ; break ; / time updated / print
3、 out current time 上面采用的是阻塞查询方式来获知时间更新的时刻,更好的是使用 S3C2440 的 RTC 的功能:TickTimeInterrupt。这里把 TICNT 设为 0x 即可实现每秒一次中断请求: pISR_TICK = ( unsigned ) Rtc_Tick ; rTICNT = (1 7) + 127; rINTMSK = ( BIT_TICK ) ; void _irq Rtc_Tick ( void ) rSRCPND = BIT_TICK ;rINTPND = BIT_TICK ;rINTPND ;Uart_Printf ( %03 d sec ,
4、sec_tick +) ; 2.设置时间rRTCCON = rRTCCON & (0 xf ) | 0 x1 ; / RTC控制使能rBCDYEAR = ( syear /10) 4) +( syear %10) ;rBCDMON = ( smonth /10) 4) +( smonth %10) ; rBCDDAY = sday ; / SUN :1 MON :2 TUE :3 WED :4 THU :5 FRI :6 SAT :7 rBCDDATE = sdate ;rBCDHOUR = shour ;rBCDMIN = smin ; rBCDSEC = ssec ;rRTCCON = 0
5、 x0 ;这样就可以完成 RTC 时间的读取和设置了。 3. LED数码管显示 使用 8 个七段数码管来显示当前的时间。初始化 IIC 接口就可以更直接地控制数码管了。 如下: void xzSetSeg ( U8 pos , U8 seg 8) U8 i ;IIC_Init () ;for ( i =0; i 8; i +) if ( pos & (1 (7 - i ) ) ) != 0) _WrIIC (0 x70 ,0 x17 -i , DTab seg i ) ; IIC_Restore () ; 上面的函数可以进行数码管显示设置,pos 的每一位指示刷新哪些个位 置,seg 里则是刷
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ucos 实验设计 万年历
限制150内