基于ARMS3C2440的电子时钟设计.doc

返回 举报
资源描述
目录 一 设计功能 1 二 系统设计思路 2 三 详细设计 3 1 硬件设计 3 2 软件设计 4 四 调试结果与分析 6 附 录 7 参考文献 19 一 设计功能 时钟 自从它发明的那天起 就成为人类的朋友 但随着时间的推移 科 学技术的不断发展 人们对时间计量的精度要求越来越高 应用越来越广 怎 样让时钟更好的为人民服务 怎样让我们的老朋友焕发青春呢 这就要求人们 不断设计出新型时钟 现今 高精度的计时工具大多数都使用了石英晶体振荡器 由于电子钟 石英表 石英钟都采用了石英技术 因此走时精度高 稳定性好 使用方便 不需要经常调校 数字式电子钟用集成电路计时时 译码代替机械式传动 用 LED显示器代替显示器代替指针显示进而显示时间 减小了计时误差 这种表 具有时 分 秒显示时间的功能 还可以进行时和分的校对 片选的灵活性好 时钟电路在计算机系统中起着非常重要的作用 是保证系统正常工作的基 础 在一个单片机应用系统中 时钟有两方面的含义 一是指为保障系统正常 工作的基准振荡定时信号 主要由晶振和外围电路组成 晶振频率的大小决定 了单片机系统工作的快慢 二是指系统的标准定时时钟 即定时时间 它通常 有两种实现方法 一是用软件实现 即用单片机内部的可编程定时 计数器来实 现 但误差很大 主要用在对时间精度要求不高的场合 二是用专门的时钟芯 片实现 在对时间精度要求很高的情况下 通常采用这种方法 典型的时钟芯 片有 DS1302 DS12887 X1203 等都可以满足高精度的要求 二 系统设计思路 本系统主要有四大部分两大模块组成 分别是硬件模块 电源 晶振 S3C2440 处理器和软件模块时钟模块 主要由 LCD提供功能 1 时钟模块设计 本模块是电子时钟功能实现的主要模块 也是本次课程设计的核心模块 本模块实现的功能主要有 时间计时 钟面时间显示 数字时间显示 其中 时间计时功能和在 LCD上显示数字钟显示功能较易实现 之前的单 片机课程设计和 HDL课程设计均有所涉及 计时使用 S3C44B0X内部时钟脉冲和 分频实现 在 LCD上显示数字钟显示使用 LCD数字显示功能实现 除此之外 需要在整个移植后的系统中初始化堆栈并设定任务 通过任务 完成时钟的各项功能 2 S3C2440 处理器的应用 通过对 S3C2240处理器的学习 可以利用其内部的 RTC单元和 LCD控制器 外接 LCD模块 晶振和电源实现电子实时时钟的功能 主要实现方法为 通过电源和晶振保证处理器的正常工作和时钟来源 通 过编程设定 RTC单元的工作模式 实现实时时钟的功能 然后根据所要求显示 的图形效果 编写程序设定 LCD控制器的相应寄存器 将 RTC单元和 LCD控制 器合理有效地结合起来 最终由 LCD模块作出相应动作 完成实时时钟的显示 功能 系统设计总体框图如图 2 1所示 图 2 1系统设计框图 三 详细设计 1 硬件设计 1 S3C2440 处理器简介 S3C2440是 SANSUNG公司推出的一款功能强大 功耗较低的基于 ARM920T 为核心的嵌入式处理器 它满足了小型手持设备和普通应用要求的低功耗和高 性能需求 是一种实用的小型芯片微控制器 为了进一步降低系统的成本 S3C2440芯片还提供了非常丰富的内部设备 基于 ARM920T内核 S3C2440 支持 JTAG仿真器调试 并且具备了 16KB的指令缓存和数据缓存 此外 之前也介 绍过了它支持 Win CE uc os 和 Linux等操作系统 具有很强的扩展能力 S3C2440具有 MMU功能 支持有外部存储控制器 可提供访问外部存储器所需 要的存储器控制信号 2 RTC 存储寄存器 实时时钟 RTC 器件是一种能提供日历 时钟 数据存储等功能的专用集 成电路 常用作各种计算机系统的时钟信号源和参数设置存储电路 RTC 具有 计时准确 耗电低和体积小等特点 特别适用于在各种嵌入式系统忠记录事件 S3C2440 处理器 晶振 电源 控制程序 RTC LCD LCD 模块 发生的时间和相关信息 尤其是在通信工程 电力自动化 工业控制等自动化 程度较高领域的无人职守环境 随着集成电路技术的不断发展 RTC 器件的新 品也不断推出 这些新品不仅具有准确的 RTC 还有大容量的存储器 温度传 感器和 A D数据采集通道等 已成为集 RTC 数据采集和存储于一体的综合功 能器件 特别适用于以微控制器为核心的嵌入式系统 S3C2440实时时钟单元是处理器集成的片内外设 由开发板上的后备电池 供电 可以在系统电源关闭的情况下运行 RTC 发送 8位 BCD码数据到 CPU 传 送的数据包括秒 分 小时 星期 月份和年份 RTC 单元时钟源由外部 32 768kHz 晶振提供 可以实现闹钟 报警 功能 访问 RTC模块的寄存器 首先要社 RTCCON的位 0位 1 CPU 通过读取 RTC 模块中寄存器 BCDSEC BCDMIN BCDHOUR BCDDAY BCDDATE BCDMON 和 BCDYEAR的值 得到当前的相应时间值 但是 由于多个寄存器一次读出 所 以由可能产生错误 例如 用户一次读取年 1989 月 12 日 31 时 23 分 59 秒 59 当秒数位 1 59 时 无任何问题 但是 当秒数位 0时 当前时间和日期就变成了 1990年 1月 1日 0时 0分 在这种情况下 秒 数位 0 用户应该重新读取年份到分钟的值 3 电源 RTC单元可以使用后后备电池通过引脚 RTCVDD供电 当系统关闭电源以后 CPU和 RTC的接口电路被阻断 后备电池只需要驱动晶振和 BCD计数器 从而 达到最小功耗 2 软件设计 1 LCD 模块 本模块的主要功能完成 LCD的初始化 加载 LCD驱动程序 使 LCD与 S3C2440实现对接 完成显示功能 目前 许多常用的 LCD模块一般自身都不 带有字库 而实际应用中人机界面又经常需要显示中英文字符 对于不带字库 的 LCD模块显示字符的解决方法通常是利用字模提取软件来进行预处理 即将 系统中可能用到的字符一一将其字模提取出来 并将字模数据存放在程序空间 中 该方法只适用于显示字符固定且数量较入式系统中 灵活性差 考虑到嵌 入式系统一般带有一定容量的 ROM存储系统 本文以无字的图形 LCD模块为例 搭建了以 ARM9微处理器 S3C2440为基础的嵌式系统工作平台 在此平台的基础 上 讨论了一种基于自制硬件字库的中英文字符显示方案 LCD控制器的作用是将系统存储器中的 LCD图像数据传送到外部 LCD驱动 器中 并产生必须的 LCD控制信号 S3C2440LCD 控制器支持在灰白 LCD上的单 色 4 级灰度 16 级灰度显示 也能与彩色 LCD接口支持最大 256色的显示 可以编程支持不同水平和垂直点数 64O 480 320 240 160 160 等 不同 数据线宽度 不同接口时序和刷新速率的 LCD 支持 4位双扫描 4 位单扫描 8位单扫描的 LCD显示器 并支持水平 垂直卷动 以用来支持更大的屏幕显 示 如 1280 1280 S3C44BOX 支持查找表 用于各种色彩选择或灰度级别的 选择 在灰度模式中 通过查找表可以在 16级灰度中选择四种灰度 在彩色模 式中 一个字节的图像数据是用 3位表示红色 3 位表示绿色 2 位表示蓝色 通过查找表可以选择 16级红色中的 8种红色 16 级绿色中的 8种绿色和 16级 蓝色中的 4种蓝色 S3C2440 中具有内置的 LCD 控制器 它能将显示缓存 在 SDRAM存储器中 中的 LCD图像数据传输到外部的 LCD驱动电路上的逻辑功能 它支持单色 4 级 16 级灰度 LCD显示 以及 256彩色 LCD显示 在显示灰度时 它采用时间 抖动算法 time based dithering algorithm 和帧率控制 Frame Rate Control 方法 在显示彩色时 它采用 RGB的格式 即 RED GREEN BLUE 三 色混合调色 通过软件编程 可以实现 233或 332的 RGB调色的格式 对于不 同尺寸的 LCD显示器 它们会有不同的垂直和水平象素点 不同的数据宽度 不同的接口时间及刷新率 通过对 LCD 控制器中的相应寄存器写入不同的值 来配置不同的 LCD 显示板 S3C2440中内置的 LCD 控制器提供了下列外部接口信号 VFRAME LCD 控制器和 LCD 驱动器之间的帧同步信号 它通知 LCD屏开始 显示新的一帧 LCD 控制器在一个完整帧的显示后发出 VFRAME 信号 VLINE LCD 控制器和 LCD 驱动器间的同步脉冲信号 LCD 驱动器通过它 来将水平移位寄存器中的内容显示到 LCD 屏上 LCD 控制器在一整行数据全部 传输到 LCD 驱动器后发出 VLINE 信号 VCLK LCD 控制器和 LCD 驱动器之间的象素时钟信号 LCD 控制器在 VCLK 的上升沿发送数据 LCD 驱动器在 VCLK 的下降沿采样数据 VM LCD 驱动器所使用的交流信号 LCD 驱动器使用 VM 信号改变用于打 开或关闭象素的行和列电压的极性 VM 信号在每一帧触发 也可通过编程在一 定数量的 VLINE 信号后触发 VD 3 0 LCD 象素数据输出端口 VD 7 4 LCD 象素数据输出端口 LCD 控制器包含 REGBANK LCDCDMA VIDPRCS 和 TIMEGEN REGBANK 具有 18 个可编程寄存器 用于配置 LCD 控制器 LCDCDMA 为专用的 DMA 它可以自 动地将显示数据从帧内存中传送到 LCD 驱动器中 通过专用 DMA 可以实现在 不需要 CPU 介入的情况下显示数据 VIDPRCS 从 LCDCDMA 接收数据 将相应格 式 比如 4 8 位单扫描和 4 位双扫描显示模式 的数据通过 VD 7 0 发送到 LCD的驱动器上 TIMEGEN 包含可编程的逻辑 以支持常见的 LCD 驱动器所需 要的不同接口时间和速率的要求 TIMEGEN 部分产 VFRAME VLINE VCLK VM 等信号 S3C2440处理器与 LCD显示器的连接示意图如 3 1所示 图 3 1S3C2440与 LCD显示器的连接图 四 调试结果与分析 1 通过编译调试在有 S3C2440实验箱中进行调试 LCD 显示结果如图所 示 图 4 1 LCD调试结果显示 屏幕右上角显示出学号姓名和作品信息 屏幕中间显示的是钟面 有时针 分针和秒针 显示实时时间 屏幕下方显示的是数字时钟 显示时分秒 与钟面时间相对应 和年月日 2 本课程设计属于嵌入式系统项目设计 嵌入式微处理器 S3C2440和 LCD模 S3C2440 LCD 显示器LCD 模块 块 实现如下功能 LCD显示 钟面 样式 时针 分针 秒针显示实时时间 LCD显示 数字钟 样式 动态显示年 月 日 时 分 秒 显示时间可以修改并保持 钟面 与 数字钟 时间保持一致 LCD左上角动态显示小组成员姓名 学号及选题信息 3 本课程设计完成选题要求 但是有如下方面还需分析改进 钟面 现实不够精确 分针和时针只设定了 60个坐标位置 分针和时针 走动不均匀 数字钟部分尚未考虑到 大月 和 小月 以及 平年 和 闰年 的日 期问题 所有月份均设定为 30天 时间修改麻烦 需要对源程序中设定的初值进行修改 无法通过键盘对时 间进行修改 未调用 S3C2440内部实时时钟 RTC 模块 不能显示出精确的内部实时时 间 附 录 源程序 include inc config h define STACKSIZE 256 define x line 160 define y line 80 OS STK DATA stk extern GUI FONT CHINESE FONT12 extern GUI FONT CHINESE FONT16 extern GUI FONT GUI Font8x16 OS EVENT Send LCD Sem OS EVENT Key Mbox I8 Hour 3 Min 3 Sec 3 I8 hour 0 min 0 sec 0 ms I8 YEA1 3 YEA2 3 MON 3 DAY 3 int yea1 20 yea2 11 mon 6 day 23 I8 XH0 3 XH1 3 XH2 3 XH3 3 I8 XH4 3 XH5 3 XH6 3 XH7 3 char xh0 01 xh1 62 xh2 31 xh3 03 char xh4 32 xh5 36 xh6 02 xh7 12 int TimeCount 0 int SpaceXS 61 160 165 170 175 180 185 189 193 197 201 205 206 207 208 209 210 209 208 207 206 205 201 197 193 189 185 180 175 170 165 160 155 150 145 140 135 131 127 123 119 115 114 113 112 111 110 111 112 113 114 115 119 123 127 131 135 140 145 150 155 160 SpaceYS 61 30 31 32 33 34 35 39 43 47 51 55 60 65 70 75 80 85 90 95 100 105 109 113 117 121 125 126 127 128 129 130 129 128 127 126 125 121 117 113 109 105 100 95 90 85 80 75 70 65 60 55 51 47 43 39 35 34 33 32 31 30 SpaceXM 61 160 164 168 172 176 180 183 186 189 192 195 196 197 198 199 200 199 198 197 196 195 192 189 186 183 180 176 172 168 164 160 156 152 148 144 140 137 134 131 128 125 124 123 122 121 120 121 122 123 124 125 128 131 134 137 140 144 148 152 156 160 SpaceYM 61 40 41 42 43 44 45 48 51 54 57 60 64 68 72 76 80 84 88 92 96 100 103 106 109 112 115 116 117 118 119 120 119 118 117 116 115 112 109 106 103 100 96 92 88 84 80 76 72 68 64 60 57 54 51 48 45 44 43 42 41 40 SpaceXH 13 160 175 185 190 185 175 160 145 135 130 135 145 160 SpaceYH 13 50 55 65 80 95 105 110 105 95 80 65 55 50 Placex void Display xh1 char xx1 char yy1 void Display xh2 char xx2 char yy2 void Display xh3 char xx3 char yy3 void show I8 s void Shows show sec Set Color GUI GRAY 擦除上一秒的 Draw Line x line y line Placex Placey Placex Placex 1 Placey Placey 1 Set Color GUI YELLOW 显示下一秒的 Draw Line x line y line Placex Placey Set Color GUI RED 显示下一分的 Draw Line x line y line Placexm Placeym Set Color GUI GREEN 显示下一时的 Draw Line x line y line Placexh Placeyh if Placex Placey void Showm Set Color GUI GREEN Fill Circle 288 50 25 Set Color GUI RED Fill Circle 280 50 10 Fill Circle 296 50 10 Fill Circle 288 40 10 Fill Circle 288 60 10 Set Color GUI YELLOW Fill Circle 288 50 5 Set Color GUI GRAY 擦除上一分的 Draw Line x line y line Placexm Placeym Placexm Placexm 1 Placeym Placeym 1 Set Color GUI RED 显示下一分的 Draw Line x line y line Placexm Placeym Set Color GUI GREEN 显示下一时的 Draw Line x line y line Placexh Placeyh if Placexm Placeym void Showh Set Color GUI YELLOW Fill Circle 288 50 25 Set Color GUI GREEN Fill Circle 280 50 10 Fill Circle 296 50 10 Fill Circle 288 40 10 Fill Circle 288 60 10 Set Color GUI RED Fill Circle 288 50 5 Set Color GUI GRAY 擦除上一时的 Draw Line x line y line Placexh Placeyh Placexh Placexh 1 Placeyh Placeyh 1 Set Color GUI GREEN 显示下一时的 Draw Line x line y line Placexh Placeyh if Placexh Placeyh void Shouw Cricle 整 点 Set Color GUI YELLOW Fill Circle 160 30 2 12点 x y r Fill Circle 135 35 2 11 点 x y r Fill Circle 115 55 2 10 点 x y r Fill Circle 110 80 2 9 点 x y r Fill Circle 115 105 2 8 点 x y r Fill Circle 135 125 2 7 点 x y r Fill Circle 160 130 2 6 点 x y r Fill Circle 185 125 2 5 点 x y r Fill Circle 205 105 2 4 点 x y r Fill Circle 210 80 2 3 点 x y r Fill Circle 205 55 2 2点 x y r Fill Circle 185 35 2 1点 x y r Set Color GUI WHITE Fill Circle 165 31 1 Fill Circle 170 32 1 Fill Circle 175 33 1 Fill Circle 180 34 1 Fill Circle 189 39 1 Fill Circle 193 43 1 Fill Circle 197 47 1 Fill Circle 201 51 1 Fill Circle 206 60 1 Fill Circle 207 65 1 Fill Circle 208 70 1 Fill Circle 209 75 1 Fill Circle 209 85 1 Fill Circle 208 90 1 Fill Circle 207 95 1 Fill Circle 206 100 1 Fill Circle 201 109 1 Fill Circle 197 113 1 Fill Circle 193 117 1 Fill Circle 189 121 1 Fill Circle 180 126 1 Fill Circle 175 127 1 Fill Circle 170 128 1 Fill Circle 165 129 1 Fill Circle 155 129 1 Fill Circle 150 128 1 Fill Circle 145 127 1 Fill Circle 140 126 1 Fill Circle 131 121 1 Fill Circle 127 117 1 Fill Circle 123 113 1 Fill Circle 119 109 1 Fill Circle 114 100 1 Fill Circle 113 95 1 Fill Circle 112 90 1 Fill Circle 111 85 1 Fill Circle 111 75 1 Fill Circle 112 70 1 Fill Circle 113 65 1 Fill Circle 114 60 1 Fill Circle 119 51 1 Fill Circle 123 47 1 Fill Circle 127 43 1 Fill Circle 131 39 1 Fill Circle 140 34 1 Fill Circle 145 33 1 Fill Circle 150 32 1 Fill Circle 155 31 1 void Delay int time void ChangeForm char Time char time Time 0 time 10 48 Time 1 time 10 48 Time 2 0 void Display Time char x char y ChangeForm Hour hour ChangeForm Min min ChangeForm Sec sec ChangeForm MON mon ChangeForm DAY day ChangeForm YEA1 yea1 ChangeForm YEA2 yea2 Disp String Hour x 160 Disp String x 16 160 Disp String Min x 24 160 Disp String x 40 160 Disp String Sec x 48 160 Disp String YEA1 x 180 Disp String YEA2 x 16 180 Disp String x 32 180 Disp String MON x 40 180 Disp String x 56 180 Disp String DAY x 64 180 void Show Color Set Color GUI BLUE Fill Rect 0 0 319 239 Set Color GUI RED Set BkColor GUI BLUE Fill Rect 0 0 319 2 Fill Rect 0 0 2 239 Fill Rect 0 237 319 239 Fill Rect 317 0 319 239 Set Color GUI RED Set Font Disp String CN start 姓名 CN end 5 210 Disp String CN start 学号 CN end 210 210 Set Color GUI WHITE Fill Rect 79 17 242 20 上线 x0 y0 x1 y1 Fill Rect 79 20 82 202 左线 x0 y0 x1 y1 Fill Rect 238 20 242 202 右线 x0 y0 x1 y1 Fill Rect 79 199 242 202 下线 x0 y0 x1 y1 Set Color GUI LIGHTRED Fill Rect 83 21 237 198 分配各任务的堆栈容量 OS STK Stack Task 1 STACKSIZE OS STK Stack Task 2 STACKSIZE 3 void Task 3 I8 s I8 display for Delay 100 display Set Color GUI RED Display xh1 5 180 if display 1000 display 0 函数名称 Task 2 void pdata 函数说明 GUI 任务 优先级为 9 输入参数 pdata 输出参数 无 void Task 2 void pdata for Show Color Shouw Cricle Set Color GUI RED sec 0 Set Color GUI YELLOW 显示 Draw Line x line y line Placex Placey Display Time 130 160 时间 do Delay 1200 sec Shows if sec 60 sec 0 min Showm if min 60 min 0 hour Showh if hour 23 hour 0 day if day 32 day 1 mon if mon 13 mon 1 yea1 Display Time 130 160 时间 日期 while 1 void Task 1 void pdata Rtc Tick Init 打开时钟节拍 让操作系统跑起来 OSTaskCreate Task 2 void 0 OS STK for OSTimeDly 50 时钟屏幕显示 void Main void Target Init ARMII实验系统的初始化 包括 CPU板 GUI Init OSInit OSTaskCreate Task 1 void 0 OS STK 创建任务一 OSStart 参考文献 1 王勇 嵌入式系统原理与设计 M 杭州 浙江大学大学出版社 2007 2 耿辉等 S3C44B0X 的 LCD 显示解决方案 中国科技论文在线 2007 3 SAMSUNG 公司 S3C44B0X 数据手册 2006 5 林志琦等 ARM 微控制器与液晶屏接口的研究 J 长春大学学报 2010 20 2 71 74 课程设计总结 本次课程设计是嵌入式系统项目设计 是在本学期我们学完了嵌入式系统 课程以后相应的课程设计 我们自己查找了许多关于 S3C2440 和 LCD 的资料 和文献作为课程设计的知识储备 同时也参考了去年学长学姐完成的课题 取 人之长 补己之短 经过我们的努力 在老师同学的帮助下 我们顺利完成了 课程设计 对嵌入式系统的硬件 软件有了更为深入的了解 也深入掌握了嵌 入式系统设计的基本方法 达到了预期的目的 本次课程设计首先要感谢老师 对我们的课程设计给予了充分的关怀和帮 助 然后要感谢我的同学 帮助我完成了本次课程设计 指导教师评语 指导教师 签字 年 月 日 课程设计成绩
展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
相关搜索

当前位置:首页 > 其他分类 > 大学论文


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!