毕业设计基于单片机的电子时钟设计实现.docx
《毕业设计基于单片机的电子时钟设计实现.docx》由会员分享,可在线阅读,更多相关《毕业设计基于单片机的电子时钟设计实现.docx(49页珍藏版)》请在冰点文库上搜索。
毕业设计基于单片机的电子时钟设计实现
题目基于单片机的电子时钟设计实现
摘要
在电子工业高度发达的今天,单片机以其简单的操作和强大的功能在在电子芯片中占有一席之地,具有极其广泛的应用,选择基于单片机的电子时钟的设计实现作为毕业设计的题目具有较强的实践意义。
实现设计主要是以单片机开发板为基础,用keilc软件对单片机进行c语言编程,应用单片机内部定时器产生时间信息,通过中断服务程序完成相应信息的处理,对液晶进行编程在液晶上显示时间信息,通过按键可调节时间信息,通过单片机开发板下载器将程序下载进单片机。
万年历最终实现功能为通过按键可实现对年,月,日,星期,以及当前时间的调节,按key2键可加以上时间信息,按key3键可减以上时间信息,根据月份不同显示相应的天数,星期上限为7。
关键字:
单片机;定时器;中断服务
Abstract
Highlydevelopedintheelectronicsindustrytoday,single-chipmicrocomputerwithitssimpleoperationandpowerfulfeaturesintheelectronicchipinaplace,Anextremelywiderangeofapplications,selectthee-calendar-basedsingle-chiprealizationofthesubjectasagraduationprojecthasstrongpracticalsignificance.Mainlysingle-chipdesignbasedondevelopmentboardwithasingle-chipmicrocomputersoftwarekeilctoclanguageprogramming,applicationshaveasingle-chipinternaltimertimeinformation,Throughthecompletionofthecorrespondinginterruptserviceroutinehandlingofinformationontheprogramintheliquidcrystalliquidcrystaldisplaytimeinformation,Adjustablethroughkeytimeinformation,throughthesingle-chipdevelopmentboarddownloadwilldownloadintothesinglechip.Calendarfortheeventualrealizationoffunctionkeyscanberealizedthroughtheyear,month,day,week,aswellastheregulationofthecurrenttime,accordingtotheabovekey2keymaybetimeinformation,Key3keycanbereducedbymorethantimeinformation,inaccordancewiththecorrespondingmonthofthedifferentshowsthatthenumberofdays,amaximumof7weeks.
Keywords:
single-chipmicrocomputer;timer;interruptservice
第一章绪论
1.1毕业设计目的和背景
一寸光阴一寸金,寸金难买寸光阴。
时间对于我们每一个人都是非常宝贵的,所以钟表作为人们掌握时间的工具就显得十分重要!
钟表的出现已经有几百年历史,尤其是摆钟和后来的怀表,可以称作钟表中的经典,不仅大方实用,而且制作精美。
但近几十年,由于微电子的迅猛发展,这样的钟表已经销声匿迹,取而代之的则是电子时钟。
电子时钟不仅精确度更高、外观小巧、功能更加完善,制作成本也是非常低。
单片机控制的电子时钟完全具备时钟的各种功能,硬件组成非常精简,只需要进行软件的编写,就能够实现我们需要的功能。
1.2单片机简介
单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),模拟多路转换器及A/D转换器等电路集成到一块单块芯片上,构成一个最小然而完善的计算机系统.这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。
由此来看,单片机有着微处理器所不具备的功能,它可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。
然而单片机又不同于单板机,芯片在没有开发前,它只是具备功能极强的超大规模集成电路,如果赋予它特定的程序,它便是一个最小的、完整的微型计算机控制系统,它与单板机或个人电脑(PC机)有着本质的区别,单片机的应用属于芯片级应用,需要用户了解单片机芯片的结构和指令系统以及其它集成电路应用技术和系统设计所需要的理论和技术,用这样特定的芯片设计应用程序,从而使该芯片具备特定的功能。
不同的单片机有着不同的硬件特征和软件特征,即它们的技术特征均不尽相同,硬件特征取决于单片机芯片的内部结构,用户要使用某种单片机,必须了解该型产品是否满足需要的功能和应用系统所要求的特性指标.这里的技术特征包括功能特性、控制特性和电气特性等等,这些信息需要从生产厂商的技术手册中得到.软件特征是指指令系统特性和开发支持环境,指令特性即我们熟悉的单片机的寻址方式,数据处理和逻辑处理方式,输入输出特性及对电源的要求等等.开发支持的环境包括指令的兼容及可移植性,支持软件(包含可支持开发应用程序的软件资源)及硬件资源.要利用某型号单片机开发自己的应用系统,掌握其结构特征和技术特征是必须的。
单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化,现在单片机控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。
诚然,单片机的应用意义远不限于它的应用范畴或由此带来的经济效益,更重要的是它已从根本上改变了传统的控制方法和设计思想.是控制技术的一次革命,是一座重要的里程碑。
1.3单片机发展概述
1946年第一台电子计算机诞生至今,只有50年的时间,依靠微电子技术和半导体技术的进步,从电子管——晶体管——集成电路——大规模集成电路,现在一块芯片上完全可以集成几百万甚至上千万只晶体管,使得计算机体积更小,功能更强.特别是近20年时间里,计算机技术获得飞速的发展,计算机在工农业,科研,教育,国防和航空航天领域获得了广泛的应用,计算机技术已经是一个国家现代科技水平的重要标志。
单片机诞生于20世纪70年代,象Fairchid公司研制的F8单片微型计算机.所谓单片机是利用大规模集成电路技术把中央处理单元(CenterProcessingUnit,也即常称的CPU)和数据存储器(RAM)、程序存储器(ROM)及其他I/O通信口集成在一块芯片上,构成一个最小的计算机系统,而现代的单片机则加上了中断单元,定时单元及A/D转换等更复杂、更完善的电路,使得单片机的功能越来越强大,应用更广泛.
20世纪70年代,微电子技术正处于发展阶段,集成电路属于中规模发展时期,各种新材料新工艺尚未成熟,单片机仍处在初级的发展阶段,元件集成规模还比较小,功能比较简单,一般均把CPU、RAM有的还包括了一些简单的I/O口集成到芯片上,象Farichild公司就属于这一类型,它还需配上外围的其他处理电路方才构成完整的计算系统.类似的单片机还有Zilog公司的Z80微处理器.
1976年INTEL公司推出了MCS-48单片机,这个时期的单片机才是真正的8位单片微型计算机,并推向市场.它以体积小,功能全,价格低赢得了广泛的应用,为单片机的发展奠定了基础,成为单片机发展史上重要的里程碑.
在MCS-48的带领下,其后,各大半导体公司相继研制和发展了自己的单片机,象Zilog公司的Z8系列.到了80年代初,单片机已发展到了高性能阶段,象INTEL公司的MCS-51系列,Motorola公司的6801和6802系列,Rokwell公司的6501及6502系列等等,此外,日本的著名电气公司NEC和HITACHI都相继开发了具有自己特色的专用单片机.
80年代,世界各大公司均竞相研制出品种多功能强的单片机,约有几十个系列,300多个品种,此时的单片机均属于真正的单片化,大多集成了CPU、RAM、ROM、数目繁多的I/O接口、多种中断系统,甚至还有一些带A/D转换器的单片机,功能越来越强大,RAM和ROM的容量也越来越大,寻址空间甚至可达64kB,可以说,单片机发展到了一个全新阶段,应用领域更广泛,许多家用电器均走向利用单片机控制的智能化发展道路。
1982年以后,16位单片机问世,代表产品是INTEL公司的MCS-96系列,16位单片机比起8位机,数据宽度增加了一倍,实时处理能力更强,主频更高,集成度达到了12万只晶体管,RAM增加到了232字节,ROM则达到了8kB,并且有8个中断源,同时配置了多路的A/D转换通道,高速的I/O处理单元,适用于更复杂的控制系统.
九十年代以后,单片机获得了飞速的发展,世界各大半导体公司相继开发了功能更为强大的单片机.美国Microchip公司发布了一种完全不兼容MCS-51的新一代PIC系列单片机,引起了业界的广泛关注,特别它的产品只有33条精简指令集吸引了不少用户,使人们从INTEL的111条复杂指令集中走出来.PIC单片机获得了快速的发展,在业界中占有一席之地。
随后的事情,熟悉单片机的人士都比较清楚了,更多的单片机种蜂拥而至,MOTOROLA公司相继发布了MC68HC系列单片机,日本的几个著名公司都研制出了性能更强的产品,但日本的单片机一般均用于专用系统控制,而不象INTEL等公司投放到市场形成通用单片机.例如NEC公司生产的uCOM87系列单片机,其代表作uPC7811是一种性能相当优异的单片机.MOTOROLA公司的MC68HC05系列其高速低价等特点赢得了不少用户。
Zilog公司的Z8系列产品代表作是Z8671,内含BASICDebug解释程序,极大地方便用户.而美国国半的COP800系列单片机则采用先进的哈佛结构.ATMEL公司则把单片机技术与先进的Flash存储技术完美地结合起来,发布了性能相当优秀的AT89系列单片机.包括中国的台湾HOLTEK和WINBOND等公司也纷纷加入了单片机发展行列,凭着他们廉价的优势,分享一杯美羹.
1990年美国INTEL公司推出了80960超级32位单片机引起了计算机界的轰动,产品相继投放市场,成为单片机发展史上又一个重要的里程碑。
此期间,单片机园地里,单片机品种异彩纷呈,争奇斗艳.有8位、16位甚至32位机,但8位单片机仍以它的价格低廉、品种齐全、应用软件丰富、支持环境充分、开发方便等特点而占着主导地位.而INTEL公司凭着他们雄厚的技术,性能优秀的机型和良好的基础,目前仍是单片机的主流产品.只不过是九十年代中期,INTEL公司忙着开发他们个人电脑微处理器,已没有足够的精力继续发展自己创导的单片机技术,而由PHILIPS等公司继续发展C51系列单片机。
1.4单片机的应用领域
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:
1.在智能仪器仪表上的应用
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量.采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大.例如精密的测量设备(功率计,示波器,各种分析仪)。
2.在工业控制中的应用
用单片机可以构成形式多样的控制系统、数据采集系统.例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。
3.在家用电器中的应用
可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。
4.在计算机网络和通信领域中的应用
现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等.
5.单片机在医用设备领域中的应用
单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。
此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。
1.5单片机的发展趋势
现在可以说单片机是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。
纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:
1.低功耗CMOS化
MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺).象80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺).CMOS虽然功耗较低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗象电池供电的应用场合.所以这种工艺将是今后一段时期单片机发展的主要途径。
2.微型单片化
现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大.甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。
此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小.现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。
3.主流与多品种共存
现在虽然单片机的品种繁多,各具特色,但仍以80C51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国台湾的Winbond系列单片机.所以C8051为核心的单片机占据了半壁江山.而Microchip公司的PIC精简指令集(RISC)也有着强劲的发展势头,中国台湾的HOLTEK公司近年的单片机产量与日俱增,与其低价质优的优势,占据一定的市场分额.此外还有MOTOROLA公司的产品,日本几大公司的专用单片机.在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。
第二章硬件部分
2.1开发板板载资源
2.1.151系列单片机开发板
完成毕业设计所用开发板为STC公司生产的89C52单片机做核心控制芯片,它是一款性价比非常高的单片机,它完全兼容ATMEL公司的51单片机,除此之外它自身还有很多特点,如:
无法解密、低功耗、高速、高可靠、强抗静电、强抗干扰等。
STC公司的单片机内部资源比起ATMEL公司的单片机来要丰富的多,它内部有1280字节的SRAM、8-64K字节的内部程序存储器、2-8K字节的ISP引导码、除P0-P3口外还多P4口(PLCC封装)、片内自带8路8位AD(AD系列)、片内自带EEPROM、片内自带看门狗、双数据指针等。
开发板可完全作为各种51单片机的开发板,用汇编语言或C语言对其进行编程。
2.1.2开发板配置
1、89C52单片机,支持USB口或者是串口两种下载程序方式,也就是你不用买单片机烧写器也能够随时烧写程序到你的片子里查看您编写的程序状况。
2、6位数码管。
3、8位LED发光二极管。
4、MAX232芯片RS232通讯接口。
5、USB供电系统,直接插接到电脑USB口即可提供电源,不需另接直流电源。
6、蜂鸣器。
7、ADC0804芯片。
8、DAC0832芯片。
9、PDIUSBD12芯片。
10、USB转串口模块,直接由计算机USB口下载程序至单片机。
11、DS18B20温度传感器。
12、AT24C02外部EEPROM芯片。
13、字符液晶1602接口(可显示两行字符)。
14、图形液晶12864接口。
15、4*4矩阵键盘另加四个独立键盘。
16、单片机32个IO口全部引出,方便自己进行自由扩展。
17、锁紧装置,非常方便主芯片的安装及卸取。
2.21602液晶
2.2.11602引脚说明:
表2.11602引脚说明
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
双向数据口
2
VDD
电源正极
10
D3
双向数据口
3
VL
对比度调节
11
D4
双向数据口
4
RS
数据/命令选择
12
D5
双向数据口
5
R/W
读/写选择
13
D6
双向数据口
6
E
模块使能端
14
D7
双向数据口
7
D0
双向数据口
15
BLK
背光源地
8
D1
双向数据口
16
BLA
背光源正极
VDD:
电源正极,4.5-5.5V,通常使用5V电压;
VL:
LCD对比度调节端,电压调节范围为0-5V。
接正电源时对比度最弱,接地电源时对比度最高,但对比度过高时会产生“鬼影”,因此通常使用一个10K的电位器来调整对比度,或者直接串接一个电阻到地;
RS:
MCU写入数据或者指令选择端。
MCU要写入指令时,使RS为低电平;MCU要写入数据时,使RS为高电平;
R/W:
读写控制端。
R/W为高电平时,读取数据;R/W为低电平时,写入数据;
E:
LCD模块使能信号控制端。
写数据时,需要下降沿触发模块。
D0-D7:
8位数据总线,三态双向。
如果MCU的I/O口资源紧张的话,该模块也可以只使用4位数据线D4-D7接口传送数据。
本充电器就是采用4位数据传送方式;
BLA:
LED背光正极。
需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50mA左右;
BLK:
LED背光地端。
2.2.21602时序
图2.11602的读写时序
2.3矩阵键盘检测
矩阵式键盘的结构与工作原理:
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在
图2.2矩阵键盘
需要的键数比较多时,采用矩阵法来做键盘是合理的。
矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。
行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
具体的识别及编程方法如下所述。
矩阵式键盘的按键识别方法
确定矩阵式键盘上何键被按下介绍一种“行扫描法”。
行扫描法行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下。
判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。
只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。
若所有列线均为高电平,则键盘中无键按下。
判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。
其方法是:
依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。
在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。
若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。
第三章软件设计
3.1KEILC软件
3.1.1KEILC简介
KeilC51µVision2集成开发环境是KeilSoftware,Inc/KeilElektronikGmbH开发的基于80C51内核的微处理器软件开发平台,内嵌多种符合当前工业标准的开发工具,可以完成从工程建立到管理、编译、链接、目标代码的生成、软件仿真、硬件仿真等完整的开发流程尤其是C编译工具在产生代码的准确性和效率方面达到了较高的水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。
KeilC51集成开发环境的主要功能有以下几点:
µVision2forWindows:
是一个集成开发环境,它将项目管理、源代码编辑和程序调试等组合在一个功能强大的环境中;
C51国际际准化C交叉编译器:
从C源代码产生可重定位的目标模块;
A51宏汇编器:
从80C51汇编源代码产生可重定位的目标模块;
BL51链接器/定位器:
组合由C51和A51产生的可重定位的目标模块,生成绝对目标模块;
LIB51库管理器:
从目标模块生成连接器可以使用的库文件;
OH51目标文件至HEX格式的转换器,从绝对目标模块生成IntelHex文件;
RTX-51实时操作系统:
简化了复杂的实时应用软件项目的设计。
这个工具套件是为专业软件开发人员设计的,但任何层次的编程人员都可以使用,并获得80C51单片机的绝大部分应用。
KeilSoftware提供了一流的80C51系列开发工具软件,下面描述每个套件及其内容:
PK51专业开发套件。
PK51专业开发套件提供了所有工具,适合专业开发人员建立和调试80C51系列微控制器的复杂嵌入式应用程序。
专业开发套件可针对80C51及其所有派生系列进行配置使用。
DK51开发套件。
DK51开发套件是PK51的精简版,它不包括RTX51Tiny实时操作系统