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

📄 16f877a.txt

📁 利用PICC的C编译环境编译通过的PIC16F877a连接键盘和HD7279显示的C语言程序
💻 TXT
字号:
#include<pic.h>
//pic16f877a的PD口输入,键盘识别,通过SPI连接HD7279显示。
__CONFIG(HS&UNPROTECT&PWRTDIS&BORDIS&WDTDIS);
#define PORTBIT(adr,bit) ((unsigned)(&adr)*8+(bit))
static bit PORTB_1@PORTBIT(PORTB,1);
#define PORTDIT(adr,bit) ((unsigned)(&adr)*8+(bit))
static bit PORTD_7@PORTDIT(PORTD,7);
static bit PORTD_6@PORTDIT(PORTD,6);
static bit PORTD_5@PORTDIT(PORTD,5);
static bit PORTD_4@PORTDIT(PORTD,4);
static bit PORTD_3@PORTDIT(PORTD,3);
static bit PORTD_2@PORTDIT(PORTD,2);
static bit PORTD_1@PORTDIT(PORTD,1);
static bit PORTD_0@PORTDIT(PORTD,0);

unsigned char j;
unsigned int i;
unsigned char x;
unsigned char z;
unsigned char keyen=0;
volatile unsigned char keyx;
volatile unsigned char KEY;
void DELAY(int us)
{
	for(i=0;i<us;i++)
	continue;
} 




void INITIAL()
{
	TRISD=0x0F;
	TRISB=0x00;
	OPTION=0x7F;
	INTCON=0x00;
	
	PORTD=0xFF;

}

void SPIINIT()
{
	PIR1=0x00;
	SSPCON=0x22;
	SSPSTAT=0xC0;
	TRISC=0x00;
}

void TM2INIT()
{
	TMR2=0xFD;
	T2CON=0x07;
}

void KEYSERVE()
{
	PORTD_4=0;
	if(PORTD!=0xEF)
	{
		DELAY(10000);
		if(PORTD!=0xEF)
		KEY=PORTD;
		do
		{
		;
		}while(PORTD!=0xEF);
		keyen=1;
	}
	PORTD=0xFF;
	PORTD_5=0;
	if(PORTD!=0xDF)
	{
		DELAY(10000);
		if(PORTD!=0xDF)
		KEY=PORTD;
		do
		{
		;
		}while(PORTD!=0xDF);
		keyen=1;
	}
	PORTD=0xFF;
	PORTD_6=0;
	if(PORTD!=0xBF)
	{
		DELAY(10000);
		if(PORTD!=0xBF)
		KEY=PORTD;
		do
		{
		;
		}while(PORTD!=0xBF);
		keyen=1;
	}
	PORTD=0xFF;
	PORTD_7=0;
	if(PORTD!=0x7F)
	{
		DELAY(10000);
		if(PORTD!=0x7F)
		KEY=PORTD;
		do
		{
		;
		}while(PORTD!=0x7F);
		keyen=1;
	}
	PORTD=0xFF;
	
}

void SPILED(int data,int data2)
{                     
	PORTB_1=0;
	DELAY(50);
	SSPBUF=data;
	do
	{
	;
	}while(STAT_BF==0);
	DELAY(20);
    SSPBUF=data2;
	do
	{
	;
	}while(STAT_BF==0);
 
    PORTB_1=1;
}

void SPILED1(int data)
{
	PORTB_1=0;
	DELAY(50);
	SSPBUF=data;
	do
	{
	;
	}while(STAT_BF==0);
	PORTB_1=1;
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
void KEYKK()
{
	if(KEY==0x77) keyx=0x00;
	if(KEY==0x7B) keyx=0x01;
	if(KEY==0x7D) keyx=0x02;
	if(KEY==0x7E) keyx=0x03;
	if(KEY==0xB7) keyx=0x04;
	if(KEY==0xBB) keyx=0x05;
	if(KEY==0xBD) keyx=0x06;
	if(KEY==0xBE) keyx=0x07;
	if(KEY==0xD7) keyx=0x08;
	if(KEY==0xDB) keyx=0x09;
	if(KEY==0xDD) keyx=0x0A;
	if(KEY==0xDE) keyx=0x0B;
	if(KEY==0xE7) keyx=0x0C;
	if(KEY==0xEB) keyx=0x0D;
	if(KEY==0xED) keyx=0x0E;
	if(KEY==0xEE) keyx=0x0F;

}

main()
{
INITIAL();
SPIINIT();
PORTB_1=1;
SPILED(0xA4,0);

PORTB_1=1;


do
{
	KEYSERVE();


if(keyen==1)
	{
		KEYKK();
		SPILED1(0xA0);
		SPILED(0xCF,keyx);
		
	keyen=0;
	}
}while(1);

}


⌨️ 快捷键说明

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