欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    电子时钟的设计.doc

    • 资源ID:879922       资源大小:106.83KB        全文页数:15页
    • 资源格式: DOC        下载积分:10积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要10积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    电子时钟的设计.doc

    1、单片机课程设计说明书目录引言2一 89c51单片机介绍3二 流程图5三 程序设计7四 仿真图14参考文献15致谢16引言 单片计算机即单片微型计算机。由RAM ,ROM,CPU构成,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而51系列单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。 本设计主要设计了一个基于AT89C51单片机的电子时钟。并在数码管上显示相应的时间。应用Proteus的ISIS软件实现了单片机电子时钟系统的设计与仿真。该方法仿真效果真实、准确,节省了硬件

    2、资源。一 89C51单片机介绍 VCC:电源。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程 序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作 输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作

    3、为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻 拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存 储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器 的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 89C51单片机 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输

    4、出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持R

    5、ST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器 时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,

    6、每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 EA/VPP:当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时, /EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。二 流程图开始T0中断入口通过查表方式显示数据数码位选加1位选值=8NY位选数值=0秒计数加1秒计数=500NY秒计数=0SECOND加1中断返回 总体流程图YYNNN子程序入口SECOND=60SECOND=0,并MINUTE加1M

    7、INUTE=60MINUTE=0,并HOUR加1显示数据处理中断返回HOUR=24Y 子程序流程图三 程序设计 定时计数中断程序:#include #include #include #define INT8U unsigned char#define INT16U unsigned int#define k1() (PIND & (1PD0)=0x00)#define k2() (PIND & (1PD1)=0x00)#define k3() (PIND & (1PD2)=0x00)#define k4() (PIND & (1PD3)=0x00)#define k5() (PIND & (

    8、1PD4)=0x00)#define k6() (PIND & (1PD5)=0x00)#define k7() (PIND & (1PD6)=0x00)#define k8() (PIND & (123) h=0;day(); seg110=segh/10; seg111=segh%10; void minute1() if (+m59) m=0; hour1(); seg113=segm/10; seg114=segm%10; void second1() if (+s59) s=0; minute1(); seg116=segs/10; seg117=segs%10; const INT

    9、8U Days1=0,31,28,31,30,31,30,31,31,30,31,30,31;const INT8U Days2=0,31,29,31,30,31,30,31,31,30,31,30,31; void year() if (+y9999) y=0; seg110=segy/1000; seg111=segy%1000/100; seg112=segy%100/10; seg113=segy%10; void month1() if (+m112) m1=0; year(); seg114=segm1/10; seg115=segm1%10; void day() INT8U D

    10、AY; DAY=( y%4=0 & y%100!=0 )|( y%400=0 ) ) ? Days1m1:Days2m1;/判断闰年 if(+dDAY) d=0; month1(); seg116=segd/10; seg117=segd%10; /时间函数void time() seg110=segh/10; seg111=segh%10; seg113=segm/10; seg114=segm%10; seg116=segs/10; seg117=segs%10; PORTA=0x00; PORTA=seg11ja; PORTB=(1ja); ja=(ja+1)&0x07; _delay_

    11、ms(5); /日期void date() seg110=segy/1000; seg111=segy%1000/100; seg112=segy%100/10; seg113=segy%10; seg114=segm1/10; seg115=segm1%10; seg116=segd/10; seg117=segd%10; /seg112=seg115=0x00; PORTA=0x00; PORTA=seg11ja; PORTB=(1ja); ja=(ja+1)&0x07; _delay_ms(3); int main() INT8U ja=0; DDRA=0xff; PORTA=0xff;

    12、 DDRB=0xff; PORTB=0xff; DDRD=0x00; PORTD=0xff;PIND=0x00; MCUCR=0X0A;/MCU 控制寄存器 MCUCR GICR=0XC0; /通用中断控制寄存器 GICR ASSR=0x08; TCCR2=0x04; TCNT2=0; TIMSK=_BV(TOIE2)|_BV(TOIE0); d=26;y=2000;m1=2; h=m=s=12; sei(); while(1) time(); if(k1() / while(k1(); hour1(); if(k8() while(k8(); while(2)/日期循环 date(); if

    13、(k8() while(k8();break; ISR(TIMER2_OVF_vect) if( seg112=0x40) seg112=seg115=0x00; else seg112=seg115=0x40; second1(); 延时程序:1MS延时程序,LED显示程序用DL1MS: MOV R6,#14HDL1: MOV R7,#19HDL2: DJNZ R7,DL2DJNZ R6,DL1RET20MS延时程序,采用调用显示子程序以改善LED的显示闪烁现象DS20MS: ACALL DISPLAYACALL DISPLAYACALL DISPLAYRET四 仿真图系统仿真图参考文献1、李朝青,单片机原理及接口技术,北京航空航天超大型出版社。 2、王贤勇,赵传申,单片机原理与接口技术应用教程,清华大学出版社等致谢 通过这次单片机课程设计,我感觉到自己知识的严重不足。很多方面都没能很好的掌握,在制作过程中,经常遇到自己不理解的问题,当然,在同学的帮助下,我还是把那些疑难的问题给解决啦。 在这次学习中,让我更深刻的了解啦AT89C51芯片在电气控制方面的广泛运用和重大作用,所以我们一定要认真。扎实。深入的了解。掌握好AT89C51芯片。第 15 页 共 15 页


    注意事项

    本文(电子时钟的设计.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922