📄 hulandengm16.c
字号:
}
else
{
scan=0;
}
for(i=scan,j=0;i<16;i++,j++)
{
disp_ram[i*4]=pgm_read_byte(shaomiao+16+j);
}
for(i=scan,j=15;i>0;i--,j--)
{
disp_ram[i*4-4]=pgm_read_byte(shaomiao+16+j);
}
for(i=0;i<16;i++)
{
disp_ram[i*4+1]=disp_ram[i*4];
disp_ram[i*4+2]=disp_ram[i*4];
disp_ram[i*4+3]=disp_ram[i*4];
}
TCNT1L=data.byte[0];
TCNT1H=data.byte[1];
break;
case 4: if(scan==0)
{
scan=1;
}
else
{
scan=0;
}
for(i=0,j=0;i<16;i++,j+=2)
{
disp_ram[i*4]=pgm_read_byte(xiaoguo+scan*32+j);
disp_ram[i*4+1]=pgm_read_byte(xiaoguo+scan*32+j+1);
}
for(i=0,j=0;i<16;i++,j+=2)
{
disp_ram[i*4+2]=pgm_read_byte(xiaoguo+2*32+j);
disp_ram[i*4+3]=pgm_read_byte(xiaoguo+2*32+j+1);
}
TCNT1L=data.byte[0];
TCNT1H=data.byte[1];
break;
}
}
}
void update_color(void)
{
switch(color) //更新当前颜色
{
case 1:
LCM12864_Disp_Char_x_16(1,16,4,64,1);
break;
case 2:
LCM12864_Disp_Char_x_16(1,16,4,64,2);
break;
case 3:
LCM12864_Disp_Char_x_16(1,16,4,64,3);
break;
case 4:
LCM12864_Disp_Char_x_16(1,16,4,64,18);
break;
case 5:
LCM12864_Disp_Char_x_16(1,16,4,64,19);
break;
case 6:
LCM12864_Disp_Char_x_16(1,16,4,64,20);
break;
case 7:
LCM12864_Disp_Char_x_16(1,16,4,64,21);
break;
}
}
void update_type(void)
{
switch(type)
{
case 0: //PH7.62
LCM12864_Disp_Char_x_16(1,8,0,56,13);
LCM12864_Disp_Char_x_16(1,8,0,64,14);
LCM12864_Disp_Char_x_16(1,8,0,72,12);
LCM12864_Disp_Char_x_16(1,8,0,80,7);
LCM12864_Disp_Char_x_16(1,8,0,88,11);
LCM12864_Disp_Char_x_16(1,8,0,96,6);
LCM12864_Disp_Char_x_16(1,8,0,104,2);
LCM12864_Disp_Char_x_16(1,8,0,112,12);
break;
case 1: //PH16 全彩
LCM12864_Disp_Char_x_16(1,8,0,56,13);
LCM12864_Disp_Char_x_16(1,8,0,64,14);
LCM12864_Disp_Char_x_16(1,8,0,72,1);
LCM12864_Disp_Char_x_16(1,8,0,80,6);
LCM12864_Disp_Char_x_16(1,16,0,88,10);
LCM12864_Disp_Char_x_16(1,16,0,104,17);
break;
case 2: //数码管
LCM12864_Disp_Char_x_16(1,8,0,56,12);
LCM12864_Disp_Char_x_16(1,16,0,64,14);
LCM12864_Disp_Char_x_16(1,16,0,80,15);
LCM12864_Disp_Char_x_16(1,16,0,96,16);
LCM12864_Disp_Char_x_16(1,8,0,112,12);
LCM12864_Disp_Char_x_16(1,8,0,120,12);
break;
case 3: //7.62双色
LCM12864_Disp_Char_x_16(1,8,0,56,7);
LCM12864_Disp_Char_x_16(1,8,0,64,11);
LCM12864_Disp_Char_x_16(1,8,0,72,6);
LCM12864_Disp_Char_x_16(1,8,0,80,2);
LCM12864_Disp_Char_x_16(1,16,0,88,43);
LCM12864_Disp_Char_x_16(1,16,0,104,5);
break;
}
}
void update_mode_default(void)
{
switch(mode)
{
case 0:
LCM12864_Disp_Char_x_16(1,16,2,64,10); //全亮
LCM12864_Disp_Char_x_16(1,16,2,88,11);
LCM12864_Disp_Char_x_16(1,8,2,104,12);
break;
case 1:LCM12864_Disp_Char_x_16(1,16,2,64,12); //扫描1
LCM12864_Disp_Char_x_16(1,16,2,88,13);
LCM12864_Disp_Char_x_16(1,8,2,104,1);
break;
case 2:LCM12864_Disp_Char_x_16(1,16,2,64,12); //扫描2
LCM12864_Disp_Char_x_16(1,16,2,88,13);
LCM12864_Disp_Char_x_16(1,8,2,104,2);
break;
case 3:LCM12864_Disp_Char_x_16(1,16,2,64,12); //扫描3
LCM12864_Disp_Char_x_16(1,16,2,88,13);
LCM12864_Disp_Char_x_16(1,8,2,104,3);
break;
case 4:LCM12864_Disp_Char_x_16(1,16,2,64,22); //效果
LCM12864_Disp_Char_x_16(1,16,2,88,23);
LCM12864_Disp_Char_x_16(1,8,2,104,12);
break;
}
}
void update_mode(void)
{
switch(mode)
{
case 0: LCM12864_Disp_Char_x_16(1,16,2,64,10); //全亮
LCM12864_Disp_Char_x_16(1,16,2,88,11);
LCM12864_Disp_Char_x_16(1,8,2,104,12);
break;
case 1: LCM12864_Disp_Char_x_16(1,16,2,64,44); //渐变
LCM12864_Disp_Char_x_16(1,16,2,88,45);
LCM12864_Disp_Char_x_16(1,8,2,104,12);
break;
case 2: LCM12864_Disp_Char_x_16(1,16,2,64,46); //自动
LCM12864_Disp_Char_x_16(1,16,2,88,47);
LCM12864_Disp_Char_x_16(1,8,2,104,1);
break;
case 3: LCM12864_Disp_Char_x_16(1,16,2,64,46); //自动
LCM12864_Disp_Char_x_16(1,16,2,88,47);
LCM12864_Disp_Char_x_16(1,8,2,104,2);
break;
}
}
//更新默认模式下的显示数据
void update_default()
{
if(type==2)
{
update_mode();
}
else
{
update_mode_default();
}
update_type();
update_color();
}
//更新设置模式1下的显示数据
void update_set1()
{
if(show<4)
{
LCM12864_Disp_Char_x_16(1,8,0,0,12);
LCM12864_Disp_Char_x_16(1,8,0,32,1); //速度设置
LCM12864_Disp_Char_x_16(1,8,0,40,11);
LCM12864_Disp_Char_x_16(1,16,0,48,29);
LCM12864_Disp_Char_x_16(1,16,0,64,30);
LCM12864_Disp_Char_x_16(1,16,0,80,27);
LCM12864_Disp_Char_x_16(1,16,0,96,28);
LCM12864_Disp_Char_x_16(1,8,2,0,12);
LCM12864_Disp_Char_x_16(1,8,2,32,2); //亮度设置
LCM12864_Disp_Char_x_16(1,8,2,40,11);
LCM12864_Disp_Char_x_16(1,16,2,48,11);
LCM12864_Disp_Char_x_16(1,16,2,64,30);
LCM12864_Disp_Char_x_16(1,16,2,80,27);
LCM12864_Disp_Char_x_16(1,16,2,96,28);
LCM12864_Disp_Char_x_16(1,8,4,0,12);
LCM12864_Disp_Char_x_16(1,8,4,32,3); //级连屏数设置
LCM12864_Disp_Char_x_16(1,8,4,40,11);
LCM12864_Disp_Char_x_16(1,16,4,48,31);
LCM12864_Disp_Char_x_16(1,16,4,64,32);
LCM12864_Disp_Char_x_16(1,16,4,80,33);
LCM12864_Disp_Char_x_16(1,16,4,96,34);
}
if((show<7)&&(show>3))
{
LCM12864_Disp_Char_x_16(1,8,0,0,12);
LCM12864_Disp_Char_x_16(1,8,0,32,4); //颜色数量设置
LCM12864_Disp_Char_x_16(1,8,0,40,11);
LCM12864_Disp_Char_x_16(1,16,0,48,4);
LCM12864_Disp_Char_x_16(1,16,0,64,5);
LCM12864_Disp_Char_x_16(1,16,0,80,14);
LCM12864_Disp_Char_x_16(1,16,0,96,0);
LCM12864_Disp_Char_x_16(1,8,2,0,12);
LCM12864_Disp_Char_x_16(1,8,2,32,5); //灰度级数
LCM12864_Disp_Char_x_16(1,8,2,40,11);
LCM12864_Disp_Char_x_16(1,16,2,48,48);
LCM12864_Disp_Char_x_16(1,16,2,64,30);
LCM12864_Disp_Char_x_16(1,16,2,80,31);
LCM12864_Disp_Char_x_16(1,16,2,96,34);
LCM12864_Disp_Char_x_16(1,8,4,0,12);
LCM12864_Disp_Char_x_16(1,8,4,32,6); //暂未使用
LCM12864_Disp_Char_x_16(1,8,4,40,11);
LCM12864_Disp_Char_x_16(1,16,4,48,39);
LCM12864_Disp_Char_x_16(1,16,4,64,40);
LCM12864_Disp_Char_x_16(1,16,4,80,41);
LCM12864_Disp_Char_x_16(1,16,4,96,42);
}
LCM12864_Disp_Char_x_16(1,16,6,0,35);
LCM12864_Disp_Char_x_16(1,16,6,16,36); //选择
LCM12864_Disp_Char_x_16(1,16,6,96,37);
LCM12864_Disp_Char_x_16(1,16,6,112,38); //返回
switch(show%3) //显示 "箭头"
{
case 1: LCM12864_Disp_Char_x_16(1,8,0,0,15);
break;
case 2: LCM12864_Disp_Char_x_16(1,8,2,0,15);
break;
case 0:LCM12864_Disp_Char_x_16(1,8,4,0,15);
break;
}
}
void menu_two()
{
switch(show)
{
case 51: LCM12864_Disp_Char_x_16(1,16,0,32,29);
LCM12864_Disp_Char_x_16(1,16,0,48,30);
LCM12864_Disp_Char_x_16(1,16,0,64,27);
LCM12864_Disp_Char_x_16(1,16,0,80,28); //速度设置
LCM12864_Disp_Char_x_16(1,16,4,32,29);
LCM12864_Disp_Char_x_16(1,16,4,48,30);
LCM12864_Disp_Char_x_16(1,8,4,64,10);
LCM12864_Disp_Char_x_16(1,8,4,80,speed);
break;
case 52:
LCM12864_Disp_Char_x_16(1,16,0,32,11); //亮度设置
LCM12864_Disp_Char_x_16(1,16,0,48,30);
LCM12864_Disp_Char_x_16(1,16,0,64,27);
LCM12864_Disp_Char_x_16(1,16,0,80,28);
LCM12864_Disp_Char_x_16(1,16,4,32,11);
LCM12864_Disp_Char_x_16(1,16,4,48,30);
LCM12864_Disp_Char_x_16(1,8,4,64,10);
LCM12864_Disp_Char_x_16(1,8,4,80,brightness);
break;
case 53:
LCM12864_Disp_Char_x_16(1,16,0,32,31); //级连屏数
LCM12864_Disp_Char_x_16(1,16,0,48,32);
LCM12864_Disp_Char_x_16(1,16,0,64,33);
LCM12864_Disp_Char_x_16(1,16,0,80,34);
LCM12864_Disp_Char_x_16(1,16,4,16,31);
LCM12864_Disp_Char_x_16(1,16,4,32,32);
LCM12864_Disp_Char_x_16(1,16,4,48,34);
LCM12864_Disp_Char_x_16(1,8,4,64,10);
LCM12864_Disp_Char_x_16(1,8,4,80,disp_number);
break;
case 54:
LCM12864_Disp_Char_x_16(1,16,0,32,4); //颜色数
LCM12864_Disp_Char_x_16(1,16,0,48,5);
LCM12864_Disp_Char_x_16(1,16,0,64,14);
LCM12864_Disp_Char_x_16(1,16,0,80,0);
LCM12864_Disp_Char_x_16(1,16,4,32,14);
LCM12864_Disp_Char_x_16(1,16,4,48,0);
LCM12864_Disp_Char_x_16(1,8,4,64,10);
LCM12864_Disp_Char_x_16(1,8,4,80,color_amount);
break;
case 55:
LCM12864_Disp_Char_x_16(1,16,0,32,48); //灰度级数
LCM12864_Disp_Char_x_16(1,16,0,48,30);
LCM12864_Disp_Char_x_16(1,16,0,64,31);
LCM12864_Disp_Char_x_16(1,16,0,80,34);
LCM12864_Disp_Char_x_16(1,16,4,16,48);
LCM12864_Disp_Char_x_16(1,16,4,32,30);
LCM12864_Disp_Char_x_16(1,8,4,48,10);
if(gray_scale_set/1000==0)
{
LCM12864_Disp_Char_x_16(1,8,4,64,12); //屏蔽数字前面的0
}
else
{
LCM12864_Disp_Char_x_16(1,8,4,64,gray_scale_set/1000);
}
if((gray_scale_set/100%10==0)&&(gray_scale_set/1000==0))
{
LCM12864_Disp_Char_x_16(1,8,4,72,12); //屏蔽数字前面的0
}
else
{
LCM12864_Disp_Char_x_16(1,8,4,72,gray_scale_set/100%10);
}
LCM12864_Disp_Char_x_16(1,8,4,80,gray_scale_set/10%10);
LCM12864_Disp_Char_x_16(1,8,4,88,gray_scale_set%10);
break;
}
}
void disp_update()
{
switch(disp_set)
{
case 0:update_default();
break;
case 1:update_set1();
break;
case 2:menu_two();
LCM12864_Disp_Char_x_16(1,8,6,0,12);
LCM12864_Disp_Char_x_16(1,8,6,8,12);
LCM12864_Disp_Char_x_16(1,8,6,16,12);
LCM12864_Disp_Char_x_16(1,8,6,24,12); //屏蔽"选择"
LCM12864_Disp_Char_x_16(1,16,6,96,37);
LCM12864_Disp_Char_x_16(1,16,6,112,38); //返回
break;
}
}
void disp_default()
{
LCM12864_Disp_Char_x_16(1,16,0,16,6);
LCM12864_Disp_Char_x_16(1,16,0,32,7);
LCM12864_Disp_Char_x_16(1,8,0,48,10);
LCM12864_Disp_Char_x_16(1,16,4,16,4);
LCM12864_Disp_Char_x_16(1,16,4,32,5);
LCM12864_Disp_Char_x_16(1,16,4,88,5);
LCM12864_Disp_Char_x_16(1,8,4,48,10);
LCM12864_Disp_Char_x_16(1,16,2,16,8);
LCM12864_Disp_Char_x_16(1,16,2,32,9);
LCM12864_Disp_Char_x_16(1,16,6,0,27);
LCM12864_Disp_Char_x_16(1,16,6,16,28); //设置(左键标志)
LCM12864_Disp_Char_x_16(1,8,2,48,10);
}
void color_set(void)
{
switch(color)
{
case 1: color=4; break;
case 2: color=5; break;
case 3: color=6; break;
case 4: color=2; break;
case 5: color=3; break;
case 6: color=7; break;
case 7: color=1; break;
}
}
void send_long_frame(void)
{
disp_number*=5;
send_frame();
disp_number/=5;
}
void led()
{
if(temp_gray>0)
{
CBI_OE;
temp_gray--;
}
else
{
SBI_OE;
}
if(time1_count>0)
{
time1_count--;
}
else
{
time1_count=gray_scale_set;
temp_gray=gray_scale;
}
}
int main(void)
{
unsigned int count;
Port_init();
LCM12864_Init();
disp_ram_init();
disp_default();
disp_update();
time1_init();
time0_init();
sei();
while(1)
{
key();
if((type==2)&&(mode==1))
{
for(gray_scale=0;gray_scale<gray_scale_set;gray_scale++)
{
key();
for(count=0;count<speed*300;count++)
{
led();
}
}
for(gray_scale=gray_scale_set;gray_scale>0;gray_scale--)
{
key();
for(count=0;count<speed*300;count++)
{
led();
}
}
}
if((type==2)&&(mode==3))
{
color_set();
send_long_frame();
if(disp_set==0) //设置时屏蔽更新数据 以防显示错乱
{
update_color();
}
for(gray_scale=0;gray_scale<gray_scale_set;gray_scale++)
{
key();
for(count=0;count<speed*300;count++)
{
led();
}
}
for(gray_scale=gray_scale_set;gray_scale>0;gray_scale--)
{
key();
for(count=0;count<speed*300;count++)
{
led();
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -