TFT画出任意斜率的直线

发布者:声慢慢最新更新时间:2015-10-16 来源: eefocus关键字:TFT  任意斜率  直线 手机看文章 扫描二维码
随时随地手机看文章
   在之前共享的几篇关于TFT的应用程序中,大家可以看出程序的主要框架没有发生大的变化;变化的只是将带你用的函数做了更为灵活的改变!

  所以大家学习程序时,一定要能从长篇的程序中找出精华,并及时拷贝下来做积累,最终能够灵活的应用!! 

这篇文章或许是关于TFT的最后一遍文章了!再有也只是TFT的应用程序!

  只要大家能掌握之前的几篇文章,就可以自己灵活的应用了!!!TFT画出任意斜率的直线

#include
#define  uint unsigned int
#define uchar unsigned char
#define  TYPE_LCD_DATA  1
#define  TYPE_LCD_COMMAND 0
#define  LCD_SIZE_X  128
#define  LCD_SIZE_Y  160
#define  DATA   P0
sbit LCD_RST  = P2^7;    //RST 引脚定义
sbit LCD_RD   = P3^2;  //RD  引脚定义
sbit LCD_WR   = P3^3;  //WR  引脚定义
sbit LCD_RS   = P2^5;  //RS  引脚定义
sbit LCD_CS   = P2^6;  //CS  引脚定义
uint colors[]=
{
  0xf800,0x07e0,0x001f,0xffe0,0x0000,0x07ff,0xf81f,0xffff ,0x7bef
};
void delay_ms(uint ms)
{
  unsigned char k;
  while (ms--)
  {
    for (k = 0; k < 228; k++)
      ;
  }
}


void LCD_Write(uchar type, uint value) 
{
 LCD_CS = 0;
 LCD_RS  = type;      // 0: command    1: data
 
 LCD_WR  = 0;
 DATA  = (uchar)value;;
 LCD_WR  = 1;
 LCD_CS = 1;
}

 



void LCD_Wirte_Data16(uint value)    // color data
{
 LCD_CS = 0;
    LCD_RS  = 1;
 LCD_WR  = 0;
 DATA  = (uchar)value;
 LCD_WR  = 1;
 LCD_WR  = 0;
 DATA  = (uchar)(value>>8) ;
 LCD_WR  = 1;
 LCD_CS = 1;
}


void Reg_Write(uint reg,uint value)
{
   LCD_Write(TYPE_LCD_COMMAND,reg);
   LCD_Write(TYPE_LCD_DATA,value);
}



void LCD_SetRamAddr(uint xStart, uint xEnd, uint yStart, uint yEnd)
{
    Reg_Write(0x09, xStart);
    Reg_Write(0x10, yStart);
    Reg_Write(0x11, xEnd);
    Reg_Write(0x12, yEnd);
    Reg_Write(0x18, xStart);
 Reg_Write(0x19, yStart);
    LCD_Write(TYPE_LCD_COMMAND,0x22);  // 0x22
}



void LCD_init(void)

 uint num;
 Reg_Write(0x0001,0x0002);  //MODE_SEL1
 Reg_Write(0x0002,0x0012);   //MODE_SEL2
 Reg_Write(0x0003,0x0000);   //MODE_SEL3
 Reg_Write(0x0004,0x0010); //MODE_SEL3
 LCD_SetRamAddr(0,127, 0,159);
 for(num=20480;num>0;num--)
    LCD_Wirte_Data16(0xffff);
  
 Reg_Write(0x0005,0x0008);   //VCO_MODE 
 Reg_Write(0x0007,0x007f); //VCOMHT_CTRL
 Reg_Write(0x0008,0x0017);   //VCOMLT_CTRL     
 Reg_Write(0x0009,0x0000);   //write SRAM window start X point
 Reg_Write(0x0010,0x0000);   //write SRAM window start y point
 Reg_Write(0x0011,0x0083);   //write SRAM window end x point
 Reg_Write(0x0012,0x009f);   //write SRAM window end y point
 Reg_Write(0x0017,0x0000);   //SRAM contrl
 Reg_Write(0x0018,0x0000);   //SRAM x position
 Reg_Write(0x0019,0x0000);   //SRAM y position
 Reg_Write(0x0006,0x00c5);   //DAC_OP_CTRL2
 delay_ms(10); //延时

}

//打点函数
void Dadian(uint Xposition, uint Yposition,uint n)
{
    uint  num ;
    LCD_SetRamAddr(Xposition,Xposition,Yposition ,Yposition);
   for(num=2;num>0;num--)         
   LCD_Wirte_Data16(colors[n]);
}

void Xiexian(uint x1,uint y1,uint x2,uint y2,uint color) 

    uint t; 
    int xerr=0,yerr=0,delta_x,delta_y,distance; 
    int incx,incy; 
    uint row,col; 
    delta_x = x2-x1;//计算坐标增量 
    delta_y = y2-y1; 
    col=x1; 
    row=y1; 
    if(delta_x>0) incx=1;//设置单步方向 
    else  
    { 
        if(delta_x==0) incx=0;//垂直线 
        else {incx=-1;delta_x=-delta_x;} 
    } 
    if(delta_y>0)incy=1; 
    else 
    { 
        if(delta_y==0) incy=0;//水平线 
        else
       {
 incy=-1;
 delta_y=-delta_y;
 
    } 
    if(delta_x>delta_y) distance=delta_x;//选取基本增量坐标轴 
    else distance=delta_y; 

    for(t=0;t<=distance+1;t++) 
                                     //画线输出 
     Dadian(col, row, color);
        xerr+=delta_x; 
        yerr+=delta_y; 
       if(xerr>distance) 
        { 
            xerr-=distance; 
            col+=incx; 
        } 
        if(yerr>distance) 
        { 
            yerr-=distance; 
            row+=incy; 
        } 
    } 
}
void main()
{
  P2 = 0xff;
     P0 = 0xff;
     LCD_init();
  while(1)
  {
  Xiexian(0,0,100,160,0);
  }
}

关键字:TFT  任意斜率  直线 引用地址:TFT画出任意斜率的直线

上一篇:步进电机的驱动程序
下一篇:TFT画出矩形

推荐阅读最新更新时间:2024-03-16 14:36

