欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    以AT89C51单片机为核心制作一个LCD显示的智能电子钟Word格式.docx

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

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

    以AT89C51单片机为核心制作一个LCD显示的智能电子钟Word格式.docx

    1、2. 工作原理本设计采用市场上流行的时钟芯片DS1302进行制作。DS1302是DALLAS公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与计算机进行通信,使得管脚数量减少。实时时钟/日历电路能够计算2100年之前的秒、分、时、日、星期、月、年的,具有闰年调整的能力。DS1302时钟芯片的主要功能特性:(1) 能计算2100年之前的年、月、日、星期、时、分、秒的信息;每月的天数和闰年的天数可自动调整;时钟可设置为24或12小时格式。(2) 31B的8位暂存数据存储RAM。(3) 串行I/O口方式使得引脚数量最少。(4) DS1302与单片机之间能简单地

    2、采用同步串行的方式进行 通信,仅需3根线。(5) 宽范围工作电压2.0-5.5V。(6) 工作电流为2.0A时,小于300nA。(7) 功耗很低,保持数据和时钟信息时功率小于1mW。6.2 方案论证6.3 系统硬件电路的设计6.4 系统程序的设计#includelcd.hds1302.h#define uchar unsigned char#define uint unsigned intsbit key1=P30;/设置键sbit key2=P33;/调节键加sbit key3=P36;/设置键减uchar second,minute,hour;uchar day,week,month,ye

    3、ar;uchar pos_flag=0;uchar keyflag=0;/按键标志位/函数声明uchar read1302(uchar add); /读地址、数据void write1302(uchar add,uchar date); /写入地址、数据void write_com_date(uchar add,uchar date);void init_lcd();void init_ds1302();void delay(uchar time);void Disp_1602(uchar x,uchar y,uchar *p);void keyscan();void settime();vo

    4、id settime() write1302(0x8e,0x00); /关闭写保护 write1302(0x80,second/10*16+second%10); /秒 write1302(0x82,minute/10*16+minute%10); /分 write1302(0x84,hour/10*16+hour%10); /时 write1302(0x86,day/10*16+day%10); /日 write1302(0x88,month/10*16+month%10); /月 write1302(0x8a,week/10*16+week%10); /星期 write1302(0x8c,

    5、year/10*16+year%10); /年 write1302(0x8e,0x80);void display() second=read1302(0x81); write_com_date(0xca,0x30+second%10); write_com_date(0xc9,0x30+second/10); minute=read1302(0x83); write_com_date(0xc7,0x30+minute%10); write_com_date(0xc6,0x30+minute/10); hour=read1302(0x85); write_com_date(0xc4,0x30+

    6、hour%10); write_com_date(0xc3,0x30+hour/10); day=read1302(0x87); write_com_date(0x8a,0x30+day%10); write_com_date(0x89,0x30+day/10); week=read1302(0x8b); write_com_date(0xcd,0x30+week%10); month=read1302(0x89); write_com_date(0x87,0x30+month%10); write_com_date(0x86,0x30+month/10); year=read1302(0x8

    7、d); write_com_date(0x84,0x30+year%10); write_com_date(0x83,0x30+year/10);void keyscan() /修改调整时间日期 if(key1=0) delay(10); pos_flag+; while(!key1); keyflag=1; switch(pos_flag) case 1: write_com(0x80+4); write_com(0x0f); /光标闪烁 break; case 2: write_com(0x80+7); case 3: write_com(0x80+10); /日 case 4: writ

    8、e_com(0x80+0x40+0x0d); case 5: write_com(0x80+0x40+4); /时钟 case 6: write_com(0x80+0x40+7); /分钟 case 7: write_com(0x80+0x40+10); /秒钟 default:break; if(pos_flag=8) /pos_flag=8则退出调整 pos_flag=0; keyflag=0; /按键标识清零 delay(5); settime(); write_com(0x0c); / 关光标 if(key2=0) /调节加键,按下(低电平)就加 delay(15); if(key2=

    9、0) while(!key2); switch(pos_flag) year+; if(year=99) year=0; write_com_date(0x84,0x30+year%10); month+; if(month=13) month=1; write_com_date(0x87,0x30+month%10); day+; if(year%4=0)&(month=2) /闰年 二月 29天 if(day=30) day=1; if(year%4!=0)&(month=2) /平年 二月 28天 if(day=29) if(month=1|month=3|month=5|month=7

    10、|month=8|month=10|month=12) /大月31天 if(day=32) day=1; if(month=4|month=6|month=9|month=11) /小月30天 if(day=31) write_com_date(0x8a,0x30+day%10); week+; if(week=8) week=1; write_com_date(0xcd,0x30+week); hour+; if(hour=24) hour=0; write_com_date(0xc4,0x30+hour%10); minute+; if(minute=60) minute=0; write_com_date(0xc7,0x30+minute%10); second+; if(second=60) second=0; write_com_date(0xca,0x30+second%10); if(key3=0)key3); year-; if(year=0) year=99; month-; if(month=0) month=12; day-;(month=2)


    注意事项

    本文(以AT89C51单片机为核心制作一个LCD显示的智能电子钟Word格式.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开