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

📄 复件 ijnew.c

📁 C和BASIC对51系列编实现PC机与MCU通信,以将MCU作PC的前端数据采集器或命令执行器.
💻 C
字号:
#include <AT892051.H>

#define RELOAD_HIGH  0x3C				//0xD8//0x3C高位值

#define RELOAD_LOW   0xAF				//0xEF//0xB0低位值

#define ON 1							//开逻辑

#define OFF 0							//关逻辑

#define DB_VAL 3  						//定义按键弹跳时间

code char com1[5]="11111";
code char com2[5]="22222";
code char com3[5]="33333";

char switch_debounce=DB_VAL; 				//按键跳动计时

char i=0;
char dir=0;
char old_dir=0;
char second=5;

sbit sw1=P1^0;					//P12  
sbit sw2=P1^1;					//P13
sbit sw3=P1^2;					//P14
sbit led1=P1^3;					//P15  
sbit led2=P1^4;					//P16
sbit led3=P1^5;					//P17
sbit led=P3^7;					//P11

void turnoffled(void)
{
	led1=OFF;
	led2=OFF;
	led3=OFF;
}

void main(void)
{
	
	TMOD=0x21; 	//设置定时器1模式2、定时器0模式1
	TH1=0xF4;	//12MHz 4800波特率
	TL1=0xF4;
	TR1=1;
	SM0=0;
	SM1=1;
	REN=0;
	PCON=0x80;
	
	TH0=RELOAD_HIGH;
	TL0=RELOAD_LOW;
	ET0=1;
	EA=1;
	TR0=1;
	turnoffled();

	while(1)
	{
		switch (dir)
		{
			case 1:
			{
				for(i=0;i<5;i++)
				{
					SBUF=com1[i];
					while(!TI);
					TI=0;
				}
				led2=OFF;
				led3=OFF;
				led1=ON;
				dir=0;
				break;
			}
			case 2:
			{
				for(i=0;i<5;i++)
				{
					SBUF=com2[i];
					while(!TI);
					TI=0;
				}
				led1=OFF;
				led3=OFF;
				led2=ON;
				dir=0;
				break;
			}
			case 3:
			{
				for(i=0;i<5;i++)
				{
					SBUF=com3[i];
					while(!TI);
					TI=0;
				}
				led1=OFF;
				led2=OFF;
				led3=ON;
				dir=0;
				break;
			}
		}
	}
}	

void system_tick0(void) interrupt 1 using 2
{
	TR0=0;								//停计时
	TH0=RELOAD_HIGH; 					//设定重装值
	TL0=RELOAD_LOW;
	TR0=1; 								//开始计时
	if (switch_debounce)
	{ 									//按键抖动
		switch_debounce--;				//按键抖动计时减一
	}
	else
	{
		if(!sw1)
		{
			switch_debounce=DB_VAL;
			dir=1;
		}
		if(!sw2)
		{
			switch_debounce=DB_VAL;
			dir=2;
		}	
		if(!sw3)
		{
			switch_debounce=DB_VAL;
			dir=3;
		}
	}	
	second--;
	if(!second)
	{
		second=5;
		led=~led;
	}
}

⌨️ 快捷键说明

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