打印
[菜农助学交流]

7寸液晶屏显示汉字、刷图程序、字符串

[复制链接]
1693|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 fmzhangpei241 于 2013-12-16 23:19 编辑

因为文件都是打包的,不好粘贴,如果有兴趣请访问http://tftmcu.taobao.com 电子发烧老友

#include <reg51.h>
#include <intrins.h>
#include <sys\sys.h>
#include <lcd\lcd.h>
#include <font\font.h>
#include <touch\touch.h>
/* http://tftmcu.taobao.com 电子发烧老友
代码测试环境:JME-2核心板+1T指令周期的STC单片机(51内核STC12LE5A60S2)+33M晶振          单片机工作电压3.3V
程序默认IO连接方式:
控制线:RS-P3^5;    WR-P3^6;   RD-P3^7;   CS-P1^0;   REST-P1^2;
数据线: DB0-DB7依次连接P0^0-P0^7;  DB8-DB15依次连接P2^0-P2^7;
触摸功能连接方式:(不使用触摸可不连接)
D_CLK-P1^7;  D_CS-P1^4;  D_DIN-P3^0;  D_OUT-P3^1;  D_PENIRQ-P3^4;
*/
sbit key1=P3^2;
sbit key2=P3^3;
sbit key3=P3^4;
u8 ref=0;//刷新显示

u8 jiance() //检测触摸和按键
{
        if (tpstate()==0) //如果触摸按下,则进入绘图程序
         {
                 LCD_Clear(WHITE); //清屏
                BACK_COLOR=WHITE;
                POINT_COLOR=RED;
                 point();
                return 1;
         }        
        if(key1==0)        //如果按键1按下,进入校准程序
           {
                Touch_Adjust();//校准
                return 1;
           }
         if(key2==0)        //三色刷屏
           {
                 LCD_Clear(RED);
                 delayms(1000);
                 LCD_Clear(GREEN);
                 delayms(1000);
                 LCD_Clear(BLUE);
                 delayms(1000);
                 return 1;
           }
           return 0;
}
void xianshi()//显示信息
{   
        u16 lx,ly;
        BACK_COLOR=WHITE;
        POINT_COLOR=RED;        
        showhanzi(10,0,0);  //晶
        showhanzi(45,0,1);  //耀
    LCD_ShowString(10,35,"http://tftmcu.taobao.com");
        LCD_ShowString(10,55,"LCD_W:");        LCD_ShowNum(70,55,LCD_W,3);
        LCD_ShowString(110,55,"LCD_H:");LCD_ShowNum(160,55,LCD_H,3);        
        lx=10;ly=75;                        
        LCD_ShowString(lx,ly,"VX:");lx+=40;LCD_ShowNum(lx,ly,vx,5);                                       
        lx+=60;
        LCD_ShowString(lx,ly,"Vy:");lx+=40;LCD_ShowNum(lx,ly,vy,5);                                       
        lx=10;ly=95;
        LCD_ShowString(lx,ly,"CHX:");lx+=40;LCD_ShowNum(lx,ly,chx,5);                                       
        lx+=60;
        LCD_ShowString(lx,ly,"CHY:");lx+=40;LCD_ShowNum(lx,ly,chy,5);
}
void showimage() //显示40*40图片
{
          int i,j,k;
        LCD_Clear(WHITE); //清屏  
        xianshi(); //显示信息
        for(k=3;k<11;k++)
        {
                   for(j=0;j<20;j++)
                {        
                        Address_set(40*j,40*k,40*j+39,40*k+39);                //坐标设置
                    for(i=0;i<1600;i++)
                         {         
                         if(jiance()) //检测触摸和按键
                         {        
                                 ref=1;
                                  return;        
                         }                        
                                   LCD_WR_DATA8(image[i*2+1],image[i*2]);         //发送颜色数据为提高速度高8位低8位分别传递                                                           
                         }        
                 }
        }
        ref=0;                                       
}
main()
{
        spistar()  ;//模拟SPI初始化
        Lcd_Init();   //tft初始化
        LCD_Clear(WHITE); //清屏
        BACK_COLOR=BLACK;;POINT_COLOR=WHITE;
    showimage(); //显示40*40图片

        while(1)
        {
          if(jiance()) //检测触摸和按键
          {        
                  showimage(); //显示40*40图片
          }
          if(ref){showimage();} //显示40*40图片}

    }


}

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:51/avr/stm32驱动TFT彩屏。http://tftmcu.taobao.com/

26

主题

204

帖子

10

粉丝