《单片机课程作息时间控制设计报告.doc》由会员分享,可在线阅读,更多相关《单片机课程作息时间控制设计报告.doc(32页珍藏版)》请在金锄头文库上搜索。
1、目 录1 课程设计目的 1 2 设计要求 2 2.1 总体要求 2 2.2 具体要求 23 设计内容及方法 3 3.1 设计准备 3 3.2 功能设计及系统总体设计 34 硬件电路总体设计 3 4.1 硬件总框图 3 4.1.1 主控电路 44.1.2 按键控制扫描模块 54.1.3 DS1302实时时钟模块 64.1.4 数码管显示模块 84.1.5 LED显示模块 94.1.6 扬声器模块 10 4.2 硬件原理图 125 软件流程框图及源程序 12 5.1 流程框图 125.1.1 主程序流程图 125.1.2 蜂鸣器流程图 145.1.3 流水灯程序流程图 155.1.4 时钟显示流程
2、图 165.1.5 作息时间控制流程图 17 5.2 源程序代码及注释 186 调试情况及小结 337 课程设计体会 348 参考文献 35一、课程设计目的 单片机原理及应用课程设计是一项重要的实践性教育环节,是学生在校期间必须接受的一项工程训练。在课程设计过程中,在教师指导下,运用工程的方法,通过一个简单课题的设计练习,可使学生初步体验单片机应用系统的设计过程、设计要求、完成工作内容和具体的设计方法,了解必须提交的各项工程文件,也达到巩固、充实和综合运用所学知识解决实际问题的目的。 通过课程设计,应能加强学生如下能力的培训:(1) 独立工作能力和创造力;(2) 查阅图书资料,产品手册和各种工
3、具书的能力;(3) 工程绘图的能力;(4) 编写技术报告和编制技术资料的能力(5) 综合运用专业及基础知识,解决实际工程技术问题的能力;二、设计要求 2.1总体要求 (1) 独立完成设计任务 (2) 绘制系统硬件总框图 (3) 绘制系统原理电路图 (4) 制定编写设计方案,编制软件框图,完成详细完整的程序清单和注释; (5) 制定编写调试方案,编写用户操作使用说明书(6) 写出设计工作小结。对在完成以上文件过程所进行的有关步骤如设计思想、指标论证、方案确定、参数计算、元器件选择、原理分析等作出说明,并对所完成的设计作出评价,对自己整个设计工作中经验教训,总结收获和今后研修方向。 2.2 具体要
4、求本次工程实践的校内部分主要以单片机为基础,进行单片机软件编程,目的是为了提高学生的软件编程和系统设计能力,整个设计系统包括两个部分,硬件及软件部分,硬件部分已经制作成功,学生只需要掌握其原理和焊接相应的元器件,掌握元器件的辨别和元器件的作用以及应用场所即可,另外对所焊接的电路还需要进行仔细的检查,判断是否有焊接错误的地方或者短路的地方,对出现的异常情况要能够根据现象判别原因,并具备解决问题的能力,从而切实提高学生的硬件电子电路的分析、判断能力。 软件编程是本次工程实践的重要环节。在为期两周的工程实践中,将占据主要时间,学生要完成的软件编程任务主要包括以下几点: 1)、熟悉Keil C51编程
5、平台及相关编程软件 2)、编写、调试蜂鸣器、继电器动作、方波程序并进行软硬件联调 3)、编写、调试LED流水灯(循环显示)程序并进行软硬件联调 4)、编写、调试键盘扫描子程序并进行软硬件联调 5)、编写、调试数码管动态扫描程序并进行软硬件联调 6)、电子钟设计(包括键盘、时钟、显示等)7)、温度测量控制系统设计(包括键盘、显示、时钟、报警等)8)、作息时间控制设计9)、交通灯控制设计10)、汉字输入设计三、设计内容及方法 单片机原理及其应用课程设计通常选择一般常见、常用的简单应用装置或对象进行微机控制。所涉及的系统可以实际制作,也可以实验室模拟,具体步骤和内容如下:3.1设计准备认真研究设计任
6、务书,明确设计要求、条件、内容、和步骤;通过阅读有关资料,了解设计对象;复习课程有关内容,熟悉有关单元电路的设计方法和设计步骤;搜集、分析、消化相关资料、软件等,掌握微型计算机应用系统软件的设计方法;准备好设计需要的图书、资料和工具;拟定设计计划等。3.2功能设计及系统总体设计要求学生有创新精神和创新意识,分析所掌握的资料,了解设计对象的功能。在充分考虑功能设计后,进行总体设计,以功能、结构为标,制定总体方案,规划硬、软件功能分配等;初步确定关键元器件地选择。此次设计任务本人所作工作是协助组长和组员查阅资料文献,在代码编写完成后主负责调试程序,完成产品后编辑报告。(个人自己编 不要写一样)四、
7、硬件电路总体设计 4.1 硬件总框图 主控电路按键控制扫描模块DS1302实时时钟模块数码管显示模块LED显示模块扬声器模块原理说明: 本电路以单片机AT89C52为主控电路,分别连接按键控制扫描模块、时钟模块、数码显示模块、LED显示模块、扬声器模块。首先,按键扫描模块的四个按键分别用来控制数码显示、LED显示和扬声器工作,P1口作为输出口,用来控制LED的亮灭,要使其亮只需要让P1.0-P1.7口保持低电平就可以使8个灯亮起来。同时通过P2.3端控制蜂鸣器发生,当P2.3输出低电平时候使蜂鸣器发出声音,按下按键1时使蜂鸣器发声。P0口用来控制数码管段选和位选,以显示相应的数值。在其位选控制
8、部分,采用了9012型的三极管,要求当对应端口输出低电平时,位选成功,使得该位选的数码管亮,数码管显示时分通过按键3控制。最后通过按按键4实现作息时间控制的功能。4.1.1 主控电路 本次课程设计中主要是设计一个以作息时间控制为主的多功能控制系统。该设计中我们主控电路部分采用了单片机AT89C52芯片来实现这些功能,AT89C52是一个低电压,高性能CMOS的8位单片机,片内含8KB的可反复擦写的Flash只读程序存储器和256B的随机存取数据存储器(RAM)。其引脚如下图所示: 图1.AT89C52引脚图VCC:供电电压。GND:接地。P0口(P0.0-P0.7):P0口来输出数码管位选及段
9、选数据,以控制相应数码管显示相应数值。P1口 (P1.0-P1.7):P1口来控制LED的亮灭。P2口 (P2.0-P2.7):使能相应的模块功能;wela(P2.7):控制数码管位选;dula(P2.6):控制数码管段选。 P3口 (P3.0-P3.7):P3.0为RXD(串行输入口),P3.1为TXD(串行输出口),P3.2为/INT0(外部中断0),P3.3为/INT1(外部中断1),P3.4为T0(记时器0外部输入),P3.5为T1(记时器1外部输入),P3.6为/WR(外部数据存储器写选通),P3.7为/RD(外部数据存储器读选通)。 XTAL1(19 脚)和XTAL2(18 脚)为
10、振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义。4.1.2 按键控制扫描模块 按键用于控制数码显示、LED显示、扬声器等模块的工作。通过扫描按键是否按下,来设定各模块的工作情况,使各模块可以在按键的控制下,有序地进行工作。设计中使用单个按键实现单个功能,属于较为简单的控制方式. 图2.按键输入电路在多功能系统设计的实验中中我们使用四个按键分别与单片机的P3.4、P3.5、P3.6、P3.7相连,按键1控制
11、蜂鸣器发声、按键2控制LED流水灯、按键3控制数码管显示,按键4控制作息时间。通过按下相应的按键来处理相应的程序。4.1.3 DS1302实时时钟模块 图3.DS1302模块电路图 DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电
12、源引脚,同时提供了对后备电源进行涓细电流充电的能力。DS1302与CPU的连接 :实际上,在调试程序时可以不加电容器,只加一个32.768kHz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。 图4. Ds1302引脚图 其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传
13、送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),SCLK始终是输入端。如图2所示DS1302控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,利用单片机的外部中断来处理中断系统通过数码管显示出时间。4.