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

📄 main.c

📁 keil开发环境
💻 C
字号:
/*********************************************************************************************************

********************************************************************************************************/


#include "config.h"
#include  "stdlib.h"

void AnPrintf(void);
void BnPrintf(void);
uint8 keyscan(void);
void Delay(uint8 i);

uint8  BnPrintfWait;

//================设置操作系统时钟======================================
void TimeTickConfig(void)
{
    TMOD = (TMOD & 0XF0) | 0X01;
    TH0 = 0x3c;
    TL0 = 0xb0;
    TR0 = 1;
    ET0 = 1;
			  
}
//---------------设置串口时钟--------------------------------------------
void Serial_initialize()
{
    SCON  = 0x50;  //* SCON: mode 1, 8-bit UART, enable rcvr */
    TMOD |= 0x20;  //* TMOD: timer 1, mode 2, 8-bit reload */
    TH1   = 0xfd;  //* TH1:  reload value for 1200 baud @ 16MHz */
    TR1   = 1;     //* TR1:  timer 1 run */
    TI    = 1;     //* TI:   set TI to send first char of UART */


}
//-----------------------------------------------------------------------
void main(void)
{

	OSSemCreate(0 , 1);

    OSInit();
	TimeTickConfig();

	Serial_initialize();
    OSTaskCreate(AnPrintf, NULL, 0);
    OSTaskCreate(BnPrintf, NULL, 1);

	OSStart(); 
}
//-----------------------------------------------------------------------

void  AnPrintf(void)
{   
    
    while(1)
    {  
		keyscan();

        OSSemPend(0,1000);

    }
    
}

//******************************************************************
void  BnPrintf(void)
{

    while(1)
    {

    	P1 = rand();
		Delay(3);

		OSSemPost(0);	
    }
   
}

uint8 keyscan(void)
{
	uint8 sccode,recode;
	P2 = 0xF0;
	if((P2 & 0xF0) != 0xF0)
	{
		Delay(3);
		if((P2 & 0xF0) != 0xF0)
		{
			sccode = 0xFE;
			while((sccode & 0x10) != 0)
			{
				P2 = sccode;
				if((P2 & 0xF0) != 0xF0)
				{
					recode = (P2 & 0xF0) | 0x0F;
					while((P2 & 0xF0) != 0xF0)Delay(1);
					SBUF = ((~sccode) + (~recode));
					return((~sccode) + (~recode));
				}
				else
					sccode = (sccode << 1) | 0x01;
			}
		}
	}
}

void Delay(uint8 i)
{
	uint8 j,k;
	for(i; i > 0; i--)
		for(j = 0; j < 250; j++)
			for(k = 0; k <250; k++);
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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