电子万年历源程序Word下载.docx

上传人:b****6 文档编号:18350825 上传时间:2022-12-15 格式:DOCX 页数:42 大小:23.54KB
下载 相关 举报
电子万年历源程序Word下载.docx_第1页
第1页 / 共42页
电子万年历源程序Word下载.docx_第2页
第2页 / 共42页
电子万年历源程序Word下载.docx_第3页
第3页 / 共42页
电子万年历源程序Word下载.docx_第4页
第4页 / 共42页
电子万年历源程序Word下载.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

电子万年历源程序Word下载.docx

《电子万年历源程序Word下载.docx》由会员分享,可在线阅读,更多相关《电子万年历源程序Word下载.docx(42页珍藏版)》请在冰豆网上搜索。

电子万年历源程序Word下载.docx

TMOD=0x01。

TH0=(65535-20000>

/256。

//给定时器初值。

TL0=(65535-20000>

%256。

TR0=1。

//启动定时器T0

ET0=1。

//允许T0中断

EA=1。

LEDC=0。

//138正常工作

Beep_Flag=1。

//闹铃开

}//刷新数码管显示

voidFresh_Display(>

staticunsignedcharNum。

staticunsignedintFlash_Time。

Num++。

if(Num>

=8>

Num=0。

LED_DATA=0x00。

//P0口全部为零

if(Num==0>

{

L3=1。

L2=1。

L1=1。

//第八个数码管亮

}

elseif(Num==1>

{

L1=0。

//第七个数码管亮

elseif(Num==2>

L2=0。

//第六个数码管亮

elseif(Num==3>

//第五个数码管亮

elseif(Num==4>

L3=0。

//第四个数码管亮

elseif(Num==5>

//第二个数码管亮

elseif(Num==6>

L3=0。

//第一个数码管亮

elseif(Num==7>

L3=0。

//第零个数码亮

Flash_Time++。

LED_ON=0xff。

if(Flash_Time<

200>

LED_ON=~Flash_Number。

elseif(Flash_Time>

400>

Flash_Time=0。

temp=(1<

<

Num>

if((LED_ON&

temp>

>

0>

if((Beep_Flag==1>

&

(Num==0>

LED_DATA=Dis_Tab[Dis_Buffer[Num]]+0x20。

else

LED_DATA=Dis_Tab[Dis_Buffer[Num]]。

else

LED_DATA=0x00。

}

voidTest_Ring(>

//这个函数有什么作用?

unsignedchari,temp_m,temp_h。

temp_m=(F8563RWBuff[2]>

4>

*10+(F8563RWBuff[2]&

0x0f>

//分

temp_h=(F8563RWBuff[3]>

*10+(F8563RWBuff[3]&

//时

for(i=0。

i<

5。

i++>

if((temp_m==Ring_Buffer[i][0]>

(temp_h==Ring_Buffer[i][1]>

{

Ringing=1。

//Ring_Buffer[i][1]和Ring_Buffer[i][0]

break。

}

Ringing=0。

}//定时器02.5ms中断

voidTimer0(>

interrupt1

staticunsignedcharkey_Down_Time。

TH0=(65535-2500>

TL0=(65535-2500>

Fresh_Display(>

//动态扫描数码管

if(K_D==0>

//扫描按键

key_Down_Time++。

if(key_Down_Time>

3>

{

Key_Value=K_Port>

if(Key_Bak==10>

//对于前一次按键值,怎么处理?

{

Key_Flag=1。

//置按键标志位。

Key_Bak=Key_Value。

//存贮当前按键值。

if(Ringing_Time>

10>

//设定闹铃的时间

Ringing_Time=0。

}

else//如果没有键按下

key_Down_Time=0。

Key_Bak=10。

if(Ringing_Time>

0>

Ringing=0。

Ringing_Time--。

BEEP=0。

//开闹铃

BEEP=1。

//关闹铃

if(Ringing==1>

Ringing_Time=12000。

voidAdjust_Time(>

unsignedcharposition=1。

//position有什么作用?

Adjust_Buffer[0]=(F8563RWBuff[1]>

*10+(F8563RWBuff[1]&

//秒

Adjust_Buffer[1]=(F8563RWBuff[2]>

//分。

Adjust_Buffer[2]=(F8563RWBuff[3]>

if(position==1>

Flash_Number=0x03。

elseif(position==2>

Flash_Number=0x18。

elseif(position==3>

Flash_Number=0xC0。

if(Key_Flag==1>

Key_Flag=0。

if(Key_Value==2

if(position<

position++。

elseif(Key_Value==1>

//1号键被按下

if(position>

position--。

elseif(Key_Value==3>

//++

if(position==1>

{

if(Adjust_Buffer[0]<

60>

Adjust_Buffer[0]++。

else

Adjust_Buffer[0]=30。

elseif(position==2>

if(Adjust_Buffer[1]<

Adjust_Buffer[1]++。

Adjust_Buffer[1]=30。

}

elseif(position==3>

if(Adjust_Buffer[2]<

24>

Adjust_Buffer[2]++。

Adjust_Buffer[2]=12。

elseif(Key_Value==4>

//--{

{

if(Adjust_Buffer[0]>

Adjust_Buffer[0]--。

if(Adjust_Buffer[1]>

Adjust_Buffer[1]--。

if(Adjust_Buffer[2]>

Adjust_Buffer[2]--。

elseif(Key_Value==0>

//

F8563RWBuff[1]=(Dis_Buffer[1]<

+Dis_Buffer[0]。

//秒

F8563RWBuff[2]=(Dis_Buffer[4]<

+Dis_Buffer[3]。

F8563RWBuff[3]=(Dis_Buffer[7]<

+Dis_Buffer[6]。

SetTimeto8563(>

break。

Dis_Buffer[0]=Adjust_Buffer[0]%10。

Dis_Buffer[1]=Adjust_Buffer[0]/10。

Dis_Buffer[3]=Adjust_Buffer[1]%10。

Dis_Buffer[4]=Adjust_Buffer[1]/10。

Dis_Buffer[6]=Adjust_Buffer[2]%10。

Dis_Buffer[7]=Adjust_Buffer[2]/10。

voidAdjust_Month(>

Adjust_Buffer[0]=(F8563RWBuff[4]>

*10+(F8563RWBuff[4]&

Adjust_Buffer[1]=(F8563RWBuff[5]>

*10+(F8563RWBuff[5]&

Adjust_Buffer[2]=(F8563RWBuff[6]>

*10+(F8563RWBuff[6]&

while(1>

if(Key_Value==2>

elseif(Key_Value==1>

//++

32>

Adjust_Buffer[0]=15。

12>

Adjust_Buffer[1]=6。

99>

Adjust_Buffer[2]=50。

F8563RWBuff[4]=(Dis_Buffer[1]<

F8563RWBuff[5]=(Dis_Buffer[4]<

F8563RWBuff[6]=(Dis_Buffer[7]<

Dis_Buffer[1]=Adjust_Buffer[0]/10。

//分

Dis_Buffer[4]=Adjust_Buffer[1]/10。

voidRewrite_Time(>

unsignedchari。

i=1。

Flash_Number=0xff。

//所有数码管均闪烁

while(1>

GetTimeFrom8563(>

if(Key_Flag==1>

if(Key_Value==6>

i++。

if(i==3>

i=1。

elseif(Key_Value==5>

//闹铃键当确认键

if(i==1>

Adjust_Time(>

//调整整时分秒

_nop_(>

return。

elseif(i==2>

Adjust_Month(>

//调整整年月日

elseif((Key_Value>

(Key_Value<

5>

return。

elseif(Key_Value==7>

if(i==1>

Dis_Buffer[0]=(F8563RWBuff[1]&

Dis_Buffer[1]=(F8563RWBuff[1]>

Dis_Buffer[2]=12。

Dis_Buffer[3]=(F8563RWBuff[2]&

Dis_Buffer[4]=(F8563RWBuff[2]>

Dis_Buffer[5]=12。

Dis_Buffer[6]=(F8563RWBuff[3]&

Dis_Buffer[7]=(F8563RWBuff[3]>

elseif(i==2>

Dis_Buffer[0]=(F8563RWBuff[4]&

Dis_Buffer[1]=(F8563RWBuff[4]>

Dis_Buffer[3]=(F8563RWBuff[5]&

Dis_Buffer[4]=(F8563RWBuff[5]>

Dis_Buffer[6]=(F8563RWBuff[6]&

Dis_Buffer[7]=(F8563RWBuff[6]>

voidAdd_Ring(>

unsignedcharring_Number=1,position。

Flash_Number=0x00。

if(Key_Value==4>

if(ring_Number>

1>

ring_Number--。

if(ring_Number<

ring_Number++。

//确定进入调整某个闹铃

else

if(Key_Value!

=7>

Dis_Buffer[0]=Ring_Buffer[ring_Number-1][0]%10。

Dis_Buffer[1]=Ring_Buffer[ring_Number-1][0]/10。

Dis_Buffer[2]=12。

Dis_Buffer[3]=Ring_Buffer[ring_Number-1][1]%10。

Dis_Buffer[4]=Ring_Buffer[ring_Number-1][1]/10。

Dis_Buffer[5]=13。

Dis_Buffer[6]=13。

Dis_Buffer[7]=ring_Number。

position=1。

2>

if(Ring_Buffer[ring_Number-1][0]<

59>

Ring_Buffer[ring_Number-1][0]++。

Ring_Buffer[ring_Number-1][0]=30。

if(Ring_Buffer[ring_Number-1][1]<

23>

Ring_Buffer[ring_Number-1][1]++。

Ring_Buffer[ring_Number-1][1]=12。

if(Ring_Buffer[ring_Number-1][0]>

Ring_Buffer[ring_Number-1][0]--。

if(Ring_Buffer[ring_Number-1][1]>

Ring_Buffer[ring_Number-1][1]--。

Beep_Flag=1。

//打开闹铃

Dis_Buffer[3]=Ring_Buffer[ring_Number-1][1]%10。

voidmain(>

unsignedinti。

Delay_1ms(500>

Sys_Init(>

Delay_1ms(100>

Flash_Number=0x00。

//闪烁控制位为0,所有的位都不闪烁。

i++。

Flash_Number=0x00。

if(i>

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2022 冰豆网网站版权所有

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