.H文件
#ifndef _MATRIX_H_ #define _MATRIX_H_ #include "STC15F2K60S2.h" #include "delay.h" #define line0 P30 #define line1 P31 #define line2 P32 #define line3 P33 #define list0 P44 #define list1 P42 #define list2 P35 #define list3 P34 unsigned char key_scan(); #endif
.C文件
#include "matrix.c" unsigned char key_scan() { unsigned char temp; line0=0; line1=0; line2=0; line3=0; list0=1; list1=1; list2=1; list3=1; if(list0==0||list1==0||list2==0||list3==0) { delay_5ms(); if(list0==0||list1==0||list2==0||list3==0) { line0=0; line1=0; line2=0; line3=0; list0=1; list1=1; list2=1; list3=1; if(list0==0) temp=1; if(list1==0) temp=2; if(list2==0) temp=3; if(list3==0) temp=4; line0=1; line1=1; line2=1; line3=1; list0=0; list1=0; list2=0; list3=0; if(line0==0) temp=temp-1; if(line1==0) temp=temp+3; if(line2==0) temp=temp+7; if(line3==0) temp=temp+11; while(line0!=0&&line1!=0&&line2!=0&& line3!=0); } } return temp; }