当前位置:首页 > 基于51单片16路矩阵键盘抢答器
附录3 程序清单
#include
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x84};
unsigned char code table0[]={0xfe,0xfd,0xfb,0xf7}; unsigned char code table2[]={0xef,0xdf,0xbf,0x7f}; unsigned char display[]={0,0,0,0}; void sw1(); void sw2(); void sw3(); void sw4();
void xianshi(); void init();
unsigned char temp,num2,x,x1,x2,a,count; int num,num1;
unsigned char key; unsigned char i,j; sbit k1=P1^0; sbit k2=P1^1; sbit k3=P1^2; sbit k4=P1^3; sbit sp=P1^4; sbit l1=P1^5; sbit l2=P1^6; sbit P3_4=P3^4; sbit P3_5=P3^5; sbit P3_6=P3^6; sbit P3_7=P3^7;
void delay(unsigned char z) {
unsigned char x,y; for(x=z;x>0;x--)
for(y=110;y>0;y--); }
void init() { a=0;
TMOD=0x01; TH0=(65536-10000)/256;
第22页
TL0=(65536-10000)%6; EA=1; ET0=1;
if(k1==0) {
delay(5); if(k1==0) {
num++; if(num==99) { num=0; }
num2=num; while(k1==0); } }
if(k2==0) { delay(5); if(k2==0) {
num--; if(num==-1) {
num=99; }
num2=num;
while(k2==0); } }
if(k3==0) {
delay(5); if(k3==0) {
x++; if(x==2) {
x=0; }
while(k3==0); } }
第23页
}
void keyboad() {
while(1) {
P3=0xff; P3_4=0; temp=P3;
temp=temp & 0x0f; if (temp!=0x0f) {
delay(5); temp=P3;
temp=temp & 0x0f; if (temp!=0x0f) {
temp=P3;
temp=temp & 0x0f; switch(temp) {
case 0x0e:
{delay(5);num1=4;l2=0;xianshi();} break; case 0x0d:
{delay(5);num1=3;l2=0;xianshi();}break; case 0x0b:
{delay(5);num1=2;l2=0;xianshi();}break; case 0x07:
{delay(5);num1=1;l2=0;xianshi();} break; } } }
P3=0xff; P3_5=0; temp=P3;
temp=temp & 0x0f; if (temp!=0x0f) {
delay(5); temp=P3;
temp=temp & 0x0f; if (temp!=0x0f) {
第24页
temp=P3;
temp=temp & 0x0f; switch(temp) {
case 0x0e:
{delay(5);num1=8;l2=0;xianshi();} break;
case 0x0d:
{delay(5);num1=7;l2=0;xianshi();} break; case 0x0b:
{delay(5);num1=6;l2=0;xianshi();} break; case 0x07:
{delay(5);num1=5;l2=0;xianshi();} break; } } }
P3=0xff; P3_6=0; temp=P3;
temp=temp & 0x0f; if (temp!=0x0f) {
delay(5); temp=P3;
temp=temp & 0x0f; if (temp!=0x0f) {
temp=P3;
temp=temp & 0x0f; switch(temp) {
case 0x0e:
{delay(5);num1=12;l2=0;xianshi();} break; case 0x0d:
{delay(5);num1=11;l2=0;xianshi();} break; case 0x0b:
{delay(5);num1=10;l2=0;xianshi();} break; case 0x07:
{delay(5);num1=9;l2=0;xianshi();} break; } } }
P3=0xff; P3_7=0; temp=P3;
第25页
共分享92篇相关文档