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

📄 main.c

📁 采用STC89C51RC单片机
💻 C
字号:
#include <config.h>

#include <lcddrive.h> 
#include <serial.h> 
#include <ps2.h>

#include <key.h>

uint8  Os_Enter_Sum;
#define  OS_ENTER_CRITICAL()  EA = 0,Os_Enter_Sum++             /* 禁止中断*/
#define  OS_EXIT_CRITICAL()   if (--Os_Enter_Sum==0) EA = 1     /* 允许中断*/

extern uint8 code bmp[9600];

uint16	Key_Value = 0;
uint16	Key_Value1 = 0;

uint8   Cc = 0;

uint8	Counter	= 0;

uint8	PreKey_Char = 0;
uint8 	Key_Char = 0;

uint8 	T100ms = 0;
  




bit		Key_Flag = 0;		//	Key_Flag = 0;表示无键按下;Key_Flag = 1:有键按下; 
bit		PreKey_Flag = 0;



extern uint8 code gImage_s1[1024]; 



void ext0(void) interrupt 0
{  	_nop_();
}

void time0(void) interrupt 1
{ 
	T100ms++;  	
}


void ext1(void) interrupt  2
{		
	OS_ENTER_CRITICAL(); 
		
  	if(Key_Date)
    	 Key_Value1|=0x8000;  
		 
	Key_Flag = 1; 

	Counter++;

  	if(Counter==11)
  	{ 
    	Key_Value1>>=6;
		
		Cc++;	     	
		
		Key_Value = Key_Value1; 	    
		PreKey_Char = Key_Char;	 

		PreKey_Flag = Key_Flag;

		Get_KeyChar();		   	//转换按键

		Ps2_SendKey();			//发送按键到串口
		
		Counter = 0;			
		Key_Value = 0; 
		Key_Value1 = 0; 		 	
  	}
 	Key_Value1>>=1;	 

   OS_EXIT_CRITICAL();
}



void time1(void) interrupt 3
{	_nop_();
}

void Uart(void) interrupt 4
{  	_nop_();
}

 


void main(void)
{	
 		
	UART_Init(); 

	TMOD = (TMOD & 0XF0) | 0X01;	//定时器0,方式1,16位定时器
	TL0 = 0xC0;
	TH0 = 0x63;						//T0初值为0x63C0, 20ms溢出一次
	
	PT0 = 0; 
	ET0 = 1;			//定时器0溢出中断允许位,1:允许;0:禁止
	TF0 = 0;
	

	DIS_CS=1;	
	DIS_RD=1; 
	DIS_WR=1;
	DIS_A0=1; 
	LCD_DataPort=0xff;	
	
	LCD_Initial(); 

	Delayms(100);	 

	PX1 = 1;
	IT1 = 1;//下降沿触发
	EX1 = 1;//允许外部1中断
	EX0 = 0;
	EA	= 1; 	   

	LCD_ClearScreen(); 
	UART_SendChar('a');	

	TR0 = 1;			//定时器运行控制位。1:启动定时器; 0:停止定时器 


	while(1) 
	{ 	
		while(T100ms>100)
		{
			UART_SendChar('b');	
			Lcd_ShowPics(0,0,40,240,bmp);
			T100ms = 0;
		}

									
		_nop_(); 	
		
	}
}

⌨️ 快捷键说明

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