现在程序可以实现 1加操作到9 和9减到1
怎么样才可以把他改成 1加到9 如果再按加变成1 和 9减到1 再按减变回9
和 怎么可以把当前显示的数 存储到 内部寄存器EEPROM里面
单片机型号 STC 89C52
#include<reg52.h>
sbit k1=P3^6;
sbit k2=P3^7;
void delay(unsigned char i)
{
unsigned char j,k,x;
for(k=0;k<i;k++)
for(j=0;j<255;j++)
for(x=0;x<25;x++);
}
unsigned char smg[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //数码管显示1-9
unsigned a;
void key1()
{
a=0;
while(1)
{
if(k1==0) //检测按键是否按下
{
delay(5); //延时消抖
if(k1==0) //再次检测按键是否按下
{
while(!k1); //检测按键是否弹起
if(a<8)
a++; //加操作
}
}
if(k2==0) //检测按键是否按下
{
delay(5); //延时消抖
if(k2==0) //再次检测按键是否按下
{
while(!k2); //检测按键是否弹起
if(a>0)
a--; //减操作
}
}
//1234
P2=smg[a]; //数码管显示
}
}
void main()
{
while(1)
{
key1();
}
}
|