📄 display.c
字号:
#include"reg51.h"
#define zimushuru 0
#define pinyinchazhao 1
#define hazixianshi 2
#define xunhuan_xianshi 3
#define write_to_eprom 4
#define read_of_eprom 5
#define yiwei_xianshi 6
void move(unsigned char un);
void display(void);
sbit A1=P1^0;
sbit B1=P1^1;
sbit C1=P1^2;
sbit D1=P1^3;
sbit OE=P3^5; //138的使能
sbit CLK=P3^2;
sbit CS=P3^3;
sbit Data=P2^5;
bdata unsigned char zimo;
sbit zimo0=zimo^0;
sbit zimo1=zimo^1;
sbit zimo2=zimo^2;
sbit zimo3=zimo^3;
sbit zimo4=zimo^4;
sbit zimo5=zimo^5;
sbit zimo6=zimo^6;
sbit zimo7=zimo^7;
bdata unsigned char hang_138=0;
sbit hang0=hang_138^0;
sbit hang1=hang_138^1;
sbit hang2=hang_138^2;
sbit hang3=hang_138^3;
extern unsigned char xdata zimoku[3][128]={0x00, 0x80, 0x00, 0x80, 0xfc, 0x80, 0x05, 0xfe, 0x85, 0x04, 0x4a, 0x48, 0x28, 0x40, 0x10, 0x40,
0x18, 0x40, 0x18, 0x60, 0x24, 0xa0, 0x24, 0x90, 0x41, 0x18, 0x86, 0x0e, 0x38, 0x04, 0x00, 0x00,0x10, 0x00, 0x11, 0xfc, 0x11, 0x04, 0x7d, 0x04, 0x55, 0xfc, 0x54, 0x20, 0x55, 0xfc, 0x55, 0x24,
0x7d, 0xfc, 0x11, 0x24, 0x19, 0x24, 0x15, 0xfc, 0x1e, 0x22, 0xe4, 0x22, 0x00, 0x1e, 0x00, 0x00 , };
extern unsigned char zishu;
extern unsigned char page;
extern unsigned char zhuangtai;
extern unsigned char hz_dis_geshu[3];
unsigned char movei=0;
void move(bit un)
{
CLK=0;
Data=~un;
CLK=1;
A1=~A1;
}
/*void send_595_byte(unsigned char da)
{
zimo=da;
move(zimo7);
move(zimo6);
move(zimo5);
move(zimo4);
move(zimo3);
move(zimo2);
move(zimo1);
move(zimo0);
}*/
void send_595_bit(unsigned char sendi,bit da)
{
if(movei<=sendi)
move(da);
}
void send_595_bit0(unsigned char sendi,bit da)
{
if(movei>sendi)
move(da);
}
void display(void)
{
unsigned char i=0,j=0;
static unsigned char yanshi=0;
CS=0;
OE=1;
/* for(j=0;j<4;j++)
{
send_595_byte(zimoku[page][j*32+hang_138*2]);
send_595_byte(zimoku[page][j*32+hang_138*2+1]);
} */
zimo=zimoku[page][hang_138*2];
send_595_bit(0,zimo7);
send_595_bit(1,zimo6);
send_595_bit(2,zimo5);
send_595_bit(3,zimo4);
send_595_bit(4,zimo3);
send_595_bit(5,zimo2);
send_595_bit(6,zimo1);
send_595_bit(7,zimo0);
zimo=zimoku[page][hang_138*2+1];
send_595_bit(8,zimo7);
send_595_bit(9,zimo6);
send_595_bit(10,zimo5);
send_595_bit(11,zimo4);
send_595_bit(12,zimo3);
send_595_bit(13,zimo2);
send_595_bit(14,zimo1);
send_595_bit(15,zimo0);
zimo=zimoku[page][32+hang_138*2];
send_595_bit(16,zimo7);
send_595_bit(17,zimo6);
send_595_bit(18,zimo5);
send_595_bit(19,zimo4);
send_595_bit(20,zimo3);
send_595_bit(21,zimo2);
send_595_bit(22,zimo1);
send_595_bit(23,zimo0);
zimo=zimoku[page][32+hang_138*2+1];
send_595_bit(24,zimo7);
send_595_bit(25,zimo6);
send_595_bit(26,zimo5);
send_595_bit(27,zimo4);
send_595_bit(28,zimo3);
send_595_bit(29,zimo2);
send_595_bit(30,zimo1);
send_595_bit(31,zimo0);
zimo=zimoku[page][64+hang_138*2];
send_595_bit(32,zimo7);
send_595_bit(33,zimo6);
send_595_bit(34,zimo5);
send_595_bit(35,zimo4);
send_595_bit(36,zimo3);
send_595_bit(37,zimo2);
send_595_bit(38,zimo1);
send_595_bit(39,zimo0);
zimo=zimoku[page][64+hang_138*2+1];
send_595_bit(40,zimo7);
send_595_bit(41,zimo6);
send_595_bit(42,zimo5);
send_595_bit(43,zimo4);
send_595_bit(44,zimo3);
send_595_bit(45,zimo2);
send_595_bit(46,zimo1);
send_595_bit(47,zimo0);
zimo=zimoku[page][96+hang_138*2];
send_595_bit(48,zimo7);
send_595_bit(49,zimo6);
send_595_bit(50,zimo5);
send_595_bit(51,zimo4);
send_595_bit(52,zimo3);
send_595_bit(53,zimo2);
send_595_bit(54,zimo1);
send_595_bit(55,zimo0);
zimo=zimoku[page][96+hang_138*2+1];
send_595_bit(56,zimo7);
send_595_bit(57,zimo6);
send_595_bit(58,zimo5);
send_595_bit(59,zimo4);
send_595_bit(60,zimo3);
send_595_bit(61,zimo2);
send_595_bit(62,zimo1);
send_595_bit(63,zimo0);
zimo=0x00;
send_595_bit0(0,zimo7);
send_595_bit0(1,zimo6);
send_595_bit0(2,zimo5);
send_595_bit0(3,zimo4);
send_595_bit0(4,zimo3);
send_595_bit0(5,zimo2);
send_595_bit0(6,zimo1);
send_595_bit0(7,zimo0);
zimo=0x00;
send_595_bit0(8,zimo7);
send_595_bit0(9,zimo6);
send_595_bit0(10,zimo5);
send_595_bit0(11,zimo4);
send_595_bit0(12,zimo3);
send_595_bit0(13,zimo2);
send_595_bit0(14,zimo1);
send_595_bit0(15,zimo0); //空字
zimo=zimoku[page][hang_138*2];
send_595_bit0(16,zimo7);
send_595_bit0(17,zimo6);
send_595_bit0(18,zimo5);
send_595_bit0(19,zimo4);
send_595_bit0(20,zimo3);
send_595_bit0(21,zimo2);
send_595_bit0(22,zimo1);
send_595_bit0(23,zimo0);
zimo=zimoku[page][hang_138*2+1];
send_595_bit0(24,zimo7);
send_595_bit0(25,zimo6);
send_595_bit0(26,zimo5);
send_595_bit0(27,zimo4);
send_595_bit0(28,zimo3);
send_595_bit0(29,zimo2);
send_595_bit0(30,zimo1);
send_595_bit0(31,zimo0);
zimo=zimoku[page][32+hang_138*2];
send_595_bit0(32,zimo7);
send_595_bit0(33,zimo6);
send_595_bit0(34,zimo5);
send_595_bit0(35,zimo4);
send_595_bit0(36,zimo3);
send_595_bit0(37,zimo2);
send_595_bit0(38,zimo1);
send_595_bit0(39,zimo0);
zimo=zimoku[page][32+hang_138*2+1];
send_595_bit0(40,zimo7);
send_595_bit0(41,zimo6);
send_595_bit0(42,zimo5);
send_595_bit0(43,zimo4);
send_595_bit0(44,zimo3);
send_595_bit0(45,zimo2);
send_595_bit0(46,zimo1);
send_595_bit0(47,zimo0);
zimo=zimoku[page][64+hang_138*2];
send_595_bit0(48,zimo7);
send_595_bit0(49,zimo6);
send_595_bit0(50,zimo5);
send_595_bit0(51,zimo4);
send_595_bit0(52,zimo3);
send_595_bit0(53,zimo2);
send_595_bit0(54,zimo1);
send_595_bit0(55,zimo0);
zimo=zimoku[page][64+hang_138*2+1];
send_595_bit0(56,zimo7);
send_595_bit0(57,zimo6);
send_595_bit0(58,zimo5);
send_595_bit0(59,zimo4);
send_595_bit0(60,zimo3);
send_595_bit0(61,zimo2);
send_595_bit0(62,zimo1);
send_595_bit0(63,zimo0);
zimo=zimoku[page][96+hang_138*2];
send_595_bit0(64,zimo7);
send_595_bit0(65,zimo6);
send_595_bit0(66,zimo5);
send_595_bit0(67,zimo4);
send_595_bit0(68,zimo3);
send_595_bit0(69,zimo2);
send_595_bit0(70,zimo1);
send_595_bit0(71,zimo0);
zimo=zimoku[page][96+hang_138*2+1];
send_595_bit0(72,zimo7);
send_595_bit0(73,zimo6);
send_595_bit0(74,zimo5);
send_595_bit0(75,zimo4);
send_595_bit0(76,zimo3);
send_595_bit0(77,zimo2);
send_595_bit0(78,zimo1);
send_595_bit0(79,zimo0);
CS=1;
OE=0;
A1=hang0;//hang_138^0;
B1=hang1;//hang_138^1;
C1=hang2;//hang_138^2;
D1=hang3;
hang_138++;
if(hang_138>=16)
{
hang_138=0;
if(zhuangtai==xunhuan_xianshi)
{
yanshi++;
if(yanshi==0x80)
{
yanshi=0x00;
page++;
if(page==3) page=0;
if(hz_dis_geshu[page]==0)
{
page++;
if(page==3) page=0;
}
if(hz_dis_geshu[page]==0)
{
page++;
if(page==3) page=0;
}
}
}
else if(zhuangtai==yiwei_xianshi)
{
yanshi++;
if(yanshi>=0x10)
{
yanshi=0;
movei++;
if(movei>79)
movei=0;
}
}
else
{
yanshi=0;
movei=0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -