图案能自己运行但不能利用按键控制,如何利用按键控制LED显示特定的图案
//显示一个零
#include<reg51.h>
#include<intrins.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit SRCLK = P3^6;
sbit RCLK = P3^5;
sbit SER = P3^4;
u16 led_x[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
u8 led_y[]={0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00};
void delay(u16 i)
{
while(i--);
}
void hc595sendbyte(u8 a)
{
u16 i ;
SRCLK = 0;
RCLK = 0;
for (i = 0; i < 8; i++) {
SER = a >> 7;
a <<= 1;
SRCLK = 1;
_nop_();
_nop_();
SRCLK = 0;
}
RCLK = 1;
_nop_();
_nop_();
RCLK = 0;
}
void main()
{ u16 i;
while(1){
for (i = 0; i < 8; i++){
P0=led_x[i]; //(1)
hc595sendbyte(led_y[i]); //(2)
delay(100); //(3)
hc595sendbyte(0x00); // (4)
}
}
}
注释: