




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课课 程程 设设 计计 课程名称嵌入式课程设计题目名称基于 ARM 的简易电子闹钟设计专业班级电子信息本科 2 班学生姓名XXX学 号5110202XXX指导教师XXX二XX 年六月八日 目目 录录XXXX 大学大学课程设计任务书课程设计任务书 .2 2分工协作说明(以列表形式具体说明每个人所做的工作)分工协作说明(以列表形式具体说明每个人所做的工作).6 6XXXX 大学大学计算机科学与技术本科课程设计成绩评定表计算机科学与技术本科课程设计成绩评定表 .7 71 1 方案的选择和论证方案的选择和论证.9 91.1 按键的选择 .91.2 显示器的选择 .91.3 计时部分的选择 .101.4
2、 发音部分的设计 .101.5 显示器驱动电路 .101.6 电源的选择 .102 2 数字电子钟的设计原理和方法数字电子钟的设计原理和方法.11112.1 设计原理 .112.2 硬件电路的设计 .132.2.1 键盘电路的设计 .142.2.2 段码驱动电路 .152.2.3 蜂鸣器驱动电路 .152.3 软件部分的设计 .152.3.1 主程序部分的设计 .152.3.2 中断定时器的设置 .162.3.3 闹钟子函数 .182.3.4 计时函数 .192.3.4 键盘扫描函数 .202.3.5 时间和闹钟的设置 .20实验结果实验结果.2222总总 结结.2222参考文献参考文献.24
3、24附录附录 电路设计电路设计.2525附录附录 源程序源程序.2525 XXXX学院课程设计任务书学院课程设计任务书 计算机科学与技术计算机科学与技术系系2 2X XX XX X级级电子信息科学与技术电子信息科学与技术2 2班班 学生姓名学生姓名XXXXXX学学 号号XXXXXX课题名称课题名称电子钟课程设计电子钟课程设计一、一、 课程设计的主要内容与要求课程设计的主要内容与要求(任务及背景、着重培养的能力、成果形式) 1)单片机以其极高的性价比,受到人们的重视和关注,应用很广、发展很快。在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等
4、各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习、应用,设计了一个简易的电子闹钟,它由数码管准确显示时间,通过按键调节时间,然后由 LED 灯实现闹钟功能。从而到达学习、设计、开发软、硬件的能力。(2)嵌入式系统主要由嵌入式处理器、相关支撑硬件及嵌入式软件系统组成;本文介绍基于 AT89C51的嵌入式微处理器 S3C44BOX 和 LCD 显示器的电子时钟的设计。(3)本课程设计设计一种基于 AT89C51的嵌入式微处理器 S3C44B0X 和 LCD 显示器的电子时钟,实现电子时钟的功能,并在 LCD 上显示类似的时钟界面;动态显示当前的时间,包括:年
5、、月、日、时、分、秒,时针。二、课程设计的基本要求二、课程设计的基本要求1、收集、整理与课程设计有关领域的信息资料; 2、完成本课程设计方案和结构框图的设计; 3、完成本课程设计电路原理图设计。4、完成本课程设计程序流程图和汇编语言源程序设计5、完成软件和硬件系统的调试,功能指标达到技术要求;6、程序清单和图样资料;7、作品及照片;8、形成符合学校规定的课程设计书面文档;二、设计(论文)需要的工作条件二、设计(论文)需要的工作条件软件环境:ADS ,Protel 等软件。硬件环境:计算机、电子元件(电阻,电容集成芯片等),LED 显示灯、电路板等。三、应收集的资料及主要参考文献三、应收集的资料
6、及主要参考文献参考文献:1 周毓林.Windows CE 内核定制及应用开发 M.北京: 电子工业出版社,20052Terence A,Goggin T A.Windows CE 高级开发指南M.北京: 电子工业出版社,20003Muench C.Windows CE 权威指南M.北京: 中国电力出版社,20014Microsoft 公司.Microsoft Windows 驱动程序模型设计 M.北京: 北京大学出版社,20005Boling D.Microsoft Windows 程序设计M. 北京: 北京大学出版社19四、进度计划及指导安排四、进度计划及指导安排2014年4月30日:下发任
7、务书,相关资料准备和查阅相关文献。2014年5月5日- 19日:开展课程设计研究与指导工作,并撰写论文。2014年5月21日:修改设计成果、论文初步完成。2014年6月2日前:完善课程设计成果,设计论文第二、三稿修订。2014年6月16日: 毕业设计成果完成,毕业论文定稿,并打印4本纸质版交指导教师。期间主要指导学生8次:2014年4月、2014年5月、2014年6月。 任务书审定日期:任务书审定日期:2014年年4月月28日日 指指导导教教师师 (签字)(签字) 任务书批准日期:任务书批准日期:2014年年4月月30日日 教研室主任(签字)教研室主任(签字) 任务书下达日期:任务书下达日期:
8、2014年年4月月30日日 学学 生(签字)生(签字) 摘摘 要要随着社会单片机自 20 世纪 70 年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。而 51 单片机是各单片机中最为典型和最有代表性的一种。本设计以 AT89C51 芯片为核心,辅以必要的外围电路,设计了一个结构简单,功能齐全的电子时钟,它由 5V 直流电源供电。在硬件方面,除了 CPU 外,使用八个七段 LED 数码管来进行显示,LED 采用的是动态扫描显示,使用74LS245 芯片进行驱动。通过 LED 能够较为准确地显示时、分、秒。四个简单的按键实现对时间的调整。软件方面采用 C 语言编程。整
9、个电子钟系统能完成时间的显示、调时、校时和三组定时闹钟的功能。选用单片机最小系统应用程序,添加比较程序、时间调整程序及蜂鸣程序,通过时间比较程序触发蜂鸣,实现闹钟功能,完成设计所需求的软件环境。介绍并使用 Keil 单片机模拟调试软件,测试程序的可行性并用 Proteus 进行仿真。关键词:关键词:单片机,定时器,中断,闹钟,LED课题名称学生姓名学 号所做工作1 方案的选择和方案的选择和论证论证通过对多种单片机最理想的电子时钟开发芯片。AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器的低电压,高性能 CMOS8 位微处理器,器件采用ATMEL 高密度非易失存储器制造技术制造,与
10、工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL的 AT89C51 是一种高效微控制器,而且它与 MCS-51 兼容,且具有 4K 字节可编程序存储器和 1000 次擦写循环,数据保留时间为 10 年,是最好的选择。1.11.1 按键的选择按键的选择方案一:44 矩阵式键盘。如果选择此方案,那么在修改时钟或设置闹铃时间时就可以直接从键盘输入,方便、快捷,但程序较为复杂。 方案二:独立式按键。如果设置过多按键,将会占用较多 I/O 口,而且会给布线带来不便,因此,此方案适用于按键较少的情况。如果选择此方案,由于按键较少,在修
11、改时间或设置闹铃时间时就不能直接输入,只能通过加或减完成,稍为麻烦一些,但其程序简单。 由于并不需要经常修改时间和设置闹铃时间,而且方案二的程序简单,按键少、成本低,因此,选择方案二。1.21.2 显示器的选择显示器的选择方案一:液晶显示器。如果选择此方案,将会降低系统的功耗,这样就可以用电池供电,便于携带。但液晶显示器的驱动电路复杂,使用起来有一定的难度。 方案二:用数码管作为显示器。数码管的驱动电路简单,使用方便,如果选择了此方案,那么在夜间看时间的时候就不需要有光源,非常方便。其缺点是功耗较大。由于数码管使用起来较为方便,在夜间看时间也很方便,因此我选择了方案二。1.31.3 计时部分的
12、计时部分的选择选择如果使用时钟芯片,系统就不怕掉电且时间精确。但这种芯片比较贵,况且,设计本系统主要是为了学习单片机程序的编写和调试以及设计硬件电路的一些方法,因此采用软件的方法来计时而没有采用价格较高的时钟芯片。1.41.4 发音部分的设计发音部分的设计通过三极管放大后驱动蜂鸣器工作,再通过软件这时产生等时时间方波驱动蜂鸣器发出间断嘀声,这样就可以省去硬件振荡电路,降低成本。1.51.5 显示器驱动电路显示器驱动电路由于通过数码管公共及的电流较大且避免过多地使用分立元件,采用了一片 74LS245 来驱动段码,用 P3 口作位码驱动。1.61.6 电源的选择电源的选择如果是用电池供电,就比较
13、方便携带,但是本系统,采用了数码管作为显示器,功耗较大,需要经常更换电池。况且,本系统的体积较大,即使使用电池供电也不能随身携带,因此,用电池供电不大合适,所以用 5V 外部稳压电源来供电。2 2 数字电子钟的设计原理和方法数字电子钟的设计原理和方法2.12.1 设计原理设计原理AT89C51晶振按键段码驱动蜂鸣器位码驱动8 位数码管系统原理图2.22.2 硬件电路的设计硬件电路的设计AT89C51 是一款单片封装的微控制器,适合于许多要求高集成度、低成本的场合。可以满足多方面的性能要求。AT89C51 采用了高性能的处理器结构,指令执行时间只需 2 到 4 个时钟周期。6 倍于标准 51 单
14、片机器件。AT89C51 集成了许多系统级的功能,这样可大大减少元件的数目和电路板面积并降低系统的成本。AT89C51 单片机内部主要有以下部件:8031CPU、振荡电路、总线控制部件、中断控制部件、片内 Flash 存储器、并行 I/O 接口、定时器和串行 I/O 接口。图 2-2 AT89C51 单片机2.2.1 键盘电路的设计键盘电路的设计键盘采用 4 个独立按键配以 4 个上拉电阻实现对时钟和闹钟的设定及修改。图 2-3 独立按键 图 2-4 键盘输入电路 2.2.2 段码驱动电路段码驱动电路由于通过数码管公共及的电流较大且避免过多地使用分立元件,采用了一片 74LS245 来驱动段码
15、,用 P3 口作位码驱动。图 2-5 段码驱动器 74LS2452.2.3 蜂鸣器驱动电路蜂鸣器驱动电路发音部分是通过三极管放大驱动蜂鸣器工作,再通过软件这时产生等时时间方波驱动蜂鸣器发出间断嘀声,这样就可以省去硬件振荡电路,降低成本。图 2-6 蜂鸣器驱动电路2.32.3 软件部分的设计软件部分的设计2.3.1 主程序部分的设计主程序部分的设计程序部分主要采用了程序结构的模块化设计,避免了一些函数的不必要的重复书写,使程序变得单间易懂。程序在执行时,主程序要须通过调用子函数就可完成相应的功能 。主程序流程图如下图 2-7。图 2-7 主程序流程图2.3.2 中断定时器的设置中断定时器的设置数
16、字电子钟设计中主要使用定时器 T0 中断 ET0,利用 ET0 中断进行计时时间的自增,从而实现计时功能。AT89C51 有两个通用定时/计数器。两者均可配置为定时器或事件计数器。另外增加了定时器 T0/T1,溢出时 T0/T1 脚自动翻转的功能选项。 用作“定时器”功能时,每经过一个机器周期,寄存器值加 1。 用作“计数器”功能时,寄存器在对应的外部输入管脚 T0/T1 上每发生一次 1 到 0 的跳变时加 1。使用该功能时,外部输入每个机器周期被采样一次。 图 2-8 定时器工作原理1设计中采用了中断方式 1 作为定时中断,其定时计数初值的设置可由以下公式计算得到,中断服务流程图如下图 3
17、-9。X:计数初值 t:定时时间 :机器周期 1cyTcyTtX162图 2-9 中断服务流程图2.3.3 闹钟子函数闹钟子函数闹钟时间的判别主要是通过设定时间与实时时间对逐位对比确定是否进行闹铃。其工作流程图如下图 2-10。图 2-10 闹铃判断流程图2.3.4 计时函数计时函数计时函数部分,主要是通过单片机定时中断来计时,复产生一次中断标志位 flag 加 1,当 flag 加满 20 次为 1 秒,然后把 flag 清 0 把秒存储单元加 1。然后再依次判断分、时。其流程图如下图 2-11。图 2-11 计时流程图2.3.4 键盘扫描函数键盘扫描函数这些函数主要是判断是否有按键按下,并
18、根据相应按键按下的情况调用相关函数执行,其相关流程图如下图 2-12。图 2-12 键盘扫描流程图2.3.5 时间和闹钟的设置时间和闹钟的设置此部分主要是通过判断 cnt 在不同值时通过调用加 1、减 1 子函数对时间和闹钟的时、分、秒进行设置。在闹钟设置时,判断按键 S4 按下情况我,进行闹钟的开启与关闭,相关流程图如下图 2-13。图 2-13 时间/闹钟设置流程图实验结果实验结果此电子闹钟设计是利用 Proteus 仿真软件进行仿真,基本上实现了课程设计要求实现的功能。硬件部分设置了的三个按键 S1、S2、S3、S4。当按键 S1 第一次按下时,停止计时进入闹钟 1 的秒设置,当按键 S
19、1 第二、第三次按下时,分别进入闹钟1 的分设置和时设置,当按 S1 第四 、第五、第六次按下时分别进入闹钟 2 的秒、分、时设置,当按 S1 第七 、第八、第九次按下时分别进入闹钟 3 的秒、分、时设置,当按 S1 第十 、第二一、第十二次按下时分别进入时间的秒、分、时设置,在 S1 按下的各阶段,可用按键 S2、S3 进行时间和闹铃时间的时、分、秒进行加减设置;当按键 S1 第十三次按下时恢复到时间显示功能。当显示的时间和定时设置的时间一致时,蜂鸣器发出等时间断蜂鸣声,闹铃时间设置为 60秒。在各个闹钟设置阶段,如果有 S4 按下,则相应闹钟功能关闭或开启;如在闹铃时有 S4 按下则提前停
20、止闹铃。另外,闹铃电路有音乐闹钟的扩展的功能(可以将蜂鸣器换成扬声器再加一段音乐程序即可实现)。因时间有限,扩展功能还未能及时实现,比如音乐闹铃。总总 结结通过自己的不懈努力,我终于完成了毕业设计任务书上的任务要求。功能上基本达标:时钟的显示,调时功能、校时功能、闹铃功能、闹钟设功能。其精确度完全可以满足日常生活显示时间的需要;调时功能,方便快捷;校时功能保证了时钟准确和可靠性,闹钟响铃还有扩展成音乐闹钟的余地。硬件设施合乎要求,软件设计可以配合硬件实现要求的功能。 总总 结结开始的时候由于没有经验,不知如何下手,所以就去图书馆找了一些书看,尽管有许多设计方案,可是总觉得自己还有许多的东西弄不
21、太清楚,于是就请教同学。他尝做一些设计,有了一些经验。经过他的努解释分析之后决定用查表,中断的方法来做这样可以降低一些硬件的难度,初次设计应切合自己的水平。我以为这些做好了,构思也有了写程序应该是相对容易的。谁知道,写起程序来才想到中断程序不会写,我真的感到很难,那是真的有点想放弃,于是就去请教了老师,老师帮忙分析了一下。自己有查阅了一些资料。终于明白了中断程序是怎么写的。于是在自己的努力下,程序很快就写好了,功能上基本达标:时钟的显示,秒表显示,定时功能,调时功能。时钟显示功能,精确度完全可以满足日常生活显示时间的需要;调时功能,方便快捷;硬件设施合乎要求,软件设计可以配合硬件实现要求功能。
22、这次是我第一个设计器件,尽管经李了不少艰辛,但给我积累了一点设计的经验,最后也以有点小小的成就感。后面的路还很长,我还得努力。参考文献参考文献1 丁向荣、贾平。单片机应用系统与开发技术.清华大学出版社,20092 第二版.51 系列单片机设计实例.北京航空航天大学出版社(8189 页 数码管时钟电路的设计).3 黄庆华、张永格.单片机开发 与实例.电子工业出版社(127-162 页 数字式电子时钟的设计)4 李叶紫王喜斌.胡辉.孙东辉.编著 MCS_51 单片机应用教程清华大学出版社2008.6.附录附录 电路设计电路设计附录附录 源程序源程序#include#define uint unsi
23、gned int#define uchar unsigned charsbit key1=P10; sbit key2=P11;sbit key3=P12;sbit key4=P13;sbit lcden=P22; sbit lcdrs=P20;sbit lcdrw=P21;sbit jdq=P23;sbit led=P24; sbit sound=P25;int a,b,i,min,hour,minge,minshi,hourge,hourshi,amin,ahour,aminge,aminshi,ahourge,ahourshi,sec,secshi,secge;/unsigned cha
24、r code x=0 xFF,0 xC7,0 x83,0 x01,0 x00,0 x00,0 x00,0 x01,0 x03,0 x07,0 x0F,0 x1F,0 x3F,0 x7F,0 xFF,0 xFF;/unsigned char code z=0 xFF,0 xE3,0 xC1,0 x80,0 x00,0 x00,0 x00,0 x80,0 xC0,0 xE0,0 xF0,0 xF8,0 xFC,0 x7F,0 xFF,0 xFF;uchar code table1=0,1,2,3,4,5,6,7,8,9;uchar code table2=Time:00:00:00 ;uchar
25、code Alarm_1=Alarm:00:00 ;uchar code nul= ;uchar num1,num2;bit flag=0;void delay(unsigned int xms)/延时程序uint i,j; for(i=xms;i0;i-) for(j=124;j0;j-);void write_com(uchar com) /LCD 命令控制,写指令函数delay(5) ;lcdrs=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;void write_data(uchar date) /LCD 数据控制,写数据函数delay(5);l
26、cdrs=1;P0=date;delay(5);lcden=1;delay(5);lcden=0;void time()/设置时间函数 while(1)if(key1=0) delay(10);if(key1=0)if(hour=23) /时设置hour=0;elsehour+;hourge=hour%10;hourshi=hour/10;write_com(0 x0f);delay(2);write_com(0 x80+6);write_data(table1hourge); /时个位写入 LCD 第二行第 6 位delay(5);write_com(0 x80+5);delay(2);wr
27、ite_data(table1hourshi); /时十位写入 LCD 第二行第 5 位while(!key1);/delay(1);if(key2=0) delay(10);if(key2=0)if(min=59)/分设置min=0;elsemin+;minge=min%10;minshi=min/10;write_com(0 x0f);write_com(0 x80+9);write_data(table1minge); /分个位写入 LCD 第二行第 9 位delay(1);write_com(0 x80+8);write_data(table1minshi); /分十位写入 LCD 第
28、二行第 8 位delay(1);while(!key2); if(key3=0) delay(10);if(key3=0)write_com(0 x0c); /整体显示,关光标,不闪烁TR1=1; /定时计数器 1 启动while(!key3);break; /key3 松开时,显示时间时分位均已设置完毕 void alarm()/设置闹钟时间函数 while(1)if(key1=0) delay(10);if(key1=0)if(ahour=23)/闹钟时设置ahour=0;elseahour+;ahourge=ahour%10;ahourshi=ahour/10;write_com(0 x
29、0f);/delay(2);write_com(0 x80+0 x40+8);write_data(:);write_com(0 x80+0 x40+7);write_data(table1ahourge);delay(1);write_com(0 x80+0 x40+6);/delay(2);write_data(table1ahourshi);delay(1);while(!key1);if(key2=0) /闹钟分设置 delay(10);if(key2=0)if(amin=59)amin=0;elseamin+;aminge=amin%10;aminshi=amin/10;write_
30、com(0 x0f);/delay(2);write_com(0 x80+0 x40+10);write_data(table1aminge);delay(1);write_com(0 x80+0 x40+9);/ delay(2);write_data(table1aminshi);delay(1);while(!key2); if(key3=0) flag=flag; delay(10);if(key3=0)write_com(0 x0c);write_com(0 x80+0 x40);for(i=0;i11;i+)write_data(nuli);while(!key3);break;
31、/设置结束,此时 LCD第二行无数据显示,只有第一行有时间显示 void keyscan()/键盘扫描 if(key1=0) delay(10);if(key1=0)while(!key1); /key1 键松开后执行下一行程序time(); /调用 time()函数,即时间设置 else if(key2=0) delay(10);if(key2=0)while(!key2)ahourge=ahour%10;ahourshi=ahour/10;write_com(0 x80+0 x40+7);write_data(table1ahourge);delay(5);write_com(0 x80+
32、0 x40+6);delay(2);write_data(table1ahourshi);aminge=amin%10;aminshi=amin/10;write_com(0 x80+0 x40+10);write_data(table1aminge);delay(5);write_com(0 x80+0 x40+9);delay(2);write_data(table1aminshi);write_com(0 x80+0 x40);for(i=0;i11;+i)write_data(Alarm_1i); /显示闹钟设置的时间write_com(0 x80+0 x40);for(i=0;i11
33、;i+)write_data(nuli); /key2 松开后,LCD 只有第一行显示时间,闹钟设置时间不显示 else if(key3=0) delay(10);if(key3=0)while(!key3); /表示闹钟时间设置退出 ahourge=ahour%10;ahourshi=ahour/10;write_com(0 x80+0 x40+7);write_data(table1ahourge);delay(5);write_com(0 x80+0 x40+6);delay(2);write_data(table1ahourshi);aminge=amin%10;aminshi=amin/10;write_com(0 x80+0 x40+10);write_data(table1aminge);delay(5);write_com(0 x80+0 x40+9);delay(2);write_data(table1aminshi);write_com(0 x80+0 x40);for(i=0;i11;+i)write_data
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 职业技术学院2024级文化创意与策划专业人才培养方案
- 2025煤炭供应合同模板
- 《2025二等土地开发合同》
- 2025年教师招聘之中学教师招聘能力测试试卷B卷附答案
- 2025年二级造价工程师之安装工程建设工程计量与计价实务能力提升试卷B卷附答案
- 浙江国企招聘2025台州临海工投紫光环保科技有限公司招聘18人笔试参考题库附带答案详解
- 2025授权代理合同的签订与履行
- 炼铁中的废气治理技术研究考核试卷
- 玻璃保温容器生产过程优化与改进措施实践探索总结考核试卷
- 2025至2030年中国井式多用炉市场分析及竞争策略研究报告
- 2024年福建高考历史真题(解析版)
- 项目六-解决温标转换问题认识程序和程序设计语言
- 印刷厂安全生产事故应急预案模版(3篇)
- 道路运输免责协议书(2篇)
- 个人借款单范本
- 服务响应时间和服务保障方案
- 安全生产法律法规知识培训课件
- 《粮食机械原理与应用》 课件全套 阮竞兰 1-11筛分除杂设备-色选设备
- 七年级英语上册全册单元检测题(附听力材料及答案)
- 泰兴经济开发区国有企业招聘笔试题库2024
- DL∕T 5509-2015 架空输电线路覆冰勘测规程
评论
0/150
提交评论