单片机时钟讲解材料.pptx

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机时钟讲解材料.pptx

山东轻工职业学院 ;智能电子产品设计与制作 ;电子钟的设计与制作 目录 ;设计任务与要求 ; 设计方案 ; 单片机型号的选择 ; 程序模块及介绍 ;uchar code week_string[7][4]={MON,TUE,WED,THU,FRI,SAT,SUN};//定义星期英文缩写表 uchar data month_day[12]={31,0,31,30,31,30,31,31,30,31,30,31};//定义每月天数表 /*--定时计数器T0及中断初始化函数--*/ void init(void) { TMOD=0x01;//设置定时器0为工作方式1 TH0=(65536-50000)/256;//16位计数初值除以256得到高8位初值 TL0=(65536-50000)%256;//16位计数初值除以256的余数得到低8位初值 EA=1;//开总中断 ET0=1;//开启定时器0中断? EX0=1;//开启外部中断,外部中断用于调整时间 PT0=1;//将定时器0中断设置高优先级,调整时间期不停止计时 TR0=1;//启动定时器0 };*-------LCD1602写数据函数-----*/ void LCD1602_write_dat(uchar dat) { rs=1;//rs=1,置数据输入状态 P0=dat; //输出待显示字符的字符码(ASCII码) delay(1);//延时1ms lcden=1;//lcden=1,使能端有效 delay(1);//延时1ms lcden=0;//lcden=0,使能端无效 } ;void leapyear() //判断某年是否闰年函数 { if (0) month_day[1]=29;//闰年2月29天 else month_day[1]=28;//平年2月28天 } ?uchar CaculateWeek(int y,char m, char d)//由年、月、日计算星期函数 { uchar w; if(m==1){m=13;y=y-1;} else if(m==2){m=14;y=y-1;} w=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7; return w; } ;/*定时计数器中断程序,每当定时计数器溢出时触发中断,执行该程序*/ void time0() interrupt 1 { TH0=(65536-50000)/256;//重装初值 TL0=(65536-50000)%256; if(temp==19)//为了加快仿真速度,将temp设为1,实际应为20 { temp=0; if(second==59)//为了加快仿真速度,将second设为2,实际应为59 { second=0; if(minute==59)//为了加快仿真速度,将minute设为2,实际应为59 { minute=0; if(hour==23)//为了加快仿真速度,将hour设为2,实际应为23 { ; hour=0; leapyear();//闰、平年计算 if(day==month_day[month-1])//判断日期是否到了每月最后一天 { day=1; if(month==12) { month=1; year++; } else month++; } else day++; } else hour++; }; ; if(shift_key==0)//判断移位键是

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档