100%大连制造,格劳博中国首套柔性直线托盘存储系统成功下线!
突破!100%大连制造,格劳博中国首套柔性直线托盘存储系统成功下线! 格劳博中国大连生产基地自主生产的直线托盘存储系统PSS-L实现最快交付,将助力宝得流体苏州工厂加工效率再升级! 2023年3月30日,中国大连。由格劳博机床(中国)有限公司(以下简称“格劳博中国”)大连生产基地自主生产的直线托盘存储系统PSS-L成功下线,于2023年春节期间运抵宝得流体控制(江苏)有限公司(以下简称“宝得流体”),计划在近期实现完全交付运行。这是格劳博中国自主生产的首套直线托盘存储系统PSS-L,对其进一步深入本地化进程,探索多品种小批量自动化应用,都具有里程碑意义! 格劳博直线托盘存储系统PSS-L (配备格劳博五轴联动通用加工
[工业控制]
100%大连制造,格劳博中国首套柔性<font color='red'>直线</font>托盘存储系统成功下线!
嵌入式组合控制直线一级倒立摆系统
本文针对本科自动控制原理课程设计中倒立摆摆杆偏角控制器的在线仿真存在:手扶摆杆起摆不安全,单变量摆杆角度控制器无法同时控制小车的位置,实验观测不便等问题,提出并设计了基于固高公司起摆控制、最优小车位置控制、嵌入学生摆杆偏角控制的组合式控制系统。在线仿真实验表明,组合式控制系统对直线一级倒立摆的控制有效,能满足本科自动控制原理课程没计及实验的安全、自动、直观、迅捷、可靠的要求。 1 系统建模 小车直线一级倒立摆系统的控制目标是摆杆偏角最大不超过±5°,小车在轨道中间位置左右偏移不超过±10 cm,以达到一种动态的平衡。 小车直线一级倒立摆实验系统如图1所示。对小车和摆杆做受力分析,根据牛顿运动定律,可得小车直线一级倒立摆动
[模拟电子]
嵌入式组合控制<font color='red'>直线</font>一级倒立摆系统
直线位移传感器在注塑机上的应用
随着工业应用领域对生产过程中精度控制要求的不断增高,越来越多的客户选择使用模拟量位置控制产品。用户能够因此更易优化生产流程,良好地保证生产质量,并且降低了生产成本和故障率。这就是为什麽线性位移传感器得到很快发展的原因。从电位计式传感器到磁致伸缩式原理,再到如今的新型电感式检测原理,直线位移传感器得到了不断的发展。 直线位移传感器业内独一无二 以电感线圈的工作原理为基础,研制出的直线位移传感器是独一无二的,图尔克公司采用的这项技术在世界范围内达到了领先地位。标准测量系统的众多优良特性被综合到一起,幷且得到了进一步系统的发展。位置检测不再是通过磁性滑块而是通过感应式的振荡电路来完成。因此传感器完全屏蔽了磁场的干扰,例如由大型电
[嵌入式]
2011年TFT-LCD旺市关键:产能控制
  集邦科技(Trendforce Corp.)旗下研究部门 WitsView 表示,2010年平面显示产业的重心未在液晶电视尺寸上,产能过剩的问题仍然存在;而2011年 TFT-LCD 供需平衡的关键因素在于“面板产能的调控”,若2010上半年产能控制得宜,则下半年旺季可期。   WitsView指出,先前在2010年 TFT-LCD 产业第一季表现淡季不淡,在预期第三季恐将出现面板供不应求的预期心理下,下游客户于第二季采取积极的备货策略,使得第二季面板出货创下历史新高,然2010上半年在中国及欧美终端需求不佳的影响下,库存问题使得第三季旺季不旺,面板价格大幅滑落,面板厂获利呈现衰退的状况。   所幸2010年第三季在面板厂
[半导体设计/制造]
2011年<font color='red'>TFT</font>-LCD旺市关键:产能控制
STM32之TFT-LCD液晶
TFT-LCD即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD也被叫做真彩液晶显示器。 TFT液晶原理: *背光模组:提供光源 *上下偏光片,TFT Glass Substrate, 液晶:形成偏振光,控制光线的通过与否 *彩色滤光片:提供TFT LCD R/G/B(三原色)的来源 *ITO透明导电层:提供透明的导电通路
[单片机]
STM32之<font color='red'>TFT</font>-LCD液晶
LCD TFT液晶屏的显示原理及DID屏特征解析
   液晶 显示 原理及构造?   液晶(Liquid Crystal)即液态晶体,是一种既像液体(能流动)又像晶体(有晶体的 光学 性质)的物质。液晶分子的排列有一定秩序,在外界电场的作用下液晶分子的排列会发生变化,从而影响它的光学性质。   液晶屏(Liquid Crystal Display,简称 LCD )是由两块平行的薄玻璃板构成,两玻璃板之间的距离非常小,填充的是被分割成很小单元的液晶体。液晶板本身不发光,它通过液晶屏的背光源使液晶屏亮起来。液晶屏的优势在于体积小、重量轻、显示面积大、画面稳定、无辐射、低能耗和环保等特点。与CRT显示器相比,液晶显示器的耗电量只有CRT的1/3,厚度只有1/8,重量不到1/3,
[电源管理]
基于SOPC的通用TFT-LCD控制器IP核设计
随着电子技术的迅猛发展,液晶显示器(LCD)具有功耗低,体积小,重量轻,超薄等许多其他显示器无法比拟的优点,被广泛用于智能仪器、仪表和低功耗电子产品中。TFT-LCD屏采用有源显示方式,具有抗抖动,色彩饱和度高,还原能力强和对比度高等特点,在嵌入式系统中具有广泛的应用前景。在嵌入式系统中,LCD控制器是处理器与LCD显示驱动器之间的接口部件,对LCD屏提供时序信号和显示数据,用来控制数据在LCD屏幕上的显示,是LCD系统中重要的组成部分。现有的LCD控制器一般都由各个生产厂家自行开发,通用性差,而软件控制TFT-LCD会占用大量的处理器资源,使得系统的集成度不高。 SoPC Builder是Altera公司实现SoPC概念的一
[工业控制]
基于SOPC的通用<font color='red'>TFT</font>-LCD控制器IP核设计
第4.5代TFT-LCD生产线落户武汉光谷
  武汉4月27日电 深圳中航集团与武汉东湖高新区在第三届中博会上签约,合作投资30亿元,建设第4.5代TFT-LCD(薄膜晶体管液晶显示器技术)生产线。项目建成后,年均销售收入将达40亿元,带动相关产业规模约250亿元。   TFT-LCD即薄膜晶体管液晶显示器技术,是目前平板显示技术领域中技术成熟度较高、市场价值最大的一项技术。TFT-LCD产业链涉及光学、半导体、电机、化工、材料等领域。第4.5代生产线主要制造15英寸以下的笔记本电脑用显示产品和中小尺寸产品,如数码相机、车载显示、游戏机、MP4、掌上电脑等。   据悉,第4.5代TFT-LCD项目将在武汉东湖高新区半导体产业园建设一座配套完整的第4.5代非晶硅TFT-L
[焦点新闻]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved