- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机时钟教材课程.pptx
山东轻工职业学院;智能电子产品设计与制作;电子钟的设计与制作目录;设计任务与要求; 设计方案; 单片机型号的选择 ; 程序模块及介绍;*-------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)//判断移位键是否按下
{
delay(1);//延时消抖
if(shift_key==0)//确认移位键是否按下
{
while(!shift_key);//等待移位键释放
if(setup_bit==10)//共12位
{
setup_bit=0; //移位计数值返回0
LCD1602_write_com(0x0c);//设置不显示光标模式
}
else
{
setup_bit++;//移位计数值加1
LCD1602_write_com(0x0e);//设置显示光标模式
文档评论(0)