ARM7电子时钟嵌入式课程设计河海大学.docx
- 文档编号:7773495
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:16
- 大小:168.69KB
ARM7电子时钟嵌入式课程设计河海大学.docx
《ARM7电子时钟嵌入式课程设计河海大学.docx》由会员分享,可在线阅读,更多相关《ARM7电子时钟嵌入式课程设计河海大学.docx(16页珍藏版)》请在冰豆网上搜索。
ARM7电子时钟嵌入式课程设计河海大学
河海大学计算机及信息工程学院(常州)
课程设计报告
题目嵌入式系统项目设计
专业、学号电信
授课班号
学生姓名
指导教师
完成时间2010/1/15
课程设计(报告)任务书
(理工科类)
Ⅰ、课程设计(报告)题目:
基于LCD的电子时钟实验
Ⅱ、课程设计(论文)工作内容
一、课程设计目标
1、培养综合运用知识和独立开展实践创新的能力;
2、培养学生的编程能力、用计算机解决实际问题的能力。
二、研究方法及手段应用
1、将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务;
2、使用ads1.2编译汇编语言和C语言,连接生成Hex文件。
3、联合protues7.4仿真,选用arm7lpc2104芯片,导入Hex文件,实现模拟电
子时钟。
三、课程设计预期效果
1、完成实验环境搭建;
2、分模块调试和编译;
3、组合并完善程序。
4、联合仿真软件运行程序。
学生姓名:
专业年级:
前言………………………………………………………………………………………………3
第一章系统设计…………………………………………………………………………………4
第一节课题目标及总体方案…………………………………………………………………..4
第二节元器件的选择和连线…………………………………………………………………..4
第三节程序和芯片的初始化…………………………………………………………………..5
第四节构建功能模块…………………………………………………………………………..6
第五节实现信息的传递…………………………………………………………………..……7
第二章实验(测试)结果及讨论……….……………………………………………………….8
第一节ads1.2软件的编译,连接和运行……………………………………………………..8
第二节protues7.4仿真软件的联合调试……………………………………………………...9
第三章结论………………………………………………………………………………………10
心得体会……………………………………………………………………………………………11
参考文献…………………………………………………………………………………………12
附录…………………………………………………………………………………………13
源程序………………………………………………………………………………………13
前言
近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。
嵌入式系统无疑成为当前最热门最有发展前途的IT应用领域之一。
实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。
RTC具有计时准确、耗电低和体积小等特点,特别适用于在各种嵌入式系统忠记录事件发生的时间和相关信息,尤其是在通信工程、电力自动化、工业控制等自动化程度较高领域的无人职守环境。
随着集成电路技术的不断发展,RTC器件的新品也不断推出。
这些新品不仅具有准确的RTC,还有大容量的存储器、温度传感器和A/D数据采集通道等,已成为集RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。
第一章系统设计
第一节课题目标及总体方案
利用lpc2104芯片和LCD显示器,通过汇编和C语言编译,完成实时时钟的显示。
第二节元器件的选择和连线
选用嵌入式arm7系列的lpc2104芯片和Lcdpg160128a显示器:
根据使用的需要配置端口连线:
第三节程序和芯片的初始化
程序中包括:
Lcd的初始化:
中断向量的初始化:
RTC的初始化:
芯片Lpc2104基础配置:
中间使用了上接正电源配合
电容的交流特性,为芯片提供电
源和复位功能。
其他引脚根据芯片要求配置
连接。
第四节构建功能模块
Lcd显示的时钟界面包括:
静止不动的圆形钟面和一直在走动的时钟指针。
所以需要构建两个重要的函数实现画圆和画直线。
以下为画圆函数:
该算法是通过X变量的自增,补偿1修正正方形控制Y变量自减,找到距中心恒定距离的点,其中rs=45,X自0加1增至45。
和原点坐标运算,可以在第一象限找到一点,再通过折叠对称找到其他象限的三个点,通过画点函数描绘出。
再画他的45度镜像就好了。
画线函数:
voidline(unsignedintx1,unsignedinty1,unsignedintx2,unsignedinty2,unsignedchardraw)
以中心的坐标为起点,使用while函数与指针最外圈的点比较,不断延长直至相等,所以事先计算出时针,分针和秒针三个同心圆最外圈点的坐标,以便带入函数。
也同圆类似,要考虑不同象限点的情况,根据不同的位置带参数到画点函数中描绘。
第五节实现信息的传递
画点函数:
数据传递函数:
与通用可编程输入输出口(GeneralProgramableInputOutput)相连,把计算的数据传递给Lcd显示。
第二章实验(测试)结果及讨论
第一节ads1.2软件的编译,连接和运行
构建完整的程序:
添加头文件,中断处理汇编程序段,初始化函数和主函数:
编译
所有的文件:
编译器提示:
成功生成所需Hex文件,将得到的Hex文件导入仿真芯片
Lpc2104中,观察实时时钟。
第二节protues7.4仿真软件的联合调试
为Lpc2104芯片选择Hex文件路径:
连接芯片与LCD端口,运行程序,观察效果。
显示如下时钟界面:
动态显示当前的时间,包括:
年、月、日、时、分、秒,时针、分针和秒针为动态实时指示当前的时间。
第三章结论
综合效果图:
以上为protues部分设计的,ads程序见附录。
心得体会
回顾起此次课程设计,至今我仍感慨颇多,从理论到实践,在整整半个月的日子里,我学到很多很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的内容。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。
在设计的过程遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把以前所学过的知识重新温故,巩固了所学的知识。
参考文献
[1]谢自美,电子线路设计、实验、测试,华中理工大学出版社,2003。
[2]宋春荣,通用集成电路速查手册,山东科学技术出版社,1995。
[3]ArnoldBerger,嵌入式系统设计,吕骏译,北京:
电子工业出版社,2002
[4]桑楠.嵌入式系统原理及应用开发技术,北京:
北京航空航天大学出版社,2002
附录
一、源程序:
voidc_init()
{
wr_circle(123,79,1,1);
wr_circle(123,79,2,1);
wr_circle(63,139,1,1);
wr_circle(63,139,2,1);
wr_circle(3,79,1,1);
wr_circle(3,79,2,1);
wr_circle(63,19,1,1);
wr_circle(63,19,2,1);
wr_circle(115,109,1,1);
wr_circle(93,131,1,1);
wr_circle(33,131,1,1);
wr_circle(11,109,1,1);
wr_circle(11,49,1,1);
wr_circle(33,27,1,1);
wr_circle(93,27,1,1);
wr_circle(115,49,1,1);
wr_point(c_ox,c_oy,1);
wr_circle(c_ox,c_oy,2,1);
wr_circle(c_ox,c_oy,62,1);
}
voidmove(unsignedcharn)
{
line(c_ox,c_oy,sec[2*n],sec[2*n+1],1);
}
#definefpclk2764800
unsignedcharmin_n;
unsignedinthou_n;
voidrtc_init()
{
PREINT=fpclk/32768-1;
PREFRAC=fpclk-(fpclk/32768)*32768;
YEAR=2010;
MONTH=1;
DOM=15;
HOUR=11;
MIN=1;
SEC=36;
CIIR=0x01;
ILR=0x01;
CCR=0x01;
}
void__irqrtc_int()
{
ILR=0x01;
wr_char(9,6,0x10+HOUR/10);
wr_char(9,7,0x10+HOUR%10);
wr_char(9,8,0x1a);
wr_char(9,9,0x10+MIN/10);
wr_char(9,10,0x10+MIN%10);
wr_char(9,11,0x1a);
wr_char(9,12,0x10+SEC/10);
wr_char(9,13,0x10+SEC%10);
wr_char(11,5,0x10+YEAR/1000);
wr_char(11,6,0x10+YEAR%1000/100);
wr_char(11,7,0x10+YEAR%100/10);
wr_char(11,8,0x10+YEAR%10);
wr_char(11,9,0xf);
wr_char(11,10,0x10+MONTH/10);
wr_char(11,11,0x10+MONTH%10);
wr_char(11,12,0xf);
wr_char(11,13,0x10+DOM/10);
wr_char(11,14,0x10+DOM%10);
if(SEC==0)
{
line(c_ox,c_oy,sec[59*2],sec[59*2+1],0);
line(c_ox,c_oy,sec[0],sec[1],1);
}
else
{
line(c_ox,c_oy,sec[SEC*2-2],sec[SEC*2-1],0);
line(c_ox,c_oy,sec[SEC*2],sec[SEC*2+1],1);
}
if(MIN==0)
{
line(c_ox,c_oy,min[59*2],min[59*2+1],0);
line(c_ox,c_oy,min[0],min[1],1);
}
else
{
line(c_ox,c_oy,min[MIN*2-2],min[MIN*2-1],0);
line(c_ox,c_oy,min[MIN*2],min[MIN*2+1],1);
}
if(HOUR>11)
hou_n=((HOUR-12)*60+MIN)/12;
else
hou_n=(HOUR*60+MIN)/12;
if(hou_n==0)
{
line(c_ox,c_oy,hou[59*2],hou[59*2+1],0);
line(c_ox,c_oy,hou[0],hou[1],1);
}
else
{
line(c_ox,c_oy,hou[hou_n*2-2],hou[hou_n*2-1],0);
line(c_ox,c_oy,hou[hou_n*2],hou[hou_n*2+1],1);
}
wr_circle(c_ox,c_oy,2,1);
}
voidint_init()//中断向量初始化
{
VICIntSelect=0;//设置所有中断为irq中断
VICIntEnable=0x00002000;//中断使能位
VICVectCntl0=0x2d;//中断优先级设置
VICVectAddr0=(int)rtc_int;//中断向量设置
}
intmain(void)
{
lcd_init();
c_init();
int_init();
rtc_init();
enable_irq();
//move
(2);
//line(c_ox,c_oy,min[2],min[3],1);
//line(c_ox,c_oy,hou[0],hou[1],1);
while
(1);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM7 电子 时钟 嵌入式 课程设计 大学