TMS320c5509A ---Lcd

TMS320c5509A ---Lcd

    • @[TOC](TMS320c5509A ---Lcd)
    • 一.LCD 控制实验结果
    • 二、实验原理
      • (一)部件介绍
        • 1. EMIF接口:DSP 的“多功能插槽”
        • 2. LCD 屏幕的“画布结构”
        • 3.74LS245 芯片的电压转换和“节奏控制”
      • (二) LCD 的控制
        • 1、 电路连接
        • 2、接口地址
        • 3、显示控制方法
    • 三、实验流程
      • 1. 连接硬件
      • 2.各类初始化
      • 3. 画一个字符(比如字母 A)
      • 4. 动态显示(比如滚动文字)

LCD 控制

一.LCD 控制实验结果

液晶屏显示阳文0到9计数,然后显示阴文0到9计数,再回到阳文计数。如此循环。

二、实验原理

(一)部件介绍

用 DSP(数字信号处理器)好比画家」,通过它的「扩展工具箱」(EMIF接口)里的一支画笔控制一块液晶屏(LCD)显示字符。
学会如何让 DSP 和 LCD「对话」,即掌握控制屏幕显示的基本编程方法。

1. EMIF接口:DSP 的“多功能插槽”
  • DSP 的 EMIF 接口就像电脑的 USB 接口,可以外接各种设备(如内存、LCD)。
  • 地址线:告诉 LCD “要画哪里”(比如选择第几行、第几列)。
  • 数据线:传输“颜料”(显示内容,0 或 1 控制像素点亮灭)。
2. LCD 屏幕的“画布结构”
  • 两块显示内存:相当于两张透明胶片,一张管左边屏幕,一张管右边。
  • 像素点控制:向内存写 1 是“涂黑点”,写 0 是“留白”。
  • 坐标定位
    • 行(Y):0~63 行,像画纸的纵坐标。
    • 列(X):0~63 列,像画纸的横坐标。
    • 页(Page):0~7 页,每页包含 8 行(类似翻页画册)。
3.74LS245 芯片的电压转换和“节奏控制”
  • 等待机制:DSP 速度飞快,LCD 反应慢,发完指令要“等它画完”再继续。
  • 电压转换:DSP 是 3.3V 的“小声说话”,LCD 是 5V 的“大嗓门”,中间需要“翻译官”(74LS245 芯片)转换信号。

(二) LCD 的控制

1、 电路连接

液晶显示器与 DSP 的连接如图 9-1 所示。由于 DSP 逻辑高电平 3.3V,而液晶显示模块逻辑高电平为 5V,所以控制线和数据线需要加电平隔离和转换设备,如 74LS245。

图 9- 1 LCD 与 DSP 的连接原理图

2、接口地址

5509ADSP 通过对 EMIF 接口的操作完成对液晶显示模块的访问和控制。

  • 命令控制接口 CTRLCDCMDR 的地址:0x602800
  • 左半屏数据控制接口 CTRLCDLCR 的地址:0x602801
  • 右半屏数据控制接口 CTRLCDRCR 的地址:0x600802
  • 键盘状态清除接口 CTRCLKEY 的地址:0x600801
3、显示控制方法
  • 屏幕有 128*64 个像素点,划分为左右两块,每一块是 64*64 个像素点。液晶显示模块 中有两片显示缓冲区,每片 64*64 bits,共 128*64 bits。每 bit 对应屏幕上一个像素点,向缓 冲区某 bit写入数值将改变屏幕相应像素的显示,写入“1”显示,写入“0”则不显示。
  • 缓冲区地址与像素的对应方式如表 9-1 所示。屏幕上每块 64*64 的像素点又划分为每 8 页(X 为页号),每页 8 行 64 列(Y为列号)像素点。显示时,每次读取缓冲区一个字节(8 bits),从下向上纵向逐点显示屏幕上 8 行 1列像素点,然后读取下一个字节,显示屏幕右邻 的 8 行 1 列像素点。当 64 列(也就是 1 页)扫描完毕,扫描紧接着的下 1 页。 表 9- 1 显示缓冲区地址与像素对应方式.

TMS320c5509A ---Lcd_第1张图片

  • 发送控制命令:向液晶显示模块发送控制命令的方法是通过向命令控制接口 CTRLCDCMDR写入命令控制字,然后再向辅助控制接口CTRLCDCR 写入 0。基本命令控 制字如下:
    • 显示开关:0x3f 打开显示;0x3e 关闭显示;
    • 设置显示起始行:0x0c0+起始行取值,其中起始行取值为 0 至 63;
    • 设置操作页:0x0b8+页号,其中页号取值为0-7;
    • 设置操作列:0x40+列号,其中列号取值为 0-63;
    • 写显示数据:在使用命令控制字选择操作位置(页数、列数) 之后,可以将待显示 的数据写入液晶显示模块的缓存。将数据发送到相应数据控制 I/O 接口即可。
      (4) 数据信号的传送:
      由于液晶显示模块相对运行在高主频下的 DSP 属于较为慢速设备,连接时需要考虑数 据线上信号的等待问题;

三、实验流程

TMS320c5509A ---Lcd_第2张图片

怎么做?

1. 连接硬件

  • 把 LCD 模块插到 DSP 的 EMIF 接口上(类似插 U 盘)。
  • 确认电平转换芯片(74LS245)已接入,防止“信号听不懂”。

2.各类初始化

  • 初始化锁相环,设置CPU主频
  • 初始化外部SDRAM存储器(扩展内存),即配置DSP的EMIF接口,使其能够正常连接和访问外部的SDRAM内存(相当于给DSP扩展“内存条”)
  • 初始化CTR控制模块
  • LCD屏幕初始化
    • 开显示:发送 0x3F(开灯)。
    • 设置起始行:比如 0xC0 + 0(从第 0 行开始画)。
    • 代码示例:
      // 向命令口写指令
      *命令口地址 = 0x3F;  // 开显示
      *辅助控制口地址 = 0; // 确认指令生效
      

3. 画一个字符(比如字母 A)

  • 步骤
    1. 选页和列:翻到第 0 页,第 10 列。
      *命令口地址 = 0xB8 + 0; // 第0页
      *命令口地址 = 0x40 + 10; // 第10列
      
    2. 写入像素数据:根据字模(预先设计好的点阵图)逐行填数据。
      // 假设字模数据是 0x7E, 0x11, 0x11, 0x7E(字母 A)
      *数据口地址 = 0x7E; // 第一行像素
      *数据口地址 = 0x11; // 第二行
      *数据口地址 = 0x11; // 第三行
      *数据口地址 = 0x7E; // 第四行
      

4. 动态显示(比如滚动文字)

  • 通过循环改变起始行或列,让字符“动起来”。
  • 代码逻辑:
    for (int i=0; i<64; i++) {
        *命令口地址 = 0xC0 + i; // 起始行逐渐下移
        // 写入字符数据
        delay(100); // 等一会儿再更新
    }
    

你可能感兴趣的:(dsp开发)