📄 dogdianji.c
字号:
/**************************************************
月亮
QQ:228939191
yueliangliang@21cn.com
**************************************************/
#include <AT89X52.H>
#include <0708.H>
#define TIMER0_COUNT 0xDC11
static unsigned timer0_tick;
unsigned int deda;
unsigned int deda1;
#define scl P3_5
#define sda P3_7
unsigned int PANMOSHI0=0 ;
unsigned int PANMOSHI1=0 ;
unsigned int PANMOSHI2=0 ;
unsigned int PANMOSHI3=0 ;
unsigned int PANMOSHI4=0 ;
unsigned int PANMOSHI5=0 ;
unsigned int PANMOSHI6=0 ;
unsigned int PANMOSHI7=0 ;
unsigned int PANMOSHI8=0 ;
unsigned int PANMOSHI9=0 ;
unsigned int PanTime =1234 ;
unsigned char PanMoShi =0 ;
//unsigned char XIANSHI_Buf[5];
//unsigned char seven_seg[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90}; //阳
unsigned char seven_seg[10]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F}; //阴
unsigned char WeiX[5]={0X00,0X01,0X02,0X03,0X04};
//unsigned char WeiX[5]={0XFF,0X06,0X05,0X03,0X04};
unsigned char XiSh_Buf[6];
bit M0=1;
bit M1=1 ;
bit M2=1;
bit M3=1;
bit M4=1;
bit M5=1;
bit ST0=1;
bit ST1=1;
bit ST2=1;
bit ST3=1;
bit ST4=1;
bit ST5=1;
bit ST6=1;
bit ST7=1;
bit ST8=1;
bit ST9=1;
bit STi0=1;
bit STi1=1;
bit STi2=1;
bit STi3=1;
bit STi4=1;
bit STi5=1;
bit STi6=1;
bit STi7=1;
bit STi8=1;
bit STi9=1;
unsigned int ST0p=0;
unsigned int ST1p=0;
unsigned int ST2p=0;
unsigned int ST3p=0;
unsigned int ST4p=0;
unsigned int ST5p=0;
unsigned int ST6p=0;
unsigned int ST7p=0;
unsigned int ST8p=0;
unsigned int ST9p=0;
void Delayled(unsigned int d)
{
unsigned int i,j;
for(i=0;i<d;i++)
for(j=0;j<10;j++);
}
/*****************************/
void initFlag(void)
{
P0 = 0xFF;
P2 = 0xFF;
P1 = 0xFF;
P3 = 0xFF;
}
/******************************************************************/
void initTimer (void)
{
timer0_tick=0;
EA=0;
TMOD=0x11;
TH0=-9460/256;
TL0=-9460%256;
TH1=-9460/256;
TL1=-9460%256; //初始化计数器初值
PT0=1;
TR0=1;
ET0=1;
TR1=1;
ET1=1;
EA =1;
WDTRST=0x1E;
WDTRST=0xE1;
}
/*********************定时器0中断服务程序*/
void timer0 (void) interrupt 1
{
// unsigned int i;
TR0=0;
TH0=-9460/256;
TL0=-9460%256;
TR0=1;
deda++;
WDTRST=0x1E;
WDTRST=0xE1;
}
/******************************************/
/***********************/
/*****************************************/
void timer1(void) interrupt 3
{
unsigned int
TR1=0;
TH1=-9460/256;
TL1=-9460%256;
TR1=1;
deda1++;
if(deda1==100)
{
// Y1 = !Y1;
deda1 =0;
//******************************************************
if( ST0==0){
if(ST0p>0)ST0p--;
PanTime = ST0p;
PanMoShi = 0X01;
if(ST0p == 0)
{
STi0 = 0;
ST0 = 1;
ST0p =PANMOSHI0;
Y0 = 1;
ST1 = 0;
}}
//******************************************************
if(ST1==0){
if(ST1p>0)ST1p--;
PanTime = ST1p;
PanMoShi =0X02;
if(ST1p == 0)
{
STi1 = 0;
ST1 = 1;
ST1p = PANMOSHI1;
Y0 =0;
ST2 = 0;
}}
// ******************************************************
if(ST2==0){
if(ST2p>0)ST2p--;
PanTime=ST2p;
PanMoShi =0X03;
if(ST2p == 0)
{
STi2 = 0;
ST2 = 1;
ST2p = PANMOSHI2;
Y0 =0X01;
ST3 = 0;
}}
// ******************************************************
if(ST3==0){
if(ST3p>0)ST3p--;
PanTime=ST3p;
PanMoShi =0X04;
if(ST3p == 0)
{
STi3 = 0;
ST3 = 1;
ST3p = PANMOSHI3;
Y0 = 0;
ST4 = 0;
}}
// ******************************************************
if(ST4==0){
if(ST4p>0)ST4p--;
PanTime=ST4p;
PanMoShi =0X05;
if(ST4p == 0)
{
STi4 = 0;
ST4 = 1;
ST4p = PANMOSHI4;
Y0 = 1;
ST5 = 0;
}}
//******************************************************
if(ST5==0){
if(ST5p>0)ST5p--;
PanTime=ST5p;
PanMoShi =0X06;
if(ST5p == 0)
{
STi5 = 0;
ST5 = 1;
ST5p = PANMOSHI5;
Y0 = 0;
ST6 = 0;
}}
//******************************************************
if(ST6==0){
if(ST6p>0)ST6p--;
PanTime=ST6p;
PanMoShi =0X07;
if(ST6p == 0)
{
STi6 = 0;
ST6 = 1;
ST6p = PANMOSHI6;
Y0 = 1;
ST7 = 0;
}}
// ******************************************************
if(ST7==0){
if(ST7p>0)ST7p--;
PanTime=ST7p;
PanMoShi =0X08;
if(ST7p == 0)
{
STi7 = 0;
ST7 = 1;
ST7p = PANMOSHI7;
Y0 = 0;
ST8 = 0;
}}
// ******************************************************
if(ST8==0){
if(ST8p>0)ST8p--;
PanTime=ST8p;
PanMoShi =0X09;
if(ST8p == 0)
{
STi8 = 0;
ST8 = 1;
ST8p = PANMOSHI8;
Y0 = 1;
ST9 = 0;
ST1 = 0;
}}
// // ******************************************************
// if(ST9==0){
// if(ST9p>0)ST9p--;
// PanTime=ST9p;
// PanMoShi = 10;
// if(ST9p == 0)
// {
// STi9 = 0;
// ST9 = 1;
// ST9p = PANMOSHI9;
// Y0 = 0;
//
// }}
}
}
/************************************************************/
/*********时间状态选择程序1***********************************/
/*********(设定值0~65535)**********************************/
void XUANZHE1 (void)
{
if(!X0 && X1 && X2 && M0==1) //X0
{
PANMOSHI0=ST0p=10; //设定第一段时间
PANMOSHI1=ST1p=20; //设定第二段时间
PANMOSHI2=ST2p=30; //设定第三段时间
PANMOSHI3=ST3p=0; //设定第一段时间
PANMOSHI4=ST4p=0; //设定第四段时间
PANMOSHI5=ST5p=0; //设定第五段时间
PANMOSHI6=ST6p=0; //设定第六段时间
PANMOSHI7=ST7p=0; //设定第七段时间
PANMOSHI8=ST8p=0; //设定第九段时间
PANMOSHI9=ST9p=0; //设定第十段时间
ST0=0;
Y0 = 0;
M0 = 0;
M1 = 1;
M2 = 1;
}
if( X0 && !X1 && X2 && M1==1 ) //X1
{
PANMOSHI0=ST0p=20; //设定第一段时间
PANMOSHI1=ST1p=10; //设定第二段时间
PANMOSHI2=ST2p=20; //设定第三段时间
PANMOSHI3=ST3p=0; //设定第一段时间
PANMOSHI4=ST4p=0; //设定第四段时间
PANMOSHI5=ST5p=0; //设定第五段时间
PANMOSHI6=ST6p=0; //设定第六段时间
PANMOSHI7=ST7p=0; //设定第七段时间
PANMOSHI8=ST8p=0; //设定第九段时间
PANMOSHI9=ST9p=0; //设定第十段时间
ST0=0;
Y0=0;
M0=1;
M1=0;
M2=1;
}
if( X0 && X1 && !X2&& M2==1 ) //X2
{
PANMOSHI0 =ST0p =10; //设定第一段时间
PANMOSHI1=ST1p=5; //设定第二段时间
PANMOSHI2=ST2p=10; //设定第三段时间
PANMOSHI3=ST3p=0; //设定第一段时间
PANMOSHI4=ST4p=0; //设定第四段时间
PANMOSHI5=ST5p=0; //设定第五段时间
PANMOSHI6=ST6p=0; //设定第六段时间
PANMOSHI7=ST7p=0; //设定第七段时间
PANMOSHI8=ST8p=0; //设定第九段时间
PANMOSHI9=ST9p=0; //设定第十段时间
ST0=0;
Y0=0;
M0=1;
M1=1;
M2=0;
}
}
/************************************************************/
void Disply (void)
{
XiSh_Buf[0]= (PanTime/1000)%10;
XiSh_Buf[1]= (PanTime/100)%10;
XiSh_Buf[2]= (PanTime/10)%10;
XiSh_Buf[3]= (PanTime%10);
XiSh_Buf[4]= (PanMoShi/10)%10;
XiSh_Buf[5]= (PanMoShi%10);
}
/******************************************************************/
/*********************** *************************************/
/******************************************************************/
void MAIN (void)
{
initFlag (); //端口初始化
initTimer(); //定时器初始化
while(1) //循环
{
Disply();
XUANZHE1(); //时间选择程序
P3_2 = 1;
P3_1 = 1;
P3_0 = 1;
P1 = (seven_seg[XiSh_Buf[5]])| 0X80;
P3_2 = 0;
P3_1 = 0;
P3_0 = 0;
Delayled(50);
// P3_2 = 1;
// P3_1 = 1;
// P3_0 = 1;
// P1 = (seven_seg[XiSh_Buf[4]])| 0X80;
// P3_2 = 0;
// P3_1 = 0;
// P3_0 = 1;
// Delayled(50);
P3_2 = 1;
P3_1 = 1;
P3_0 = 1;
P1 = (seven_seg[XiSh_Buf[0]])| 0X80;
P3_2 = 0;
P3_1 = 1;
P3_0 = 0;
Delayled(50);
P3_2 = 1;
P3_1 = 1;
P3_0 = 1;
P1 = (seven_seg[XiSh_Buf[1]])| 0X80;
P3_2 = 0;
P3_1 = 1;
P3_0 = 1;
Delayled(50);
P3_2 = 1;
P3_1 = 1;
P3_0 = 1;
P1 = (seven_seg[XiSh_Buf[2]])| 0X80;
P3_2 = 1;
P3_1 = 0;
P3_0 = 0;
Delayled(50);
P3_2 = 1;
P3_1 = 1;
P3_0 = 1;
P1 = (seven_seg[XiSh_Buf[3]])| 0X80;
P3_2 = 1;
P3_1 = 0;
P3_0 = 1;
Delayled(20);
}
}
/*******************END MAIN******************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -