




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ARM 嵌入式系统 课程设计报告 题 目 数字钟的设计 院 系 信息科学与工程学院 专业班级 通信工程 1103 学生姓名 学 号 指导教师 2014 年 5 月 26 日至 2014 年 6 月 6 日 华中科技大学武昌分校制 2 嵌入式系统嵌入式系统 课程设计任务书课程设计任务书 一 设计 调查报告一 设计 调查报告 论文 题目论文 题目 课题 数字钟的设计课题 数字钟的设计 二 设计 调查报告二 设计 调查报告 论文 主要内容论文 主要内容 掌握定时器的使用方法 利用串口 数码管 点阵或者液晶屏进行日期 时间掌握定时器的使用方法 利用串口 数码管 点阵或者液晶屏进行日期 时间 的实时显示 并可以根据需要进行调整 的实时显示 并可以根据需要进行调整 三 原始资料三 原始资料 开发板的原理图 课设讲义 开发板的原理图 课设讲义 四 要求的设计 调查四 要求的设计 调查 论文 成果论文 成果 使用开发板或实验箱实现一个数字钟 使用开发板或实验箱实现一个数字钟 根据原理图完成实验方案的设计 根据原理图完成实验方案的设计 实时显示日期 时间 可以利用串口发送到上位机显示或利用数码管 点实时显示日期 时间 可以利用串口发送到上位机显示或利用数码管 点 阵 液晶屏显示 阵 液晶屏显示 具备时间调整功能 具备时间调整功能 在实验完成的基础上完成课程设计报告的撰写 按照模板的格式书写 要在实验完成的基础上完成课程设计报告的撰写 按照模板的格式书写 要 求有软件流程图和详细的调试过程 求有软件流程图和详细的调试过程 3 五 进程安排五 进程安排 时间时间内容内容地点地点 1515 周周一上午周周一上午课题讲解 选题课题讲解 选题 11 60211 602 1515 周周一下午周周一下午软硬件准备 清理软硬件准备 清理实验楼实验楼 402402 403403 1515 周周二至周三周周二至周三课题分析 收集资料 完成设课题分析 收集资料 完成设 计方案计方案 实验楼实验楼 402402 403403 图书 图书 馆馆 1515 周周四至周五周周四至周五详细设计 编写代码详细设计 编写代码实验楼实验楼 402402 403403 1616 周周一至周三周周一至周三系统调试系统调试实验楼实验楼 402402 403403 1616 周周四周周四成果验收成果验收实验楼实验楼 402402 403403 1616 周周五周周五整理文档 撰写提交课设报告整理文档 撰写提交课设报告实验楼实验楼 402402 403403 六 主要参考资料六 主要参考资料 见下发的课程设计资料见下发的课程设计资料 指导教师 签名 指导教师 签名 2020 年年 月月 日日 4 目 录 一 设计原理及基本方案 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 5 一 设计原理及基本方案 1 设计原理 1 实时时钟 RTC 模块 S3C2410A 实时时钟单元是处理器集成的片内外设 由开发板上的后备电池供电 可以在系统电源关闭的情况下运行 RTC 发送 8 位 BCD 码数据到 CPU 传送的数 据包括秒 分 时 星期 日期 月份和年份 RTC 单元时钟源频率由外部 32 768 kHz 晶振提供 可以实现闹钟 报警 功能及时间片中断 置 0 计数功 能 如图 1 1 图 1 1 RTC 框图 RTC 最重要的功能就是显示时间 是通过读 写寄存器实现的 要显示秒 分 时 日期 月 年 CPU 必须读取存于 BCDSEC BCDMIN BCDHOUR BCDDAY BCDDATE BCDMON 与 BCDYEAR 寄存器中得 值 时间的设置也是通过以上的寄存器实现的 即以上寄存器是可读写的 2 RTC 特殊功能寄存器 所有 RTC 寄存器都是字节型的 必须使用字节型访问指令 STRB LDRB 或者字符型指令访问 在小端模式和大端模式中所采用的地址不同 这里采用 6 小端模式的地址 时钟 BCD 数据寄存器 时钟 BCD 数据寄存器用于保存 RTC 的实时数据 包括 BCDSEC BCDMIN BCDHOUR BCDDATE BCDDAY BCDMON 和 BCDYEAR 等 7 个寄存 器 如表 1 1 所列 表 1 1 时钟数据寄存器 寄存器地 址读写操作描 述复位值 BCDSEC0 x57000070读 写BCD 秒数据寄存器未定义 BCDMIN0 x57000074读 写BCD 分数据寄存器未定义 BCDHOUR0 x57000078读 写BCD 时数据寄存器未定义 BCDDATE0 x5700007C读 写BCD 日数据寄存器未定义 BCDDAY0 x57000080读 写BCD 星期数据寄存器未定义 BCDMON0 x57000084读 写BCD 月数据寄存器未定义 BCDYEAR0 x57000088读 写BCD 年数据寄存器未定义 BCDSEC 用于保存报警的秒数据 其中的位 6 0 SECDATA 保存报警秒数据的 BCD 码 位 6 4 取值 0 5 位 3 0 取值 0 9 BCDMIN 用于保存报警的分数据 其中的位 6 0 MINDATA 保存报警分数据的 BCD 码 位 6 4 取值 0 5 位 3 0 取值 0 9 BCDHOUR 用于保存报警的时数据 其中的位 5 0 HOURDATE 保存报警时数据 的 BCD 码 位 5 4 取值 0 2 位 3 0 取值 0 9 BCDDATE 用于保存报警的日数据 其中的位 5 0 DATEDATA 保存报警日数据 的 BCD 码 取值 0 28 29 30 31 位 5 4 取值 0 3 位 3 0 取值 0 9 BCDDAY 用于保存报警的星期数据 其中的位 2 0 DAYDATA 保存报警星期数 据的 BCD 码 取值 1 7 BCDMON 用于保存报警的月数据 其中的位 4 0 MONDATA 保存报警月数据的 BCD 码 位 4 取值 0 1 位 3 0 取值 0 9 BCDYEAR 用于保存报警的年数据 其中的位 7 0 YEARDATA 保存报警年数据 的 BCD 码 取值 00 99 实时时钟控制寄存器 7 实时时钟控制寄存器 RTCCON 如表 1 2 所列 共有四位 表 1 2 实时时钟控制寄存器 寄存器地 址读写操作描 述复位值 RTCCON0 x57000040读 写RTC 控制寄存器0 x0 各位定义如下 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 控制器主要液晶屏显示数据的传 送 时钟和各种信号的产生与控制功能 8 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 的超级终端 PC串口 RTC 模块 LCD 显示 9 完成 RTC 模块的初始化 时间显示 显示于超级终端 时间设置 重置测试 报警测试等功能 其程序开发流程如图 2 1 所示 RTC 初 始 化 时 间 显 示 LCD 初 始 化 时 间 设 置 程 序 入 口 点 串 口 初 始 化 主 函 数 2410A 初 始 化 时设置 分设置 秒设置 图 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 显示时间功能函数 三 软件模块 在本次软件设计中 采用 语言模块化的设计思想 分别编写 RTC 时钟 10 模块 LCD 驱动模块 LCD 显示模块 UART 模块 字模模块 延时模块 LED 模 块 组合各个模块功能设计实现数字时钟 1 RTC 时钟模块 RTC 最重要的功能就是显示时间 RTC 模块能够在系统断电的情况下由后 备电池供电继续工作 它能将 8 位数据转换为 BCD 码的格式传送给 CPU 这些 数据包括秒 分 时 日期 星期 月 年 RTC 模块需要一个外部晶振提供 32 768kHz 的频率才能工作 它也能完成报警功能 通过 CPU 读取存于 BCDSEC BCDMIN BCDHOUR BCDDAY BCDDATE BCDMON 与 BCDYEAR 寄存器中的值来实现显示时间 2 LCD 驱动模块 实现 LCD 相关寄存器的配置 包括 LCD Init 和 LCD Refresh 两个功能函数 定义全局数组 LCDBufferII2 480 640 实现像素点的描绘 函数编写在 LCD640 c 文件中 每个函数封装在 LCD640 h 中供外部调用 11 3 LCD 显示模块 该模块包括汉字显示程序 数字显示程序 实现在 LCD 上的显示功能 12 4 字模模块 字模就是对汉字 数字 图像等需要显示的东西进行编码 通过取模软件 对需要显示的汉字和数字进行取模 因为在 LCD 显示的汉字和数字的字模 程 序中分别对 刘 奇 数 字 时 钟 年 月 日 1 2 3 4 5 6 7 8 9 0 进行了取模编码 5 串口模块 通过超级终端打印出实时时钟的时间 以及报警提示信息等等 4 工程结构及软件流程图 工程设计图 13 软件程序流程图 程序开始 锁相环时钟初始化 串口初始化 MMU 初始化 LCD 初始化 中断初始化 14 报警报警 五 数字钟课设结果图 LCD 显示结果 在 LCD 上显示背景和汉字 RTC 报警RTC 报警中断服务 RTC 显示时间 程序结束 15 6 课设问题 1 如何查看串口信息 解决 在计算机中打开超级终端并设置好参数后 就能显示电子钟信息 设 置参数如下图 16 2 如何查看各个模块的具体信息 解决 可以再主程序中找到调用的模块 鼠标右键后有选项能直接进入模块 七 总结 在本次课程设计中使用的是32 位 ARM 处理器 此次设计是基于嵌入式的数 字时钟的制作 将理论知识和工程实践应用相结合在一起 这使我们深刻了解 了理论知识与应用实践的相关联系 加大了对理论知识的重要性的认识和应用 实践的重要性 也使我们明白了仅仅知道课本上的理论知识是远远不够的 还 需要通过大量的查阅相关资料并通过实际的亲自动手实践才能得到真正的有用 的知识 这次的数字时钟设计主要应用的就是实时时钟和LCD 以及串口和中断等 功能 在课设中我遇到了许多困难 但在老师和同学的帮助下一一解决 最后完 成课设要求 在次过程中我更加深刻的学习了ARM 相关的理论知识 以及一些常 用的中断的设计方法 八 参考文献 1 刘彦文 嵌入式系统原理及接口技术 清华大学出版社2011 年 3 月 2 三星公司 ARM9 三星S3C2410 英文数据手册 3 王波波 ARM9 完全学习手册 九 附录 主程序 include include 17 include def h include option h include 2440addr h include 2440lib h include 2440slib h include mmu h include hanzi h include display h include rtc h include LCD640 h include uart h include rtcalm h define rUTRSTAT0 volatile unsigned 0 x50000010 define rUTRSTAT1 volatile unsigned 0 x50004010 define WrUTXH0 ch volatile unsigned char 0 x50000020 unsigned char ch define WrUTXH1 ch volatile unsigned char 0 x50004020 unsigned char ch define RdURXH0 volatile unsigned char 0 x50000024 define RdURXH1 volatile unsigned char 0 x50004024 void Uart Init int mclk int baud void Uart Select int ch void Uart TxEmpty int ch char Uart Getch void char Uart GetKey void void Uart GetString char string int Uart GetIntNum void void Uart SendByte int data void Uart SendString char pt void Uart Printf char fmt extern int RTC num extern U32 LCDBufferII2 480 640 int Main int argc char argv char c1 1 char err U8 key key1 key2 key3 18 int i j k temp int x 130 列 int y 170 行 U16 year U8 month day U8 hour minute second U8 secondgewei secondshiwei U8 minutegewei minuteshiwei U8 hourgewei hourshiwei U8 daygewei dayshiwei U8 monthgewei monthshiwei U8 yearqian yearbai yearshi yearge ChangeMPllValue 68 1 1 Port Init 端口初始化函数 Uart Select 0 串行 IO 口选择函数 Uart Init 0 115200 串口初始化函数 MMU Init MMU DisableICache MMU DisableDCache LCD Init LCD 初始化 Isr Init RTC 中断初始化 for k 0 k 480 k hang for j 0 j 640 j 列 LCDBufferII2 k j 0 x0000fcf8 上黄框背景 for i 0 i 9 i 显示汉字 LCD Display hanzi 16 16 x y hanzi i 第一参数为 列 第二参 数为 行 y y x x 40 显示名称 LCD Display hanzi 16 16 260 120 hanzi 15 数 19 LCD Display hanzi 16 16 280 120 hanzi 16 字 LCD Display hanzi 16 16 300 120 hanzi 17 时 LCD Display hanzi 16 16 320 120 hanzi 18 钟 显示数字 LCD Refresh 初始化 RTC Time Set rRTCCON 1 while 1 rRTCCON 1 year 0 x2000 rBCDYEAR 年 month rBCDMON 月 day rBCDDATE 日 hour rBCDHOUR 时 minute rBCDMIN 分 second rBCDSEC 秒 rRTCCON RTC read and write disable Uart Printf RTC time 04x 02x 02x 02x 02x 02x n year month day hour minute second dely 20 secondgewei second 0 x10 BCD 码 模 十六进制 送显 secondshiwei second 0 x10 minutegewei minute 0 x10 minuteshiwei minute 0 x10 hourgewei hour 0 x10 hourshiwei hour 0 x10 daygewei day 0 x10 dayshiwei day 0 x10 monthgewei month 0 x10 monthshiwei month 0 x10 yearqian year 0 x1000 20 yearbai year 0 x1000 0 x100 yearshi year 0 x1000 0 x100 0 x10 yearge year 0 x1000 0 x100 0 x10 LCD Display English 8 16 230 210 number yearqian LCD Display English 8 16 240 210 number yearbai LCD Display English 8 16 250 210 number yearshi LCD Display English 8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《英语精读1》课程介绍与教学大纲
- CN120204125A 一种复合改性水凝胶制剂及其制备方法
- 铜及其化合物的性质、制备与实验探究-高考化学考点专项复习(解析版)
- 外研版英语八年级上册Module2单元测试试卷-含答案01
- 老年人婚姻自由权课件
- 天津河东区某中学2024-2025学年七年级下学期期中考试英语试卷(原卷版)
- 青岛版小学三年级科学下册教案(全册)
- 热点话题04 体重管理年(原卷版)-2026年中考英语阅读理解热点话题练习
- 老干部智能设备培训课件
- 老干部局老年人培训课件
- 2023柔性棚洞防护结构技术规程
- 浙江工业大学学生综合测评分细则
- 英语初高中衔接音标
- 第十四章滚动轴承相关设计
- 第1章 数据与统计学-统计学
- GB/T 2059-2000铜及铜合金带材
- GB/T 14456.1-2017绿茶第1部分:基本要求
- 远离电子烟主题班会课件
- 设备维护保养手册
- ZYHZYHC系列自控远红外电焊条烘干炉使用说明书
- 外科学课件:泌尿、男生殖系统外科检查
评论
0/150
提交评论