第一范文网 - 专业文章范例文档资料分享平台

基于51单片16路矩阵键盘抢答器

来源:用户分享 时间:2025/6/3 4:11:33 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

附录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页

搜索更多关于: 基于51单片16路矩阵键盘抢答器 的文档
基于51单片16路矩阵键盘抢答器.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c59g0f5x4r09o8y39xxdw_7.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top