嵌入式系统课程设计基于ARM的可调电子钟的设计.doc

上传人:仙人指路1688 文档编号:2392868 上传时间:2023-02-17 格式:DOC 页数:15 大小:68.50KB
返回 下载 相关 举报
嵌入式系统课程设计基于ARM的可调电子钟的设计.doc_第1页
第1页 / 共15页
嵌入式系统课程设计基于ARM的可调电子钟的设计.doc_第2页
第2页 / 共15页
嵌入式系统课程设计基于ARM的可调电子钟的设计.doc_第3页
第3页 / 共15页
嵌入式系统课程设计基于ARM的可调电子钟的设计.doc_第4页
第4页 / 共15页
嵌入式系统课程设计基于ARM的可调电子钟的设计.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《嵌入式系统课程设计基于ARM的可调电子钟的设计.doc》由会员分享,可在线阅读,更多相关《嵌入式系统课程设计基于ARM的可调电子钟的设计.doc(15页珍藏版)》请在三一办公上搜索。

1、物理与电子信息学院嵌入式系统课程设计成绩评定表专业:电子信息工程 班级:1102电信 学号:110802111 姓名 课题名称基于ARM时钟显示设计任务与要求1、 可以用按键调整时间2、 可用数码管显示时、分、秒3、 以用蜂鸣器实现闹钟的功能4、 用Protues实现仿真5、 完成课程设计报告设计报告成绩评分标准:设计报告成绩:电子作品成绩评分标准:电子作品成绩:课程设计成绩 总成绩: 指导教师:2014年6月27日嵌入式系统课程设计报告设计课题: 基于ARM时钟显示 专业班级: 电信1102 学生姓名: 学 号: 指导教师: 设计时间:2014年6月27日 基于ARM时钟显示 一、 设计任务

2、与要求1、 用数码管显示时、分、秒2、 可以用按键来调整时间3、 可以用蜂鸣器实现闹钟的功能4、 用Protues实现仿真5、 完成课程设计报告二、方案设计与论证基于ARM的时钟显示:本课程设计是通过LPC2132ARM处理器而设计的显示时钟,由硬件和软件相配合使用。硬件由数码管显示模块、按键模块、蜂鸣器三个模块。实现电子时钟的功能,并在LED上显示类似的时钟界面,动态显示时间,时间包括时、分、秒。1.方案一、利用LPC2132内部定时器定时,把数据送到数码管,通过数码管显示时、分、秒。设定八个按键,时、分、秒分别通过两个按键来控制加减,从而实现时间的调整。通过蜂鸣器模块,当数码管显示达到设置

3、的报警时间后,蜂鸣器蜂鸣,从而实现闹钟的功能。至此,一个相对简单的基于ARM的时分秒时钟显示。 LPC2132按键模块数管显码示模块蜂鸣器模块 图2-1 基于LPC2132ARM时钟显示方案框图2.方案二本方案是基于LPC2106处理器而设计的时钟,综合性较强,涉及到RTC外部中断,引脚的GPIO功能,C语言编程等知识。显示模块采用液晶模块模块LCD1602同时显示实时时间和报警时间。从而实现电子时钟显示和报警。系统启动系统初始化判断正常走时?进入调整时钟程序 LCD显示时间闹钟调整YES时钟调整进入调整闹钟程序NO图2-2 基于LPC2106ARM时钟显示方框流程图通过课题的设计的要求,基于

4、ARM的时钟显示,显示时、分、秒。通过框图可以看出第二种方案过于复杂,第一种方案就可以实现简单的显示时、分、秒。所以通过分析,结合设计电路性能指标、器件的性价比,本设计电路选择方案一。三、软件设计与调试通过Protues和keil实现程序的设计和仿真程序设计#include config.huint32 second=0; /秒初始化uint32 minute=0; /分初始化uint32 hour=9; /时初始化uint32 keyr=123; /定义P1.23为复位按键uint32 key=116; /定义P1.16为停止按键uint32 keyadd1=117;/定义P1.17为秒加按

5、键uint32 keysec1=118;/定义P1.18为秒减按键uint32 keyadd2=119;/定义P1.19为分加按键uint32 keysec2=120;/定义P1.20为分减按键uint32 keyadd3=121;/定义P1.21为时加按键uint32 keysec3=10; dly-) for(i=0; i3400; i+); /初定为3400个自减变量,用于数码管延时显示/* 函数名称 :IRQ_Timer0()* 函数功能 :定时器中断*/void _irq IRQ_Timer0 (void) if(hour=9)&(minute=30)&(second=0)/若时间为

6、9点30分时,则执行下面程序 IO0SET=116;/给P0.16口一个高电平,即使发声器响,从而实现闹钟功能 else IO0CLR=160)/当秒加到大于60时,秒变为59 second=59; if(minute60)/当分加到大于60时,分变为59 minute=59; if(second=60)/当秒等于60时,分加1,秒清零 minute+; second=0; if(minute=60) /当分等于60时,时加1,分清零 hour+; minute=0;second=0; if(hour=24) /当小时为24时,时清零 hour=0; T0IR = 0x01; / 打开定时器V

