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

    嵌入式电子闹钟时钟课程设计Word格式.docx

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

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

    嵌入式电子闹钟时钟课程设计Word格式.docx

    1、/*uchar time_dat7=12,1,6,6,12,59,59; /年周月日时分秒uchar write_add7=0x8c,0x8a,0x88,0x86,0x84,0x82,0x80;uchar read_add7=0x8d,0x8b,0x89,0x87,0x85,0x83,0x81;*/void write_com(uchar com); /液晶写指令函数void write_data(uchar date); /液晶写数据函数void write_ds1302(uchar add,uchar dat); /ds1302芯片写指令函数void set_rtc(); /ds1302时

    2、间设置函数void time_pros(); /ds1302进制转换函数void read_rtc(); /ds1302读时间函数void alarm(); /闹钟函数void delay(uint z) /延时函数 uint x,y; for(x=z;x0;x-) for(y=110;yy-);void init() /初始化 lcden=0; flag=0; flag1=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); /液晶固定显示,第一行 for(num=0;n

    3、um14;num+) write_data(tablenum); delay(5); write_com(0x80+0x40); /液晶显示第二行20;num+) write_data(table1num);void write_com(uchar com)/1602液晶写指令 rs=0; P0=com; lcden=1;void write_data(uchar date)/1602液晶写写数据 rs=1; P0=date;void write_sfm(uchar add,uchar date)/时分秒 uchar shi3,ge; shi3=date/10; ge=date%10; wri

    4、te_com(0x80+0x40+add); write_data(0x30+shi3); write_data(0x30+ge);void write_nyr(uchar ad,uchar date)/年月日 uchar shi4,ge2; shi4=date/10; ge2=date%10; write_com(0x80+ad); write_data(0x30+shi4); write_data(0x30+ge2);void write_week(uchar wk) /星期按西方星期设置 星期天为第一天 write_com(0x80+11); switch(wk) case 1: wri

    5、te_data(S);UN break; case 2:MO case 3:TE case 4:WD case 5:H case 6:FR case 7:A void keyscan() /按键函数 if(s1=0) write_com(0x0f); s1num+; /记录按键次数 flag=1; flag1=1; while(!s1); switch(s1num)/光标闪烁点定位write_com(0x80+0x40+6); /秒write_com(0x80+0x40+3); /分write_com(0x80+0x40+0); /时write_com(0x80+11); /星期write_c

    6、om(0x80+8); /日write_com(0x80+5); /月write_com(0x80+2); /年 case 8:s1num=0;/设置开显示光标不显示 关闭时间设置 set_rtc(); if(s1num!=0) /按键加减 if(s2=0) /加按键函数 delay(10); if(s2=0)s2); switch(s1num) /根据功能键相应次数做出调节 miao+; /秒加 if(miao=60) miao=0; write_sfm(6,miao); write_com(0x80+0x40+6); fen+; /分加 if(fen=60) fen=0; write_sf

    7、m(3,fen); write_com(0x80+0x40+3); shi+; /时加 if(shi=24) shi=0; write_sfm(0,shi); write_com(0x80+0x40+0); week+; /星期加 if(week=8) week=1; write_week(week); day+; /日加 if(day=32) day=1; write_nyr(8,day); write_com(0x80+8); month+; /月加 if(month=13) month=1; write_nyr(5,month); write_com(0x80+5); year+; /年

    8、加 if(year=100) year=0; write_nyr(2,year); write_com(0x80+2); if(s3=0) /减按键函数同上 if(s3=0)s3); miao-; if(miao=-1) miao=59; fen-; if(fen=-1) fen=59; shi-; if(shi=-1) shi=23; week-; if(week=-1) week=7; day-; if(day=-1) day=31; month-; if(month=-1) month=12; year-; if(year=-1) year=99; if(s4=0) /闹钟按键 if(s

    9、4=0) /光标闪烁 s2num+;s4); switch(s2num)/光标闪烁点定位write_com(0x80+0x40+13);write_com(0x80+0x40+10);write_com(0x0c); /关闭闹钟设置 s2num=0; if(s2num!=0) /闹钟设置 if(s2=0) /闹钟加 switch(s2num) /根据功能键相应次数做出调节 afen+; if(afen=60) afen=0; write_sfm(13,afen); write_com(0x80+0x40+13); ashi+; if(ashi=24) ashi=0; write_sfm(10,

    10、ashi); write_com(0x80+0x40+10); if(s3=0) /闹钟减 afen-; if(afen=-1) afen=59; ashi-; if(ashi=-1) ashi=23;void wirte_ds1302_byte(uchar dat) /ds1302字节写 uchar i; for(i=0;i1; sclk=1;void write_ds1302(uchar add,uchar dat) /ds1302写函数 rst=0; _nop_();/ 空操作 rst=1; wirte_ds1302_byte(add); wirte_ds1302_byte(dat);

    11、io=1;uchar read_ds1302(uchar add) /ds1302读函数 uchar i,value; value=value if(io) value=value|0x80; return value;void set_rtc() /ds1302时间设置 write_ds1302(0x8e,0x00); /关写保护 year1=year/10; /转换为十六进制 year=year%10; year=year+year1*16; write_ds1302(0x8c,year); week1=week/10; week=week%10; week=week+week1*16;

    12、write_ds1302(0x8a,week); month1=month/10; month=month%10; month=month+month1*16; write_ds1302(0x88,month); day1=day/10; day=day%10; day=day+day1*16; write_ds1302(0x86,day); shi1=shi/10; shi=shi%10; shi=shi+shi1*16; write_ds1302(0x84,shi); fen1=fen/10; fen=fen%10; fen=fen+fen1*16; write_ds1302(0x82,f

    13、en); miao1=miao/10; miao=miao%10; miao=miao+miao1*16; write_ds1302(0x80,miao); write_ds1302(0x8e,0x80); /开写保护 void read_rtc() /从ds1302中读时间 year2=read_ds1302(0x8d); week2=read_ds1302(0x8b); month2=read_ds1302(0x89); day2=read_ds1302(0x87); shi2=read_ds1302(0x85); fen2=read_ds1302(0x83); miao2=read_ds

    14、1302(0x81);void time_pros() /从ds1302中读出的时间转换为十进制 year5=year2/16; year2=year2%16; year2=year2+year5*10; month5=month2/16; month2=month2%16; month2=month2+month5*10; day5=day2/16; day2=day2%16; day2=day2+day5*10; shi5=shi2/16; shi2=shi2%16; shi2=shi2+shi5*10; fen5=fen2/16; fen2=fen2%16; fen2=fen2+fen5

    15、*10; miao5=miao2/16; miao2=miao2%16; miao2=miao2+miao5*10;void display() /显示函数 write_sfm(6,miao2); write_sfm(3,fen2); write_sfm(0,shi2); write_week(week2); write_nyr(8,day2); write_nyr(5,month2); write_nyr(2,year2); if(ashi=shi2)&(afen=fen2) alarm();void alarm() / 闹钟 beep=0; delay(1000); beep=1;void main() /主函数 init(); /初始化 while(1) keyscan(); /按键函数 if(flag=0) read_rtc(); time_pros(); display();


    注意事项

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

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




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

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开