从图2所示的时序图可以看出,当HSYNC电平由低变高,再经过水平回归时间之后,开始进行水平扫描。在水平扫描中,像素的显示受PCLK控制,一个PCLK周期决定了一个像素点的显示。在HSYNC的高电平的驱动下,PCLK将产生480个时钟周期,使图像的像素点在屏幕上从左向右依次逐点输出,完成一行共480个像素点的显示。用Verilog HDL编写的水平同步扫描的时序程序如下: always@(posedge CLK or negedge RST_n) begin
if (RST_n) begin
x_cnt <= 11’d0;
hd<= 1’d0;
end
else if (x_cnt ==479) begin
x_cnt<= 11’d0;
hd<= 1’d0;
end
else begin
x_cnt<= x_cnt + 11’d1;
hd <= 1’d1;
end
end
同理,当VSYNC电平由低变高,再经过垂直回归时间之后,进入垂直扫描。在VSYNC的高电平驱动下,HSYNC将产生272个时钟周期,像素点在屏幕上从上到下依次逐行输出,完成整个图像数据在彩色显示器上的显示。用Verilog HDL编写的同步扫描的时序程序如下:
always@(posedge CLK or negedge RST_n) begin
if (iRST_n)
y_cnt<= 10’d0;
else if (x_cnt == 479) begin
if (y_cnt == 271)
y_cnt <= 10’d0;
else
y_cnt<= y_cnt + 10’d1;
end
end 1.3 ADS7843 芯片控制器的设计
ADS7843 芯片控制器用于将触摸的位置进行数据转换。ADS7843 的时序图如图3 所示。其中,CS 为片选信号, 低电平有效;BUSY 为忙指示信号, 同样低电平有效。