#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit P0_0=P0^0;
uchar idata table[17]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xaa,0xbd,0xee,0xdd,0x99,0xfd,0xff,0xff};
uchar idata table2[10];
uchar num,temp;
uchar num1=0,flag;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
uchar keyscan();
void int0(void) interrupt 0
{ int m;
P1=0xff;
for(m=0;m<5;m++)
{ P1=table2[m];
delay(500);
}
}
void main()
{ uchar n=0;
uchar m;
uchar i=0;
flag=1;
TMOD=0x20;//设置定时器1为工作方式2
TH1=0xe8;
TL1=0xe8;
TR1=1;
EA=1; //总中断开启
EX0=1; //外部中断INT0开启
IT0=1;
REN=1;
SM0=0;
SM1=1;
while(flag) i=keyscan();
flag=1;
while(1)
{
if(num1==0)
{
RI=0;
P0_0=0;
while(!RI);
delay(500);
P1=SBUF;
m=SBUF;
table2[n]=m;
n++;
RI=0;
}
else if(num1==1)
{
while(flag) i=keyscan();
flag=1;
P0_0=1;
SBUF=table[i-1];
while (!TI);
P1=table[i-1];
TI=0;
}
}
}
uchar keyscan()
{
P2=0xfe;
temp=P2;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P2;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P2;
switch(temp)
{
case 0xee:{num=1;flag=0;}
break;
case 0xde:{num=2; flag=0;}
break;
case 0xbe:{num=3; flag=0;}
break;
case 0x7e:{num=4; flag=0;}
break;
}
while(temp!=0xf0)
{
temp=P2;
temp=temp&0xf0;
}
}
}
P2=0xfd;
temp=P2;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P2;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P2;
switch(temp)
{
case 0xed:{num=5;flag=0;}
break;
case 0xdd:{num=6;flag=0;}
break;
case 0xbd:{num=7;flag=0;}
break;
case 0x7d:{num=8;flag=0;}
break;
}
while(temp!=0xf0)
{
temp=P2;
temp=temp&0xf0;
}
}
}
P2=0xfb;
temp=P2;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P2;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P2;
switch(temp)
{
case 0xeb:{num=9; flag=0;}
break;
case 0xdb:{num=10; flag=0;}
break;
case 0xbb:{num=11;flag=0;}
break;
case 0x7b:{num=12; flag=0;}
break;
}
while(temp!=0xf0)
{
temp=P2;
temp=temp&0xf0;
}
}
}
P2=0xf7;
temp=P2;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P2;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P2;
switch(temp)
{
case 0xe7:{num=13; flag=0;}
break;
case 0xd7:{num=14;num1=2; flag=0;}
break;
case 0xb7:{num=15;num1=1;flag=0;}
break;
case 0x77:{num=16; flag=0;num1=0;}
break;
}
while(temp!=0xf0)
{
temp=P2;
temp=temp&0xf0;
}
}
}
return num;
return flag;
}
happywran
- 粉丝: 3
- 资源: 3
最新资源
- 球磨机sw14全套技术资料100%好用.zip
- 清洗输送机step全套技术资料100%好用.zip
- 国内某电驱大厂内部电驱仿真模型,支持同步电机和异步电机模型,相电流控制输出稳定,自动计算弱磁模型调用各种脚本进行foc控制,扭矩无异常波动,适合电机控制的初学者构建自己的仿真模型时来参考搭建 (运行
- 汇川多合一上位机软件 ①支持宇通,东风凯普特,陕汽德龙等多车型 ②支持数据读取,修改,故障码读取,程序刷写等
- 图书管理程序,c语言主程序
- 电机控制器,IGBT结温估算(算法+模型)国际大厂机密算法,多年实际应用,准确度良好…… 能够同时对IGBT内部6个三极管和6个二极管温度进行估计,并输出其中最热的管子对应温度 可用于温度保护,降额
- 图书管理程序,c语言运行程序
- 基于Java和HTML的JavaExpert技术专家修炼之路设计源码
- 染色机sw21可编辑全套技术资料100%好用.zip
- Labview四工位相机同时扫二维码+HTTP协议Mes上传+汇川PLC通讯协议
- 手动装订机sw15可编辑全套技术资料100%好用.zip
- 适配器插头自动化振动盘上料机sw17全套技术资料100%好用.zip
- 适配器老化测试机sw17可编辑全套技术资料100%好用.zip
- 基于matlab的永磁同步电机(PMSM),磁场定向控制仿真模型 永磁同步电机(PMSM)是一个非线性系统,具有多变量、强耦合的特点
- 手摇机械折弯冲压机sw17可编辑全套技术资料100%好用.zip
- 基于matlab的多类结构动力学,凸轮机构、双凸轮、弦振动模拟、阻尼振动 、四连杆机构 、套杆运动 、三根弹簧作用的振子 程序已调通,可直接运行
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