ARM课设数字钟的设计报告Word文档下载推荐.docx
- 文档编号:15236209
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:20
- 大小:848.59KB
ARM课设数字钟的设计报告Word文档下载推荐.docx
《ARM课设数字钟的设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《ARM课设数字钟的设计报告Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
三、原始资料
开发板的原理图,课设讲义。
四、要求的设计(调查/论文)成果
●使用开发板或实验箱实现一个数字钟;
●根据原理图完成实验方案的设计;
●实时显示日期、时间。
可以利用串口发送到上位机显示或利用数码管、点阵、液晶屏显示;
●具备时间调整功能;
●在实验完成的基础上完成课程设计报告的撰写,按照模板的格式书写,要求有软件流程图和详细的调试过程。
五、进程安排
时间
内容
地点
15周周一上午
课题讲解、选题
11-602
15周周一下午
软硬件准备、清理
实验楼402,403
15周周二至周三
课题分析、收集资料、完成设计方案
实验楼402,403,图书馆
15周周四至周五
详细设计,编写代码
16周周一至周三
系统调试
16周周四
成果验收
16周周五
整理文档,撰写提交课设报告
六、主要参考资料
见下发的课程设计资料
指导教师(签名):
20年月日
一、设计原理及基本方案…………………………………………………………5
1、设计原理……………………………………………………………………5
2、基本方案………………………………………………………………………8
二、软件设计………………………………………………………………………8
1、基本思路………………………………………………………………………8
2、软件流程图……………………………………………………………………8
3、主要代码说明…………………………………………………………………9
三、软件模块………………………………………………………………………9
1、RTC时钟模块………………………………………………………………10
2、LCD驱动模块………………………………………………………………10
3、LCD显示模块………………………………………………………………11
4、字模模块…………………………………………………………………11
5、串口模块……………………………………………………………………12
四、工程结构及软件流程图……………………………………………………12
五、数字钟课设结果图………………………………………………………14
六、课设问题……………………………………………………………………14
七、总结…………………………………………………………………………15
八、参考文献……………………………………………………………………15
九、附录………………………………………………………………………15
一、设计原理及基本方案
1、设计原理
(1)实时时钟RTC模块
S3C2410A实时时钟单元是处理器集成的片内外设,由开发板上的后备电池供电,可以在系统电源关闭的情况下运行,RTC发送8位BCD码数据到CPU。
传送的数据包括秒、分、时、星期、日期、月份和年份。
RTC单元时钟源频率由外部32.768kHz晶振提供,可以实现闹钟(报警)功能及时间片中断、置0计数功能。
如图1-1。
图1-1RTC框图
RTC最重要的功能就是显示时间,是通过读/写寄存器实现的。
要显示秒、分、时、日期、月、年,CPU必须读取存于BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BCDDATE、BCDMON与BCDYEAR寄存器中得值。
时间的设置也是通过以上的寄存器实现的,即以上寄存器是可读写的。
(2)RTC特殊功能寄存器
所有RTC寄存器都是字节型的,必须使用字节型访问指令(STRB、LDRB)或者字符型指令访问。
在小端模式和大端模式中所采用的地址不同,这里采用小端模式的地址。
①时钟BCD数据寄存器
时钟BCD数据寄存器用于保存RTC的实时数据,包括BCDSEC、BCDMIN、BCDHOUR、BCDDATE、BCDDAY、BCDMON和BCDYEAR等7个寄存器,如表1-1所列。
表1-1时钟数据寄存器
寄存器
地址
读写操作
描述
复位值
BCDSEC
0x57000070
读/写
BCD秒数据寄存器
未定义
BCDMIN
0x57000074
BCD分数据寄存器
BCDHOUR
0x57000078
BCD时数据寄存器
BCDDATE
0x5700007C
BCD日数据寄存器
BCDDAY
0x57000080
BCD星期数据寄存器
BCDMON
0x57000084
BCD月数据寄存器
BCDYEAR
0x57000088
BCD年数据寄存器
BCDSEC用于保存报警的秒数据,其中的位[6:
0]SECDATA保存报警秒数据的BCD码,位[6:
4]取值0-5,位[3:
0]取值09。
BCDMIN用于保存报警的分数据,其中的位[6:
0]MINDATA保存报警分数据的BCD码,位[6:
0]取值0-9。
BCDHOUR用于保存报警的时数据,其中的位[5:
0]HOURDATE保存报警时数据的BCD码,位[5:
4]取值0-2,位[3:
BCDDATE用于保存报警的日数据,其中的位[5:
0]DATEDATA保存报警日数据的BCD码,取值0-28、29、30、31,位[5:
4]取值0-3,位[3:
BCDDAY用于保存报警的星期数据,其中的位[2:
0]DAYDATA保存报警星期数据的BCD码,取值1-7。
BCDMON用于保存报警的月数据,其中的位[4:
0]MONDATA保存报警月数据的BCD码,位[4]取值0-1,位[3:
BCDYEAR用于保存报警的年数据,其中的位[7:
0]YEARDATA保存报警年数据的BCD码,取值00-99。
②实时时钟控制寄存器
实时时钟控制寄存器RTCCON如表1-2所列,共有四位。
表1-2实时时钟控制寄存器
RTCCON
0x57000040
RTC控制寄存器
0x0
各位定义如下:
[3]CLKRST:
RTC时钟计数器复位。
0=不复位;
1=复位。
[2]CNTSEL:
BCD计数器选择。
0=合并BCD计数器;
1=保留(即分离BCD计数器)。
[1]CLKSEL:
BCD时钟选择。
0=采用XTAL的1/215作为时钟;
1=保留(XTAL时钟仪用于测试)。
[0]RTCEN:
RTC控制使能。
0=禁止;
1=使能。
RTCEN控制BCD寄存器的读/写使能,CLKSEL、CNTSEL和CLKRST用于测试。
RTCEN控制着CPU和RTC的所有接口,为了使能数据可读/写,在系统复位后RTCEN应该置1。
(3)串口通信模块
S3C2410A串行通信单元UART提供2个独立的异步串行通信口,皆可工作于中断和DMA模式。
最高波特率达115200b/s。
每个UART单元包含一个16字节FIFO,用于数据接收和发送。
此外,每个UART模块还包含可编程波特率、红外发送/接收、1个或2个停止位、5/6/7/8位数据宽度和奇偶校验。
通过初始化好串口,与RTC进行通信,来设置RTC当前时间及报警时间。
(4)液晶显示LCD模块
S3C2410A处理器集成了LCD控制器,支持4位单扫描、4位双扫描和8位单扫描工作方式。
处理器使用内部RAM区作为显示缓存,并支持屏幕水平和垂直滚动显示。
数据的传送采用DMA(直接内存访问)方式,以达到最小延迟。
根据实际硬件水平和垂直像素点数、传送数据位数、时间线和帧速率方式等进行编程,以支持多种类型的显示屏。
LCD控制器主要液晶屏显示数据的传送、时钟和各种信号的产生与控制功能。
2、基本方案
本课设电子时钟的设计主要是将RTC模块中的时间传到LCD上进行实时显示;
此外,通过串口与PC机通信,设置RTC模块中当前时间及报警时间,其结构框图如图1-2所示:
图1-2整体结构框图
二、软件设计
1、基本思路
(1)读写RTC模块
S3C2410A内部集成了RTC模块,通过读取RTC模块中寄存器BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BCDDATE、BCDMON和BCDYEAR的值得到当前的相应的时间值。
还可以往这些寄存器里写值以设置当前的时间值。
(2)串口通信UART模块
采用S3C44B0X的UART模块,利用PC机进行当前时钟时间和时钟报警时间的设置。
设置时间时S3C2410A发送新的时间值到BCDYEAR、BCDMON、BCDDAY、BCDHOUR、BCDMIN、BCDSEC修改当前时间。
(3)液晶屏LCD640*480显示设计
使用液晶屏显示最基本的是像素控制数据的使用。
像素控制数据的存放与传送形式决定了显示的效果,图形显示可以直接使用像素控制函数实现,把像素控制数据按一定形式存入即可实现字符显示。
本次课设通过调用字符显示函数,将读取的实时时钟送到LCD上显示。
2、软件流程图
本次课设程序设计基于S3C2410A嵌入式开发平台,并结合PC的超级终端完成RTC模块的初始化、时间显示(显示于超级终端)、时间设置、重置测试、报警测试等功能。
其程序开发流程如图2-1所示。
图2-1软件流程图
3、主要代码说明
各函数功能如下:
Rtc_Init():
RTC模块初始化函数。
该函数主要实现对BCD数据初始化,当其他函数读取初始化时间时,可以调用此函数。
Rtc_TineSet():
时间设置功能函数。
该函数调用Uart_GetIntNum()函数从超级终端读入整型数字,由用户完成对当前时间的修改。
RndRst_Rtc():
重置测试功能函数。
该函数通过对Rtc_TimeSet()函数的调用完成用户当前时间设置,然后通过修改RTCRST寄存器,实现重置边界的修改,进而通过对Uart_Printf()函数的调用,显示输出时间。
用户可以观察重置后的时间,来测试重置功能。
Test_Rtc_Alarm():
报警测试功能函数。
该函数完成RTC初始化,通过清除RTC模块的中断屏蔽位,产生报警,然后再设置中断屏蔽位,关闭中断。
Test_Rtc_Tick():
时钟滴答测试功能函数。
通过寄存器RTICNT设置时钟滴答周期,再通过调用Uart_Printf()输出时钟滴答具体值。
报警中断开与时钟滴答完成相应中断状态位和中断挂起位开中断的功能。
相应的功能可以查看S3C2410A的中断模块。
Display_Rtc():
显示时间功能函数。
三、软件模块
在本次软件设计中,采用C语言模块化的设计思想,分别编写RTC时钟模块;
LCD驱动模块;
LCD显示模块;
UART模块;
字模模块;
延时模块;
LED模块;
组合各个模块功能设计实现数字时钟。
1、RTC时钟模块
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 数字 设计 报告