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

📄 key_a.c

📁 在C8051F02XX上的LED显示,读键盘程序
💻 C
字号:
#include <c8051f020.h>

//------------------------------------------------------------------------------------
// 16-bit SFR Definitions for 'F02x
//------------------------------------------------------------------------------------

sfr16 DP       = 0x82;                    // data pointer
sfr16 TMR3RL   = 0x92;                    // Timer3 reload value
sfr16 TMR3     = 0x94;                    // Timer3 counter
sfr16 ADC0     = 0xbe;                    // ADC0 data
sfr16 ADC0GT   = 0xc4;                    // ADC0 greater than window
sfr16 ADC0LT   = 0xc6;                    // ADC0 less than window
sfr16 RCAP2    = 0xca;                    // Timer2 capture/reload
sfr16 T2       = 0xcc;                    // Timer2
sfr16 RCAP4    = 0xe4;                    // Timer4 capture/reload
sfr16 T4       = 0xf4;                    // Timer4
sfr16 DAC0     = 0xd2;                    // DAC0 data
sfr16 DAC1     = 0xd5;                    // DAC1 data

int KEY;

void PORT_Init(void);
void PORT_Out(void);
void Int0_ISR(void);

void main(void)
{
	WDTCN = 0xde;                       // 禁止看门狗定时
   	WDTCN = 0xad;
	
	PORT_Init();						//端口初始化

	EA=1;								//打开全部中断
	EX0=1;								//打开外部中断0

	while(1){
	PORT_Out();							//输出显示
	}
}

void PORT_Init(void)
{
	P74OUT=0x03;
	P5=0xFF;							//设置P5为数字输入状态
}

void PORT_Out(void)
{
	P4=KEY;
}

void Int0_ISR(void) interrupt 0
{
	EX0=0;								//关闭外部中断0
	KEY=P5;								//读取键盘状态
	P5=0xFF;							//将P5口重新设输入状态
	EX0=1;								//打开外部中断0
}

⌨️ 快捷键说明

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