久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機定時開關且定時放樂電子鐘
[打印本頁]
作者:
daming
時間:
2014-12-29 20:44
標題:
單片機定時開關且定時放樂電子鐘
///////////////////////////////////////////////////////////////////
/*名稱:單片機定時開關且定時放樂電子鐘, /
/*作者:周光明 /
/*時間:2010年12月6日 /
/*功能: /
/* /
/* /
///////////////////////////////////////////////////////////////////*/
#include <reg52.h>
#include "ds1302.c" //ds1302芯
#include "lanhuacao.c" //蘭花草音樂
#define uchar unsigned char
#define uint unsigned int
#define sjck P0
#define wei P2
#define hua 0xf7
#define ds_o 0xa3 ///o
#define ds_n 0xab ///n
#define ds_f 0x8e ///f
#define xds 0xc0 //寫DS1302初地址
#define dds 0xc1 //讀初值地址
uchar rem[8]={0,1,10,3,4,10,6,7};
uchar remds[6][2]={
{0x00,0x00},
{0x00,0x00},
{0x00,0x00},
{0x00,0x00},
{0x00,0x00},
{0x00,0x00},
};
uchar code bcd[15]={0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0xbf,0xff,
0xa3,0xab,0x8e};
uchar ii,moshi,moshi_h,tiao,time_1;
uint tt,tt1,msgl;
bit aj_1,shan_1,ds_1,ds_2,qr_1;
sbit jidianqi=P3^0;
sbit e=P3^3;
sbit SB0=P1^0;
sbit SB1=P1^1;
sbit SB2=P1^2;
sbit SB3=P1^3;
sbit SB4=P1^4;
sbit dsd0=P0^7;
/******************延時*********************/
yanshi(uint t)
{
while(t--);
}
//////////////////////////////////////////////
/******************顯示*********************/
xianshi(uint t)
{
sjck=0xff;
e=0;
e=1;
if(shan_1)
{
if(moshi==0)
{
if(ii==2)ii++;//時間顯示時橫杠閃爍
if(ii==5)ii++;
}
if(tiao<9)
{
if(ii==tiao)ii=ii+2;//閃爍調整位
}
}
wei=~(0x01<<ii); //段選
sjck=bcd[rem[ii]];
if(ii==0)if(ds_1)dsd0=0;//定時開燈亮否
e=0;
e=1;
ii++;
if(ii>7)ii=0;
yanshi(t);
}
////////////////////////////////////////////////
/////////////////////////////////////
yinyue(uint x,uint y)
{
uint i;
for(i=0;i<y;i++)
{
yue=~yue;
xianshi(x);
yue=1;
}
}
/******************顯示111*********************/
/******************讀時間膀*********************/
dushijian()
{
uchar time;
time=duds1302(dumiao);
rem[0]=time&0x0f;
rem[1]=time>>4;
time=duds1302(dufen);
rem[3]=time&0x0f;
rem[4]=time>>4;
time=duds1302(dushi);
rem[6]=time&0x0f;
rem[7]=time>>4;
rem[2]=10;
}
/******************讀年月日*********************/
dunianyueri()
{
uchar time;
time=duds1302(duri);
rem[0]=time&0x0f;
rem[1]=time>>4;
time=duds1302(duyue);
rem[3]=time&0x0f;
rem[4]=time>>4;
time=duds1302(dunian);
rem[6]=time&0x0f;
rem[7]=time>>4;
}
///////////////////////////////////////////寫時間
xieshijian()
{
xieds1302(baohu,0x00);
time_1=(rem[1]<<4)+rem[0];
xieds1302(xiemiao,time_1);
time_1=(rem[4]<<4)+rem[3];
xieds1302(xiefen,time_1);
time_1=(rem[7]<<4)+rem[6];
xieds1302(xieshi,time_1);
xieds1302(baohu,0x80);
}
///////////////////////////////////////////寫年月日
xienianyueri()
{
xieds1302(baohu,0x00);
time_1=(rem[1]<<4)+rem[0];
xieds1302(xieri,time_1);
time_1=(rem[4]<<4)+rem[3];
xieds1302(xieyue,time_1);
time_1=(rem[7]<<4)+rem[6];
xieds1302(xienian,time_1);
xieds1302(baohu,0x80);
}
/******************?********************/
/////////////////////////////////////////////////////////
anjian()
{
P1=0xff;
if(P1==0xff)aj_1=1;
if(aj_1)
{
if(SB0==0) //模式
{
yinyue(10,10);
aj_1=0;
if(SB0==0) //模式鍵按下
{
msgl=0;
tiao=9;
while(SB0==0)yinyue(2,50);
moshi++;
if(moshi>7)moshi=0;
}
}
if(SB1==0) //調整位鍵9 6 3 0 位
{
yinyue(20,30);
aj_1=0;
if(SB1==0)
{
msgl=0;
while(SB1==0)yinyue(2,30);;
tiao=tiao+3;
if(tiao>9)tiao=0;
}
}
if(SB2==0) //加法
{
yinyue(10,20);
aj_1=0;
if(SB2==0)
{
msgl=0;
while(SB2==0)yinyue(2,60);
rem[tiao]++;
if(rem[tiao]>9)
{
rem[tiao]=0;
rem[tiao+1]++;
if(rem[tiao+1]>=6)rem[tiao+1]=0;
}
}
}
if(SB3==0)
{
yinyue(3,50); /////減法
aj_1=0;
if(SB3==0)
{
while(SB3==0)yinyue(2,34);
if(rem[tiao]==0)
{
msgl=0;
if(rem[tiao+1]==0){rem[tiao]=9;rem[tiao+1]=5;}
else
{
rem[tiao+1]--;
rem[tiao]=9;
}
}
else rem[tiao]--;
}
}
if(SB4==0) //定時器開
{
yinyue(2,20);
aj_1=0;
if(SB4==0)
{
msgl=0;
while(SB4==0)yinyue(2,15);
ds_1=~ds_1; //定時標志取反;
}
}
}
}
////////////////////////////////////////////////////////讀定時到顯存
dudingshi(uchar m)
{
rem[0]=m;
rem[2]=12; //ds_o;
m--;
if(m%2==0)rem[1]=13; //ds_n;
else rem[1]=14; //ds_f;
rem[3]=remds
--[0]&0x0f; //取分低位到顯存
rem[4]=remds
-[0]>>4; //取分高位
rem[6]=remds
-[1]&0x0f; //取時低位
rem[7]=remds
-[1]>>4; //取時高位到顯存
}
////////////////////////////////////////////////////////////////
xiedingshi(uchar m)
{
uchar n;
remds
-[0]=rem[3]+(rem[4]<<4);
remds
-[1]=rem[6]+(rem[7]<<4); //從DS1302 0xc0 開始,xds 帶表0xc0
n=xds+(m*4);
xieds1302(baohu,0x00); //開保護
xieds1302(n,remds
-[0]); //寫第一個數據
n=n+2;
xieds1302(n,remds
--[1]); //寫第二個數據
xieds1302(baohu,0x80);
}
////////////////////////讀取定時數據到存儲器
duchudingshi()
{
uchar i,m;
m=dds;
for(i=0;i<6;i++)
{
remds[i][0]=duds1302(m);
m=m+2;
remds[i][1]=duds1302(m);
m=m+2;
}
}
//////////////////////////////////////////////////////////////////
dingshipanduan()
{
uchar i,temp,temp1;
temp=rem[3]+(rem[4]<<4);
temp1=rem[6]+(rem[7]<<4);
for(i=0;i<6;i++)
{
if(temp==remds[i][0])
{
if(temp1==remds[i][1])
{
if(remds[i][0]==0x00){if(remds[i][1]==0x00)goto loop;}
else
{
if(i%2==0)jidianqi=0;
else jidianqi=1;
if(ds_2==0)if(rem[0]==0)if(rem[1]==0)ds_2=1;//音樂標志位置1
}
loop: xianshi(1);
}
}
}
}
//////////////////////////////////////////////////////////////
zhengdian()
{
if(rem[0]==0)
if(rem[1]==0)if(rem[2]==0)if(rem[3]==0)ds_2=1;
}
/******************主程序111*********************////////////////
//////////////////////////////////////////////////////////////////
void main(void)
{
tiao=9;
duchudingshi();//從DS1302讀出到存儲器
yue=1;
jidianqi=1;
ds_1=0;
while(1)
{
anjian();
if(tiao==9)
{
if(moshi>1)dudingshi(moshi-1);//讀定時到顯存
switch(moshi)
{
case 0: dushijian();break; ///////讀時間
case 1: dunianyueri();break; /////度年月日
default:break;
}
}
else
{
if(moshi>1)xiedingshi(moshi-2); //寫定時到定時存儲器,寫到DS1302
switch(moshi)
{
case 0:xieshijian();break; ///寫時間
case 1:xienianyueri();break;////寫年月日
default:break;
}
}
xianshi(20);
if(ds_1) { if(moshi==0)dingshipanduan(); //zhengdian();
}
else jidianqi=1; //否則繼電器關
if(ds_2){fangyinyue();ds_2=0;}
tt++;
if(tt>500)
{
tt=0;
shan_1=~shan_1; //閃爍標志取反
msgl++; //按鍵按下時模式歸零計數器
if(msgl>20)
{
msgl=0;
if(moshi!=0)moshi=0; //模式不等于零時歸零
if(tiao!=9)tiao=9; //調整不等于9時歸九
rem[2]=10; //
}
}
}
}
復制代碼
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
中文字幕综合网
|
久久免费影院
|
一道本在线观看
|
日韩国产在线播放
|
操久
|
神马福利视频
|
www.狠狠操
|
国产精品免费一区二区三区
|
夜夜操天天操
|
国内精品一区二区三区
|
51调教丨国产调教视频
|
综合久久99
|
久久精品一区二区三区四区五区
|
日本不卡免费
|
人人射人人干
|
中文字幕第5页
|
www.日本在线
|
伊人2222
|
国产精品久久久久久中文字
|
日韩手机在线视频
|
日韩三级中文字幕
|
欧美日韩一二三
|
性视频在线
|
在线黄色av
|
国产精品高潮呻吟久久
|
国产欧美日韩综合精品
|
久久久国产视频
|
国产精品国产三级国产
|
国产一级片在线播放
|
久久精品一区二区三区四区
|
黄色在线观看免费
|
欧美国产日韩一区二区
|
欧美视频亚洲视频
|
成人在线免费网站
|
国产91在线看
|
天堂免费av
|
亚洲激情综合网
|
一区二区三区在线免费
|
四川一级毛毛片
|
久久久久久黄色
|
久久精品99
|