ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:235.51KB ,
资源ID:18674116      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18674116.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ARM课程设计完结版文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ARM课程设计完结版文档格式.docx

1、第3章 项目设计与实现 93.1 程序设计与实现 93.2 程序功能代码 9第4章 个人总结与改进方案 15摘 要随着科技的发展,嵌入式系统广泛应用于工业控制和商业管理领域,在智能手机、平板电脑、笔记本电脑、车载导航器等方面的应用,更是极大地促进了嵌入式技术深入到生活和工作各个方面。嵌入式系统主要由嵌入式处理器、相关支撑硬件及嵌入式软件系统组成;本课题主要介绍基于S3C2410的实时时钟及闹钟设计与实现,利用RTC模块、IIC,通过八位七段数码管动态显示时间,并在闹钟设定后能通过蜂鸣器报警。实时时钟单元在系统电源关闭的情况下可以在备用电池下继续工作。关键词:S3C2410;RTC;IICAbs

2、tractWith the development of science and technology,the embedded system is widely used in industrial control and in the field of business management,and also greatly promote the embedded technology into the life and work in the smartphone, tablet PC, computer, the application of vehicle navigation,A

3、n embedded system is mainly composed of embedded processor and related support of hardware and embedded software system;This topic mainly introduced that real time clock and alarm clock design based on S3C2410 , utilization of RTC module and IIC, through seven segment digital tube dynamic display of

4、 time,and set the alarm clock through the buzzer alarm. Real time clock unit can continue to work under the backup battery when the system power was turned off .Keyword: S3C2410;第1章 项目分析1.1 项目的背景和意义一般电子系统都会提供实时时钟(RTC)给不同功能使用,例如系统的时间、日期和定时工作的启动,定期唤醒系统执行任务。已有许多系统解决方案将实时时钟(RTC)和完整的“独立”功能整合至微控制器,将微控制器整合

5、的许多好处付诸实现。实时时钟(RTC)由于有了嵌入式的技术支持,已经大量生产,并且广泛地应用于电子信息行业。实时时钟最基本的是可以实现时间和日期等同步,此外,实时时钟还提供了很多比如看门狗等功能。所以,选择RTC芯片除了需要考虑其时间和日期跟踪功能外,还要针对相应的应用来对RTC的功能、成本、功耗、尺寸等进行综合的考虑。本课程设计简单的介绍了时钟的时间同步和闹钟功能的设计与实现。1.2 项目的介绍与设计的目的1) 能够通过键盘输入进入时钟设定模式设定实时时钟的初始参数;2) 能够通过键盘输入进入闹钟设定模式设定闹钟的基本参数,通过调用蜂鸣器实现闹钟报警;3) 通过IIC总线传送键盘的输入信号到

6、CPU;4) ZLG7290控制8位的七段LED数码管显示:00 00 00,分别为时、分、秒;1.3 项目的程序流程图及硬件实验平台程序流程图:硬件实验平台:本次设计主要使用S3C2410芯片内部RTC单元,SPI,IIC总线及Uart0等。ZLG7290是IIC接口键盘及LED 数码管驱动器。提供键盘中断信号,方便与处理器接口,可驱动8位共阴数码管或64只独立LED和64个按键。 图2 S3C2410开发板结构图图3 RTC模块结构图图4 IIC LED控制器连接电路图5 IIC的EEPROM连接电路图6 ZLG7290引脚图1.4 项目的开发及运行环境CodeWarriorforARMD

7、eveloperSuite AXDDebuger H-JTAG 仿真器超级终端第2章 项目内容2.1 实时时钟(RTC)实时时钟(Real Time Clock):S3C2410提供了一个实时时钟,该时钟使用独立的一路1.8V供电,电池与专用于RTC电源的引脚RTCVDD连接,保证主电源切断时能正常维持RTC工作。S3C2410的RTC支持两个中断:Time Tick(固定在一个频率内发出的时钟中断) 和Alarm中断(在某个时刻产生闹铃中断)。利用这两个中断可以设置每一秒中断一次显示变化时间,用Alarm中断实现闹钟功能。S3C2410内部RTC模块结构图,如图3。S3C2410的RTC主要

