单片机万年历课程设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机万年历课程设计

河南工程学院

实习报告

专业:

班级:

姓名:

学号:

2011年11月日

实习(训)报告评语

等级:

评阅人: 职称:

年月日

河南工程学院

实习(训)报告

实习目的(内容):

实习时间: 自 11 月 21 日至 12 月 2 日

共天。

实习地点: 实习单位:

指导教师: 系主任:

一、设计任务与要求:

利用ATC89C1单片机设计一个具有如下功能的电子万年历:

1、能够显示年、月、日、时、分、秒、星期。

2、可更改年、月、日、时、分、秒、星期。

3、更改时间及日期时蜂鸣器鸣声提示。

二、方案设计与论证

按照系统设计的要求和功能,将系统分为主控模块、时钟电路模块、按键扫描模块、LCD显示模块、蜂鸣器电路、电源电路、复位电路、晶振电路几个模块,系统框图如图1所示。主控模块采用ATC89C51单片机,按键模块用3个按键,用于调整时间,显示模块采用LCD1602,时钟电路模块采用DS1302实时时钟实现对时间,日期的操作。

图1 基于AT89C51单片机的电子万年历系统框图三、硬件单元电路设计与参数计算

1、主控模块

选用AT89C51单片机作为中央处理器,如图2所示。AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。

图2 AT89C51主控模块

2、时钟振荡电路

时钟振荡电路图3所示,时钟振荡电路用于产生单片机正常工作时所需要的时钟信号,电路由两个30pF的瓷片电容和一个12MHz的晶振组成,并接入到单片机的XTAL1和XTAL2引脚处,使单片机工作于内部振荡模式。此电路在加电后延迟大约10ms振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率决定。

图3 AT89C51时钟振荡电路

3、复位电路

复位电路由电阻和极性电容组成,如图4所示,通过高电平使单片机复位,在时钟电路开始工作后,当高电平的时间超过大约2us时,即可实现复位。此复位电路同时具备了上电复位和手动复位的功能,上电复位发生在开机加电时,由系统自动完成,手动复位通过一个按键来实现,在程序运行时,若遇到死机,死循环或程序“跑飞”等情况,通过手动复位就可以实现重新启动的操作。手动按钮复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源Vcc之间接一个按钮以及在RST端和地之间接一个电阻,如图所示,当人为按下按钮时,则Vcc 的+5V电平就会直接加到RST端,由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。

图4 AT89C51复位电路

4、DS1302时钟电路

时钟电路主要由时钟芯片DS1302、晶振等几部分组成,DS1302采用3线串行接口,占用引脚少,如图5所示。

图5 DS1302时钟电路

5、按键电路

按键电路由3个轻触开关组成,如图6所示。按键用来调整时间,其一端直接接到单片机的端口,另一端接地,当按下按键时,相应的端口变为低电平,通过检测这一低电平就可以判断是哪个键按下,从而作相应的操作。

图6 按键电路

6、显示电路

显示电路采用LCD1602液晶显示,图中只画出了其相应的接口,如图7所示。

、6为LCD1602的控制口,用于控制其写入或3脚用于调节LCD1602的背

光,4、5

是读出指令,7至14脚为LCD1602的数据口,将数传送到LCD1602中。

图7 LCD1602接口电路

7、蜂鸣器电路

蜂鸣器电路如图8所示。通过控制三极管的导通和截止来实现蜂鸣器的响与不响。

图8 蜂鸣器电路

四、软件设计与流程图

1、程序主流程图

主程序首先初始化定时器、LCD1602及DS1302,然后就开始查询按键,有键按下则开始调整时间和设置闹钟,若没有按下,则执行下面的时间、日期及闹钟时间的显示,最后依次循环这些相同的操作,相应流程图如下图所示: 开始

初始化

时间、日期、闹钟设定按键是否按

显示时间、日期

结束

按键的检测主要是通过查询的办法来实现,利用按键进行时间调整;设置键按下则开始设置时间及日期,同时被选择的时间和日期开始闪烁,第一次按下设置键时,设置秒,第二次按下设置分,后面依次设置时、星期、日、月、年,年设置之后再按一下设置键则退出设置;复位键用来使单片机复位,复位时使三极管导通,驱动蜂鸣器发出响声;若按下下调键是减1操作,按下上调键是加1操作。

六、结论与心得

通过这次课程设计,我对单片机的理论知识有了进一步的掌握,对单片机的原理和实际应用有了更多地理解和掌握。我对单片机的C语言编程有了更深刻的认识和更扎实的掌握,通过不断修改,不断尝试,对程序各个模块的函数都有了一个非常深入的掌握。在收获知识的同时,还培养了独立思考、动手制作的能力,在各种其它能力上也都有了提高。更重要的是,在课程设计里,我学会了很多学习的方法,而这是以后最实用的,真的是受益匪浅。

七、源程序

#include

//#include"DS18B20_3.H"

#define uint unsigned int

#define uchar unsigned char

uchar a,miao,shi,fen,ri,yue,nian,week,flag,key1n,temp;

//flag用于读取头文件中的温度值,和显示温度值

#define yh 0x80 //LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为1(100000000=80)

相关文档
最新文档