基于ARM的可调电子钟方案设计书.docx
- 文档编号:27444673
- 上传时间:2023-07-01
- 格式:DOCX
- 页数:15
- 大小:143.96KB
基于ARM的可调电子钟方案设计书.docx
《基于ARM的可调电子钟方案设计书.docx》由会员分享,可在线阅读,更多相关《基于ARM的可调电子钟方案设计书.docx(15页珍藏版)》请在冰豆网上搜索。
基于ARM的可调电子钟方案设计书
学号:
2011-2012学年第1学期
《基于ARM的可调电子钟设计》
课程设计报告
题目:
基于ARM的可调电子钟设计
专业:
通信工程
班级:
姓名:
指导教师:
成绩:
电气工程系
2011年12月9日
课程设计任务书
学生班级:
学生姓名:
学号:
设计名称:
基于ARM的可调电子钟设计
起止日期:
2011-12-3至2011-12-9指导教师:
一.设计目的
1.应用所学的ARM知识设计一个实时时钟
2.掌握LPC2106中断处理,RTC的使用。
二、设计任务
1.查阅文献资料,了解、熟悉电子钟的原理及其电路
2.了解掌握ARM内容及其应用
3.对Proteus软件的熟悉与应用
4.利用Proteus对所设计的电子钟进行调试,验证其正确性
三、具体要求
1.实时时间可通过按键选择调节。
2.可以通过按键设定报警时间。
3.当达到报警时间时,蜂鸣器响一下,LED灯点亮。
4.报警时间和实时时间通过液晶模块LCD1602显示
目录
摘要3
第一章绪论-1-
1.1电子钟的发展-1-
1.2常用电子钟系统及模式-1-
第二章ARM的简介-2-
2.1ARM概述-2-
2.2ARM的特点-2-
2.3ProteusSP3软件介绍-2-
2.4ProteusSP3仿真步骤-3-
第三章电子钟的系统原理及设计-4-
3.1设计原理-4-
3.2软件时钟的电路仿真图-4-
3.3电子钟系统软件设计-5-
3.4电子钟的调试-7-
3.5仿真结果分析与展望-8-
自我评价-10-
指导老师评语-11-
摘要
电子钟是目前应用非常广泛的一种电子装置,众所周知,ARM微处理器功能特别的强大,与MC51单片机相比,它更适合做中高端数字系统的微处理器,ARM已经成了现代主流微处理器内核,目前,绝大多数码产品,如,手机,MP3,MP4,数码相机,他们的系统都嵌入了ARM系列内核,ARM微处理器更新换代很快,现在的诺基亚N系列智能手机如N78,N79已经采用了ARM11了,使得运行于塞班操作系统S60第三版的应用程序流畅自如。
本文使用LPC2106ARM处理器而设计的实时时钟,由硬件和软件相配合使用。
硬件由主控器、时钟电路、显示电路、键盘接口5个模块组成。
实现电子时钟的功能,并在LCD上显示类似的时钟界面;动态显示当前的时间,包括:
年月、日、时、分、秒,时针。
关键字:
电子钟;LCD1602;Proteus;LPC2106
第一章绪论
1.1电子钟的发展
电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。
随着人们生活环境的不断改善和美化,在许多场合可以看到数字电子钟。
在城市的主要营业场所、车站、码头等公共场所使用LCD数字电子钟已经成为一种时尚。
1.2常用电子钟系统及模式
目前市场上各式各样的数字电子钟大多数用全硬件电路实现,电路结构复杂,功率损耗大,而且目前市场上的电子钟一般都用LED显示,显示界面不友好。
市场上还有一些老式的机械式电子钟,机械式的电子钟使用寿命较短,一般只能使用一年时间,机械式电子钟出现故障后很难修复,这样很浪费资源。
因此有必要对机械式电子钟进行淘汰,对电子钟进行改进。
本文设计的可调电子钟,设计的电路成本较低,可靠性高,运用简单方便,正常环境下能使用五年。
出现元器件老化故障,可以只更换元器件,便可正常使用,节省资源,保护环境。
第二章ARM的简介
2.1ARM概述
ARM(AdvancedRISCMachines)处理器是Acorn计算机有限公司面向低预算市场设计的第一款RISC微处理器。
更早称作AcornRISCMachine。
ARM的Jazelle技术使Java加速得到比基于软件的Java虚拟机(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80%。
CPU功能上增加DSP指令集提供增强的16位和32位算术运算能力,提高了性能和灵活性。
ARM还提供两个前沿特性来辅助带深嵌入处理器的高集成SoC器件的调试,它们是嵌入式ICE-RT逻辑和嵌入式跟踪宏核(ETMS)系列。
2.2ARM的特点
ARM处理器的三大特点是:
耗电少功能强、16位/32位双指令集和合作伙伴众多。
1、体积小、低功耗、低成本、高性能;
2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;
3、大量使用寄存器,指令执行速度更快;
4、大多数数据操作都在寄存器中完成;
5、寻址方式灵活简单,执行效率高;
6、指令长度固定。
2.3ProteusSP3软件介绍
Proteus可以仿真模拟电路及数字电路,也可以仿真模拟数字混合电路。
Proteus可提供30多种元件库,超过8000种模拟、数字元器件。
可以按照设计的要求选择不同生产厂家的元器件。
此外,对于元器件库中没有的元件,设计者也可以通过软件自己创建。
除拥有丰富的元器件外,Proteus还提供了各种虚拟仪器,如常用的电流表,电压表,示波器,计数/定时/频率计,SPI调试器等虚拟终端。
支持图形化的分析功能等。
本文章基于ProteusPRO6.7SP3和KEILuVision3软件。
当然,软件仿真精度有限,而且不可能所有的器件都找得到相应的仿真模型,用开发板和仿真器当然是最好选择,可是对于单片机爱好者,或者简单的开发应该是比较好的选择。
Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。
因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。
对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。
运行proteus的ISIS程序后,进入该仿真软件的主界面。
在工作前,要设置view菜单下的捕捉对齐和system下的颜色、图形界面大小等项目。
通过工具栏中的p(从库中选择元件命令)命令,在pickdevices窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;在source菜单的Definecodegenerationtools菜单命令下,选择程序编译的工具、路径、扩展名等项目;在source菜单的Add/removesourcefiles命令下,加入单片机硬件电路的对应程序;通过debug菜单的相应命令仿真程序和电路的运行情况。
2.4ProteusSP3仿真步骤
Proteus本身是无法仿真的,要配合上keil,因为需要将程序写入芯片。
首先,要下载安装这两个软件了。
第二步,安装完毕,把C:
\ProgramFiles\LabcenterElectronics\Proteus6Professional\MODELS\目录下的VDM51.dll文件复制到C:
\Keil\C51\BIN文件夹下。
(目录名都是默认的,你可以根据你实际安装的目录进行复制。
)
第三步,用记事本(其它的编辑软件也可以,如UltraEdit)打开Keil根目录下的TOOLS.INI文件,在[C51]栏目下加入TDRV3=BIN\VDM51.DLL("ProteusVSMMonitor-51Driver"),其中“TDRV3”中的“3”要根据实际情况写,不要和原来的重复。
第四步,keil的设置。
把"C:
\ProgramFiles\LabcenterElectronics\Proteus6Professional\SAMPLES"的"8051LCDDriver”文件夹复制到新建的Proteus文件夹下。
运行keil程序,在"LCDDriver"文件夹下建立一个新的名为LCDDriver工程。
把LCDDEMO文件加到"SourceGroup1"组里。
点击工具栏的"optionfortarget"按钮,在出现的对话框里点击"Debug",在右栏上部的下拉菜单里选中"ProteusVSMMonitor-51Driver",还要点击一下Use前面的小圆点。
再点击"Setting"设置通信接口,在Host后面添上电脑的IP地址在Port后面添上"8000"。
点击"OK"按钮即可。
最后把工程编译一下。
第五步,Proteus的设置。
运行Proteus的ISIS,鼠标左键点击菜单"DEBUG",选中"useromotedebugermonitor"。
下面我们用鼠标左键点击菜单"File",再点击"LoadDesign",导入"8051LCDDriver"文件夹下的LCDDEMO.design文件。
第三章电子钟的系统原理及设计
3.1设计原理
本设计是基于LPC2106ARM处理器而设计的实时时钟,综合性较强,涉及到RTC外部中断,引脚的GPIO功能,C语言编程等知识。
首先要定义P0口为基本I\O功能,然后通过引脚功能选择寄存器PINSEL0及PINSEL1定义输入输出外部中断口所在的位,另外还要对外部中断进行初始化,其中有规定他们的优先级,中断触发方式,中断地址分配,
本设计采用液晶模块LCD1602同时显示实时时间和报警时间,同样要对他们进行初始化,包括检查总线忙与闲,传送地址,传送数据及显示函数的编程、
LPC2106微控制器自带有一个实时时钟RTC带日历和时钟功能,要使用它也要进行一下的基本操作:
设置RTC基准时钟分频器
初始化RTC的时钟值如,YEAR,MONTH,HOUR等
启动RTC即CCR的CLKEN位职位
读取完整时间寄存器值或等待中断。
先调用以上各个模块的初始化函数lcd_int(),RTCint()
然后开启RTC时钟,并调用LCD显示函数SendTimetRtc(),如果没用中断发生就判断实时时间是否与以设定的报警时间相同,如果相同就马上接通蜂鸣器报警并且点亮LED灯。
假如有中断发生,在无效状态下,马上给中断标志寄存器EXTINT对应位,然后写1清零,然后转到中断服务程序。
本设计设定7种系统状态:
正常运行:
0态
设定RTC的:
HOUR1态;SEC2态;MIN3态;ALHOUR4态;ALSEC5态;ALMIN6态
电路中通过三个按钮开关与三个中断eint的输入端相连,对应也有eint0,eint1,eint3三个中断服务程序,当eint2 端按下时,就转到eint2中断服务程序,它的功能就是设定系统当前所取的状态,也就是所选择实时时钟和报警时间的时,分,秒,按一下,状态就自增一,eint0,eint1的中断服务程序都是调节时间不同的是一个以加1调节,一个以减2调节。
按下一次就加一次时间值,但具体是对HOUR,SEL,MIN,ALHOUR,ALMIN,ALSEL中的哪一个调节那还得看eint2触发下系统所处的状态所以只有在eint2发生的基础上eint0,eint1发生才有意义。
3.2软件时钟的电路仿真图
虚拟元器件:
一个喇叭,一个蜂鸣器,5个电阻,三个按钮开关,一盏LED灯,一个PNP三极管,一个极性电容。
微处理器芯片PLC2106一片,液晶显示器LCD1602一片。
其电路仿真图如图3-1所示:
图3-1电子钟仿真电路图
3.3电子钟系统软件设计
NO
图3-2电子钟系统软件流程图
本系统程序按功能模块编写,结构清晰,可读性强,主要流程图如图3-2所示:
通过Keil软件进行编程,首先建立工程,然后创建LCD日历.C文件,在进行编程。
程序如下:
/*************************主函数********************************/
intmain()
{
lcd_init();//LCD初始化
RTCIni();//RTC初始化
PINSEL0=PINSEL0|0XA0000000;//选择外部中断1,2
PINSEL1=PINSEL1|0X00000001;//选择外部中断0
//EXTPOLAR=0X00;//低电平或下降沿
//EXTMODE=0X07;//下降沿
VICIntSelect=0;//Eint0,Eint1,Eint为普通中断
VICIntEnable=0x0001c000;//允许Eint0,Eint1,Eint中断
VICVectCntl0=0x0000002e;//外部中断0的优先级为0
VICVectCntl1=0x0000002f;//外部中断1的优先级为1
VICVectCntl2=0x00000030;//外部中断3的优先级为2
VICVectAddr0=(int)eint0;//给向量地址0赋初值
VICVectAddr1=(int)eint1;//给向量地址1赋初值
VICVectAddr2=(int)eint2;//给向量地址2赋初值
EXTINT=0x07//Eint0,eint1,eint中断状态为清除,中断在把这3位置1
while
(1)
{
while((ILR&0x01)==0);//等待RTC增量中断标志位
SendTimeRtc();
if((ALSEC==SEC)&&(ALMIN==MIN)&&(ALHOUR==HOUR))
{
IODIR=0xffff;
IOSET=0x1800;
//IOCLR=(IOCLR|(3<<11));
DelayNS(8000);
//CCR=0x00;
//while
(1);
}
ILR=0x01;
}
}
程序设计完成后进行编译,程序编译成功。
经过多次对程序进行修改、完善,程序编译成功。
为了对程序的进一步调试,进行单步运行。
程序执行正常。
程序经过多次编译和单步调试,证明程序可靠性。
最终生成LCD日历.Hex文件,将该文件烧录到单片机。
用于制作硬件实物。
实物的制作也是对程序的进一步的验证。
3.4电子钟的调试
主界面按键功能:
1.在主界面时,按“1”键设置时间
具体,如图3-2所示
图3-3主界面
在图3-3主界面6主界面6界面时,此时再按“1”键切换光标,按“2”键光标对应处信息加1,按“3”键保存设置的信息返回主界面,按“4”键不保存设置的信息返回主界面
2.在主界面时,按“2”键设置闹钟;
图3-4设置闹钟界面
在图3-4界面时,此时再按“1”键切换光标,按“2”键光标对应处信息加1,按“3”键保存设置的信息返回主界面,按“4”键不保存设置的信息返回主界面.
3.在主界面时,按“3”键开启/关闭闹钟;
开启闹钟(开启后LCD第一行第一个有个特殊标志);如图3-5所示
图3-5闹钟开启
4.当闹钟触发的时候按“4”号键停止(否则闹钟会在1分钟后自动停止)。
3.5仿真结果分析与展望
用该系统多次测量得到的参数和平均值如表3-1所示,该系统测得的数据比较集中。
表3-1基于1602液晶显示的可调式电子钟的测试值
项目名称
测量1
测量2
测量3
测量4
测量5
平均
标准时间(min)
90
180
360
720
1440
2880
显示时间(min)
90
180
360
720
1440
2880.3
两天的时间误差
0
0
0
0
0
0.3
两天的精确度
100%
100%
100%
100%
100%
0.01%
结论
本时钟经过两天运行没有明显的误差
尽管本系统能够完成我们所要求的任务来计时,并且体现出了物优价廉的优越性,但由于本人水平和开发时间有限,离一个完全实用的,能够完全符合市场需求的可调式电子钟还有一定的差距。
因此,在以后的研制过程中,还需要在系统抗干扰方面、增强显示效果、提高其灵敏度及功能上做大量工作,以满足更高使用要求。
第五章参考文献
[1]代启化.基于Proteus的电路设计与仿真[J].现代电子技术.2006,第19期.
[2]曹洪奎.马莹莹基于Proteus单片机系统设计与仿真[J].辽宁工学院学报07年04期
[3]侯玉宝.基于Proteus的51系列单片机设计与仿真[M]电子工业出版社,2008.270~288
[4]蔡希彪.曹洪奎;单片机电子时钟系统的设计与仿真[J];中国科技信息;2007年04期
[5]刘焕平.单片机原理与应用[M].2007年8月第1版.北京:
北京理工大学出版社2007年.PP-232
[6]朝青.单片机原理及串行外设接口技术[M].2008年1月第1版,北京:
北京航空航天大学出版社,2008年。
PP-20~PP-65
[7]李军.51系列单片机高级实例开发指南北京航空航天大学出版社
[8]张天凡.完全手册51单片机c语言开发详解.北京:
电子工业出版社,2008.
[9]周立功.《ARM嵌入式系统实验教程一》北京北京航空航天大学出版。
[10]秦勃.无线嵌入式智能家居环境网关.计算机应用研究.2006年.
自我评价
本设计先后进行了一周的时间,万事开头难,最初决定方案的时候,大家意见不统一,经过激烈讨论最终才决定使用现在的设计方案。
在这次难得的电子钟设计实验中我锻炼了自己的思考能力和动手能力。
通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。
在方案设计选择和芯片的选择上,培养了我们综合应用ARM的能力,对ARM的各种功能也有了进一步的认识。
还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。
并且我们熟练掌握了有关器件的性能及测试方法。
指导老师评语
指导老师评语
(手写>300字)
课程设计成绩
指导老师
201年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM 可调 电子钟 方案设计