基于ARM7LPC2138的实时时钟Word文档下载推荐.docx
- 文档编号:22289341
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:24
- 大小:1.06MB
基于ARM7LPC2138的实时时钟Word文档下载推荐.docx
《基于ARM7LPC2138的实时时钟Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于ARM7LPC2138的实时时钟Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
LPC2138微控制器自带有一个实时时钟RTC带日历和时钟功能,要使用它也要进行一下的基本操作:
设置RTC基准时钟分频器
初始化RTC的时钟值如,YEAR,MONTH,HOUR等
启动RTC即CCR的CLKEN位职位
读取完整时间寄存器值或等待中断。
陈述完以上的模块初始化后,下面简要说明一下程序的流程。
先调用以上各个模块的初始化函数lcd_int(),RTCint()。
然后开启RTC时钟,并调用LCD显示函数SendTimetRtc(),如果没用中断发生就判断实时时间是否与以设定的报警时间相同,如果相同就马上接通蜂鸣器报警并且点亮LED灯。
假如有中断发生,在无效状态下,马上给中断标志寄存器EXTINT对应位,然后写1清零,然后转到中断服务程序。
根据项目要求,确定该系统的设计方案,图2-1为该系统设计方案的结构框图。
硬件电路由6个部分组成,即ARMLPC2138处理器、时钟电路、复位电路、液晶显示模块、时间调整模块、整点报时模块。
图2-1系统结构框图
2.2元器件的选择
选用嵌入式arm7系列的LPC2138芯片和LCDPG128128a显示器:
三、系统软件设计
3.1程序和芯片的初始化
程序中包括:
Lcd的初始化:
voidinit_lcd(void)
{
IO0CLR=rst;
IO0SET=rst;
delay1(50);
IO0CLR=ce;
IO0SET=wr;
IO0SET=rd;
wr_xd(addr_w,0x40);
//文本显示区首地址
wr_xd(addr_t,0x42);
//图形显示区首地址
wr_td(width,0x00,0x41);
//文本显示区宽度
wr_td(width,0x00,0x43);
//图形显示区宽度
wr_comm(0x81);
//逻辑"
异或"
wr_td(0x56,0x00,0x22);
//CGRAM偏置地址设置
wr_comm(0x9c);
//启用文本显示,启用图形显示
}
中断向量的初始化:
VICIntSelect=0x00000000;
VICVectCntl0=0x20|13;
VICVectAddr0=(uint32)RTC_int;
ILR=0x03;
VICIntEnable=(1<
<
13);
__enable_irq();
RTC的初始化:
voidRTC_int(void)
{
uint32i,h;
uint8hh[2];
h=HOUR;
hh[0]=HOUR/10+0x30;
hh[1]=HOUR%10+0x30;
clrram();
//清屏
disp_img(0,16,64,nBitmapDot);
//显示图画
disp_zf(0,12,"
CurrentTime:
"
);
for(i=0;
i<
2;
i++)
{
disp_zfyg(13+i,12,hh[i]);
}
h;
IO0CLR=LED;
IO0SET=BEAK;
DelayNS(30);
IO0SET=LED;
IO0CLR=BEAK;
}
ILR=0x03;
VICVectAddr=0x00;
3.2构建功能模块
调整时间和日期的函数
voidkey()
if((IO0PIN&
ATH)==0)
CIIR=0x00;
HOUR++;
if(HOUR>
23)HOUR=0;
CIIR=0x04;
while((IO0PIN&
ATH)==0);
ATM)==0)
MIN++;
if(MIN>
59)MIN=0;
ATM)==0);
ATS)==0)
MONTH++;
if(MONTH>
12)MONTH=0;
ATS)==0);
ATD)==0)
DOM++;
ATD)==0);
延时函数
voidDelayNS(uint32dly)
{uint32i;
for(;
dly>
0;
dly--)
i<
50000;
i++);
整点报时函数
输出字符串函数
voiddisp_zf(uint32x,uint32y,uint8*str)
charc;
wr_xd((addr_w+16*y+x),0x24);
wr_comm(0xb0);
while(*str!
='
\0'
)
c=(*str);
wr_auto(c-32);
str++;
wr_comm(0xb2);
输出一个字符的函数
voiddisp_zfyg(uint32x,uint32y,uint8str)
c=str;
wr_comm(0xb2);
四、实验测试
4.1IAR软件的编译,连接和运行
构建完整的程序:
添加头文件,中断处理汇编程序段,初始化函数和主函数:
4.2protues仿真软件的联合调试
为LPC2138芯片选择Hex文件路径:
五、实验结果
5.1仿真结果
5.2实验板结果
六、心得体会
众所周知,ARM微处理器功能特别的强大,与MC51单片机相比,它更适合做中高端数字系统的微处理器,ARM已经成了现代主流微处理器内核,目前,绝大多数码产品,如,手机,MP3,MP4,数码相机,他们的系统都嵌入了ARM系列内核,ARM微处理器更新换代很快,现在的诺基亚N系列智能手机如N78,N79已经采用了ARM11了,使得运行于塞班操作系统S60第三版的应用程序流畅自如。
回顾起此次课程设计,至今我仍感慨颇多,从理论到实践,在整整半个月的日子里,我学到很多很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的内容。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。
在设计的过程遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把以前所学过的知识重新温故,巩固了所学的知识。
七、程序清单
/****************************************************************************
*文件名:
LCDTEST.C
*功能:
显示图像,显示汉字,显示字符。
显示点阵
****************************************************************************/
#include"
Config.h"
Target.h"
T6963C.h"
#include<
intrinsics.h>
#defineuint32unsignedint
#defineuint8unsignedchar
#defineBEAK(1<
20)
#defineLED(1<
16)
#defineATM(1<
17)//调整分钟
#defineATH(1<
18)//调整小时
#defineATS(1<
22)//调整月份
#defineATD(1<
23)//调整日期
//*************************************
//调整时间和日期的函数
//输出字符串函数
//输出一个字符的函数
*名称:
DelayNS()
长软件延时
*入口参数:
dly延时参数,值越大,延时越久
*出口参数:
无
//液晶初始化函数
/**********************************************************
***********************************************************/
/*
**************************************************************************
**函数名称:
RTCInit()
**函数功能:
初始化实时时钟
**入口参数:
**出口参数:
*/
voidRTCInit(void)
PREINT=Fpclk/32768-1;
//设置基准时钟分频器
PREFRAC=Fpclk-(Fpclk/32768)*32768;
CCR=0x00;
//禁止时间计数器
YEAR=2013;
MONTH=07;
DOM=01;
DOW=1;
HOUR=2;
MIN=59;
SEC=55;
CIIR=0x04;
//设置HOUR值的增量产生1次中断
//清除RTC增量和报警中断标志
CCR=0x01;
//启动RTC
/*------------------主程序--------------------*/
voidmain()
uint32i;
uint8k[18];
TargetResetInit();
RTCInit();
VICIntSelect=0x00000000;
PINSEL0=0x0000000;
//设置I/O连接到UART1
PINSEL1=0x00000000;
//设置PS2口为GPIO输入
IO0DIR=0xff39ffff;
IO0SET=ATM;
IO0SET=ATH;
init_lcd();
//液晶初始化
while
(1)
key();
k[0]=YEAR/1000+0x30;
k[1]=YEAR%1000/100+0x30;
k[2]=YEAR%100/10+0x30;
k[3]=YEAR%10+0x30;
k[4]='
-'
;
k[5]=MONTH/10+0x30;
k[6]=MONTH%10+0x30;
k[7]='
k[8]=DOM/10+0x30;
k[9]=DOM%10+0x30;
k[10]=HOUR/10+0x30;
k[11]=HOUR%10+0x30;
k[12]='
:
'
k[13]=MIN/10+0x30;
k[14]=MIN%10+0x30;
k[15]='
k[16]=SEC/10+0x30;
k[17]=(SEC%10+0x30);
disp_zf(0,10,"
DATE:
"
disp_zf(0,13,"
TIME:
10;
disp_zfyg(6+i,10,k[i]);
for(i=10;
18;
disp_zfyg(6+i-10,13,k[i]);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM7LPC2138 实时 时钟