⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lx_lxq.bak

📁 用电子警察上面
💻 BAK
字号:
#include <at89s52.h>
#define uchar unsigned char
#define uint unsigned int
#define xs 79

uint data time_ns;
uchar time_n10s,time_n5s;
bit red_green;				//
uint time_500ms;
sbit K1 = P1^2;				//闪光灯1的控制信号
sbit K2 = P1^3;				//闪光灯2的控制信号
sbit LED1 = P1^0;			//指示灯1的控制信号
sbit LED2 = P1^1;			//指示灯2的控制信号
sbit LED3 = P1^4;			//指示灯3的控制信号
sbit LED4 = P1^5;			//指示灯4的控制信号
#define LED1_ON LED1 = 0
#define LED1_OFF LED1 = 1
#define LED2_ON LED2 = 0
#define LED2_OFF LED2 = 1
//#define time_ns P2
#define K1_ON K1 = 0
#define K2_ON K2 = 0
#define K1_OFF K1 = 1
#define K2_OFF K2 = 1


void main(void){
	ET0 = 1;		//定时器0允许中断
	SP = 0x70;		//
	WDTRST=0x1E;
	WDTRST=0xE1;//喂狗指令
	red_green = 1;
	TH0 = 0x06;		//定时器0设置初值
	TL0 = 0x06;		//
	TR0 = 1;		//定时器0不工作
	TMOD = 0x02;	//定时器工作在第2种模式
	EA = 1;			//开中断总允许
	LED1_ON;
	LED3 = 0;
	K1_ON;
	while(1){
		WDTRST=0x1E;
		WDTRST=0xE1;//喂狗指令
		PCON = 0x01;
	}
}


void time_0(void) interrupt 1{
	if(time_500ms++ == 500){
		time_500ms = 0;
		LED3 = !LED3;
	}
//	LED3 = !LED3;
	if(red_green){
		if(time_ns++ == 40000){			//10S为一个单位
			time_ns = 0;
			if(++time_n10s == 18){
				time_n10s = 0;
				LED1_OFF;
				K1_OFF;
				red_green = 0;
			}
		}
	}
	else{
		if(time_ns++ == 20000){			//5S为一个单位
			time_ns = 0;
			if(++time_n5s == 3){
				time_n5s = 0;
				LED1_ON;
				K1_ON;
				red_green = 1;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -