找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

状态机键盘扫描求助!!!

[复制链接]
admin 发表于 2012-9-2 10:49:15 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
H文件:
#ifndef _DIY_H_
#define _DIY_H_
typedef unsigned char uint8;
typedef unsigned int uint16;
#define PORT0 P0
#define PORT1 P1
#define PORT2 P2
#define PORT3 P3

#endif
主程序:
#include<reg52.h>
#include"diy.h"
#define key_state1 1
#define key_state2 2
#define key_state3 3
unsigned char const dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x39,0x5e,0x79,0x71};//0-F

void Key_Scan()
{
uint8 value_l,value_r,key_value,table;
static uint8 key_state=1;
switch(key_state)
{
case key_state1:

PORT3=0XF0;
value_l=PORT3&0XF0;
if(value_l!=0XF0)
{
key_state=key_state2;
value_l=PORT3&0Xf0;
PORT3=0X0F;
value_r=PORT3&0x0f;
key_value=(value_l|value_r);

}
else
{key_state=key_state1;}
break;
case key_state2:
{
switch(key_value)
{
case 0x7e: table=dofly[0];key_state=2;break;
case 0x7d: table=dofly[1];key_state=2;break;
case 0x7b: table=dofly[2];key_state=2;break;
case 0x77: table=dofly[3];key_state=2;break;

case 0xbe: table=dofly[4];key_state=2;break;
case 0xbd: table=dofly[5];key_state=2;break;
case 0xbb: table=dofly[6];key_state=2;break;
case 0xb7: table=dofly[7];key_state=2;break;

case 0xde: table=dofly[8];key_state=2;break;
case 0xdd: table=dofly[9];key_state=2;break;
case 0xdb: table=dofly[10];key_state=2;break;
case 0xd7: table=dofly[11];key_state=2;break;

case 0xee: table=dofly[12];key_state=2;break;
case 0xed: table=dofly[13];key_state=2;break;
case 0xeb: table=dofly[14];key_state=2;break;
case 0xe7: table=dofly[15];key_state=2;break;

default :key_state=key_state1;break;

}


}

break;
case key_state3:
if(value_l!=0XF0)
while(value_l!=0XF0)
{
PORT2=0x00;
PORT0=dofly
 楼主| admin 发表于 2012-9-2 10:49:20 | 显示全部楼层
[table];

}
else
{
key_state=key_state1;

}
break;
}
}
void main()
{

while(1)
{
Key_Scan();

}
}
程序编译通过了,但是数码管没有任何反应,下面是我的硬件原理图,希望各位路过的帮帮忙,看看吧!
我用的是STC的单片机!希望各位路过给个看法吧!
[ 此帖被林翌荨在2011-03-08 18:38重新编辑 ]

5_143438_997d5605f3324ec.jpg 5_143438_c6136092af22ddd.jpg
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-24 17:16 , Processed in 0.062459 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表