1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > arm键盘可调时钟 c语言 基于ARM的可调电子钟的设计参考范文.doc

arm键盘可调时钟 c语言 基于ARM的可调电子钟的设计参考范文.doc

时间:2022-04-16 06:41:39

相关推荐

arm键盘可调时钟 c语言 基于ARM的可调电子钟的设计参考范文.doc

物理与电子信息学院嵌入式系统课程设计 成绩评定表

课题名称基于 ARM 时钟显示

1、可以用按键调整时间

2、可用数码管显示时、分、秒

3、以用蜂鸣器实现闹钟的功能

4、用 Protues 实现仿真

5、完成课程设计报告

评分标准:

评分标准:

设计报告成绩:

电子作品成绩:

总成绩:

指导教师:许翀、卢震辉

20xx年 6 月 27 日

嵌入式系统课程设计报告

设计课题:基于 ARM 时钟显示

专业班级:

电信 1102

学生姓名:

朱家全

号: xxxx

指导教师:

许翀、卢震辉

设计时间: 20xx 年 6 月 27 日

word 文档可自由复制编辑

基于 ARM时钟显示

一、设计任务与要求

1、用数码管显示时、分、秒

2、可以用按键来调整时间

3、可以用蜂鸣器实现闹钟的功能

4、用 Protues 实现仿真

5、完成课程设计报告

二、方案设计与论证

基于 ARM的时钟显示:本课程设计是通过LPC2132ARM处理器而设计的显示

时钟,由硬件和软件相配合使用。硬件由数码管显示模块、按键模块、蜂鸣器三

个模块。实现电子时钟的功能, 并在 LED上显示类似的时钟界面, 动态显示时间,

时间包括时、分、秒。

1.方案一、利用 LPC2132内部定时器定时, 把数据送到数码管, 通过数码管显示时、 分、

秒。设定八个按键,时、分、秒分别通过两个按键来控制加减,从而实现时间的

调整。通过蜂鸣器模块,当数码管显示达到设置的报警时间后,蜂鸣器蜂鸣,从

而实现闹钟的功能。至此,一个相对简单的基于ARM的时分秒时钟显示 。

按键模块LPC2132数管显码示模块

蜂鸣器模块

图 2-1 基于 LPC2132ARM 时钟显示方案框图

2. 方案二

本方案是基于 LPC2106处理器而设计的时钟,综合性较强,涉及到 RTC外部中断,引脚的 GPIO功能,C 语言编程等知识。显示模块采用液晶模块模块 LCD1602

同时显示实时时间和报警时间。从而实现电子时钟显示和报警。

系统启动

系统初始化

判断正常走时 ?Y

ES

时钟调整

闹钟调整

进入调整时钟程序

N 进入调整闹钟程序

LCD 显示时间

图 2-2 基于 LPC2106ARM时钟显示方框流程图

通过课题的设计的要求,基于 ARM的时钟显示,显示时、分、秒。通过框图可以看出第二种方案过于复杂,第一种方案就可以实现简单的显示时、分、秒。

所以通过分析,结合设计电路性能指标、 器件的性价比,本设计电路选择方案一。

三、软件设计与调试

通过 Protues 和 keil实现程序的设计和仿真

程序设计

#include "config.h"

uint32

second=0;

// 秒初始化

uint32

minute=0;

//

分初始化

uint32

hour=9;

//

时初始化

uint32

keyr=1<<23;

//

定义 P1.23

为复位按键

uint32

key=1<<16;

//

定义 P1.16

为停止按键

uint32

keyadd1=1<<17;

// 定义 P1.17

为秒加按键

uint32

keysec1=1<<18;

// 定义 P1.18

为秒减按键

uint32

keyadd2=1<<19;

// 定义 P1.19

为分加按键

uint32

keysec2=1<<20;

// 定义 P1.20

为分减按键

uint32

keyadd3=1<<21;

// 定义 P1.21

为时加按键

uint32

keysec3=1<<22;

// 定义 P1.22

为时减按键

uint32

num_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

// 共阴极数码管段选

uint32weis[]={0xfe00,0xfd00};//

共阴极数码管秒位选

uint32weim[]={0xf700,0xef00};//

共阴极数码管分位选

uint32weih[]={0xbf00,0x7f00};//

共阴极数码管时位选

/*****************************

函数名称 : delay()

函数功能 :延时

******************************/

void delay(uint32 dly)// 延时函数

{ uint32 i;

for(; dly>0; dly--)

for(i=0; i<3400; i++);// 初定为3400 个自减

变量,用于数码管延时显示

}

/**************************

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。