AVR驱动3.2英寸tft LCD(ssd1289)

发布者:数字航海家最新更新时间:2016-04-25 来源: eefocus关键字:AVR  3.2英寸tft  LCD  ssd1289 手机看文章 扫描二维码
随时随地手机看文章
管脚连接
D0 PA0 D5 PA5 D10 PD2 D15 PD7
D1 PA1 D6 PA6 D11 PD3 CS PB0
D2 PA2 D7 PA7 D12 PD4 RS PB1
D3 PA3 D8 PD0 D13 PD5 WR PB2
D4 PA4 D9 PD1 D14 PD6 RD PB3
 
 
 
 
 
 
 
 
 
 
 
 
RESET PB4

#include
#include
#include
#define Setbit(val,bitn) (val|=(1<<(bitn)))
#define Clcbit(val,bitn) (val&=~(1<<(bitn)))

void delay_Nms(int n)
{
      unsigned int i;
     for(i=1;i<(300*n);i++);
}

void LCD_WR_DATA(char VH,char VL)
{
      Setbit(PORTB,1);//RS=1 PB1    
     Setbit(PORTB,3);//RD=1 PB3
     Setbit(PORTB,2);//WR=1 PB2
     PORTD=VH;
     PORTA=VL;
     Clcbit(PORTB,0);//CS=0 PB0
     Clcbit(PORTB,2);//WR=0 PB2
     asm("nop");
     Setbit(PORTB,0);//CS=1 PB0
     Setbit(PORTB,2);//WR=1 PB2
}

void LCD_WR_ADDR(char addr)
{
      Clcbit(PORTB,1);//RS=0 PB1
     Setbit(PORTB,3);//RD=1 PB3
     Setbit(PORTB,2);//WR=1 PB2
     PORTD=0;
     PORTA=addr;
     Clcbit(PORTB,0);//CS=0 PB0
     Clcbit(PORTB,2);//WR=0 PB2
     asm("nop");
     Setbit(PORTB,0);//CS=1 PB0
     Setbit(PORTB,2);//WR=1 PB2
}

void LCD_WR_CMD(char addr,char cmdH,char cmdL)
{
      LCD_WR_ADDR(addr);
     LCD_WR_DATA(cmdH,cmdL);
}

void LCD_SetCursor(short Xpos,short Ypos)
{
      LCD_WR_CMD(0x4f,(Xpos>>8),Xpos);
     LCD_WR_CMD(0x4e,(Ypos>>8),Ypos);
}

void LCD_DrawPoint(short Xpos,short Ypos,short POINT_COLOR)
{
      LCD_SetCursor(Xpos,Ypos);
     LCD_WR_CMD(0x22,(POINT_COLOR>>8),POINT_COLOR);
}



void LCD_Init(void)
{
     LCD_WR_CMD(0x00,0x00,0x01);delay_Nms(10);
     LCD_WR_CMD(0x03,0xA8,0xA4);delay_Nms(5);
     LCD_WR_CMD(0x0C,0x00,0x00);delay_Nms(5);
     LCD_WR_CMD(0x0D,0x08,0x0C);delay_Nms(5);
     LCD_WR_CMD(0x0E,0x2B,0x00);delay_Nms(5);
     LCD_WR_CMD(0x1E,0x00,0xB0);delay_Nms(5);
     LCD_WR_CMD(0x01,0x2B,0x3F);delay_Nms(5);
     LCD_WR_CMD(0x02,0x06,0x00);delay_Nms(5);
     LCD_WR_CMD(0x10,0x00,0x00);delay_Nms(30);
     LCD_WR_CMD(0x11,0x60,0x70);delay_Nms(5);
     LCD_WR_CMD(0x05,0x00,0x00);delay_Nms(5);
     LCD_WR_CMD(0x06,0x00,0x00);delay_Nms(5);
     LCD_WR_CMD(0x16,0xEF,0x1C);delay_Nms(5);//
     LCD_WR_CMD(0x17,0x00,0x03);delay_Nms(5);
     LCD_WR_CMD(0x07,0x01,0x33);delay_Nms(5);
     LCD_WR_CMD(0x0B,0x00,0x00);delay_Nms(5);
     LCD_WR_CMD(0x0F,0x00,0x00);delay_Nms(5);
     LCD_WR_CMD(0x41,0x00,0x00);delay_Nms(5);
     LCD_WR_CMD(0x42,0x00,0x00);delay_Nms(5);
     LCD_WR_CMD(0x48,0x00,0x00);delay_Nms(5);
     LCD_WR_CMD(0x49,0x01,0x3F);delay_Nms(5);
     LCD_WR_CMD(0x4A,0x00,0x00);delay_Nms(5);
     LCD_WR_CMD(0x4B,0x00,0x00);delay_Nms(5);
     LCD_WR_CMD(0x44,0xEF,0x00);delay_Nms(5);
     LCD_WR_CMD(0x45,0x00,0x00);delay_Nms(5);
     LCD_WR_CMD(0x46,0x01,0x3F);delay_Nms(5);
     LCD_WR_CMD(0x30,0x07,0x07);delay_Nms(5);
     LCD_WR_CMD(0x31,0x02,0x04);delay_Nms(5);
     LCD_WR_CMD(0x32,0x02,0x04);delay_Nms(5);
     LCD_WR_CMD(0x33,0x05,0x02);delay_Nms(5);
     LCD_WR_CMD(0x34,0x05,0x07);delay_Nms(5);
     LCD_WR_CMD(0x35,0x02,0x04);delay_Nms(5);
     LCD_WR_CMD(0x36,0x02,0x04);delay_Nms(5);
     LCD_WR_CMD(0x37,0x05,0x02);delay_Nms(5);
     LCD_WR_CMD(0x3A,0x03,0x02);delay_Nms(5);
     LCD_WR_CMD(0x3B,0x03,0x02);delay_Nms(5);
     LCD_WR_CMD(0x23,0x00,0x00);delay_Nms(5);
     LCD_WR_CMD(0x24,0x00,0x00);delay_Nms(5);
     LCD_WR_CMD(0x25,0x80,0x00);delay_Nms(5);
     LCD_WR_CMD(0x4F,0x00,0x00);delay_Nms(5);
     LCD_WR_CMD(0x4E,0x00,0x00);delay_Nms(5);
}

void DispOneColor(unsigned int Color)
{
      unsigned int i,j;
     LCD_SetCursor(0,0);
     LCD_WR_ADDR(0x22);
     Setbit(PORTB,1);//RS=1 PB1
     PORTD=Color>>8;
     PORTA=Color;
     Clcbit(PORTB,0);//CS=0 PB0
     for(j=0;j<320;j++)   
     
        for(i=0;i<240;i++)   
         
            Clcbit(PORTB,2);//WR=0 PB2   
            asm("nop");   
            Setbit(PORTB,2);//WR=1 PB2   
         
    }
     Setbit(PORTB,0);//CS=1 PB0   
}

void DrawLine(short x0,short y0,short x1,short y1,short color)
{
     short k;
     short dx;
     short dy;
     short dx2;
     short dy2;
     short e;
     short x;
     short y;
     if(x1      {
        k=x0;
        x0=x1;
        x1=k;
        k=y0;
        y0=y1;
        y1=k;
     }
    
     dx=x1-x0;
     dy=y1-y0;
     dx2=dx<<1;
     dy2=dy<<1;
     e=-dx;
     x=x0;
     y=y0;
    
     if(y1>=y0)
     {
                 for(x=x0;x                {
                    LCD_DrawPoint(x,y,color);
                    e=e+dy2;
                    if(e>0)
                    {
                            y++;
                           e=e-dx2;
                    }
               }
     }
    
     else
     {
             e=dx;
             for (x=x0;x              {
                  LCD_DrawPoint(x, y,color);
                  e=e+dy2;
                  if (e<0)
                  {
                        y--;
                     e=e+dx2;
                  }
             }  
     }
}

void main(void)
{
      DDRA=0xff;
     //DDRC=0xff;
     DDRB=0xff;
     DDRD=0xff;
     //PORTD=0x00;
     //PORTC=0x00;
     Clcbit(PORTB,4);//RES=0
     asm("nop");
     Setbit(PORTB,4);//RES=1
     LCD_Init();
     DispOneColor(0x0000);
     //LCD_DrawPoint(180,150,0x0000);////
     DrawLine(180,150,60,200,0xFFFF);
     while(1);
}
关键字:AVR  3.2英寸tft  LCD  ssd1289 引用地址:AVR驱动3.2英寸tft LCD(ssd1289)

上一篇:AVR起步教程3:从51到AVR编程篇
下一篇:AVR的中断问题

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

三星将发布采用LG Display液晶面板的电视
韩联社根据内部消息报道指出,全球最大电视制造商之一的三星电子将推出一款新的电视机机型,该机型采用了其主要竞争对手LG Display生产的LCD面板。   据悉,从上个月开始,LG Display即正式向三星电子供应65英寸和75英寸LCD电视面板(虽然最开始时交叉采购的产品主要是40英寸面板,不过后来计划发生改变,三星电子决定2018年主推65英寸、75英寸产品)。事实上,同为韩国科技大厂,这是三星与LG第一次采购彼此的组件,用于电视和显示屏产品。   众所周知,三星与LG从智能手机到家用电器在不少领域都是竞争对手。而双方在此方面合作的契机是夏普“促成”的。据了解,鸿海旗下的夏普2016年底突然告知三星,将停止供应LCD电视面板
[家用电子]
飞思卡尔推出首款具有集成LCD驱动器的S08设备
低功率8位LC60 MCU为便携式应用提供3/5V的大波段液晶显示器支持,可多达160个波段 德国纽伦堡(2007年嵌入式世界大会) -飞思卡尔半导体推出了高度集成的、高能源效率的8位微控制器(MCU)设备系列,该系列为电子行业中最普遍的显示器技术液晶显示器(LCD)进行了优化。MC9S08LC60(LC60)系列具有飞思卡尔第一款基于S08的闪存MCU的特性,包括一个具有内部电荷泵的集成LCD驱动器模块。 飞思卡尔的LC60系列满足了便携式LCD应用、手持式消费类及工业设备的显示器、功率、存储器和通信需求。利用其对高达160(4x40)个段码显示器的支持,LC60 MCU使开发人员能够灵活地设计便携式医疗保健设备、恒温器
[新品]
avr单片机学习心得
最近学习了8位单片机Mega8,特点是:比51系列单片机工作时钟频率(16兆赫字)大,并且有多种工作模式,空闲,掉电模式,省电模式,standy模式,睡眠等等 可以通过熔丝设置时钟,(外部晶体振荡器,外部低频晶振,外部RC振荡器,标定的内部RC振荡器,外部时钟)。 各种功能模块很全,有特色的是SPI模式,因为下载程序就用这种模式。下载过程,flash分成两个部分一个是应用flash区,另一个是bootloader区,关于这两部分的大小可以用编程熔丝来实现,还可以编程熔丝定义复位向量的起始地址,是定位到应用区还是bootloader区等。 其中bootloader可以以任何方式下载程序,串口,spi等。并且bootloader
[单片机]
侧光式白光LED背光将从NB应用转向LCD TV
日厂对消费者进行调查,其中多数认为50mm厚的液晶电视不具吸引力,而30mm的产品则能得到消费者青睐,为了生产出有吸引力的产品,侧光式白光LED将从NB转向LCD TV。 一般认为侧光式LED大多应用在Portable装置的显示器或是笔记型电脑(NB)用背光,现因TFT LCD相关业者纷纷朝向超薄型LCD TV/面板设计,而侧光式白光LED背光较侧光式冷阴极灯管(CCFL)与RGB LED、及直下式CCFL与LED更具此项优势,因此相关应用渐受到瞩目。 侧光式白光LED 背光模组设计中厚度最薄者 日立制作所将为全球第1家上市超薄型LCD TV的厂商,其将于2007年12月开始销售32吋、厚度仅为35mm的LCD TV,该机种
[电源管理]
传TCL华星/京东方/惠科等竞购中电熊猫 LCD面板产业格局或迎
据Wit Display报道称,京东方、TCL科技(TCL华星)、惠科、中航国际(天马)等欲通过收购中电熊猫,扩大面板产能规模,巩固市场优势。 近年来,随着LCD面板市场竞争日趋激烈,其产品价格也是持续下跌,导致部分面板厂商出现亏损的状态,韩国企业三星显示以及LGD也宣布将于今年年底退出LCD市场。这对于中国企业来说,这是一个扩大市场规模的好机会。 在2019年业绩交流会上,李东生表示,“行业进入经营比较困难时期并购机会比较多,我们预计今年、明年整个半导体显示行业会有比较多的并购重组的机会。另外中国的新增产能和这个行业的企业数量都比较多,有些企业的规模并不是特别大,所以我们会积极地寻找对公司未来成长有价值的并购标的。
[手机便携]
AVR单片机驱动的LCD2004的源程序
/*======================================================= 20x4字符液晶主程序,编译软件(ICCAVR_6.31) CPU内部晶振8M 数据线B0~B7接PORTB, E=D7 RW=D6 RS=D5 ========================================================= 接线图如下: _______________ ______________ | --1|GND | | --2|+5V | | --3|V0 |
[单片机]
STM32 SPI驱动TFT LCD
利用STM32F030 的SPI驱动TFT LCD,我使用的LCD为240*320像素的2.4寸彩屏,驱动IC为ili9341,只需四根线即可点亮LCD,先贴上SPI配置吧,声明一下,F030的SPI配置和F103等的配置有些不一样 /*LCD SPI Init*/ void SPI_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; SPI_InitTypeDef SPI_InitStructure; /* Enable the SPI periph */ RCC_APB1PeriphClock
[单片机]
EP7212处理器的LCD控制及触摸屏接口设计
    摘要: 介绍EP7212嵌入式处理器上LCD控制器的结构和功能;深入探讨ADS7843触摸屏接口芯片的模式选择才应用技巧;基于该系统给出一个与彩色LCD触摸屏相接的实际使用方案。     关键词: 嵌入式处理器 LCD 触摸屏控制器 引言 EP7212是Cirrus Logic公司生产的单片嵌入式高集成度的处理器芯片,所有必需的接口逻辑都集成在芯片上,一个低功耗的系统方案只须增加一些存储器和外围器件就可以完成。它的处理器为ARM720T,核为ARM7TDMI CPU。时钟速率可动态编程为18 MHz、36MHz、49MHz、74MHz,其稳定处理能力达到66MIPS(百万条指令每针)(D
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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