7、ICVectAddr = 0x00; /向量IRQ通道0的中断服务程序地址为0/* 函数名称 :Time0Init()* 函数功能 :定时器0初始化*/void Time0Init(void) T0TC = 0; /定时器设置为0 T0PR = 0; /时钟不分频 T0MCR = 0x03; / 设置T0MR0匹配后复位T0TC,并产生中断标志 T0MR0 = Fpclk /3; /设置匹配寄存器的值 T0TCR = 0x01; / 启动定时器0 VICIntSelect = 0x00; /所有中断通道设置为IRQ中断VICVectCntl0 = 0x20 | 0x04; / 设置定时器0中断

8、通道分配最高优先级VICVectAddr0 = (uint32)IRQ_Timer0; / 设置中断服务程序地址 VICIntEnable = 1 0x04; / 使能定时器0中断/* 函数名称 :displays()* 函数功能 :秒显示程序*/void displays(unsigned int second) uint32 i; uint32 dis_num2; uint32 temp; temp=second; for(i=0;i2;i+) /限定2位显示 dis_numi=temp%10; /把最低位的模取出来取余,显示个位数 temp=temp/10; /除法,显示十位数 IO0C

9、LR=0xffff; /清显示 IO0SET=num_codedis_numi; /送往P0.0-P0.8显示 IO0SET=weisi; /位的切换 delay(2); /* 函数名称 :displaym()* 函数功能 :分显示程序*/void displaym(unsigned int minute) uint32 i; uint32 dis_num2; uint32 temp; temp=minute; for(i=0;i2;i+) /限定2位显示 dis_numi=temp%10; /把最低位的模取出来取余,显示个位数 temp=temp/10; /除法,显示十位数 IO0CLR=0

10、xffff; /清显示 IO0SET=num_codedis_numi; /送往P0.0-P0.8显示 IO0SET=weimi; /位的切换 delay(2); /* 函数名称 :displayh()* 函数功能 :时显示程序*/void displayh(unsigned int hour) uint32 i; uint32 dis_num2; uint32 temp; temp=hour; for(i=0;i2;i+) /限定2位显示 dis_numi=temp%10; /把最低位的模取出来取余,显示个位数 temp=temp/10; /除法,显示十位数 IO0CLR=0xffff; /

11、清显示 IO0SET=num_codedis_numi; /送往P0.0-P0.8显示 IO0SET=weihi; /位的切换 delay(2); /* 函数名称 :main()* 函数功能 :使用定时器实现1秒钟定时,控并且在led数码管上显示。中断方式。*/int main(void)PINSEL0 = 0x00000000; /设置P0引脚连接为GPIOPINSEL1 = 0x00000000;/设置P1引脚连接为GPIOIO0DIR = 0x000fffff; /设置P0.0-P0.20为输出,其他为输入IO0CLR = 0x0; Time0Init(); /定时器0初始化IO0CLR

12、 = 0x0; second=0; minute=0; hour=9;while(1) displays(second); /显示秒 displaym(minute); /显示分 displayh(hour); /显示时 程序设计完成后进行编译,程序编译成功。经过多次对程序进行修改、完善,程序编译成功。为了对程序的进一步调试,进行单步运行。程序执行正常。程序经过多次编译和单步调试,证明程序可靠性。四、系统的仿真图4-1基于ARM的时钟总的仿真原理图图4-2数码管显示图图4-3 LPC2132芯片图 图4-4 按键功能图图4-5 发声器原理图 五、总结本设计先后进行了一周的时间,万事开头难,最初

13、决定方案的时候,大家意见不统一,经过激烈讨论最终才决定使用现在的设计方案。在这次难得的电子钟设计实验中我锻炼了自己的思考能力和动手能力。通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。在方案设计选择和芯片的选择上,培养了我们综合应用ARM的能力,对ARM的各种功能也有了进一步的认识。还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。并且熟练掌握Protues和keil的使用。六、参考文献1 代启化.基于Proteus的电路设计与仿真J.现代电子技术.2006,第19期.2 曹洪奎.马莹莹 基于Proteus单片机系统设计与仿真J. 辽宁工学

14、院学报07年04期3 侯玉宝.基于Proteus的51系列单片机设计与仿真M电子工业出版社,2008.2702884 蔡希彪.曹洪奎; 单片机电子时钟系统的设计与仿真 J;中国科技信息; 2007年04期5 刘焕平.单片机原理与应用M. 2007年8月第1版. 北京:北京理工大学出版社2007年.PP-2326 朝青.单片机原理及串行外设接口技术M. 2008年1月第1版,北京:北京航空航天大学出版社,2008年。PP-20PP-657 李军.51系列单片机高级实例开发指南 北京航空航天大学出版社8 张天凡.完全手册 5 1单片机 c语言开发详解.北京:电子工业出版社,2008 9 周立功.ARM嵌入式系统实验教程 一 北京北京航空航天大学出版。10 秦勃.无线嵌入式智能家居环境网关.计算机应用研究.2006年.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号