[0] 0 = 关闭 1 = A/D 转换开始,之后该位自动清除 表3-2为A/D 转换器转换模式的配置说明,
表3-2
在普通AD转换时,AUTO_PST和XY_PST都设置成0即可,其他各位与触摸屏有关,可以忽略,不需设置。
表3-3为A/D 转换器数据寄存器的说明。
18
表3-3
在这个数据寄存器是只读,可以读取A/D转换的数字量。9~0位是转换后的数字量。
根据具体的程序要求,正确配置各寄存器。
现举例如下:(仔细分析转换过程) int Get_AD(unsigned char ch) { int i;
int val=0;
if(ch>7) return 0; //通道不能大于7
for(i=0;i<16;i++) { //为转换准确,转换16次 rADCCON |= 0x1; //启动 A/D 转换 rADCCON = rADCCON & 0xffc7 | (ch<<3);
while (rADCCON & 0x1); //避免第一个标志出错 while (!(rADCCON & 0x8000)); //避免第二个标志出错 val += (rADCDAT0 & 0x03ff); Delay(10);
}
return (val>>4); //为转换准确,除以16取均值 }
void AD_Init(void){
rADCDLY = (0x100); // ADC Start or Interval Delay rADCTSC = 0; //设置成为ADC模式
rADCCON=(1<<14)|(49<<6)|(ch<<3)|(0<<2)|(0<<1)|(0);//设置ADC控制寄
19
存器
}
注:rADCCON,这种宏形式,在Startup2410/INC/2410addr.h中已定义! 详细具体的应用,请参见硬件实验\\ADS\\实验九目录下的AD.mcp项目文件。请详细阅读代码注释。
五、实验步骤
1. 本实验使用实验教学系统的CPU板、串口、LCD单元。 2. 在PC机并口和实验箱的CPU之间,连接SDT调试电缆。
3. 在实验箱底板左上角有一个26针双排弯针插座,可以在此处接入模拟信号
源,该信号的电压应在0 — 2.5V之间。 4. 检查连接是否可靠,可靠后,给系统上电。
5.打开ADS1.2开发环境,从里面打开实验程序\\硬件实验\\ADS\\实验九\\AD.mcp
项目文件,进行编译。
6.编译通过后,首先打开Multi-ICE Server.exe程序,点击工具栏第一个按
钮进行自动连接,然后进入ADS1.2调试界面,加载实验程序\\硬件实验\\ADS\\实验九\\AD_Data\\Debug中的映象文件程序映像AD.axf。 1. 打开LCD电源开关,观察LCD上8个通道当前采集的情况。
20
实验四 LCD的显示实验
一、实验目的
1. 学习LCD与ARM的LCD的控制器的接口原理; 2. 掌握内置LCD控制器驱动编写方法; 3. 学习调用简单的GUI绘图。
二、实验内容
1. 在320X240的彩色LCD上显示点、线、圆,设置颜色、改变颜色、显示英文、显示汉字,填充区域等基本绘制功能。
三、实验设备
1. EL-ARM(DSP)-E100教学实验箱,PentiumII以上的PC机,仿真器电缆。 2. PC操作系统WIN98或WIN2000或WINXP,ADS1.2集成开发环境,
仿真器驱动程序。
四、实验原理
通常我们常用的LCD显示模块,有两种,一是带有驱动电路的LCD显示模块,一是不带驱动电路的LCD显示屏。大部分ARM处理器中都集成了LCD的控制器,所以,针对ARM芯片,一般不使用带驱动电路的LCD显示模块。
S3C2410 中具有内置的LCD 控制器,它能将显示缓存(在SDRAM存储器中)中的LCD图像数据传输到外部的LCD驱动电路上的逻辑功能。它支持单色、4级、16级灰度LCD显示,以及8位彩色、12位彩色LCD显示。在显示灰度时,它采用时间抖动算法(time-based dithering algorithm)和帧率控制 (Frame Rate Control)方法,在显示彩色时,它采用RGB的格式,即RED、GREEN、BLUE,三色混合调色。通过软件编程,可以实现332的RGB调色的格式。对于不同尺寸的LCD显示器,它们会有不同的垂直和水平象素点、不同的数据宽度、不同的接口时间及刷新率,通过对LCD 控制器中的相应寄存器写入不同的值,来配置不同的LCD 显示板。
S3C2410 中内置的LCD 控制器提供了下列外部接口信号(CPU引脚):
VFRAME: LCD 控制器和LCD 驱动器之间的帧同步信号。它通知LCD屏开始显示新的一帧,LCD 控制器在一个完整帧的显示后发出VFRAME 信号。
21
VLINE: LCD 控制器和LCD 驱动器间的同步脉冲信号,LCD 驱动器通过它来将水平移位寄存器中的内容显示到LCD 屏上。LCD 控制器在一整行数据全部传输到LCD 驱动器后发出VLINE 信号。
VCLK: LCD 控制器和LCD 驱动器之间的象素时钟信号,LCD 控制器在VCLK的上升沿发送数据,LCD 驱动器在VCLK 的下降沿采样数据。
VM: LCD 驱动器所使用的交流信号。LCD 驱动器使用VM 信号改变用于打开或关闭象素的行和列电压的极性。VM 信号在每一帧触发,也可通过编程在一定数量的VLINE 信号后触发。 LCD_PWREN:LCD面板电源使能控制信号 VD[23:0]: LCD 象素数据输出端口。
LCD 控制器包含REGBANK, LCDCDMA, VIDPRCS, TIMEGEN和LPC3600。REGBANK 具有17 个可编程寄存器,用于配置LCD 控制器。LCDCDMA为专用的DMA,它可以自动地将显示数据从帧内存中传送到LCD 驱动器中。通过专用DMA,可以实现在不需要CPU 介入的情况下显示数据。VIDPRCS 从LCDCDMA 接收数据,将相应格式(比如4/8 位单扫描和4 位双扫描显示模式)的数据通过VD[23:0]发送到LCD的驱动器上。TIMEGEN 包含可编程的逻辑,以支持常见的LCD 驱动器所需要的不同接口时间和速率的要求。TIMEGEN 部分产生VFRAME,VLINE, VCLK, VM 等信号。
图4-1
如图4-1所示,该图揭示了LCD彩色图像数据在LCD的显示缓存中的存放结构,以及彩色图像数据在LCD液晶屏上是如何显示的规则。
320x240像素的8位数据的256彩色LCD屏,显示一屏所需的显示缓存为320x240x8bit,即76800字节,在显示缓存中每个字节,如图2-38 最右面的图所示,都对应着屏上的一个象素点,因此,8位256彩色显示的显示缓存与LCD屏上的象素点是字节对应的。每个字节中又有RGB格式的区分,既有332的RGB,
22