|
/********************************************************************
立體車庫程序
*********************************************************************/
#include<reg52.h> //庫文件
#define uchar unsigned char//宏定義無符號字符型
#define uint unsigned int //宏定義無符號整型
/********************************************************************
初始定義
*********************************************************************/
sbit P20=P2^0; //定義
sbit P21=P2^1; //定義
sbit P22=P2^2; //定義
sbit P23=P2^3; //定義
sbit P24=P2^4; //定義
sbit P25=P2^5; //定義
sbit P26=P2^6; //定義
sbit P27=P2^7; //定義
sbit P30=P3^0; //定義
sbit P31=P3^1; //定義
sbit P32=P3^2; //定義
sbit P33=P3^3; //定義
sbit P34=P3^4; //定義
sbit P35=P3^5; //定義
sbit P36=P3^6; //定義
sbit P37=P3^7; //定義
sbit P10=P1^0; //定義
sbit P11=P1^1; //定義
sbit P12=P1^2; //定義
sbit P13=P1^3; //定義
sbit P14=P1^4; //定義
sbit P15=P1^5; //定義
sbit P16=P1^6; //定義
sbit P17=P1^7; //定義
uchar k=40;
uchar ge=0;
uchar shi=0;
uchar bai=0;
uchar qian=0;
uint date=0;
bit bz1=0;
bit bz2=0;
bit bz3=0;
bit bz4=0;
bit bz5=0;
bit bz6=0;
bit bz7=0;
bit bz8=0;
bit bz9=0;
bit bz10=0;
bit bz11=0;
bit bz12=0;
bit bz13=0;
bit bz14=0;
bit bz15=0;
bit bz16=0;
uchar jsj=0;
/********************************************************************
初始定義
*********************************************************************/
code uchar seg7code[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //顯示段碼 數碼管字跟
/********************************************************************
初始定義
*********************************************************************/
uchar sec; //定義計數值,每過1/10 秒,sec 加一
uint tcnt; //鍵值判斷
uchar k;
bit bzw1=0;
bit bzw2=0;
/********************************************************************
延時函數
*********************************************************************/
void delay(uchar t)
{
uchar i,j;
for(i=0;i<t;i++)
{
for(j=13;j>0;j--);
{ ;
}
}
}
/********************************************************************
汽車移除函數
*********************************************************************/
void key()
{
if((P30==0)&&(bz1==0)){bz1=1;date++;}if((P30==1)&&(bz1==1)){bz1=0;delay(k);}
if((P31==0)&&(bz2==0)){bz2=1;date++;}if((P31==1)&&(bz2==1)){bz2=0;delay(k);}
if((P32==0)&&(bz3==0)){bz3=1;date++;}if((P32==1)&&(bz3==1)){bz3=0;delay(k);}
if((P33==0)&&(bz4==0)){bz4=1;date++;}if((P33==1)&&(bz4==1)){bz4=0;delay(k);}
if((P34==0)&&(bz5==0)){bz5=1;date++;}if((P34==1)&&(bz5==1)){bz5=0;delay(k);}
if((P35==0)&&(bz6==0)){bz6=1;date++;}if((P35==1)&&(bz6==1)){bz6=0;delay(k);}
if((P36==0)&&(bz7==0)){bz7=1;date++;}if((P36==1)&&(bz7==1)){bz7=0;delay(k);}
if((P37==0)&&(bz8==0)){bz8=1;date++;}if((P37==1)&&(bz8==1)){bz8=0;delay(k);}
if((P14==0)&&(bz9==0)){bz9=1;date++;}if((P14==1)&&(bz9==1)){bz9=0;delay(k);}
if((P15==0)&&(bz10==0)){bz10=1;date++;}if((P15==1)&&(bz10==1)){bz10=0;delay(k);}
if((P16==0)&&(bz11==0)){bz11=1;date++;}if((P16==1)&&(bz11==1)){bz11=0;delay(k);}
if((P17==0)&&(bz12==0)){bz12=1;date++;}if((P17==1)&&(bz12==1)){bz12=0;delay(k);}
if((P20==0)&&(bz13==0)){bz13=1;date=0;}if((P20==1)&&(bz13==1)){bz13=0;delay(k);}
if((P21==0)&&(bz14==0)){bz14=1;date++;}if((P21==1)&&(bz14==1)){bz14=0;delay(k);}
}
/********************************************************************
功能:串口初始化,波特率9600,方式1
*********************************************************************/
void initTimer(void)
{
TMOD=0x2;
TH0=0x1b;
TL0=0x1b;
}
/********************************************************************
主函數
*********************************************************************/
void main()
{
initTimer();
TR0=1;
ET0=1;
EA=1;
while(1)
{
KEY();
}
}
/********************************************************************
定時中斷服務函數
*********************************************************************/
void t0(void) interrupt 1 using 0 //定時中斷服務函數
{
qian=date/1000; //求千位
bai=date%1000/100; //求百位
shi=date%100/10; //求十位
ge=date%10; //求個位
tcnt++;
if(date>=100){P12=P11=0;}
switch(tcnt)
{
case 1:P23=1;P24=1;P25=1;P26=1;P0=seg7code[qian];P23=0;break;
case 2:P23=1;P24=1;P25=1;P26=1;P0=seg7code[bai];P24=0;break;
case 3:P23=1;P24=1;P25=1;P26=1;P0=seg7code[shi];P25=0;break;
case 4:P23=1;P24=1;P25=1;P26=1;P0=seg7code[ge];P26=0;break;
default: tcnt=0; break;
}
}
/********************************************************************
結束
*********************************************************************/
|
-
DSC_0034.JPG
(166.85 KB, 下載次數: 68)
下載附件
2019-11-17 23:07 上傳
-
-
CX001_計數器報警程序.rar
2019-11-17 23:07 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
32.28 KB, 下載次數: 19, 下載積分: 黑幣 -5
-
-
原理圖及PCB圖.rar
2019-11-17 23:07 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
307.34 KB, 下載次數: 23, 下載積分: 黑幣 -5
|