|
GYJ-0306 某一個(gè)寶描述962.png (1.18 MB, 下載次數(shù): 38)
下載附件
2023-6-28 01:41 上傳
GYJ-0306 某一個(gè)寶描述964.png (1.18 MB, 下載次數(shù): 39)
下載附件
2023-6-28 01:41 上傳
GYJ-0306 某一個(gè)寶描述973.png (1.23 MB, 下載次數(shù): 40)
下載附件
2023-6-28 01:41 上傳
GYJ-0306 某一個(gè)寶描述975.png (806.58 KB, 下載次數(shù): 36)
下載附件
2023-6-28 01:41 上傳
GYJ-0306 某一個(gè)寶描述977.png (942.52 KB, 下載次數(shù): 35)
下載附件
2023-6-28 01:41 上傳
GYJ-0306 某一個(gè)寶描述1014.png (1.12 MB, 下載次數(shù): 43)
下載附件
2023-6-28 01:41 上傳
GYJ-0306 某一個(gè)寶描述1038.png (1.01 MB, 下載次數(shù): 34)
下載附件
2023-6-28 01:41 上傳
GYJ-0306 某一個(gè)寶描述1051.png (1.25 MB, 下載次數(shù): 39)
下載附件
2023-6-28 01:41 上傳
GYJ-0306 某一個(gè)寶描述1062.png (1.22 MB, 下載次數(shù): 39)
下載附件
2023-6-28 01:41 上傳
GYJ-0306 某一個(gè)寶描述1064.png (1.22 MB, 下載次數(shù): 36)
下載附件
2023-6-28 01:41 上傳
【聲明】此程序僅用于學(xué)習(xí)與參考!
*********************************************************************/
#include <STC8F2K08S2.h>
#include <intrins.h>
#include <string.h>
#define uchar unsigned char//宏定義無(wú)符號(hào)字符型
#define uint unsigned int //宏定義無(wú)符號(hào)整型
/**************************************************
IO口定義
***************************************************/
sbit led = P1^0;
sbit IN1 = P5^4;
sbit set1= P1^7;
sbit set2= P1^6;
sbit set3= P1^1;
sbit ten1= P3^7;
sbit ten2= P3^6;
sbit ten3= P3^5;
sbit ten4= P3^4;
sbit b1 = P3^3;
sbit b2 = P3^2;
sbit b3 = P3^1;
sbit b4 = P3^0;
sbit OUT = P5^5;
bit bz=0,bk=0,kk=0,bt=0,kz=0,bs1=0,bs2=0,bs3=0,ss=0,g=0;
uchar ba=0;
uint dat=0,dat1=0,dat2=0,jsu=0,js=0,js1=0,js2=0;
/**************************************************
配置t0
***************************************************/
void Timer0Init(void) //1毫秒@11.0592MHz
{
AUXR |= 0x80; //定時(shí)器時(shí)鐘1T模式
TMOD &= 0xF0; //設(shè)置定時(shí)器模式
TL0 = 0xCD; //設(shè)置定時(shí)初值
TH0 = 0xD4; //設(shè)置定時(shí)初值
TF0 = 0; //清除TF0標(biāo)志
ET0 = 1;
TR0 = 1; //定時(shí)器0開(kāi)始計(jì)時(shí)
}
/**************************************************
t0
***************************************************/
void InterruptTimer0() interrupt 1{//T0中斷服務(wù)函數(shù),執(zhí)行串口接收監(jiān)控
dat2=dat+dat1;
if(dat2==0){kz=1;}else{kz=0;} //kz當(dāng)沒(méi)有撥時(shí)間時(shí)不讓定時(shí)器計(jì)數(shù)
if((kk==1)&&(bk==0)&&(kz==0)){jsu++;} //bk執(zhí)行完畢后停止計(jì)數(shù)器計(jì)數(shù),jsu計(jì)數(shù)
if(ba==0)//秒
{
if((jsu==100)&&(g==0)){g=1;if(bt==0){OUT=1;}else{OUT=0;}}//控制上電繼電器吸合還是斷開(kāi)
if(jsu==800){led=0;}
if(jsu==1000)//1s
{
jsu=0;
led=1;
js++;
if((js==dat2)&&(ss==0))
{
js=0;
// bk=1;
// kk=0;
// led=0;
OUT=!OUT;
jsu=0;
ss=1;
}
if((js==dat2)&&(ss==1))
{
js=0;
bk=1;
kk=0;
led=0;
OUT=!OUT;
jsu=0;
}
}
}
if(ba==1)//分
{
if((jsu==100)&&(g==0)){g=1;if(bt==0){OUT=1;}else{OUT=0;}}
if(jsu==800){led=0;}
if(jsu==1000)//1s
{
jsu=0;
led=1;
js++;
if(js==60)//1分
{
js=0;
js1++;
if((js1==dat2)&&(ss==0))
{
js1=0;
// bk=1;
// kk=0;
// led=0;
OUT=!OUT;
ss=1;
jsu=0;
js=0;
}
if((js1==dat2)&&(ss==1))
{
js1=0;
bk=1;
kk=0;
led=0;
OUT=!OUT;
jsu=0;
js=0;
}
}
}
}
if(ba==2)//時(shí)
{
if((jsu==100)&&(g==0)){g=1;if(bt==0){OUT=1;}else{OUT=0;}}
if(jsu==800){led=0;}
if(jsu==1000)//1秒
{
jsu=0;
led=1;
js++;
if(js==60)//1分鐘
{
js=0;
js1++;
if(js1==60)//1小時(shí)
{
js1=0;
js2++;
if((js2==dat2)&&(ss==0))
{
js2=0;
// bk=1;
// kk=0;
// led=0;
OUT=!OUT;
ss=1;
js=0;
js1=0;
jsu=0;
}
if((js2==dat2)&&(ss==1))
{
js2=0;
bk=1;
kk=0;
led=0;
OUT=!OUT;
js=0;
js1=0;
jsu=0;
}
}
}
}
}
}
/**************************************************
主函數(shù)
***************************************************/
void main()
{
Timer0Init();
EA=1;
ba=0;
OUT=1;
while(1)
{
if((IN1==0)&&(bz==0)){bz=1;kk=1;bk=0;ss=0;g=0;jsu=0;js=0;js1=0;js2=0;led=1;} // bz控制輸入一次標(biāo)志位,KK控制定時(shí)器計(jì)數(shù),
if((IN1==1)&&(bz==1)){bz=0;}
if(set1==0){bt=1;}else{bt=0;} //撥上撥碼開(kāi)關(guān)設(shè)置延時(shí)斷開(kāi),不撥延時(shí)接通
if((set2==1)&&(set3==1)&&(bs1==0)){ba=0;bs1=1;bs2=0;bs3=0;} //秒 ba=0
if((set2==0)&&(set3==1)&&(bs2==0)){ba=1;bs1=0;bs2=1;bs3=0;} //分 ba=1
if((set2==0)&&(set3==0)&&(bs3==0)){ba=2;bs1=0;bs2=0;bs3=1;} //時(shí) ba=2
if((b1==1)&&(b2==1)&&(b3==1)&&(b4==1)){dat=0;}//1秒
if((b1==0)&&(b2==1)&&(b3==1)&&(b4==1)){dat=1;}
if((b1==1)&&(b2==0)&&(b3==1)&&(b4==1)){dat=2;}
if((b1==0)&&(b2==0)&&(b3==1)&&(b4==1)){dat=3;}
if((b1==1)&&(b2==1)&&(b3==0)&&(b4==1)){dat=4;}
if((b1==0)&&(b2==1)&&(b3==0)&&(b4==1)){dat=5;}
if((b1==1)&&(b2==0)&&(b3==0)&&(b4==1)){dat=6;}
if((b1==0)&&(b2==0)&&(b3==0)&&(b4==1)){dat=7;}
if((b1==1)&&(b2==1)&&(b3==1)&&(b4==0)){dat=8;}
if((b1==0)&&(b2==1)&&(b3==1)&&(b4==0)){dat=9;}
if((b1==1)&&(b2==0)&&(b3==1)&&(b4==0)){dat=10;}
if((b1==0)&&(b2==0)&&(b3==1)&&(b4==0)){dat=11;}
if((b1==1)&&(b2==1)&&(b3==0)&&(b4==0)){dat=12;}
if((b1==0)&&(b2==1)&&(b3==0)&&(b4==0)){dat=13;}
if((b1==1)&&(b2==0)&&(b3==0)&&(b4==0)){dat=14;}
if((b1==0)&&(b2==0)&&(b3==0)&&(b4==0)){dat=15;}//15秒
if((ten1==1)&&(ten2==1)&&(ten3==1)&&(ten4==1)){dat1=0;}//0s
if((ten1==0)&&(ten2==1)&&(ten3==1)&&(ten4==1)){dat1=10;}//10s
if((ten1==1)&&(ten2==0)&&(ten3==1)&&(ten4==1)){dat1=20;}//20s
if((ten1==0)&&(ten2==0)&&(ten3==1)&&(ten4==1)){dat1=30;}//30s
if((ten1==1)&&(ten2==1)&&(ten3==0)&&(ten4==1)){dat1=40;}//40s
if((ten1==0)&&(ten2==1)&&(ten3==0)&&(ten4==1)){dat1=50;}//50s
if((ten1==1)&&(ten2==0)&&(ten3==0)&&(ten4==1)){dat1=60;}//60s
if((ten1==0)&&(ten2==0)&&(ten3==0)&&(ten4==1)){dat1=70;}//70s
if((ten1==1)&&(ten2==1)&&(ten3==1)&&(ten4==0)){dat1=80;}//80s
if((ten1==0)&&(ten2==1)&&(ten3==1)&&(ten4==0)){dat1=90;}//90s
if((ten1==1)&&(ten2==0)&&(ten3==1)&&(ten4==0)){dat1=100;}//100s
if((ten1==0)&&(ten2==0)&&(ten3==1)&&(ten4==0)){dat1=110;}//110s
if((ten1==1)&&(ten2==1)&&(ten3==0)&&(ten4==0)){dat1=120;}//120s
if((ten1==0)&&(ten2==1)&&(ten3==0)&&(ten4==0)){dat1=130;}//130s
if((ten1==1)&&(ten2==0)&&(ten3==0)&&(ten4==0)){dat1=140;}//140s
if((ten1==0)&&(ten2==0)&&(ten3==0)&&(ten4==0)){dat1=150;}//150s
}
}
/*********************************************************************************************/
|
|