单片机课程设计电子日历.docx
《单片机课程设计电子日历.docx》由会员分享,可在线阅读,更多相关《单片机课程设计电子日历.docx(37页珍藏版)》请在冰豆网上搜索。
![单片机课程设计电子日历.docx](https://file1.bdocx.com/fileroot1/2022-11/24/a6a10998-c2cc-4125-bc63-576bae6e8d5b/a6a10998-c2cc-4125-bc63-576bae6e8d5b1.gif)
单片机课程设计电子日历
课程设计
课程单片机课程设计
题目
院系电气信息工程学院测控技术与仪器系
专业班级
学生姓名
学生学号
指导教师
2013年7月8日
东北石油大学课程设计任务书
课程单片机课程设计
题目电子日历的制作
专业测控技术与仪器姓名学号
一、任务
以AT89C51单片机为控制核心,利用电子日历芯片DS1302及LCD液晶显示屏设计出一种具有时间及日期显示、预约定时等基本功能的电子日历。
二、设计要求
[1]掌握LCD液晶显示屏的工作原理;
2、该电子日历可以显示,年、月、日、时、分、秒及星期等内容;
3、具有4个按键操作来设置现在的时间。
操作键K1-K6功能如下:
(1)操作键K1:
进入设置现在的时间;
(2)操作键K2:
设置月;
(3)操作键K3:
设置日;
(4)操作键K4:
设置小时;
(5)操作键K5:
设置分钟;
(6)操作键K6:
确认完成设置。
4、基本电路包括:
单片机最小系统、LCD显示电路、蜂鸣器电路、独立键盘电路等;
5、提交设计报告、电路图及程序源码。
三、参考资料
[1]刘国钧,陈绍业,王凤翥.图书馆目录[M].北京:
高等教育出版社,1957.15-18.
[2]刘润华,刘立山.模拟电子技术[J].山东:
石油大学出版社,2003.
[3]苏成富.彩灯控制器[J].北京:
电机电器技术,2000,(01).
[4]祝富林.音乐彩灯电路CS9482[J].北京:
电子世界,1995,(12).
[5]彭介华.电子技术课程设计指导[J].北京:
高等教育出版社,1997.
完成期限2013.7.1-2013.7.10
指导教师
专业负责人
2013年6月29日
第1章绪论
近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
而51系列单片机是各单片机中最为典型和最有代表性的一种,通过本次课程设计进一步对单片机学习和应用,从而更熟悉单片机的原理和相关设计并提高了开发软、硬件的能力。
本设计主要设计一个基于80C51单片机的电子时钟,并在LED上显示相应的时间,通过两个控制键和4×4键盘来实现时间的调节功能。
应用Proteus软件实现单片机数字时钟系统的设计与仿真。
1.1单片机发展概况
随着大规模集成电路技术的发展,可以将CPU、RAM、ROM、定时器/计数器以及输入/输出(I/O)接口电路等计算机的主要部件集成在一块集成电路芯片上。
这样组成的芯片级的微型计算机就是“单片微型计算机(SingleChipMicrocomputer)”。
由于单片机从功能和形态来说都是作为控制领域应用的要求而诞生的,并且发展到新一代80C51、M68HC11系列单片机时,在其中着力扩展了各种控制功能,如模/数(A/D)转换、脉宽调制(PWM)、计数器捕获/比较逻辑(PCA)、高速I/O口和WDT等,已突破了微型计算机的传统内容。
所以更准确的叫法应是微控制器(MicroControllerUnit,MCU)。
单片机的发展大致经历了三代:
第一代:
以1976年推出的MCS-48系列为代表,其主要的技术特征是将CPU和计算机外围电路集成到了一个芯片上,成为与通用CPU分道扬镳的标志。
第二代:
以MCS-的8051、8052为代表。
主要技术特点是向外部接口电路扩展,以实现微控制器化。
代表产品为Intel公司MCS-51,Motorola公司68HC05。
第三代:
以89C51系列单片机为代表,这个时期的产品以CMOS化为特色,以完善的单片机的控制功能为己任。
89C51是80C51含EEPROM的产品。
这两种单片机有两级或三级程序存储器保密系统,用以保护EPROM或EEPROM中的程序,以防止非法复制。
近几年,单片机竞相采用Flash存储器。
它可以取代PROM、EPROM、OTP和EEPROM。
利用Flash存储器可高速读/写的特点实现在系统编程ISP和在应用编程IAP。
1.2单片机原理及应用简介
随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。
集成技术的最新发展之一是将CPU和外围芯片,如程序存储器、数据存储器、并行、串行I/O口、定时/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计算机(Single-ChipMicrocomputer)。
而近年来推出的一些高档单片机还包括有许多特殊功能单元,如A/D、D/A转换器、调制解调器、通信控制器、锁相环、DMA、浮点运算单元等。
因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工业控制系统、数据采集系统、自动测试系统、万年历电子表等。
单片机的出现,并在各个技术领域中得到如此迅猛的发展,与单片机构成计算机应用系统所形成的下述特点有关:
1、单片机构成的应用系统有较大的可靠性。
这些可靠性的获得除了依靠单-3-片机芯片本身的高可靠性以及应用有最少的联接外,还可以方便地采用软、硬件技术。
2、系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统,应用系统有较高的软、硬件利用系数。
3、由于构成的应用系统是一个计算机系统,相当多的测、控功能由软件实现,故具有柔性特征,不须改变硬件系统就能适当地改变系统功能。
4、有优异的性能、价格比。
可以说,对于广大的电子应用专业技术人员,目前国和内国外面临的单片机应用技术,如同60年代面临晶体管技术,70年代面临数字集成电路一样。
单片机和可编程门阵列相结合,构成新一代电子应用技术是不可能回避的一项新型的工程应用技术。
单片机是微型计算机的一个重要分枝,单片机是把中央处理器、随机存储器、只读存储器、定时器/计数器、并行接口接口、串行接口、A/D转换器等主要计算机部件,集中在一块集成电路芯片上。
虽然只是一个芯片,但从功能上它就相当于一台完整的微机。
随着科学技术的迅猛发展,单片计集成度高、体积小、运算速度快、功耗低、运行可靠、价格低廉等诸多优点,越来越显现出来。
目前可以说单片机已经渗透到我们的生活的各个领域,在工业方面:
像过程控制、数据采集,机电一体化、智能化仪器仪表,特别在军事武器控制方面尤为突出。
在日常生活方面,我们使用彩电、洗衣机、电冰箱,录放机、VCD、照相机、手机、高级定时闹钟以及公共汽车上的报站器等等可以说举不胜举。
把单片机的诞生称为计算机发展史上的一个重要里程碑并不过分。
单片机的应用,使许多领域的技术水平和自动化程度大大提高。
可以说当今世界正在经受一场以单片机技术为标志的新技术革命浪潮的冲击。
人们需要掌握单片机知识,跨入单片机应用与开发领域的大门。
我们作为理工科的大学生,学习单片机课程尤其显得越来越重要。
1.3本设计任务
随着电子技术的发展,人类不断研究,不断创新纪录。
万年历目前已经不再局限于以书本形式出现。
以电脑软件或者电子产品形式出现的万年历被称为电子万年历。
与传统书本形式的万年历相比,电子万年历得到了越来越广泛的应用,采用电子时钟作为时间显示已经成为一种时尚。
目前市场上各式各样的电子时钟数不胜数,但多数是只针对时间显示,功能单
一不能满足人们日常生活需求。
本文提出了一种基于AT89C51单片机的万年历设计方案,本方案以AT89C51单片机作为主控核心,与时钟芯片DS1302、按键、LCD显示等模块组成硬件系统。
在硬件系统中设有独立按键和LED显示器,能显示丰的信息,根据使用者的需要可以随时对时间进行校准、选择时间等,综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
(一).功能要求
本电子万年历能动态显示年、月、日、星期、小时、分钟、秒
第2章总体方案论证与设计
本系统采用单片机AT89C51为控制核心,利用电子日历芯片DS1302及LCD液晶显示屏设计出一种具有时间及日期显示、预约定时等基本功能的电子日历。
系统主要包括单片机最小系统、LCD显示电路、蜂鸣器电路、独立键盘电路等;下面对各模块的设计逐一进行论证比较。
1.3.1技术可行性
随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。
集成技术的最新发展之一是将CPU和外围芯片,如程序存储器、数据存储器、并行I/O口、串行I/O口、定时/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计算机(Single-ChipMicrocomputer)。
而近年来推出的一些高档单片机还包括有许多特殊功能单元,如A/D、D/A转换器、调制解调器、通信控制器、锁相环、DMA、浮点运算单元、PWM控制输出单元、PWM输出时的死区可编程控制功能等。
因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工业流水线控制系统、作为家用电器的主控制器、分布式控制系统的终端节点或作为其主控制节点起中继的作用、数据采集系统、自动测试系统等。
单片机的出现,并在各技术领域中得到如此迅猛的发展,与单片机构成计算机应用系统所形成的下述特点有关:
1、单片机构成的应用系统有较大的可靠性。
这些可靠性的获得除了依靠单片机芯片本身的高可靠性以及应用有最少的联接外,还可以方便地采用软、硬件技术。
2、系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统,应用系统有较高的软、硬件利用系数。
3、由于构成的应用系统是一个计算机系统,相当多的测、控功能由软件实现,故具有柔性特征,不须改变硬件系统就能适当地改变系统功能。
4、有优异的性能、价格比。
1.3.2单片机的选择
方案一:
采用传统的AT89C51作为电机的控制核心。
单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
方案二:
采用FTC10F04单片机,还带有非易失性Flash程序存储器。
它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。
其主要特点如下:
8KBFlashROM,可以擦除1000次以上,数据保存10年。
由于本系统对CPU运算速度要求很高,需要执行很复杂的运算,方案一成本比较低,适合做设计,方案二运算速度高,性能好,所以两种方案都有可取之处。
选用方案一作为主方案,方案二作为备用方案。
1.3.3显示模块的选择
方案一:
使用液晶显示屏显示时间数字。
液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影象稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。
但由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较多,其成本也偏高。
在使用时,不能有静电干扰,否则易烧坏液晶的显示芯片,不易维护。
方案二:
使用传统的LED数码管显示。
数码管具有:
低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度比较高,称重轻,精确可靠,操作简单。
数码管采用BCD编码显示数字,程序编译容易,资源占用较少。
根据以上的论述,采用方案二。
在本系统中,我们采用了八段四位一体数码管串口的动态显示,由于显示位数较多,故应使用显示驱动,在本设计中采用MAX7219显示驱动芯片。
1.3.4键盘模块的选择
在对日期和时间进行切换,对日期和时间进行调节校准过程中,系统需要产生激励电流,因此需要用按键。
方案一:
使用独立式键盘。
独立式键盘是指直接用I/O口线构成的单个按键电路。
独立式按键电路配置灵活,软件结构简单。
方案二:
使用矩阵式键盘。
矩阵式键盘是由行线和列线组成,按键位于行、列的交叉点上,行线、列线分别连接到按键开关的两端。
其特点是简单且不增加成本,这种键盘适合按键数量较多的场合。
根据以上的论述,因本系统需要的按键不多,星期加1键,日期加1键,月数加1键,年数加1键,秒数加1键,分数加1键,时数加1键,时间/日期切换键,要求简单。
所以采用方案一独立式键盘。
2.3总体硬件组成框图
按照系统设计功能的要求,初步确定系统由主控模块、时控模块、显示驱动及显示模块和键盘接口模块共4个模块组成,电路系统构成框图如图所示。
图2-1总体硬件组成框图
主控芯片使用51系列AT89C51单片机,时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟DS1302。
采用DS1302作为计时芯片,可以做到计时准确。
更重要的是,DS1302可以在很小电流的后备电源(2.5~5.5V电源,再2.5V时耗电小于300nA),而且DS1302可以编程选择多种充电电流来队后备电源进行慢速充电,可以保证后备电源基本不耗电。
显示驱动采用MAX7219,MAX7219是微处理器和共阴极八段八位LED数码管显示、图条/柱图显示或64点阵显示接口的小型串行输入/输出芯片。
片内包括BCD译码器、多路扫描控制器、字和位驱动器和8×8静态RAM。
外部只需要一个电阻设置所有LED显示器字段电流。
MAX7219和微处理器只需三根导线连接,每位显示数字有一个地址由微处理器写入。
允许使用者选择每位是BCD译码或不译码。
使用者还可选择停机模式、数字亮度控制、从1~8选择扫描位数和对所有LED显示器的测试模式。
显示模块采用普通的共阴极四位一体八段LED数码管。
第3章系统硬件设计
为使该模块化LED显示屏控制系统具有更加方便和灵活性,我们对系统的硬件做了精心设计。
硬件电路包括LED驱动模块、数据存储模块、PC机通信模块等三大模块。
3.1系统硬件概述
3.1.1主控制器AT89C51
ATMEL公司生产的AT89C51单片机采用高性能的静态80C51设计,并采用先进工艺制造,还带有非易失性Flash程序存储器。
它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。
其主要特点如下:
8KBFlashROM,可以擦除1000次以上,数据保存10年。
●256字节内部RAM;
●电源控制模式;
●时钟可停止和恢复;
●空闲模式;
●掉电模式;
●6个中断源;
●4个中断优先级;
●4个8位I/O口;
●全双工增强型TUAR;
●3个16位定时/计数器:
T0、T1(标准80C51)和增加的T2(捕获和比较)
●全静态工作方式:
0~24MHZ
2.2.3显示驱动MAX7219
●MAX7219和单片计算机连接有三条引线(DIN、CLK、LOAD),采用16位数据串行移位接收方式
●八位LED显示、图条/柱图显示或64点阵显示
●包括BCD译码器、多路扫描控制器、字和位驱动器和8×8静态RAM
●可选择停机模式、数字亮度控制、从1~8选择扫描位数和对所有LED显示器的测试模式
●最多能驱动8位LED显示器
●内部RAM地址01~08H分别对应于DIG0~DIG7。
●扫描界限寄存器(地址0BH):
该寄存器中D0~D3位数据设定值为0~7H,设定值表示显示器动态扫描个数位1~8。
●停机寄存器(地址0CH):
当D0=0时,MAX721处于停机状态;当D0=1时,处于正常工作状态。
●显示测试寄存器(地址0FH):
当D0=0时,MAX7219按设定模式正常工作;当D0=1时,处于测试状态。
在该状态下,不管MAX7219处于什么模式,全部LED将按最大亮度显示。
●亮度寄存器(地址0AH):
亮度可以用硬件和软件两种方法调节亮度寄存器中的D0~D3位可以控制LED显示器的亮度。
MAX7219通过D11~D84位地址位译码,可寻址14个内部寄存器,分别是8个LED显示位寄存器,5个控制寄存器和1个空操作寄存器。
LED显示寄存器由内部8×8静态RAM构成,操作者可直接对位寄存器进行个别寻址,以刷新和保持数据,只要V+超过2V(一般为+5V)。
控制寄存器包括:
译码模式,显示亮度调节,扫描限制(选择扫描位数),关断和显示测试寄存器。
MAX7219的驱动程序首先必须对5个控制寄存器初始设置即初始化,各控制寄存器设置含义如下:
译码模式选择寄存器(地址=F9H);MAX7219有两种译码方式:
B译码方式和不译码方式。
当选择不译码时,8个数据为分别一一对应7个段和小数点位;B译码方式是BCD译码,直接送数据就可以显示。
实际应用中可以按位设置选择B译码或是不译码方式。
扫描限制寄存器:
地址=FBH;用于设置显示的LED个数(1~8),比如当设置为0xX4时,LED0~5显示。
亮度调节寄存器:
地址=FAH;共有16级选择,用于LED显示亮度的强弱设置。
关断模式寄存器:
地址=FCH;有两种模式选择:
一种是关断状态模式(D0=0);一种是正常操作状态(D0=1),通常选择正常操作状态。
显示测试寄存器:
地址=FFH;有两种选择用于设置LED是测试状态还是正常操作状态:
当在测试状态时(D0=1)各位全应亮,一般选择正常操作状态(D0=0)。
2.3主要单元电路的设计
2.1显示电路
显示部分采用普通的共阴数码管显示,两个四位一体八段LED显示数码管和一个一位LED数码管设计时数码管同时扫描,显示时采用串行口输出段码,用MAX7219驱动数码管。
图2.1MAX7219
2.2键盘接口
键盘在单片机系统中是一个很重要的部件。
为了输入数据、查询和控制系统的工作状态,都要用到键盘,键盘是人工干预计算机的主要手段。
2.2.1按键开关去抖动问题
按键开关在电路中的连接如图所示。
按键未按下时,A点电位为高电平5V;按键按下时,A点电位为低电平。
A点电位就用于向CPU传递按键的开关状态。
但是由于按键的结构为机械弹性开关,在按键按下和断开时,触点在闭合和断开瞬间还会接触不稳定,引起A点电平不稳定,如图2-11b所示,键盘的抖动时间一般为5~10ms,抖动现象会引起CPU对一次键操作进行多次处理,从而可能产生错误。
因此必须设法消除抖动的不良后果。
图2.2键操作和键抖动
消除抖动的不良后果的方法有硬、软件两种。
为了节省硬件,通常在单片机系统中,一般不采用硬件方法消除键的抖动,而是用软件消除抖动的方法。
根据抖动特性,在第一次检测到按键按下后,执行一段延时5~10ms让前延抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认真正有键按下。
当检测到按键释放后,也要给5~10ms的延时,待后延抖动消失后才转入该键处理程序。
2.3时钟电路
2.3.1DS1302工作方式简介及数据操作原理
DS1302时钟芯片包括实时时钟/日历和31字节的静态RAM。
它经过一个简单的串行接口与微处理器通信。
实时时钟/日历提供秒、分、时、日、周、月和年等信息。
对于小于31天的月和月末的日期自动进行调整,还包括闰年校正的功能。
时钟的运行可以采用24<小>时或带AM/PM的12小时格式。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多字节的时钟信号或RAM数据。
DS1302有Vcc1(主电源)/Vcc2(后备电源)双电源引脚,由Vcc1或Vcc2中较大者供电。
图2.3DS1302
DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在SCLK的上升沿被访问到。
在开始8个时钟周期,把命令字节装入移位寄存器后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。
上电运行时,在Vcc≥2.5V之前,RST脚必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
DS1302的控制字如图所示。
控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。
位6如果为0,则表示存取日历时钟数据;为1则表示存取RAM数据。
位5~1(A4~A0)指示操作单元的地址。
最低有效位(位0)如果为0,则表示要进行写操作;为1表示进行读操作。
控制字节总是从最低位开始输入/输出。
DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。
其日历、时间寄存器及其控制字如下表所示,其中奇数为读操作,偶数为写操作。
时钟暂停:
秒寄存器的位7定义位时钟暂停位。
当它为1时,DS1302停止振荡,进入低功耗的备份方式,通常在对DS1302进行写操作时(如进入时钟调整程序),停止振荡。
当它为0时,时钟将开始启动。
AM-PM/12-24小时方式:
小时寄存器的位7定义为12或24小时方式选择位。
它为高电平时,选择12小时方式。
在此方式下,位5为第二个10小时位(20~23h)。
DS1302的晶振选用32768Hz,电容推荐值为6pF。
因为振荡频率较低,也可以不接电容,对计时精度影响不大。
第4章系统的软件设计
电子万年历的程序主要包括3个方面的内容:
一是DS1302从单片机中读取数据进行计数,二是利用按键进行时间的调整,三是MAX7219从单片机中读取数据驱动LED数码管显示时间。
AT89C51单片机主要I/O口的分配,P2.0-P2.2分别接MAX7219的DIN,LOAD,CLK三个功能端,P3接查询式按键,P1.0-P1.2分别接DS1302的CLK,IO,RST端。
4.1主程序设计
图5-1为单片机电子日历的主流程图。
其具体的工作流程如下:
系统通电后,对系统进行复位初始化处理,然后控制主机AT89C51单片机从时钟芯片DS1302中读取时间,存储到单片机中,并显示到LED数码管上。
显示的时间如果与实际时间一样,则结束,如果不一样,则进行下一步操作。
系统一直扫描是否有键按下,当有按键S1按下后,系统进入时间设定模式,并对不准确的时间进行设定和调整,直到设定完成后,则将设定后的时间显示在LED数码管上。
4.1.1显示驱动程序流程图
4.2.2时间控制流程图
图5-2为电子日历的时间产生流程图,即DS1302操作流程图。
其具体的工作流程为:
系统通电后,开始初始化操作,使得DS1302不具备写保护的模式,同时当复位端产生一个高电平时,对DS1302进行写地址,并延迟一段时间,向该地址写数据,同时地址增加,如果数据写完没有写完,则继续对DS1302进行写地址操作,否则进行下一步操作,当给复位端一个高电平后,对DS1302写地址,同时延迟一段时间后,将该地址的数据读出来,同时地址增加,如果数据没有读完,则继续对DS1302进行写地址操作,否则即数据已经读完,则将读取出来的数据显示出来,并进行返回操作。
第5章系统调试与测试结果分析
5.1使用的仪器仪表
数字万用表 DT9203
单片机仿真器 WAVE6000
烧写器GF2100
双踪稳压稳流电源 DH1718E-5
5.2系统调试
根据系统设计方案,本系统的调试共分为三大部分:
硬件调试,软件调试和软硬件联调。
由于在系统设计中采用模块设