16key.c

来自「我用PROTEUS做了一个基于PIC16F877A的4*4键盘」· C语言 代码 · 共 59 行

C
59
字号
#include<pic.h>
#define uint unsigned int
#define uchar unsigned char

uchar key=0;
void int_init() //RB0外部中断初始化
{
// GIE=1;
// INTE=1;  //外部中断允许
// INTF=0; 
// TRISB0=1; //RB0为外部中断输入引脚,设为输入
 TRISD=0xf0;
 PORTD=0x00;
 TRISC=0x00;
// INTEDG=0; //INT下降沿有效
}

void keyserve()
{
// INTF=0; 
// PORTD=0xff;
 
 RD0=1;
 if(1==RD4) key=1;
 if(1==RD5) key=2;
 if(1==RD6) key=3;
 if(1==RD7) key=4;
 RD0=0;
 RD1=1;
 if(1==RD4) key=5;
 if(1==RD5) key=6;
 if(1==RD6) key=7;
 if(1==RD7) key=8;
 RD1=0;
 RD2=1;
 if(1==RD4) key=9;
 if(1==RD5) key=10;
 if(1==RD6) key=11;
 if(1==RD7) key=12;
 RD2=0;
 RD3=1;
 if(1==RD4) key=13;
 if(1==RD5) key=14;
 if(1==RD6) key=15;
 if(1==RD7) key=16;
 RD3=0;
 //PORTD=0x00; //恢复PORTB的值
 PORTC=key;
}

void main()
{
 int_init();
 while(1)
 {
  keyserve();
 }
}

⌨️ 快捷键说明

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