|
#include"reg52.h"
typedef unsigned char u8;
u8 gled_banana[8] = {0x0C,0x34,0xC9,0xF3,0x7D,0x82,0x8E,0x70};
u8 gled_love[8] = {0x38,0x44,0x82,0x41,0x41,0x82,0x44,0x38};
u8 gled_ball[8] = {0x3C,0x42,0x81,0x81,0x81,0x81,0x42,0x3C};
u8 gled_gpurd[8] = {0x00,0x06,0x69,0x91,0x91,0x69,0x06,0x00};
u8 gled_posion[8] = {0x00,0x3E,0xFB,0xF7,0xEF,0xDF,0x3E,0x00};
u8 gled_welcome[8] = {0x48,0xD7,0x60,0x07,0xBD,0xAF,0xBF,0x05};
u8 gled_pay_money[8] = {0x06,0x61,0x91,0xFF,0x91,0xFF,0x91,0x1E};
u8 gled_lie[8] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
u8 gled_pay_OK[8] = {0x3C,0x42,0x3C,0x00,0xFF,0x18,0x24,0xC3};
u8 gled_no_commodity[8] = {0x12,0x12,0x94,0xF8,0xFE,0x91,0x11,0x13};
#define SMG_A_DP_PORT P0
#define BANANA 0
#define LOVE 1
#define BALL 2
#define GPURD 3
#define POSION 4
#define WELCOME 5
#define PAY_MONEY 6
#define PAY_OK 7
#define NO_COMMODITY 8
sbit SMG_C = P2^2;
sbit SMG_B = P2^3;
sbit SMG_A = P2^4;
sbit rCLK = P3^5;
sbit SRCLK = P3^6;
sbit SER= P3^4;
void delay(u8 num)
{
while(num--);
}
void write_hx(u8 dat)
{
u8 i = 0;
for (i=0;i<8;i++)
{
SER = dat>>7;
dat <<= 1;
SRCLK = 0;
delay(1);
SRCLK = 1;
delay(1);
}
rCLK = 0;
delay(1);
rCLK = 1;
delay(1);
}
void LED_display(u8 screen_display)
{
u8 i = 0;
for (i=0;i<8;i++)
{
SMG_A_DP_PORT = gled_lie[i];
switch (screen_display)
{
case 0: write_hx(gled_banana[i]);break;
case 1: write_hx(gled_love[i]);break;
case 2: write_hx(gled_ball[i]);break;
case 3: write_hx(gled_gpurd[i]);break;
case 4: write_hx(gled_posion[i]);break;
case 5: write_hx(gled_welcome[i]);break;
case 6: write_hx(gled_pay_money[i]);break;
case 7: write_hx(gled_pay_OK[i]);break;
case 8: write_hx(gled_no_commodity[i]);break;
}
delay(100);
write_hx(0x00);
}
}
void main(void)
{
while (1)
{
LED_display(0);
delay(100000);
SMG_A_DP_PORT = 0x00;
write_hx(0x00);
LED_display(4);
delay(100000);
}
}
为什么烧入单片机后会立马出现个重合影像,LED_display(4);LED_display(0);删掉一个就行,就是每个图像的样子,但是这是为什么呢,请大佬指教 |
|