8、由五部分构成: 时钟发生器 节拍发生器 时间与日期计数器 报警发生器 控制逻辑寄存器有以下组成: 控制寄存器:RTCCON 报警控制寄存器:RTCALM 实时时钟计数器:TICNT 报警时间寄存器:ALMSEC,ALMMIN,ALMHOUR,ALMDATE,ALMMON,ALMYEARRTC最重要的功能就是显示时间。RTC时间显示功能是通过读/写寄存器实现的。要显示秒、分、时、日、月、年,CPU必须读取存于BCDSEC,BCDMIN,BCDHOUR,BCDDAY,BCDDATE,BCDMON与BCDYEAR寄存器中的值。时间的设置也是通过以上的寄存器实现的,即以上寄存器是可读可写的。本课程设计

9、只显示秒、分、时。2.2 IIC总线IIC(InterIntegrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。IIC总线产生于80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询、管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便管理。IIC总线在传送数据过程中共有三种类型信号:开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为低电平时,SDA由低电

10、平向高电平跳变,结束传送数据。应答信号:接收数据的IIC在接收到8 bit数据后,向发送数据的IIC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况做出是否继续传递信号的判断。若未收到应答信号,则判断为受控单元出现故障。图7 超始和停止信号图IIC总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。图8 数据传送时序图IIC接口:CPU内置IIC总线控制器,为了方便用户测试IIC总线读写,搭载两个IIC设备,一个是I

11、IC接口的LED数码管显示控制器ZLG7290,通过控制器,控制8位七段数码管的动态扫描(见图4);另一个是 IIC 接口的EEPROM24C16,为16K-bit的串行EEPROM(见图5),方便用户存储一些小容量的数据,掉电不丢失。IIC总线(IICSDA、IICSCL)经过VDD33的上拉后,进入ZLG7290。2.3 ZLG7290ZLG7290(见图6)能够直接驱动8位共阴式数码管(或64只独立的LED),同时还可以扫描管理多达64 只按键。其中有8 只按键还可以作为功能键使用,就像电脑键盘上的Ctrl、Shift、Alt 键一样。采用IIC总线方式,与微控制器的接口仅需两根信号线。

12、可控制扫描位数,可控制任一数码管闪烁。第3章 项目设计与实现3.1 程序设计与实现本课程设计采用软件延时的方法来实现实时时钟和闹钟功能。时钟模式和闹钟模式分别采用disp_buf8和Clock_buf8两个显示缓冲区来存储数值,在时钟模式下,可以对disp_buf8重新赋值,即设定同步时间,通过一个延时函数达到计数时间的功能;在闹钟模式下,可以对Clock_buf8重新赋值,即设定闹钟的时间,当同步时间计时到和设定的闹钟时间相等的时候,调用蜂鸣器函数发出警报,达到闹钟的功能。由于是8位的LED数码管,而本实验只要求显示:00 00 00 即:时 分 秒,所以在第三个和第六个LED数码管最开始赋

13、初值的时候利用0x1F让其不显示,以达到时钟显示的基本效果。然后通过4*4键盘进入时钟设置模式和闹钟设置模式,函数ZLG7290_SendCmd()和ZLG7290_SendBuf()使设置时对应位闪烁并读取键值,键值通过按键获得,每按一次就存在显示缓冲区,直到时间设置完成。通过if语句的嵌套,再加上延时显示来达到时间同步的效果,并且在23 59 59 时自动清零。3.2 程序功能代码#include config.h#define BEEP (10; dly-) for(i=0; i50000; i+);/蜂鸣器函数void RunBeep(void) rGPHDAT = rGPHDAT &

14、 BEEP_MASK; / BEEP = 0 DelayNS(8); rGPHDAT = rGPHDAT | BEEP; / BEEP = 1 /控制时间计数延时函数void delay (int dly)5000;/50000/主函数int main(void) /赋初值 int cont=0x80; int Model = 0; int num =-1; int j; char data; uint16 key;uint16 key_tmp; / GPIO设置 rGPACON = rGPACON & (121); / A口,RUN灯控制口 (GPA21) rGPHCON = (rGPHCO

15、N & (0x0320) | (0x010 表示键值 (低8位为键码,高8位为按键次数) =0 表示无键按下*/ key = ZLG7290_GetKey(); /获取键值 key_tmp = key&0x00FF; DelayNS(30); /软件去抖 key = ZLG7290_GetKey(); key = key& /判定键值,读取键值为11时进入时间设置模式,读取键值为12时进入闹钟设置模式 if(key_tmp = key) if(key = 12 & Model = 0) ZLG7290_SendBuf(uint8 *)Clock_buf, 8); ZLG7290_SendCmd

16、(Glitter_COM, 0x80); Model = 2; num =7; cont = 0x80; Stop = 1; if(key = 11 & ZLG7290_SendBuf(uint8 *)disp_buf, 8); Model = 1; /进入设置模式后进行初始值设定,可以任意设定时钟和闹钟的时间 if(Model = 1|Model =2) & num =0 & key =1&key 1; cont = cont ZLG7290_SendBuf(uint8 *)Clock_buf, 8); ZLG7290_SendCmd(Glitter_COM, cont); if(num =

17、 -1) /赋值完成后的判定 Model = 0; Stop = 0; ZLG7290_SendCmd(Glitter_COM, 0x00); else if(Model = 1) disp_bufnum = data-1; if(num = -1) /赋值是否完成通过Stop来判定,Stop=0则赋值完成 ,进入if嵌套语句通过Control来控制延时,以达到最佳的计时效果if(Stop = 0) if(Control = 9)/10 disp_buf0 +; if(disp_buf0 = 10) disp_buf0 = 0; disp_buf1 +; /秒的显示 if(disp_buf1

18、= 6) disp_buf1 = 0; disp_buf3 +; if(disp_buf3 disp_buf3 = 0; disp_buf4 +; if(disp_buf4 = 6) /分的显示 disp_buf4 = 0; disp_buf6 +; if(disp_buf6 disp_buf6 = 0; disp_buf7 +; if(disp_buf7 = 2&disp_buf6 = 4) /时的显示,计时到23 59 59时自动清零 for(j=0; j0)|(disp_buf7 = Clock_buf7)&(disp_buf7 = Clock_buf7)&(disp_buf6 = Cl

19、ock_buf6)&(disp_buf4 = Clock_buf4)&(disp_buf3 = Clock_buf3)&(disp_buf1 = Clock_buf1)&(disp_buf0 = Clock_buf0) RunBeep(); if(Flag_look = 0) Flag_look = 100; /控制蜂鸣器报警的时间 else Flag_look -; return(0);第4章 个人总结与改进方案通过这次课程设计,加深了对嵌入式的认识和了解,对本学科有了一个基本的理解,最开始打算做这个课程设计的时候不知道从何下手,通过相关老师的指导和细心讲解,逐渐有了一个实现设计的框架。做课

20、程设计之前,最先遭遇的问题就是教学所使用的试验箱无法用32.768kHz的晶振来完成时钟功能,通过多方面查阅相关资料,并且在和同学、老师的讨论中,发现可以用其它的方法也同样能实现实时时钟的功能,比如利用中断、软件延时等,经过多次修订和动手实验,最终决定采用软件延时的方法来完成课程设计,软件延时相对来说比较简单,实现起来比较容易,且显示效果比较稳定、逼真,所以通过利用多方资料最终完成此段能够实现实时时钟和闹钟功能的源代码,但此段代码还可以进行优化,使其达到的效果更好,利用手机的时钟进行测试,发现一分钟的时间,此代码实现的时钟大概延迟了0.5s左右,经过长时间的测试,误差则更加明显,所以在延时控制方面,还可以继续调试一达到更加精确的状态,同时,在第三位和第六位的LED数码管可以调用相关函数显示“”,使显示效果更加完美。通过这次课程设计,同时提高了自己查找资料、整理资料的能力,也意识到了合作的重要性,有些自己不懂的东西要虚心请教会的同学和老师,这样才能更好、更快的完成任务。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1