ARM微控制器LPC210X的LCD接口技术
I_CLK;//SPI_CLK=0
if((date&0x80)!=0)//传输最高位
IOSET=SPI_DATA;
Else
IOCLR=SPI_DATA;
date<<=1;
IOSET=SPI_CLK;//SPI_CLK=1
}
IOSET=SPI_CS;//SPI_CS=1
}
其它程序与方法1类似。有了以上子程序,就可以很方便地加以调用,进行液晶驱动显示。
2.3CPLD分部连接法
CPLD是大规模逻辑器件,对于LPC210X的复杂应用显得非常重要,笔者的项目是用它来扩展外部接口的,LCD应用只是其中一部分,连接图如图3所示。
共占用9线,为说明方便,也选用了连续的GPIO口。该方法把一个字节字模分成高4位和低4位,分别通过P0.0~P0.3传送。在CPLD里设计一个4位锁存器,当高4位传送完毕后,锁存器进行锁存,然后发送低4位,接着由P0.4选通锁存器,将8位数据同时送出,这样节省了4个GPIO口;另外由P0.5通过CPLD直接控制CS1和CS2,也节省了1个GPIO口。LPC210X程序参照方法1很容易写出,只是注意这里是分两次、每次4位传送,以及每次传送要改变P0.4的状态。CPLD采用了XilinxXC9500系列的XC9572,程序用Verilog-HDL语言编写,其中数据分部传送程序设计如下:
modulelatch(out_high,out_low,data,enable);//定义模块latch
output[3:0]out_high;//定义输出口高4位
output[3:0]out_low;//定义输出口低4位
inputenable;定义锁存选通信号
reg[3:0]out_high;
reg[3:0]out_low;
reg[3:0]lock;//定义锁存寄存器
always@(enableordata)
begin
if(!enable)//低电平锁存
lock<=data;
else//高电平开通锁存,输出8位
begin
out_high=lock;
out_low=data;
end
end
endmodule
至于P0.5选通CS1、CS2,在另一always块中用ifelse语句进行判断就可以了。
程序设计完成后,在WEBPACK中对用到的引脚进行分配与锁定,然后编译。如果需要仿真的埃?鸵?杓贫ゲ阄件,可使用Xilinx公司推出的免费仿真软件MODELSIM。
对于上面的第二种方法,也可以考虑用CPLD设计称位存储器及时序控制。在复杂应用中,加上CPLD不但 《ARM微控制器LPC210X的LCD接口技术(第4页)》
本文链接地址:http://www.oyaya.net/fanwen/view/140344.html
if((date&0x80)!=0)//传输最高位
IOSET=SPI_DATA;
Else
IOCLR=SPI_DATA;
date<<=1;
IOSET=SPI_CLK;//SPI_CLK=1
}
IOSET=SPI_CS;//SPI_CS=1
}
其它程序与方法1类似。有了以上子程序,就可以很方便地加以调用,进行液晶驱动显示。
2.3CPLD分部连接法
CPLD是大规模逻辑器件,对于LPC210X的复杂应用显得非常重要,笔者的项目是用它来扩展外部接口的,LCD应用只是其中一部分,连接图如图3所示。
共占用9线,为说明方便,也选用了连续的GPIO口。该方法把一个字节字模分成高4位和低4位,分别通过P0.0~P0.3传送。在CPLD里设计一个4位锁存器,当高4位传送完毕后,锁存器进行锁存,然后发送低4位,接着由P0.4选通锁存器,将8位数据同时送出,这样节省了4个GPIO口;另外由P0.5通过CPLD直接控制CS1和CS2,也节省了1个GPIO口。LPC210X程序参照方法1很容易写出,只是注意这里是分两次、每次4位传送,以及每次传送要改变P0.4的状态。CPLD采用了XilinxXC9500系列的XC9572,程序用Verilog-HDL语言编写,其中数据分部传送程序设计如下:
modulelatch(out_high,out_low,data,enable);//定义模块latch
output[3:0]out_high;//定义输出口高4位
output[3:0]out_low;//定义输出口低4位
inputenable;定义锁存选通信号
reg[3:0]out_high;
reg[3:0]out_low;
reg[3:0]lock;//定义锁存寄存器
always@(enableordata)
begin
if(!enable)//低电平锁存
lock<=data;
else//高电平开通锁存,输出8位
begin
out_high=lock;
out_low=data;
end
end
endmodule
至于P0.5选通CS1、CS2,在另一always块中用ifelse语句进行判断就可以了。
程序设计完成后,在WEBPACK中对用到的引脚进行分配与锁定,然后编译。如果需要仿真的埃?鸵?杓贫ゲ阄件,可使用Xilinx公司推出的免费仿真软件MODELSIM。
对于上面的第二种方法,也可以考虑用CPLD设计称位存储器及时序控制。在复杂应用中,加上CPLD不但 《ARM微控制器LPC210X的LCD接口技术(第4页)》