




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自动化专业综合设计报告 自动化专业综合设计报告设计题目: 基于51单片机的数字钟的设计 所在实验室: 单片机仿真模拟实验室 指导教师: 孙红霞 学生姓名 律迪迪 班级 文自0921 学号 200990519114 撰写时间: 2013.3.2 成绩评定: 一、设计目的电子钟是一种用数字电路技术实现时、分、秒计时的装置,与机械时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命。电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大地方便。本设计主要采用AT89C2051单片机作为主控核心, LED动态扫描显示屏显示。数字钟是一种用数字电路技术实现时、分、秒计时的装置,另外应有校时功能和闹钟等附加功能。与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。AT89C2051是美国Atmel公司生产的低电压、高性能CMOS 8位单片机,片内含2KB的可反复擦写的只读程序存储器(PEROM)和128B的随机数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C2051单片机在电子类产品中有广泛的应用。AT89C2051单片机电压可选用4-6V电压供电;显示器采用LED数码管来显示,数码管成本低廉,系统不但接口设计简单、便于控制,而且具有很好的人机界面,可以对当前的时间进行调整。二、设计内容用PROTEUS画出原理图,并完成下列任务: 用4只LED数码管输出显示时和分。 可通过按键设置闹钟功能,且停闹无须手工操作。 可通过按键设置分校时。(4) 写出详细的设计报告。(5)给出电路的原理图、源程序,仿真实现。三、设计步骤利用以AT89C2051为核心的芯片来实现多功能的数字钟。本次设计的多功能数字钟采用按钮方式对时间进行控制设置,采用七段数码管显示当前的时间,且时间以24小时的计时方式,在本次设计中,电路不仅具有显示时间,还可以实现对它们的调整。该系统是利用单片机最小系统再加上数码管、时钟芯片等电路组成。基于单片机作为主控芯片很容易控制操作,况且输入输出能很好的扩展,以便于修改更正。1 系统主要功能 电子钟的主要功能有:整点报时;四只LED数码管显示当前时分;并且具有闹钟功能。2 系统的硬件构成及功能电脑钟的原理框图如图1所示。它由以下几个部件组成:单片机89C2051、电源、时分显示部件。时分显示采用动态扫描,以降低对单片机端口数的要求,同时也降低系统的功耗。时分显示模块以及显示驱动都通过89C2051的I/O口控制。电源部分:电源部分有二部分组成。一部分是由220V的市电通过变压、整流稳压来得到+5V电压,维持系统的正常工作。 21 AT89C2051单片机及其引脚说明AT89C2051单片机是51系列单片机的一个成员,是8051单片机的简化版。内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与Intel MCS-51系列单片机的指令和输出管脚相兼容。由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。AT89C2051是一个有20个引脚的芯片,引脚配置如图3所示。与8051相比,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚下,因而芯片尺寸有所减小。 图2 AT89C2051引脚配置AT89C2051芯片的20个引脚功能为:VCC 电源电压。GND 接地。RST 复位输入。当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至“1”。XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2 来自反向振荡放大器的输出。P1口 8位双向I/O口。引脚P1.2P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20mA电流,并能直接驱动LED显示器;P1口引脚写入“1” 后,可用作输入。在闪速编程与编程校验期间,P1口也可接收编码数据。P3口 引脚P3.0P3.5与P3.7为7个带内部上拉的双向I/0引脚。P3.6在内部已与片内比较器输出相连,不能作为通用I/O引脚访问。P3口的输出缓冲器能接收20mA的灌电流; P3口写入“1”后,内部上拉,可用输入。P3口也可用作特殊功能口,其功能见表1。P3口同时也可为闪速存储器编程和编程校验接收控制信号。22 时分显示部件由于系统要显示的内容较简单,显示量不多,所以选用数码管既方便又经济。LED有共阴极和共阳极两种。如图7所示。二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)ag,另一个小数点为dp发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。为了保护各段LED不被损坏,需外加限流电阻。 图3 LED数码管结构原理图众所周知,LED显示数码管通常由硬件7段译码集成电路,完成从数字到显示码的译码驱动。本系统采用软件译码,以减小体积,降低成本和功耗,软件译码的另一优势还在于比硬件译码有更大的灵活性。所谓软件译码,即由单片机软件完成从数字到显示码的转换。从LED数码管结构原理可知,为了显示字符,要为LED显示数码管提供显示段码,组成一个“8”字形字符的7段,再加上1个小数点位,共计8段,因此提供给LED数码管的显示段码为1个字节。各段码位与显示段的对应关系如表1。表1 各段码位的对应关系段码位D7D6D5D4D3D2D1D0显示段dpgfedcba需说明的是当用数据口连接LED数码管adp引脚时,不同的连接方法,各段码位与显示段有不同的对应关系。通常数据口的D0位与a段连接,D1位与b段连接,D7位与dp段连接,如表1所示,表2为用于LED数码管显示的十六进制数和空白字符与P的显示段码。字型共阳极段码共阴极段码字型共阳极段码共阴极段码0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3BOH4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF84H71H7F8H07H空白FFH00H880H7FHP8CH73H注:(1)本表所列各字符的显示段码均为小数点不亮的情况。 (2)“空白”字符即没有任何显示。根据AT89C2051单片机灌电流能力强,拉电流能力弱的特点,我们选用共阳数码管。将AT89C2051的P1.0P1.7分别与共阳数码管的ag及dp相连,高电平的位对应的LED数码管的段暗,低电平的位对应的LED数码管的段亮,这样,当P0口输出不同的段码,就可以控制数码管显示不同的字符。例如:当P0口输出的段码为1100 0000,数码管显示的字符为0。数码管显示器有二种工作方式,即静态显示方式和动态扫描显示方式。为节省端口及降低功耗,本系统采用动态扫描显示方式。动态扫描显示方式需解决多位LED数码管的“段控”和“位控”问题,本电路的“段控”(即要显示的段码的控制)通过P1口实现;而每一位的公共端,即LED数码管的“位控”,则由P3口控制。这种连接方式由于多位字段线连在一起,因此,要想显示不同的内容,必然要采取轮流显示的方式,即在某一瞬间,只让其中的某一位的字位线处于选通状态,其它各位的字位线处于断开状态,同时字段线上输出这一位相应要显示字符的字段码。在这一瞬时,只有这一位在显示,其他几位则暗。在本系统中,字位线的选通与否是通过PNP三极管的导通与截止来控制,即三极管处于“开关”状态。系统的时分显示部件由4只7段共阳LED数码管构成,前两只用于时的显示,后两只用于分的显示。值得一提的是,在设计中需要实现时与分之间的两个闪烁点,为此,将第三只LED数码管倒置摆放,这样就形成了两个很自然的闪烁点。与此同时,为了能使两点显示能够形象的表示时钟“秒”的变化,设计时,将两个点由P1.7单独控制,每隔一秒使P1.7发送一个正脉冲,从而实现了两个点的闪烁显示,闪烁周期为一秒。3 系统的软件构成及功能本系统的软件系统主要可分为主程序和定时器中断程序两大模块。在程序过程中,加入了抗干扰措施。下面对部分模块作介绍。31 系统主程序设计主程序的功能是完成系统的初始化,程序流程如图4所示。32 中断程序设计中断程序(如图5所示)完成时间计数,时间调整,误差消除等功能。中断采用AT89C2051内部T0中断实现,定时时间为125ms,当时间到达125ms8,即1分钟时,分计数缓冲器MINBUFFER增加1,到达1小时,则时计数缓冲器HOURBUFFER增加1,并将分、时的个位、十位放入显示缓冲器。当分计数缓冲器和时计数缓冲器分别到达60min、24h时,则对它们清零,以便重新计数。在中断设计中,还通过软件实现了累计误差消除功能,使整个系统时间的精确度得到保证。 图4 系统主程序流程图 图5 定时中断程序四、硬件图硬件连接图以及仿真现象图五软件程序#define LEDS 4#include reg51.h/头文件包含#define uchar unsigned char/宏定义#define uint unsigned int#define ON 1/定义0为打开#define OFF 0/定义1为关闭#define LEDBus P1/定义p1口为数码管段码口sbit MIAO =P12;/秒点sbit HOU_S=P30;/时十位位选sbit HOU_G=P31;/时个位位选sbit MIN_S=P32;/分十位位选sbit MIN_G=P33;/分个位位选sbit H_KEY=P35;/时调整键sbit M_KEY=P37;/分调整键sbit BEEP=P34; bit SHAN;/闪烁标志位uchar second,minute,hour;/定义秒、分、时寄存器uchar code LEDTab=0x14,0xd7,0x4c,/数码管段码表0-90x45,0x87,0x25,0x24,0x57,0x04,0x05;void delay(uchar t); /延时函数void init();/初始化函数void display();/显示函数void min_tiao();/分调整函数void beer();void hou_tiao();/时调整函数/*函 数 名:main功 能:主函数说 明:入口参数:无返 回 值:无 */void main()init();/调用初始化函数while(1)/主程序循环if(!H_KEY) hou_tiao();/如果时调整键按下(为0),调用时调整函数if(!M_KEY) min_tiao();/如果分调整键按下(为0),调用分调整函数 if(minute=0) beer();display();/调用显示函数/*函 数 名:init功 能:初始化函数说 明:初始化定时器及中断入口参数:无返 回 值:无 */void init()TMOD=1;TH0=0X3C;TL0=0XB0;/定时器0模式1,50毫秒ET0=1;TR0=1;EA=1;/开定时器0中断、启动定时器0、开总中断/*函 数 名:display功 能:显示函数说 明:入口参数:无返 回 值:无 */void display()LEDBus=LEDTabminute%10;/分个位送数码管显示MIAO=SHAN;/秒点闪烁MIN_G=ON;/打开分个位位选delay(1);/显示1毫秒MIN_G=OFF;/关闭分个位位选LEDBus=LEDTabminute/10;/分十位送数码管显示MIAO=SHAN;/秒点闪烁MIN_S=ON;/打开分十位位选delay(1);/显示1毫秒MIN_S=OFF;/关闭分十位位选LEDBus=LEDTabhour%10;/时个位送数码管显示HOU_G=ON;/打开时个位位选delay(1);/显示1毫秒HOU_G=OFF;/关闭时个位位选/if(hour/10)/如果时十位为0,不显示十位数字/LEDBus=LEDTabhour/10;/时十位送数码管显示HOU_S=ON;/打开时十位位选delay(1);/显示1毫秒HOU_S=OFF;/关闭时十位位选/*函 数 名:min_tiao功 能:分调整说 明:入口参数:无返 回 值:无*/void min_tiao()while(!M_KEY) display();/等待分调整键松开second=0;minute+;/秒清零、分加1if(minute=60) minute=0;/如果分等于60,分变0/*函 数 名:hou_tiao功 能:时调整说 明:入口参数:无返 回 值:无 */void hou_tiao()while(!H_KEY) display();/等待时调整键松开second=0;hour+;/秒清零,时加1if(hour=24) hour=0;/如果时等于24,时变0/*函 数 名:delay功 能:延时函数说 明:入口参数:t:延时时间长短返 回 值:无 */void delay(uchar t)uchar i;/定义变量for(;t0;t-)/如果t大于0,t减1(外层循环)for(i=124;i0;i-);/i等于124,如果i大于0,i减1/*函 数 名:timer0功 能:定时器0中断函数说 明:入口参数:无返 回 值:无 */void timer0() interrupt 1/定时器0(中断1)uchar tim1,tim2;/定义临时变量TL0=TL0+0XB0;TH0=0X3C;/重装定时器初值tim1+;/每中断一次tim1加1if(tim1=10)/中断10(0.5秒)SHAN=!SHAN;/闪烁标志取反tim1=0;tim2+;/tim1清零,tim2加1if(tim2=2)/到了1秒tim2=0;second+;/tim2清零,秒加1if(second=60)/如果秒到60second=0;minute+;/秒变0,分加1if(minute=60)/如果分到60minute=0;hour+;/分变0,时加1if(hour=24) ho
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司放歌活动策划方案
- 公司搬家宣传策划方案
- 公司礼物年会策划方案
- 公司直播周年庆活动方案
- 公司秋游文体活动方案
- 公司组织掰手腕活动方案
- 财务管理在未来环境下的2025年试题及答案
- 拓展知识-灭火器的报废要求
- 2025年信息技术基础知识摩擦之知考试试卷及答案
- 2025年商业分析师职业素养测评试题及答案
- 小学科学实验报告单空表
- 10kV~500kV输变电及配电工程质量验收与评定标准:01输电线路工程
- 子宫内膜癌内分泌治疗课件
- 税务行政处罚文书(标准版)
- 第三章葡萄酒酿造2
- 每天100道语法填空题过高考英语高频词汇12
- 配电室巡检记录表
- 数字程控交换机系统技术规范书
- 卓越绩效评价准则概述(专业性权威性实用性)
- GB 1886.20-2016食品安全国家标准食品添加剂氢氧化钠
- 国资进场交易工作流程讲座
评论
0/150
提交评论