学校学生生活时间提示系统.doc
- 文档编号:676408
- 上传时间:2023-04-29
- 格式:DOC
- 页数:21
- 大小:242.65KB
学校学生生活时间提示系统.doc
《学校学生生活时间提示系统.doc》由会员分享,可在线阅读,更多相关《学校学生生活时间提示系统.doc(21页珍藏版)》请在冰点文库上搜索。
电子设计竞赛
作品设计报告
作品题目序号
A8
作品题目名称
学校学生生活时间提示系统
参赛队伍序号
参赛队伍名称
参赛队员姓名
作品完成情况
□作品完整□作品部分完成□作品未制作
目录
1.方案设计与论证.................................2
1.1、设计任务与要求...................................................................2
1.2、方案设计与论证...................................................................2
2.系统硬件设计.................................3
2.1系统框图................................................................................3
2.2各模块电路设计....................................................................3
2.3电路原理图及电路介绍........................................................6
3.软件总体流程图..................................6
4.结语............................................7
4.1电路调试及测试结果..............................................................7
4.2结论与心得...............................................................................8
5.参考文献........................................8
附表..............................................8
摘要:
本设计给出了以单片机ST89C52为核心的学校学生生活时间提示系统的基本原理和实现方案。
该系统用LCD1602作为液晶显示器,用时钟芯片DS1302在断电后仍可显示正确时间,配合按键可实现手动设置时间,同时实现闹钟提示等各种功能。
电压转换通过7805实现9V转换成5V供电路使用。
通过程序的编写与调试及电路的焊接等工作,最终本设计能够实现显示显示时间并可人为调整时间及实现闹钟提示等功能的学校学生生活时间提示系统。
关键词:
学校学生生活时间提示系统单片机液晶显示器
1、方案设计与论证
1.1、设计任务与要求
(一)、设计任务:
以单片机为主控制器,设计并制作一套学校学生生活时间提示系统。
(二)、要求:
1.基本要求:
(1)计时和显示功能(24小时制),包括时、分、秒的显示。
(2)通过按键设置当前时间(时、分)。
(3)实现基本学生生活时间提示,规定如下:
06:
00起床:
声音提示5秒、停2秒、再提示5秒。
22:
30熄灯:
声音提示5秒、停2秒、再提示5秒。
2.发挥部分:
(1)增加整点报时功能,整点时声音提示10秒,有控制启动和关闭功能。
(2)增加起床、熄灯时间调整时的声音提示功能。
(3)增设上午4节课的上下课声音提示功能,规定如下:
7:
50上课,8:
35下课;8:
45上课,9:
30下课;9:
50上课,10:
35下课;10:
45上课,11:
30下课;每次声音提示5秒。
1.2、方案设计与论证
1.2.1单片机的选择
方案一:
采用STC89C52作为微控制器,单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
方案二:
ATMEL公司生产的AT89CXX系列单片机,其中有8位的单片机,也有16位的单片机。
STC89C52为8位的单片机,它是一种低损耗、高性能的CMOS微处理器,并且可以在线进行重复编程、快速擦除、快速写入程序,能重复擦除/写入1000次左右,数据保存时间为十年。
综上所述,在本设计中,由于本系统对CPU运算速度要求不高,不需要执行很复杂的运算,加上成本上和队员各自的技术特点考虑,考虑到本人对单片机的运用熟练度和单片机的功能领域,综合起来选STC89C52单片机作为本设计的微控制器较适合本系统的要求。
1.2.2LCD液晶显示模块的方案对比选择
方案一:
显示的方法有很多种,其中LED数码管是常用的一种显示方法。
在这个设计中,可以用LED数码管来显示相应数字,该设计中,数码管使用数量较多,焊接较麻烦。
另外在PCB布线过程中很困难,给设计带来很不方便的使用。
方案二:
LCD1602液晶显示器是一块价廉物美的器件,其体积小,控制简单,使用方便。
它能显示2行16列的数字或英文信息,另外连接它的线很少,只要8根数据线和3根控制线,这样给使用带来很大的方便,节约单片机I/O口,价格比数码管便宜。
综上所述,在LCD液晶显示模块上,选择方案二中的LCD1602液晶显示器作为本设计的显示模块,显示时间年、月、日、时、分、秒。
1.2.3时钟电路的选择
方案一:
DS1302是一种高性能、低功耗、带RAM的实时时钟芯片它可以对年、月、日、日、时、分、秒进行计时且具有闰年补偿功能工作电压宽达2.5-5.5V。
采用三线接口与单片机进行同步通信并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品与DS1202兼容但增加了主电源和后背电源双电源引脚同时提供了对后背电源进行涓细电流充电的能力。
方案二:
STC89C52有3个内部定时器中断因此我们可以直接采用单片机内部定时器来实现年月日时分秒的计时的功能
综合考虑以上两种方案由于DS1302的高性能低功耗且内部自带RAM可以对年、月、日、时、分、秒进行计时且具有闰年补偿功能工作电压宽编程简单有后备电源。
所以我们选用DS1302作为时钟芯片。
2、系统硬件设计
2.1、系统框图
P0
P1.0-1.3
STC89C52
RST
P2.0-P2.2/(P2.4-P2.7)
P3.0-3.4
XTAL2
XTAL1
排阻
上电复位
手动按键
闹钟工作指示灯
LCD液晶显示
内部时钟
读写及使能信号/(时钟芯片)
2.2、各模块电路设计
(1)单片机模块:
STC89C52俗称单片机,是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低电压,高性能COMOS8的微处理器,使用经典的MCS-51内核,但做了很多的改进,是的芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8K字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16位定时器/计数器,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35Mhz,6T/12T可选。
STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。
时钟可以由内部方式产生或外部方式产生。
(2)电源模块:
由于整个系统采用的电源电压只需+5V的电压,所以采用不可调的3端稳压器件,用常用的7805就可以满足系统电源的要求。
其中1接整流器输出的+电压,2为公共地(也就是负极),3就是我们需要的正5V输出电压。
7805三端集成稳压电源内部由基准电压回路、恒流源、过流保护、过压保护、和短路保护回路等8部分组成,具有低功耗,高效率,纹波系数小,输出电压稳定等优点。
(3)时间显示模块:
液晶显示器是一种功耗极低的被动式显示器件,1602引脚脚介绍:
D0—D7数据传送引脚,VSS为接地线,VDD为电源线,VEE为LCD驱动电压调节,由此可以调节显示亮度。
RS为寄存器选择信号,高电平选择数据寄存器,低电平选择指令寄存器。
RW为读写控制信号,高电平读,低电平写。
EN使能信号,读状态下高电平有效,写状态下下降沿有效。
RS连接P2.0,寄存器选择信号RW连接P2.1,读写控制信号线EN连接P2.2,使能信号线。
(4)键盘控制模块:
五个按键分别是设置、增加、减少、闹钟开关键、确认,通过与程序结合可以实现通行状态的改变,通过手动控制开关实现时间设定及闹钟功能,即当按键按下时有低电平输入端口。
如果想设置时间则先按下设置键,再按加或减最后按下确认键,如此便实现了可以手动设置时间的功能,当按下闹钟开关时可实现闹钟的开关。
(5)蜂鸣器模块:
蜂鸣器驱动电路一般都包含以下几个部分:
一个三极管、一个蜂鸣器、一个电阻。
1.蜂鸣器
发声元件,在其两端施加直流电压(有源蜂鸣器)或者方波(无源蜂鸣器)就可以发声,其主要参数是外形尺寸、发声方向、工作电压、工作频率、工作电流、驱动方式等。
2.三极管
三极管Q1起开关作用,其基极的高电平使三极管饱和导通,使蜂鸣器发声;而基极低电平则使三极管关闭,蜂鸣器停止发声。
2.3电路原理图及电路介绍
利用proteus画好相应的硬件电路图,并把程序烧入软件仿真,看是否能显示功能。
见附件完整电路图。
电路主要由单片机STC89C52,LCD1602,7805,时钟芯片DS1302,蜂鸣器等组成一个简易的学校学生生活时间提示系统。
该电路具有计时、显示及定时功能,还可以通过按键手动设置设定闹钟提示时间,音提示5秒、停2秒、再提示5秒。
时间显示LCD602输出端分别和单片机的P0.0-0.7口连接,读写及使能信号分别和单片机的P2.0,P2.1,P2.2口连接。
排阻RESPACK-8接在51单片机的P0口,因为P0口内部没有上拉电阻,不能输出高电平,所以要接上拉电阻。
DS1302是DALLAS公司推出的涓流充电时钟芯片。
内含有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进行通信实时时钟/日历电路提供年、月、日、时、分、秒的信息可自动调整时钟操作。
DS1302_SCLK接P2.5,实时时钟时钟线引脚;DS1302_IO接P2.6,实时时钟数据线引脚;DS1302_RST接P2.7,实时时钟复位线引脚,VCC1接备用电源。
蜂鸣器及其驱动电路单片机的和单片机的P2.4口连接,单片机驱动蜂鸣器时,三极管工作在开关状态,就像用单片机控制开关,再由开关去控制蜂鸣器一样,只是将开关换成了三极管。
电路中设有五个开关,分别是确认、设置、加、减、闹钟开关,分别和单片机的P3.2、P3.3、P3.5、P3.6、P3.7端口连接,通过手动控制开关实现时间设定及闹钟功能,P3.2、P3.3分别是单片机外部中断0和外部中断1的端口,设置它低电平有效,即当按键按下时有低电平输入端口。
如果想改变状态则先按下状态键,再按加或减最后按下确认键。
如果想改变时间则先按下时间键然后按加或减最后按确认键。
设定闹钟时间,通过蜂鸣器发出提示音。
3、系统软件设计
3.1、软件总体流程图
开始
Lcd初始化
时间初始化
1302初始化
判断是否有按键按下
Yes
修改
修改时间
修改闹时
修改日期
调用时间修改时间函数
NO
调用时间修改函数
调用日期修改函数
调用功能函数
闹钟,作息提示
整点报时
再按控制键
结束
4、结语
4.1、电路调试及测试结果
利用Proteus绘制出相应硬件电路后进行仿真,出现液晶显示无法正常显示的问题。
经过思考和查阅的资料发现STC89C52的P0在进高电平时没有接上拉电阻导致LCD1602无法正常显示时间。
修改电路后(P0口接上拉电阻)烧入程序后,程序正常运行,LCD1602准确的显示。
用Proteus仿真能够正确的现实时间,但烧入学习板出现乱码现实不能正常工作。
经过反复检查及思考发现仿真软件上的硬件电路与学习板上的硬件电路不一致无法对应起来。
电路焊好后,将程序载入单片机,然后在实验箱上调+9V的电源,由正负极分别引出一根线,正的与7805的输入端相连,负的与电路板引出的地线连接。
经过多次修改程序和调试电路,最终测试结果和预期的一致。
最后根据学习板的硬件电路修改相应程序及仿真软件上的硬件电路,最终现实了功能。
4.2、结论与心得
通过这次电子设计大赛,在设计过程中我们先后利用keil软件进行编程、Proteus进行仿真,最后再利用学习板进行检查看程序是否能显示其功能。
在过程中让我进一步深刻的学习各种软件的利用以及各种软件给我们带来的便利。
特别是proteus在没有实物的情况下进行仿真进行程序的检查看是否能现实功能。
该设计通过单片机STC89C52做CPU进行总的控制,基于时钟芯片DS1302产生时间,利用LCD1602进行液晶显示的一个简易的数字钟。
LCD1602能够对年、月、日、时、分、秒进行计时及显示。
通过设计后能够熟练的掌握时钟芯片DS1302、LCD1620、STC89C52的的各个引脚及功能,并能够掌握和运用这几个芯片。
在设计开始,问题就接踵而至,虽然做过些课程设计,参加过实践,这次电子设计大赛使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
许多电路不管简单还是复杂,第一次搭建,调试,单片机编程序的时候总是让人头疼,但是有过一次经验就好了,以后再碰到类似的电路就熟练得多。
多动手也很重要,不要只对着图纸或者资料看,好多电路都要亲自调试才懂。
正所谓时间出真知,怕麻烦是不可取的,多动手多时间,理论与实践相结合,做得多经验就多了。
5.参考文献
[1]楼然苗、李光飞:
《单片机课程设计指导》,北京航空航天大学出版社
[2]李珍、付植桐:
《单片机原理与应用技术》,清华大学出版社
[3]李广弟等.单片机基础[M].北京航空航天出版社,2001.
[4]王东峰等.单片机C语言应用100例[M].电子工业出版社,2009.
[5]陈海宴.51单片机原理及应用[M].北京航空航天大学出版社,2010.
[6]许珉、毛小波:
《单片机原理及应用》,中国电力出版社
附表:
(1)完整电路图:
(2)元器件清单列表:
名称
规格
数量(个)
万用板
9*15cm
1
7805(稳压)
L7805
1
芯片底座
40脚
1
LCD1602
黄绿屏(5V)
1
排阻(A09-103)
10K
1
LED灯
5mm
3
蜂鸣器
1.5V无源
1
按键
6
DS1302
带电池CR2032
(带晶振32.768MHz)
1
电池
9V
1
三极管S8050
NPN
4
STC89C52
1
(3)源程序清单:
19
#include
#include
#include
typedefunsignedcharBYTE;
typedefbitBOOL;
unsignedcharri_con=0,hour_con=1; // ri_con闹钟开关开启1关闭0
unsignedcharyear=13,month=6,day=15,hour=12,minute=30,second=30;
unsignedcharri_hour=10,ri_minute=0,ri_second=0,state=0;//闹钟时间现在状态
unsignedchardate[]="date13-06-15";
unsignedchartime[]="time12:
30:
30";
/********************使用引脚定义**************************/
sbitbeep=P1^0; //蜂鸣器引脚
sbitwork_led=P1^1; //工作指示灯
sbitring_led=P1^2; //闹钟开关指示灯
sbithour_led=P1^3; //整点报时开关指示灯
sbitbutton_CON=P3^0;
sbitbutton_ADD=P3^1;
sbitbutton_DEC=P3^2;
sbitbutton_COLCK=P3^3;
sbitok=P3^4;
sbitSCLK=P2^6;//位定义1302芯片的接口,时钟输出端口定义在P2.6引脚
sbitDATA=P2^7;//位定义1302芯片的接口,数据输出端定义在P2.7引脚
sbitRST=P2^5;//位定义1302芯片的接口,复位端口定义在P2.5引脚
/****************************lcd引脚定义************************/
sbitLCD_RS=P2^0;
sbitLCD_RW=P2^1;
sbitLCD_EP=P2^2;
voiddelay(intms)
{//延时子程序
inti;
while(ms--)
{
for(i=0;i<250;i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
/***************LCD************************/
/*****************测试LCD忙碌状态************************/
BOOLlcd_bz()
{
BOOLresult;
LCD_RS=0;
LCD_RW=1;
LCD_EP=1;
_nop_();
_nop_();
_nop_();
_nop_();
result=(BOOL)(P0&0x80);
LCD_EP=0;
returnresult;
}
/*********************写入指令数据到LCD*********************************/
voidlcd_wcmd(BYTEcmd)
{
while(lcd_bz());
LCD_RS=0;
LCD_RW=0;
LCD_EP=0;
_nop_();
_nop_();
P0=cmd;
_nop_();
_nop_();
_nop_();
_nop_();
LCD_EP=1;
_nop_();
_nop_();
_nop_();
_nop_();
LCD_EP=0;
}
/********************设定显示位置*******************************/
voidlcd_pos(BYTEpos)
{
lcd_wcmd(pos|0x80);
}
/***********************写入字符显示数据到LCD********************************/
voidlcd_wdat(BYTEdat)
{
while(lcd_bz());
LCD_RS=1;
LCD_RW=0;
LCD_EP=0;
P0=dat;
_nop_();
_nop_();
_nop_();
_nop_();
LCD_EP=1;
_nop_();
_nop_();
_nop_();
_nop_();
LCD_EP=0;
}
/*************************LCD初始化设定**********************************/
voidlcd_init()
{
lcd_wcmd(0x38);//16*2显示,5*7点阵,8位数据
delay
(1);
lcd_wcmd(0x0c);//显示开,关光标
delay
(1);
lcd_wcmd(0x06);//移动光标
delay
(1);
lcd_wcmd(0x01);//清除LCD的显示内容
delay
(1);
}
/*******************显示函数************************/
voidstr_display(BYTEmeg[],BYTEpostion,BYTEdel){
BYTEi=0;
lcd_pos(postion);
while(meg[i]!
='\0')
{
lcd_wdat(meg[i]);
i++;
if(del!
=0)delay(del);
}
}
/*****************lcd初始化结束**************************/
/*******************DS1302*****************************/
/**********************************延时若干数据*********************************/
voiddelaynus(unsignedcharn)
{
unsignedchari;
for(i=0;i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学校 学生 生活 时间 提示 系统