📄 lcd12864._c
字号:
//ICC-AVR application builder : 2007-4-27 9:07:43
// Target : M16
// Crystal: 8.0000Mhz
//author: zhuyiguo
//lcd12864_display exercise
#include "LCD12864.h"
#include "LCD12864_DATA.h"
//#pragma data:data
void main(void)
{
unsigned char i,start;
//uchar page=0xb8,column=0x48;
init_devices();
E_0;
lcd_init();
dis_one_zi(0,1,yie);
delay_ms(200);
dis_one_zi(0,2,jing);
delay_ms(200);
dis_one_zi(0,3,xian);
delay_ms(200);
dis_one_zi(0,4,shi);
delay_ms(200);
dis_one_zi(0,5,shi1);
delay_ms(200);
dis_one_zi(0,6,yan);
delay_ms(200);
dis_one_zi(2,5,zhu);
//delay_ms(500);
dis_one_zi(2,6,yi);
//delay_ms(500);
dis_one_zi(2,7,guo);
//delay_ms(500);
dis_one_abc(3,10,dayu);
delay_ms(100);
dis_one_abc(3,11,dayu);
delay_ms(100);
dis_one_abc(3,12,dayu);
delay_ms(100);
dis_one_abc(3,13,dayu);
delay_ms(100);
dis_one_abc(3,14,dayu);
delay_ms(100);
CLRLCD();
while(1)
{
WDR();
if(graphy_num==1)
{
if(flash_flag%2==1)
{
dis_one_zi(0,1,X26);
dis_one_zi(0,2,X26);
dis_one_zi(0,3,X26);
}
else
{
dis_one_zi(0,1,tu);//汉字:图片1
dis_one_zi(0,2,pian);
dis_one_abc(0,6,n_1);
}
}
else
{
dis_one_zi(0,1,tu);//汉字:图片1
dis_one_zi(0,2,pian);
dis_one_abc(0,6,n_1);
}
if(graphy_num==2)
{
if(flash_flag%2==1)
{
dis_one_zi(1,1,X26);
dis_one_zi(1,2,X26);
dis_one_zi(1,3,X26);
}
else
{
dis_one_zi(1,1,tu);//汉字:图片2
dis_one_zi(1,2,pian);
dis_one_abc(1,6,n_2);
}
}
else
{
dis_one_zi(1,1,tu);//汉字:图片2
dis_one_zi(1,2,pian);
dis_one_abc(1,6,n_2);
}
if(graphy_num==3)
{
if(flash_flag%2==1)
{
dis_one_zi(2,1,X26);
dis_one_zi(2,2,X26);
dis_one_zi(2,3,X26);
}
else
{
dis_one_zi(2,1,tu);//汉字:图片3
dis_one_zi(2,2,pian);
dis_one_abc(2,6,n_3);
}
}
else
{
dis_one_zi(2,1,tu);//汉字:图片3
dis_one_zi(2,2,pian);
dis_one_abc(2,6,n_3);
}
if(graphy_num==4)
{
if(flash_flag%2==1)
{
dis_one_zi(3,1,X26);
dis_one_zi(3,2,X26);
dis_one_zi(3,3,X26);
dis_one_zi(3,4,X26);
}
else
{
dis_one_zi(3,1,buo);//汉字:波形显示
dis_one_zi(3,2,xing);
dis_one_zi(3,3,xian);
dis_one_zi(3,4,shi);
}
}
else
{
dis_one_zi(3,1,buo);//汉字:波形显示
dis_one_zi(3,2,xing);
dis_one_zi(3,3,xian);
dis_one_zi(3,4,shi);
}
if((enter==1)&&(graphy_num!=0))
{
CLRLCD();
enter=0;
switch(graphy_num)
{
//******************************************************************
case 1:
{
scroll(tu1);
break;
}
//******************************************************************
case 2:
{
scroll(tu2);
break;
}
//******************************************************************
case 3:
{
scroll(tu3);
break;
}
//*******************************************************************
case 4:
{
adc_init();
wave_display();
break;
}
}
graphy_num=0;
//lcd_init();
CLRLCD();
lcd_write_code(0xc0);
}
WDR();
}
}
//***********************************************************************
#pragma interrupt_handler int0_isr:2
void int0_isr(void)//实现进入选择状态和返回上一页(在显示图形时,返回到选择菜单)
{
//external interupt on INT0
WDR();
GICR=0X40; //清除INT0中断,延时20MS判断是否为干扰;
delay_ms(20);
if((PIND&0x04)==0x00)
{
if(hanzi_flag==1)
{
graphy_num++;
TCNT1H = 0xF3; //counter high value
TCNT1L = 0xCB; //counter low value
if(graphy_num==5)
{
graphy_num=0;
}
}
if(graphy_flag==1)
{
graphy_flag=0;
hanzi_flag=1;
}
}
while((PIND&0x04)==0x00)//判断按键是否释放;
{
WDR(); //一定要在判断按键释放循环中喂狗;
}
GICR=0XC0;//恢复中断INT0
}
#pragma interrupt_handler int1_isr:3
void int1_isr(void)//确认键;
{
//external interupt on INT1
WDR();
GICR=0X80;
delay_ms(20);
if((PIND&0x08)==0x00)
{
if(graphy_num!=0)
{
enter=1;
hanzi_flag=0;
graphy_flag=1;
}
}
while((PIND&0x08)==0x00)
{
WDR();
}
GICR=0XC0;
}
#pragma interrupt_handler timer1_ovf_isr:9
void timer1_ovf_isr(void)
{
//TIMER1 has overflowed
WDR();
flash_flag++;
if(graphy_num!=0)//只在选择状态下开定时器;
{
TCNT1H = 0xF3; //reload counter high value
TCNT1L = 0xCB; //reload counter low value
}
WDR();
}
#pragma interrupt_handler adc_isr:15
void adc_isr(void)
{
WDR();
//conversion complete, read value (int) using...
//value=ADCL; //Read 8 low bits first (important)
//value|=(int)ADCH << 8; //read 2 high bits and shift into top byte
//delay_us(50);
adc_value=ADC&0X3FF;
adc_value=(adc_value>>4);
if(hanzi_flag==0)// 只在显示波形的时候开AD
{ADCSRA = 0xCD;}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -