中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 模拟技术 >>电子行业新闻正文

超薄显示屏OLED在陀螺经纬仪中的应用

时间:2006/7/7 9:35:00  作者:  来源:ic72  浏览人数:1524
 
 

      陀螺经纬仪通过敏感地球自转的水平分量来测定仪器架设点真北方位的精密仪器,工作情况类似于电子经纬仪,所不同的是电子经纬仪只能测定两个目标的相对夹角,而陀螺经纬仪不仅可以测定目标之间的相对夹角,而且可以测定目标与地理北或真北方位之间的夹角。仪器工作通常在野外进行,环境条件较为恶劣。以前显示部分用液晶实现,带来的问题是除重量和体积外,低温靠加热实现,功耗大,野外作业对电池要求较高。另一个问题是采取任何措施,都无法解决太阳照射下,液晶显示不清楚这个问题,这是由于液晶显示自身特性决定的。
 
      OLED在显示信息方面有许多吸引人的特点。OLED无LCD的视角问题,可提供全视角显示。由于OLED具有能自发光的特点,在亮度上也比LCD高得多,也不像LCD需要背光源,所以不仅提高了电源的有效功率,功耗只有LCD的一半,而且器件厚度也比LCD薄。OLED响应时间比典型LCD快一千倍。所以,它具有高效率、高对比度、宽视角、工作电压低等优点[1-2]。台湾铼宝公司生产的内嵌SSD1303驱动芯片的超薄OLED显示屏P09703点阵数128X64,厚度仅2.05毫米,重量仅11.1克,工作温度-40℃到+85℃。在陀螺经纬仪上选用该产品,很好的解决了显示问题。下面重点讨论电路设计的实现问题。
 
      1 SSD1303简介
 
      目前,主要有Solomon公司和美国的Clare公司等几家公司生产OLED驱动IC。Solomon投入市场的SSD1303,是一枚把行驱动、列驱动和控制器集成为一体的OLED驱动器芯片。这个驱动器为132×64点阵OLED图形显示而设计的,包括行驱动器、列驱动器、电流参考发生器、对比度控制、振荡器和几个MCU 接口模式。工作逻辑电压2.4V~3.5V,具有丰富的软件功能,支持4种颜色选择和每种颜色64级控制,它的软件对比度具有256级控制,内嵌的132×64bit的图形动态随机存储器(GDDRAM),提供了行remapping、列remapping、垂直滚动和部分显示功能。使该驱动器适合于不同像素尺寸和颜色的多种OLED 显示。
 
      2 P09703与LPC2131的硬件连接
 
      LPC2100/lLPC2105/LPC2106系列微控制器是飞利浦半导体推出的基于16/32位ARM7TDMI-S CPU,并带有128/256 k字节(kB)嵌入的高速Flash存储器的微控制器,128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16 位Thumb 模式将代码规模降低超过30%,而性能的损失却很小。由于LPC2100/lLPC2105/LPC2106系列微控制器采用非常小的64脚封装、极低的功耗、多个32位定时器、4路10位ADC PWM输出以及多达9个外部中断,这使它们特别适用于工业控制、医疗系统、访问控制和电子收款机(POS)等应用领域。因为LPC2100系列微控制器没有外部总线控制器,所以它们外接扩展芯片不是很方便。不过,因为它们的速度很快,所以即使使用软件模拟总线外接扩展芯片也比普通的80c51快得多,而丰富的片内资源也不是普通51能够比拟的。

      鉴于P09703与P09702具有相同的图形显示控制器SSD1303,而P09702硬件接口适合试验连接,下面以P09702与LPC2131为例进行说明,由于OLED显示屏P09702的逻辑电平为2.4V-3.5V,我们选用PHILIPS公司生产的基于ARM7TDMI-S、单电源供电的微控制器LPC2131作为控制器,图一给出了包括电源、时钟、复位等一个嵌入式处理系统正常工作的最小电路外,电源电路提供模拟3.3V和数字3.3V,以提高系统工作稳定性。同时绘制了P09702与LPC2131的硬件连接方式。

      3 软件编程
 
      在与计算机连接方面,SSD1303的接口,包括数据输入缓存器、数据输出锁存器,指令寄存器及译码器,忙状态触发器以及时序控制电路等,具有高性能的接口控制电路。计算机可以随时访问SSD1303而不需要判断其当前状态,与以前用的以T6963C控制器不同,SSD1303判断忙状态在操作上不是那么重要,因为SSD1303的接口部能够适时地接收计算机的访问。只是在计算机对显示存储器大量的数据传输时与控制部向驱动部传输显示数据相冲突,会在显示屏上出现“雪花”。但是由于这个间隙时间很短,加上人眼在视觉上的惰性而看不出“雪花”现象,有时判断忙标志再进行显示数据传输时,忙标志已经消失了。正是由于这些,计算机访问SSD1303的操作流程非常简单。但要注意的是SSD1303的接口控制电路内有几套时序电路以适配不同计算机操作时序的要求。时序适配电路的设置端为BS0,BS1,BS2。在P09703中选择BS1和BS2不同的连接,以确定选择Intel8080时序还是M6800时序。在P09702中由于没有BS1和BS2的选择,出厂时已经设置为Intel8080时序,所以下面的程序为Intel8080时序。
 
      #define  AD0_PIN_NUM    8   //8位数据总线

  #define  DC_PIN_NUM     5   //P0.5 数据/指令控制位,低电平—指令操作,高电平—数据操作

  #define  WR_PIN_NUM     6   //P0.6 写数据/指令控制位,高电平变低电平时写入

  #define  RD_PIN_NUM     7   //P0.7 读数据/指令控制位,低电平有效

  #define  CS_PIN_NUM     16  //P0.16 使能位,低电平有效

  void ExBusInit(void)    //初始化P09702OLED显示屏总线

  {    uint32 temp;

      // 设置引脚连接模块:DC_PIN_NUM、WR_PIN_NUM、RD_PIN_NUM、CS_PIN_NUM、 AD0_PIN_NUM为GPIO

      PINSEL0 &= ~(3 << (2 * DC_PIN_NUM)); 

      PINSEL0 &= ~(3 << (2 * WR_PIN_NUM));

      PINSEL0 &= ~(3 << (2 * RD_PIN_NUM));

      PINSEL0 &= ~(3 << (2 * (CS_PIN_NUM-16)));

      for (temp= AD0_PIN_NUM; temp < 16; temp++){

      PINSEL0 &= ~(3 << (2 *temp));
    }

      // 设置引脚方向,所有相关引脚为输出

      temp = 0xff << AD0_PIN_NUM;

      IODIR = IODIR | temp;

  IODIR = IODIR | (1 << WR_PIN_NUM) | (1 << RD_PIN_NUM) | (1 << DC_PIN_NUM) | (1 << CS_PIN_NUM);

  // 设置引脚输出值,除CS_PIN_NUM输出为低电平外,其余均为高电平

      IOCLR = (1 << CS_PIN_NUM);

      IOSET = (1 << DC_PIN_NUM) | (1 << WR_PIN_NUM) | (1 << RD_PIN_NUM);

      temp = 0xff << AD0_PIN_NUM;

      IOSET = IOSET | temp;

  }
 
  uint8 ReadData(void)     //从P09702OLED显示屏读取数据

      {   uint32 temp,temp1;

      temp1 = IODIR;

      IODIR = temp1 & (~(0xff << AD0_PIN_NUM));  // 设置AD0_PIN_NUM为输入

      IOCLR = 1 << RD_PIN_NUM;

      temp = IOPIN;

      IOSET = 1 << RD_PIN_NUM;

      IODIR = temp1 | (0xff << AD0_PIN_NUM);

      temp = temp >> AD0_PIN_NUM;

      return (uint8) temp;

  }

      void WriteCommand(uint8 Data)   //写指令代码到P09702OLED显示屏

  {     IOCLR = 1 << DC_PIN_NUM;

      IOSET = Data << AD0_PIN_NUM;

      Data = ~Data;

      IOCLR = Data << AD0_PIN_NUM;

      IOCLR = 1 << WR_PIN_NUM;

      IOSET = 1 << WR_PIN_NUM;

      IOSET = 1 << DC_PIN_NUM;

  }
 
      void WriteData(uint8 Data)   //写参数及数据到P09702OLED显示屏

  {     IOSET = Data << AD0_PIN_NUM;

      Data = ~Data;

      IOCLR = Data << AD0_PIN_NUM;

      IOCLR = 1 << WR_PIN_NUM;

      IOSET = 1 << WR_PIN_NUM;

  }

  main(){   int j, i;

  ExBusInit();       //初始化P09702OLED显示屏总线

  InitOled();        //初始化P09702OLED显示屏,由于SSD1303软件控制指令非常丰富,该函数内容较长,在这里不做描述,详情见P09702应用笔记,这里要说明的是:InitOled()中的comm_out2()函数用WriteCommand()函数替代

  for(i=0;i<8;i++)

  WriteCommand (0xB0+i);    //设置显示位置—行

  WriteCommand (0x02);      //设置显示位置—列低地址

  WriteCommand (0x10);      //设置显示位置—列高地址

  for(j=0;j<128;j++)        

  WriteData((0xFF);        //屏幕显示,全亮

  }

  }
 
   

 
【相关文章】
·电脑主机板上时钟电路设计
·单级高功率因数调光式荧光灯电子镇流器设计
·IrDA器件及其应用电路设计
·超薄显示屏OLED在陀螺经纬仪中的应用
·通信处理器MPC852T无线接入点的系统设计
·用4 BIT OTP单片机SH69P04实现USB/PS2 MOUSE的设计
·正交解调器简化直接转换接收器的系统设计
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9