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

📄 xuzkzbv10.c

📁 LED照明行业地砖及护栏控制器程序 从现况来看
💻 C
字号:
//************************************
//*********** 
//****	2004-06-19	mcu at89c2051 38400BPS  OSC 22.1184MHZ
// ding li zhao ming 地砖
//************************************
#include <at892051.h>
#include <stdio.h>//一般I/O函数
#include <stdlib.h>//标准函数
#include <absacc.h>//绝对地址
#include <intrins.h>//内部函数	
#include <setjmp.h>
#define uchar unsigned char
#define uint unsigned int
#define Byte unsigned char
#define Word unsigned int
#define ulong unsigned long
#define bool bit
#define true 1
#define false 0
#define V_TH0   0xff  /* 时间常数高8位 (65536-500)/256			*/
#define V_TL0   0x80  /* 时间常数低8位 (65536-500)%256   11.0592*/
#define ADD 1
//******************************
sbit roe=P3^2;
sbit goe=P3^3;
sbit boe=P3^4;
//**************************************************************
uchar	dis_buf_r,dis_buf_g,dis_buf_b;	//显示缓冲
uchar 	mode;				
uchar 	pointer;
uchar	send_buf[4];
uchar	pwm,rl;
uchar 	setadd;
jmp_buf env;
int retval;
uchar bdata flags;
sbit flag0=flags^0;
sbit flag1=flags^1;
sbit flag2=flags^2;
sbit flag3=flags^3;
sbit frameok=flags^4;
//*********************************
void 	delay(uint j);
void	qcgd(uint speed);
//*********************************
void main(void)
{
TMOD=0x21;
SCON=0xd0;
TH1=0xfd;
TL1=0xfd;	//256-(22.1184*10~6/32/12/3/38400*2)
//PCON=0X80;//倍频
SM2=1;
TL0=V_TL0;
TH0=V_TH0;
TR0=1;
ET0=1;
TR1=1;
ET1=0;
ES=1;
EA=1;
PS=1;
frameok=0;
pointer=0;
dis_buf_b=dis_buf_g=dis_buf_r=15;
setadd=(~P1)&0x3f;
while(1)
	{
	if(mode==0x55)
		{delay(4);}
	else
		{
		retval=setjmp(env);
		if(retval==0)
			{
			qcgd(20);
			}
		}
	}
}
//*********************************
//   接收数据
//*********************************
void	receive(void)
{
dis_buf_r=send_buf[1];
dis_buf_g=send_buf[2];
dis_buf_b=send_buf[3];
}
//*****************************************
//	 延时
//**************************************
void delay(uint tim)
{
uint i;
while(tim!=0)
	{
	for(i=0;i<50;i++)
		{
		if(frameok)
			{receive();
			mode=0x55;
			frameok=0;
			SM2=1;
			pointer=0;
			retval=1;
			longjmp(env,retval);
			}
		}  
	tim--;
	}
}
//************************************
//七彩过渡roe=(dis_buf_r<pwm)?0:1;
//**********************************
void	qcgd(uint speed)
{

//for(i=0;i<255;i++){dis_buf_r=i;dis_buf_g=0;dis_buf_b=0;delay(speed);}//red
/*
for(i=0;i<16;i++){dis_buf_r=15;dis_buf_g=i;dis_buf_b=0;delay(speed);}//yeloww
for(i=0;i<16;i++){dis_buf_r=~i;dis_buf_g=15;dis_buf_b=0;delay(speed);}//grn
for(i=0;i<16;i++){dis_buf_r=0;dis_buf_g=15;dis_buf_b=i;delay(speed);}//qi
for(i=0;i<16;i++){dis_buf_r=0;dis_buf_g=~i;dis_buf_b=15;delay(speed);}//blu
for(i=0;i<16;i++){dis_buf_r=i;dis_buf_g=0;dis_buf_b=15;delay(speed);}//zhi
for(i=0;i<16;i++){dis_buf_r=15;dis_buf_g=i;dis_buf_b=15;delay(speed);}//w
for(i=0;i<16;i++){dis_buf_r=15;dis_buf_g=~i;dis_buf_b=~i;delay(speed);}//r
*/
for(dis_buf_g=63;dis_buf_g<64;dis_buf_g--)
	{dis_buf_b=dis_buf_g;delay(speed);}//r
	dis_buf_r=63;dis_buf_g=0;dis_buf_b=0;

for(dis_buf_g=1;dis_buf_g<64;dis_buf_g++)
	{delay(speed);}//y
	dis_buf_g=63;
for(dis_buf_r=63;dis_buf_r<64;dis_buf_r--)
	{delay(speed);}//g
	dis_buf_r=0;
for(dis_buf_b=1;dis_buf_b<64;dis_buf_b++)
	{delay(speed);}//q
	dis_buf_b=63;
for(dis_buf_g=63;dis_buf_g<64;dis_buf_g--)
	{delay(speed);}//b
	dis_buf_g=0;
for(dis_buf_r=1;dis_buf_r<64;dis_buf_r++)
	{delay(speed);}//z
	dis_buf_r=63;
for(dis_buf_g=1;dis_buf_g<64;dis_buf_g++)
	{delay(speed);}//w
	dis_buf_g=63;
}

//****************************************
//		 通讯子程序
//**************************************
void send(void) interrupt  4 
{
if(!TI && RI && !frameok)
	{RI=0;
	if(pointer==0)
		{
		if(SBUF==setadd||SBUF==0)
			{
			SM2=0;pointer++;
			}
		}
	else
		{
	  	if(pointer<3)
    		{send_buf[pointer]=SBUF;pointer++;}
	  	else
    	 	{
			send_buf[pointer]=SBUF;
			frameok=1;
			} 
		}
	}//end if
}//end sub
//*******************************************
void timer1() interrupt  1  
{ 
TL0=V_TL0;
TH0=V_TH0;
pwm++;
if(pwm>63)pwm=0;
//for(pwm=0;pwm<64;pwm++)
//	{
	roe=(dis_buf_r<=pwm)?0:1;
	goe=(dis_buf_g<=pwm)?0:1;
	boe=(dis_buf_b<=pwm)?0:1;
//	}
}//end sub

⌨️ 快捷键说明

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