if(((uint8)(*(ss+i)))<161)
temp[0]=*(ss+i);
temp[1]='\0';
break;
else
qm=*(ss+i)-161;
wm=*(ss+i+1)-161;
ulOffset=(uint32)(qm*94+wm)*32;
for(j=0;j<32;j++)
hzbuf[j]=g_ucHZK16[ulOffset+j];
for(y=0;y<16;y++)
for(x=0;x<16;x++)
k=x%8;
if(hzbuf[y*2+x/8]&(0x80>>k))
xx=x00+x+i*8;
//PutPixel(xx,y+y00,HzColor);
//GUI_Point(uint16x,uint16y,TCOLORcolor);
GUI_Point(xx,y+y00,zColor);
GUI_Point(xx,y+y00,bColor);
i++;
///主函数
voidmain(void)
unsignedshortkey=0,key1=0;
uint16m=0;
//初始化I/O
rGPHCON=(rGPHCON&(~(0x03<<20)))|(0x01<<20);
UART_Select(0);
UART_Init();
InitI2C();
//设置中断服务程序
VICVectAddr[10]=(uint32)IRQ_Time0;
//设置中断控制器
rPRIORITY=0x00000000;//使用默认的固定的优先级
rINTMOD=0x00000000;//所有中断均为IRQ中断
rINTMSK=~(1<<10);//打开TIMER0中断允许
//定时器设置
//Fclk=200MHz,时钟分频配置为1:
2:
4,即Pclk=50MHz。
rTCFG0=250;//预分频器0设置为250,取得200KHz
rTCFG1=1;//TIMER0再取1/4分频,取得50KHz
rTCMPB0=0x0000;//设置定时器为0
rTCNTB0=25*1000;//定时0.5秒
rTCON=(1<<1);//更新定时器数据
rTCON=(1<<0)|(1<<3);//启动定时器
//IRQEnable();//使能IRQ中断(CPSR)
UART_SendStr("系统已启动!
\n");
RunBeep();
DispDesktop();
//LCD_PutStringGB24_kt(250,300,"系统已启动",BLACK,LGRAY);
llcd_disp_hz16(250,300,(uint8*)"启动",BLACK,LGRAY);
DelayNS(30);
while
(1)
DispDesktop();
UART_SendStr("当前系统时间为:
\n");
Rtc_uart();
GUI_RectangleFill(120,80,520,380,LGRAY);
llcd_disp_hz16(250,100,(uint8*)"时间",RED,LGRAY);
//LCD_PutStringGB24_kt(250,200,"系统当前时间",RED,LGRAY);
Rtc_lcd(200,200);
LCD_PutStringGB16_st(250,300,"按任意键继续!
",WHITE,BLACK);
UART_SendStr("按任意键继续!
\n");
key=0;
while(key==0)
DelayNS
(1);
key=ZLG7290_GetKey();
if((key&0xFF00)==0)
key=key&0x00FF;
Rtc_uart();
Rtc_lcd(200,200);
DelayNS(10);
Menu_pic();//主菜单
//DelayNS(50);
key=0;
while(key!
=13)
key=0;
while(key==0)
//DelayNS
(1);
key=ZLG7290_GetKey();
if((key&0xFF00)==0)
key=key&0x00FF;
if(key>0&&key<5)m=key;
if(key==16)m--;
if(key==14)m++;
if(m>4)m=1;
if(m<1)m=4;
switch(m)
case1:
GUI_RectangleFill(220,70,420,110,DGRAY);
GUI_RectangleFill(220,130,420,170,DGRAY);
GUI_RectangleFill(220,190,420,230,DGRAY);
GUI_RectangleFill(220,250,420,290,DGRAY);
LCD_PutStringGB24_kt(240,78,"颜色测试",BLACK,DGRAY);
LCD_PutStringGB24_kt(240,138,"随机测试",BLACK,DGRAY);
LCD_PutStringGB24_kt(240,198,"汉字测试",BLACK,DGRAY);
LCD_PutStringGB24_kt(240,258,"图片测试",BLACK,DGRAY);
GUI_RectangleFill(220,70,420,110,CYAN);
LCD_PutStringGB24_kt(240,78,"颜色测试",BLACK,CYAN);
break;
case2:
GUI_RectangleFill(220,70,420,110,DGRAY);
GUI_RectangleFill(220,130,420,170,DGRAY);
GUI_RectangleFill(220,190,420,230,DGRAY);
GUI_RectangleFill(220,250,420,290,DGRAY);
LCD_PutStringGB24_kt(240,78,"颜色测试",BLACK,DGRAY);
LCD_PutStringGB24_kt(240,138,"随机测试",BLACK,DGRAY);
LCD_PutStringGB24_kt(240,198,"汉字测试",BLACK,DGRAY);
LCD_PutStringGB24_kt(240,258,"图片测试",BLACK,DGRAY);
GUI_RectangleFill(220,130,420,170,CYAN);
LCD_PutStringGB24_kt(240,138,"随机测试",BLACK,CYAN);
break;
case3:
GUI_RectangleFill(220,70,420,110,DGRAY);
GUI_RectangleFill(220,130,420,170,DGRAY);
GUI_RectangleFill(220,190,420,230,DGRAY);
GUI_RectangleFill(220,250,420,290,DGRAY);
LCD_PutStringGB24_kt(240,78,"颜色测试",BLACK,DGRAY);
LCD_PutStringGB24_kt(240,138,"随机测试",BLACK,DGRAY);
LCD_PutStringGB24_kt(240,198,"汉字测试",BLACK,DGRAY);
LCD_PutStringGB24_kt(240,258,"图片测试",BLACK,DGRAY);
GUI_RectangleFill(220,190,420,230,CYAN);
LCD_PutStringGB24_kt(240,198,"汉字测试",BLACK,CYAN);
break;
case4:
GUI_RectangleFill(220,70,420,110,DGRAY);
GUI_RectangleFill(220,130,420,170,DGRAY);
GUI_RectangleFill(220,190,420,230,DGRAY);
GUI_RectangleFill(220,250,420,290,DGRAY);
LCD_PutStringGB24_kt(240,78,"颜色测试",BLACK,DGRAY);
LCD_PutStringGB24_kt(240,138,"随机测试",BLACK,DGRAY);
LCD_PutStringGB24_kt(240,198,"汉字测试",BLACK,DGRAY);
LCD_PutStringGB24_kt(240,258,"图片测试",BLACK,DGRAY);
GUI_RectangleFill(220,250,420,290,CYAN);
LCD_PutStringGB24_kt(240,258,"图片测试",BLACK,CYAN);
break;
default:
break;
switch(m)
case1:
color_Test();break;
case2:
Rand_Test();break;
case3:
hz_Test();break;
case4:
Pic_Test();break;
default:
break;
五、思考讨论题或体会或对改进实验的建议
本实验主要要处理lcd显示的问题及ZLG-7290的工作原理,首先必须确定lcd的坐标,通过触摸屏中断来确定四个顶点坐标,其他的可以算出【注:
各LCD不太一样】
希望以上资料对你有所帮助,附励志名言3条:
1、生气,就是拿别人的过错来惩罚自己。
原谅别人,就是善待自己。
2、未必钱多乐便多,财多累己招烦恼。
清贫乐道真自在,无牵无挂乐逍遥。
3、处事不必求功,无过便是功。
为人不必感德,无怨便是德。