搜档网
当前位置:搜档网 › VERILOG控制液晶显示屏显示字符

VERILOG控制液晶显示屏显示字符

VERILOG控制液晶显示屏显示字符
VERILOG控制液晶显示屏显示字符

控制液晶显示屏显示字符Spartan—3e

VERILOG

正确无误

module lcd_control(clk,reset,lcd_rs,lcd_rw,lcd_e,lcd_d,flash_ce); input clk;

input reset;

output lcd_rs;

output lcd_rw;

output lcd_e;

output flash_ce;

output[3:0]lcd_d;

reg lcd_rs,lcd_e;

reg [3:0]lcd_d;

assign flash_ce = 1;

assign lcd_rw = 0;

reg [19:0] delay_count;

reg [19:0] num_count;

parameter state1 =6'd1;

parameter state2 =6'd2;

parameter state3 =6'd3;

parameter state4 =6'd4;

parameter state5 =6'd5;

parameter state6 =6'd6;

parameter state7 =6'd7;

parameter state8 =6'd8;

parameter state9 =6'd9;

parameter state10=6'd10;

parameter state11 =6'd11;

parameter state12 =6'd12;

parameter state13 =6'd13;

parameter state14 =6'd14;

parameter state15 =6'd15;

parameter state16 =6'd16;

parameter state17 =6'd17;

parameter state18 =6'd18;

parameter state19 =6'd19;

parameter state20 =6'd20; parameter state21 =6'd21; parameter state22 =6'd22; parameter state23 =6'd23; parameter state24 =6'd24; parameter state25 =6'd25; parameter state26 =6'd26; parameter state27 =6'd27; parameter state28 =6'd28; parameter state29 =6'd29; parameter state30 =6'd30; parameter state31=6'd31; parameter state32 =6'd32; parameter state33 =6'd33; parameter state34 =6'd34; parameter state35=6'd35; parameter state36 =6'd36; parameter state37 =6'd37; parameter state38 =6'd38; parameter state39 =6'd39; parameter state40 =6'd40; parameter state41 =6'd41; parameter state42 =6'd42; parameter state43 =6'd43; parameter state44=6'd44; parameter state45 =6'd45; parameter state46=6'd46; parameter state47 =6'd47; parameter state48 =6'd48; parameter state49=6'd49; parameter state50 =6'd50; parameter state51=6'd51; parameter state52 =6'd52; parameter state53 =6'd53;

reg [5:0] state;

reg state_change;

always @(posedge clk,posedge reset) if(reset)

begin

state_change<=1'b0;

delay_count<=1'b1;

end

else if (delay_count==num_count-1)

begin

state_change<=1'b1;

delay_count<=1'b1;

end

else

begin

state_change<=1'b0;

delay_count<=delay_count+1'b1;

end

always @ (posedge state_change or posedge reset) if(reset)

begin

state<=state1;

num_count<=20'd750000;

end

else

case(state)

state1: begin

state<=state2;

num_count<=20'd4;

lcd_rs<=1'b0;

lcd_e<=1'b0;

lcd_d<=4'h3;

end

state2: begin

state<=state3;

num_count<=20'd12;

lcd_e<=1'b1;

end

state3: begin

state<=state4;

num_count<=20'd205_000;

lcd_e<=1'b0;

end

state4:// 重复写入功能设置指令4'h3;

begin

state<=state5;

num_count<=20'd4; lcd_d<=4'h3;

end

state5:begin

state<=state6;

num_count<=20'd12; lcd_e<=1'b1;

end

state6:begin

state<=state7;

num_count<=20'd5000; lcd_e<=1'b0;

end

state7:begin

state<=state8;

num_count<=20'd4; lcd_d<=4'h2;

end

state8:begin

state<=state9;

num_count<=20'd12; lcd_e<=1'b1;

end

state9:begin

state<=state10;

num_count<=20'd4000; lcd_e<=1'b0;

end

state10:begin

state<=state11;

num_count<=20'd4; lcd_rs<=0;

lcd_d<=4'h2;

end

state11:begin

state<=state12;

num_count<=20'd12; lcd_e<=1'b1;

end

state12:begin

state<=state13;

num_count<=20'd80; lcd_e<=1'b0;

end

state13:begin

state<=state14;

num_count<=20'd4; lcd_d<=4'h8;

end

state14:begin

state<=state15;

num_count<=20'd12; lcd_e<=1'b1;

end

state15:begin

state<=state16;

num_count<=20'd4000; lcd_e<=1'b0;

end

state16:begin

state<=state17;

num_count<=20'd4; lcd_d<=4'h0;

end

state17:begin

state<=state18;

num_count<=20'd12; lcd_e<=1'b1;

end

state18:begin

state<=state19;

num_count<=20'd80; lcd_e<=1'b0;

end

state19:begin

state<=state20;

num_count<=20'd4; lcd_d<=4'h6;

end

state20:begin

state<=state21;

num_count<=20'd12; lcd_e<=1'b1;

end

state21:begin

state<=state22;

num_count<=20'd4000; lcd_e<=1'b0;

end

state22:begin

state<=state23;

num_count<=20'd4; lcd_d<=4'h0;

end

state23:begin

state<=state24;

num_count<=20'd12; lcd_e<=1'b1;

end

state24:begin

state<=state25;

num_count<=20'd80; lcd_e<=1'b0;

end

state25:begin

state<=state26;

num_count<=20'd4; lcd_d<=4'hc;

end

state26:begin

state<=state27;

num_count<=20'd12; lcd_e<=1'b1;

end

state27:begin

state<=state28;

num_count<=20'd2000; lcd_e<=1'b0;

end

state28:begin

state<=state29;

num_count<=20'd82000; end

state29:begin

state<=state30;

num_count<=20'd4;

lcd_rs<=1'b0;

lcd_e<=1'b0;

lcd_d<=4'h8;

end

state30:begin

state<=state31;

num_count<=20'd12; lcd_e<=1'b1;

end

state31:begin

state<=state32;

num_count<=20'd80; lcd_e<=1'b0;

end

state32:begin

state<=state33;

num_count<=20'd4;

lcd_d<=4'h0;

end

state33:begin

state<=state34;

num_count<=20'd12; lcd_e<=1'b1;

end

state34:begin

state<=state35;

num_count<=20'd4000; lcd_e<=1'b0;

end

state<=state36;

num_count<=20'd4; lcd_rs<=1'b1;

lcd_d<=4'h5;

end

state36:begin

state<=state37;

num_count<=20'd12; lcd_e<=1'b1;

end

state37:begin

state<=state38;

num_count<=20'd80; lcd_e<=1'b0;

end

state38:begin

state<=state39;

num_count<=20'd4; lcd_d<=4'ha;

end

state39:begin

state<=state40;

num_count<=20'd12; lcd_e<=1'b1;

end

state40:begin

state<=state41;

num_count<=20'd2000; lcd_e<=1'b0;

end

state41:begin

state<=state42;

num_count<=20'd4; lcd_rs<=1'b1;

lcd_d<=4'h5;

end

state42:begin

state<=state43;

num_count<=20'd12; lcd_e<=1'b1;

end

state43:begin

num_count<=20'd80; lcd_e<=1'b0;

end

state44:begin

state<=state45;

num_count<=20'd4; lcd_d<=4'h4;

end

state45:

begin

state<=state46;

num_count<=20'd12; lcd_e<=1'b1;

end

state46:begin

state<=state47;

num_count<=20'd2000; lcd_e<=1'b0;

end

state47:begin

state<=state48;

num_count<=20'd4; lcd_d<=4'h4;

lcd_rs<=1'b1;

end

state48:begin

state<=state49;

num_count<=20'd12; lcd_e<=1'b1;

end

state49:begin

state<=state50;

num_count<=20'd80; lcd_e<=1'b0;

end

state50:begin

state<=state51;

num_count<=20'd4; lcd_d<=4'ha;

end

state51:begin

state<=state52;

num_count<=20'd12;

lcd_e<=1'b1;

end

state52:begin

state<=state53;

num_count<=20'd4000;

lcd_e<=1'b0;

end

state53:begin

state<=state29;

num_count<=20'd800;

end

default:begin

state<=state1;

num_count<=20'd800;

end

endcase

endmodule

约束条件:

NET"clk" LOC="C9"; NET"reset" LOC="L13";

NET"LCD_rs" LOC="L18"; NET"LCD_rw" LOC="L17"; NET"LCD_e" LOC="M18"; NET"LCD_d<0>" LOC="R15"; NET"LCD_d<1>" LOC="R16"; NET"LCD_d<2>" LOC="P17"; NET"LCD_d<3>" LOC="M15"; NET"flash_ce" LOC="D16";

vga图像显示控制

VGA图像显示控制器 一、摘要和关键词 摘要:VGA显示屏显示采用逐行扫描的方式解决,阴极射线枪发出电子束打在涂有荧光粉的荧光屏上,产生GRB基色,合成一个彩色像素。扫描从屏幕的左上方开始,从左到右,从上到下,逐行扫描,每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信号进行行同步;扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,并预备进行下一次的扫描。通过控制扫描计数器不同值时对RGB三原色信号的控制,来完成显示设计。 关键词:行列扫描行列同步RGB三原色控制 二、设计任务要求 实验目的 1. 熟练掌握VHDL 语言和QuartusII 软件的使用; 2. 理解状态机的工作原理和设计方法; 3. 掌握利用EDA 工具进行自顶向下的电子系统设计方法; 4. 熟悉VGA 接口协议规范。 实验要求: 设计一个VGA 图像显示控制器,达到如下功能: 显示模式为640×480×60HZ 模式; 用拨码开关控制R、G、B(每个2 位),使显示器可以显示64种纯色; 在显示器上显示横向彩条信号(至少6 种颜色); 在显示器上显示纵向彩条信号(至少8 种颜色); 在显示器上显示自行设定的图形、图像等。 选做:自拟其它功能。 三、实验原理 1、显示控制原理 常见的彩色显示器一般由阴极射线管(CRT)构成,彩色由GRB(Green Red Blue)基色组成。显示采用逐行扫描的方式解决,阴极射线枪发出电子束打在涂有荧光粉的荧光屏上,产生GRB基色,合成一个彩色像素。扫描从屏幕的左上方开始,从左到右,从上到下,逐行扫描,每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT、对电子束进行消隐,每行结束时,用行同步信号进行行同步;扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,并预备进行下一次的扫描。VGA显示控制器控制CRT显示图象的过程如图1所示

LCD-VGA 嵌入式微型显示控制系统软件设计说明书

编号: 版本: LCD-VGA微型显示驱动电路 软件详细设计说明书 编写: 2015年05月18日 校对: 2015年06月12日 审核: 2015年06月15日 批准: 2015年06月20日 目录 一、项目背景 (2) 二、软件功能介绍 (2) 三、软件特性介绍 (2) 四、软件的运行环境介绍 (2) 五、系统的物理结构 (2) 六、系统总结构 (3) 七、系统各个模块介绍 (5) 七、算法设计 ............................................................ 错误!未定义书签。 八、接口设计 ............................................................ 错误!未定义书签。 九、需求规定 (10) 十、测试计划 (10)

一、项目背景 随着便携式多媒体终端需求量迅速增加,在视频解码等方面对芯片低功耗的要求也越来越高。因此,只有将模拟视频信号转换成为符合ITU-R BT、656标准的数字信号,才可方便地利用FPGA或者DSP甚至PC机来进行信号处理。本模块就就是利用TI公司的超低功耗视频解码芯片TVP5150对视频信号A/D解码,由单片机通过I2C总线控制,实现驱动VGA级别(640X480)的微型显示模组,并预留地址数据等接口,作为模块验证以及后续数字信号处理之用。 二、软件功能介绍 本系统主要由视频转换模块TVP5150、按键模块、8051内核单片机与液晶图形缩放引擎(A912)组成,系统框图6、1所示。STC单片机通过I2C接口控制其余三部分模块的工作,视频解码IC把复合视频转换成标准8位的ITU-RBI、656格式的数字信号传输到A912,A912通过解码矩阵电路把解调后的信号转换成三基色RGB信号,最后通过增益/偏移控制、伽马校正、抖动处理与图形缩放变RGB信号输出到液晶屏、 三、软件特性介绍 以STC单片机 MCU为控制中心,以视频转换芯片TVP5150为硬件核心。电路将模拟视频信号编码为ITU-R BT.656类型的数据流。单片机管理整个工作流程,缩放引擎芯片进行图像处理,把数据流转换为RGB信号,最终在液晶屏上获得显示图像。该显示器结构轻薄,电路简单,性能可靠,图像显示清晰稳定。 四、软件的运行环境介绍 软件应在以下环境中运行: 硬件环境:选用256字节 RAM+1K AUX-RAM、4KB ROM、S0P 型号为STC11F04E 单片机 计算机软件:采用C语言进行编译并生成相应执行文件格式,在STC11F04E 单片机上运行。 五、系统的物理结构 微型显示嵌入式软件中的硬件就是由主控、显示驱动模块、按键输入模块、视频解码器模块TVP5150组成,其物理结构图如下图所示

实验五vga图显示控制

实验五 VGA图像显示控制 一实验目的 1.进一步掌握VGA显示控制的设计原理。 2.了解图像的存储和读取方法。 3.进一步掌握4×4键盘或PS/2键盘接口电路设计方法。 4.掌握状态机设计复杂控制电路的基本方法。 二硬件需求 1.EDA/SOPC实验箱一台。 三实验原理 VGA图像显示控制利用实验三中学习的《VGA显示控制模块》显示存储于ROM中的图像数据。 要显示的图像是四块64*64像素大小的彩色图片,通过键盘控制可以选择不同的图片显示。图像可以在屏幕上移动(水平和垂直方向每帧分别移动“H_Step”点和“V_Step”点),通过键盘改变“H_Step”和“V_Step”的值即可改变其移动速度和方向。图像碰到屏幕边沿会反弹回去。如图5.1所示 H_Step V_Step 图5.1 VGA图像显示控制示意图 实验中要用到4×4键盘、VGA显示控制、ROM等模块,在《实验三常用模块电路的设计》中已经讲述,可以直接使用已做好的模块(可能需要修改部分代码)。键盘也可以使用PS/2接口键盘,这样可以输入更多的字符。 四实验内容 1、图5.2是整个设计的顶层电路。

图5.2 VGA图像显示控制顶层电路图 2、实验三中学习的几个模块 ①“Read_Keyboard”模块与实验三中的4×4键盘模块一致; ②四个ROM模块使用宏功能模块实现,并设置其内存初始化文件分别为“FBB.mif”、“dog.mif”、“cat.mif”、“flower.mif”,如图5.3所示。当然也可以用其他图片(大小为64*64)使用“BmpToMif”软件生成对应的“mif”文件,如图5.4所示。

文字处理-考题

单选题: 1、在Word 2010中,若想将“a1.doc”保存为新文件,名为“a2.docx”,应______。 A.选择【文件】→“保存”命令 B.选择【文件】→“另存为”命令 C.单击快速访问工具栏上的“保存”按钮 D.按Ctrl+S键 答案:B 2、在Word 2010中打开了一个文档并对文档做了修改,进行关闭文档操作后______。 A.文档被关闭,并自动保存修改后的内容 B.文档不能关闭,并提示出错 C.文档被关闭,修改后的内容不能保存 D.弹出对话框,并询问是否保存对文档的修改 答案:D 3、在“资源管理器”中双击一个*.docx文件,将______。 A.在打印机上打印该文件的内容 B.在资源管理器内显示文件的内容 C.打开“记事本”程序窗口 D.打开Word 2010程序窗口 答案:D 4、在Word 2010中编辑文档时,只允许使用页眉页脚的视图是______。 A.大纲视图 B.草稿视图 C.页面视图 D.以上都不对 答案:C 5、在Word 2010中,“保存”命令存盘的是______。 A.整个文件内容 B.剪贴板上的内容 C.选中的文本内容 D.选中的段落存盘 答案:A 6、在Word 2010中,下述关于分栏操作的说法,正确的是______。 A.任何视图下均可看到分栏效果 B.可以将指定的段落分成指定宽度的两栏 C.设置的各栏宽度和间距与页面宽度无关 D.栏与栏之间不可以设置分隔线 答案:B 7、在Word 2010中“打开”文档的意思是______。 A.将指定的文档从内存中读入,并显示出来 B.为指定的文档打开一个空白窗口 C.将指定的文档从外存中读入,并显示出来

VGA显示控制

基于FPGA 的VGA显示控制 摘要 VGA(Video Graphics Array)即视频图形阵列,是IBM公司1987年推出的一种传输标准,具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛应用。 本次课程设计是基于FPGA和主芯片为 EP4CE30F23C8N的ALTER公司的开发板Cyclone IV来实现的。数字图像信息在VGA接口显示器正确、完整地显示,涉及到时序的构建和数字图像信息的模拟化两方面,提出一种能够广泛应用的VGA显示接口方案,详细阐述了数字图像数据DA转化并输出到VGA接口显示器显示的方法,其中包括接口的硬件设计、视频DA转换器的使用方法、通过FPGA构造VGA时序信号的方法等等。方案可以应用于各种仪器,数字视频系统、高分辨率的彩色图片图像处理、视频信号再现等。 课设主要用到的芯片是ADV7123,它是一款高速、高精度数模转换芯片。拥有三路十位D/A转换器,能够将代表颜色的数据锁存到数据寄存器中,然后通过D/A 转换器转换成模拟信号输出,得到我们要的色彩。

VGA显示的硬件设计和原理 1.1 FPGA主芯片 课程设计所用开发板的主芯片是EP4CE30F23C8N——Cyclone IV,其由Altera公司开发,值得注意的是该开发板所支持的QUARTUS II的版本较高,并且11.0的版本较12.0的版本编译好的程序更好下载。 图-1 1.2 ADV7123 实现VGA的控制显示主要用到的芯片就是ADV7123,ADV7123由完全独立的三个I0位高速D/A转换器组成,RGB(红绿蓝)视频数据分别从R9~R0、G9~G0、B9~B0输入,在时钟CLOCK的上升沿锁存到数据寄存器中,然后经告诉D/A转换器转换成模拟信号。三个独立的视频D/A转换器都是电流型输出,可以接成差分输出,也可以接成单端输出。DE2-115上按单端输出,在模拟输出端用75欧姆电阻接地,以满足工业标准。低电平有效的BLANK信号为复合消隐信号,当BLANK为低电平时,模拟视频输出消隐电平,此时从R9~R0,G9~G0,B9~B0输入的所有数据被忽略。BLANK和SYNC都是在CLOCK 的上升沿被锁存的。 图-2是ADV7123的功能原理图:

数电实验-vga图像显示控制

数字电路综合实验 报告 学校:北京邮电大学 学院:信息与通信工程学院 专业:通信工程 班级:2008211115 学号:08210460 班内序号:30 姓名:唐秋月 2011年1月5日

VGA图像显示控制器 一、摘要和关键词 摘要:VGA显示屏显示采用逐行扫描的方式解决,阴极射线枪发出电子束打在涂有荧光粉的荧光屏上,产生GRB基色,合成一个彩色像素。扫描从屏幕的左上方开始,从左到右,从上到下,逐行扫描,每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信号进行行同步;扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,并预备进行下一次的扫描。通过控制扫描计数器不同值时对RGB三原色信号的控制,来完成显示设计。 关键词:行列扫描行列同步RGB三原色控制 二、设计任务要求 实验目的 1. 熟练掌握VHDL 语言和QuartusII 软件的使用; 2. 理解状态机的工作原理和设计方法; 3. 掌握利用EDA 工具进行自顶向下的电子系统设计方法; 4. 熟悉VGA 接口协议规范。 实验要求: 设计一个VGA 图像显示控制器,达到如下功能: 显示模式为640×480×60HZ 模式; 用拨码开关控制R、G、B(每个2 位),使显示器可以显示64种纯色; 在显示器上显示横向彩条信号(至少6 种颜色); 在显示器上显示纵向彩条信号(至少8 种颜色); 在显示器上显示自行设定的图形、图像等。 选做:自拟其它功能。 三、实验原理 1、显示控制原理 常见的彩色显示器一般由阴极射线管(CRT)构成,彩色由GRB(Green Red Blue)基色组成。显示采用逐行扫描的方式解决,阴极射线枪发出电子束打在涂有荧光粉的荧光屏上,产生GRB基色,合成一个彩色像素。扫描从屏幕的左上方开始,从左到右,从上到下,逐行扫描,每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT、对电子束进行消隐,每行结束时,用行同步信号进行行同步;扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,并预备进行下一次的扫描。VGA显示控制器控制CRT显示图象的过程如图1所示

文件操作与字符处理

C语言程序设计综合性实验 实验题目:文件操作与字符处理 实验班级:2011级信管专业3班 学生学号: 学生姓名: 任课老师: 提交时间:2012-02-18 华南农业大学信息(软件)学院

综合性实验A(文件操作与字符处理)实验报告 1. 题目及题目分析 1.1 问题描述 在当前目录下存在文件名为“case1.in”(其中case后为数字1,不是字母i,写错提交后会判错)的文本文件,其内容为一篇英文文章(以EOF作为结束标志)。现要求读取该文本文件内容,统计该文本文章中每个单词出现的次数,并输出出现次数最多的前5个单词及其出现次数(按出现次数由多到少的顺序输出,次数相同时按字典顺序输出,不足5个单词时,按序输出全部单词)。程序中注意如下细节: (1)空格、标点符号与回车键起到分隔单词的作用; (2)名词缩写算一个单词; (3)单词不区分大小写; (4)输出时单词全使用小写; (5)包含多段文字,单词数不超过10000,每个单词不超过20个字符; (6)数字不算单词; (7)文中不包含连字符及类似I’m等情况; (如case1.in内容如下) I am a student. My school is SCAU. It is a beautiful university. I like it. (在屏幕上输出结果如下) a 2 i 2 is 2 it 2 am 1 1.2功能分析 简单的说,这个实验要求我们读取一篇存储在一个文本文件中英文文章中的所有单词,然后统计其中单词出现的次数,并把其中出现最多的五个单词输出来并输出其出现的次数。我们的任务是怎样把这篇英文文章中的单词读取出来,并把它的出现次数统计出来,并把其中出现最多的5个单词输出来。然后我们再深度处理,按照题目要求作修改。我们怎样才能把一个个单词读取出来,因为有些单词是不止一个字母的,我们又要怎样处理?我们又要怎样把这不止一个字母的单词通过比较来判断是否一个单词?还有怎样把出现次数最多的5个单词输出来,这要怎样处理?这些是比较难处理的。 2. 设计思路 1.1总体结构设计 要实现题目中的要求,我们要把程序设计成几个模块来实现。第一个模块,就是用来读取英文文章中的单词,这就要用到文件这些知识,因为单词可能不止一个字母,所以我们先要用数组来保存,这就要用到数组的知识。读取单词之后怎么样统计出现的次数,这又要另设一个模块。到最后,判断出现次数最多的单词然后输出来是一个模块。还有,在一开始要设计一个结构体来保存单词,这是一个模块。所以,一共设计了4个模块。其中,在第三个模块又要分开几个小方

基于FPGA的VGA图像显示与控制

基于FPGA的VGA图像显示与控制 课程要求:采用verilog语言,基于FPGA的VGA图像显示,即能够在显示器上实现动态彩色图像的显示。 VGA显示接口的理论分析:硬件采用CycloneII系列的EP2C20Q240C8N,它含有240个引脚。对于VGA的显示器遵循800*600@75模式,其中800是指每行中显示的像素的个数,而600是指屏幕每一列所包含的像素的个数。 VGA工业标准规定了具体地,在扫描过程中的时序图如下: 行扫描时序图 场扫描时序图 每场信号对应625个行周期,其中600行为图像显示行,每场有场同步信号,该脉冲宽度为3个行周期的负脉冲;每行显示行包括1056个点时钟,其中800点为有效显示区,每行有一个行同步信号的负脉冲,该脉冲宽度为80个点时钟。这样我们可以知道,行频为625*75=46857Hz。需要的点时钟的频率为:625*1056*75=49.5MHz约为50MHz。由上图可知,实际上在真正的实现过程中,每一行扫描所花的时间实际上比显示一行的像素所花的时间多了1056-800=256个像素点。同理,每一场的扫描时间多了625-600=25个行时间。 设计思路: 我们采用BmpToMif工具把BMP格式的图像转换为.mif文件。利用QuartusII7.2自带的MegaWizard Plug-In Manager产生一个ROM存储器,并用其来初始时.mif 文件。即将图像文件写入到存储器里面。然后利用编程来控制图像的显示。 设计步骤: 1、工程创建:创建一个Project取名字为vga,在创建工程的向导中选着CycloneII 系列的EP2C20Q240C8。 2、代码书写:新建一个Verilog HDL File编写程序代码如下: `timescale 1ns/1ps module tupian (clk,rst_n,hsync,vsync,vga_r,vga_g,vga_b,addr); input clk,rst_n;

文字处理题目

1、打开文件(无仿真复习方案\文字处理素材\1\exam1.docx),并按照下列要求进行排版。 (1)将标题字体设置为“华文行楷”,字形设置为“常规”,字号设置为“小初”且居中显示。 (2)将“——陶渊明”的字体设置为“隶书”、字号设置为“小三”,文字右对齐加双曲线边框,线型宽度应用系统默认值显示。 (3)将正文行距设置为25磅。 操作完成后以原文件名保存。 2、打开文件(无仿真复习方案\文字处理素材\2\exam2.docx),并按照下列要求进行排版。 (1)设置第一段首字下沉。 (2)将第一段(除首字)字体设置为“楷体”,字号设置为“四号”。 (3)将第二段字体设置为“方正舒体”,字号设置为“小四号”,加双横线下划线。 3、打开文件(无仿真复习方案\文字处理素材\3\exam3.docx),并按照下列要求进行排版。 (1)将标题“闲情赋”字体设置为“幼圆”,字号设置为“小二”,居中显示。

(2)将“序——”和“正文——”,字体设置为“隶书”,字号设置为“小四号”,添加项目符号“”。 (3)将“序”的正文“左缩进”设置为“2字符”,“行距”设置为“17磅”。 操作完成后以原文件名保存。 4、打开文件(无仿真复习方案\文字处理素材\4\exam4.docx),并按照下列要求进行排版。 (1)将正文字体设置为“隶书”,字号设置为“四号”。 (2)将正文内容分成偏左的两栏。设置首字下沉,将首字字体设置为“华文行楷”,下沉行数为“3”。 (3)插入一幅剪贴画,将环绕方式设置为“紧密型”。 操作完成后以原文件名保存。 5、打开文件(无仿真复习方案\文字处理素材\5\exam5.docx),并按照下列要求进行排版。 (1)将标题段(“上网方式比较”)设置为小二号、蓝色、外部阴影(向右偏移)、黑体、倾斜、居中、字符间距加宽2磅,并为文字添加黄色边框。 (2)将其他段落分为等宽的两栏,栏宽为18字符,栏间加分隔线。

字符串+文件处理函数

C语言标准输入输出:待续 printf 格式输出到屏幕//把指定内存空间中内容格式输出到屏幕; fprintf 格式输出到磁盘// scanf 从屏幕格式输入//从stdin中格式读入到给定变量空间中 fscanf 从磁盘格式输入 putchar 字符输出到屏幕 puts 字符串输出到屏幕 fputc 字符输出到磁盘 fputs 字符串输出到磁盘 getchar 从屏幕得到一个字符//从stdin中读取一个字符,返回字符ASCII值gets 从屏幕得到一个字符串//从stdin中读取字符串,返回内存空间位置fgetc 从磁盘得到一个字符 fgets 从磁盘得到一个字符串 fputc, fputs, putc, putchar, puts - output of characters and strings SYNOPSIS #include int fputc(int c, FILE *stream); int fputs(const char *s, FILE *stream); int putc(int c, FILE *stream); int putchar(int c); int puts(const char *s); DESCRIPTION fputc() writes the character c, cast to an unsigned char, to stream. fputs() writes the string s to stream, without its terminating null byte ('\0'). putc() is equivalent to fputc() except that it may be implemented as a macro which evaluates stream more than once. putchar(c); is equivalent to putc(c, stdout). puts() writes the string s and a trailing newline to stdout. RETURN V ALUE fputc(), putc() and putchar() return the character written as an unsigned char cast to an int or EOFon error.

综合实验:文件操作与字符处理

高级语言程序设计综合性试验 文件操作与字符处理 一、题目与运行说明 Description 在当前目录中存在文件名为"case1.in"(其中case后为数字1,不是字母l,写错提交后会判错)的文本文件, 其内容为一篇英文文章(以EOF作为结束标志)。现要求读取该文本文件内容,统计文章中每个单词出现的次数, 并输出出现次数最多的前5个单词及其出现次数(按出现次数由多到少的顺序输出,次数相同时按字典顺序输出, 不足5个单词时,按序输出全部单词)。程序中注意如下细节: (1)空格、标点符号与回车符起到分隔单词的作用。 (2)文章一行的末尾可能有连字符,出现连字符时,该行最末的字符串与下行最先出现的字符串构一个单词; (3)名词缩写算一个单词; (4)数字不算单词; (5)单词不区分大小写; (6)输出时单词全使用小写; (1)使用变量: struct word { char b[21]; intnum; }a[10000]; charch; inti=0,j=0,t,m,n; struct word temp; FILE *fp; (2)输入形式和输入范围: 无 (3)数据输出形式: xnum (4)程序能达到的功能以及出错处理: 统计文章中每个单词出现的次数, 并输出出现次数最多的前5个单词及其出现次数(按出现次数由多到少的顺序输出,次数相同时按字典顺序输出, 不足5个单词时,按序输出全部单词)。

二、程序设计思路:

三、程序清单 #include #include struct word { char b[21]; intnum; }a[10000]; int main() { charch; inti=0,j=0,t,m,n; struct word temp; FILE *fp; fp=fopen("case1.in","r"); while((ch=fgetc(fp))!=EOF) /*将文本中的单词读入结构体中,连接有连字符的单词,将大写改小写*/ { if((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z')) { a[i].b[j]=ch; if(ch>='A'&&ch<='Z') {ch=ch+32; a[i].b[j]=ch; } j++; } else if(ch=='-') if((ch=fgetc(fp))!='\n') {i++;

VGA 图像显示控制器设计报告

《电子设计自动化》 课程设计 题目:VGA 图像显示控制器 院(系): 年级: 班级: 姓名: 学号: 指导老师:

摘要:本文介绍了一种利用可编程逻辑器件实现VGA图像显示控制的方法,阐述了VGA图像显示控制器中VGA显像的基本原理以及功能演示,利用可编程器件FPGA设计VGA图像显示控制的VHDL设计方案,并在Altera公司的QuartusII 软件环境下完成VGA模块的设计。而且给出了VGA模块的设计思路和顶层逻辑框图。最终实现VGA图像显示控制器,VGA图像控制器是一个较大的数字系统,传统的图像显示的方法是在图像数据传输到计算机,并通过显示屏显示出在传输过程中,将图像数据的CPU需要不断的信号控制,所以造成CPU的资源浪费,系统还需要依靠计算机,从而减少了系统的灵活性。FPGA芯片和EDA设计方法的使用,可根据用户的需求,为设计提供了有针对性的VGA显示控制器,不需要依靠计算机,它可以大大降低成本,并可以满足生产实践中不断改变的需要,产品的升级换代和方便迅速。

目录 设计思路 ............................................................................................. - 1 - 一、系统设计 ........................................................................... - 1 - 1.设计要求 ........................................................................... - 1 - 2.设计方案 ........................................................................... - 1 - 二、单元电路设计.................................................................... - 2 - 1.VGA显示控制模块............................................................ - 3 - 2.数据存储模块.................................................................... - 7 - 3.锁相环模块........................................................................ - 8 - 三、软件设计 ......................................................................... - 10 - 1.VHDL语言........................................................................ - 10 - 2.Quartus II简介................................................................. - 11 - 3.硬件开发工具.................................................................. - 12 - 四、硬件验证 ......................................................................... - 14 -附录................................................................................................... - 15 - 1.程序 ................................................................................. - 15 - 2.仪器设备名称型号.......................................................... - 17 - 3.系统的性能指标.............................................................. - 18 -

课程设计基于FPGA的VGA图像汉字显示及-PS-2键盘控制设计与应用 精品

题目基于FPGA的VGA图像汉字显示及PS/2键盘控制设计与应用 1.方案设计及工作原理 1.1 VGA模块方案设计 采用模块化设计方法,我们对VGA 图形控制器按功能进行层次划分。本设计的VGA控制器主要由以下模块组成:VGA 时序控制模块、ROM 内存地址控制模块、ROM内存模块、按键扫描控制模块。如图 1 所示。 图1.方案模块框图 1.2工作原理 VGA时序控制模块ROM内存地址控制模块ROM 按键扫描控制模块50MHz 5Hz addr data 首坐标xx、yy VGA 接口RGB HS、VS D/A CRT 根据VGA的显示协议,可以选择不同的显示分辨率。本设计选择的是800*600的分辨率。根据相应协议,在“VGA时序控制模块”对行扫描信号HS和场扫描信号VS进行相应的时序控制(具体控制详细信息见“VGA驱动原理”资料文档)。“ROM内存地址控制模块”根据“按键扫描控制模块”获得的图片显示首坐标xx、yy信息和“VGA时序控制模块”传送过来的ht(列计数器值)、vt(行计数器值)及相关控制信号计算出正确的内存地址,从rom中取出所需要的像素点的三基色数据。

1.3 PS/2接口电路的工作原理 PS/2协议和接口最初是IBM公司开发并推广使用的一种应用于键盘/鼠标的协议和接口,PS/2键盘按键接口是6芯的插头与PC机的键盘相连接,插头、插座定义如图所示。 键盘/鼠标接口的数据线和时钟线采用集电极开路结构,平时都是高电平当这些设备等待发送数据时,它首先检查clock是否为高。如果为低,则认为PC抑制了通讯,此时它缓冲数据直到获得总线的控制权。如果clock为高电平,设备则开始向PC发送数据。一般都是由ps2设备产生时钟信号。发送按帧格式。数据位在clock为高电平时准备好,在clock下降沿被PC读入。图3所示是按下Q 键的时序图“Q”键的扫描码从键盘发送到计算机(通道A是时钟信号,通道B 是数据信号)。因本设计只需进行控制,所以PS/2模块并未设计转码功能。 2.模块设计及仿真 2.1 VGA显示模块 图片想要在显示器上显示出来,它主要需要5个信号,行同步信号(HS)、场同步信号(VS)和RGB三基色信号。 VGA时序控制模块是须严格按照VGA

论文格式设置-文件的处理

论文格式设置-文件的处理

页眉页脚 一、我们在平时使用Word编辑、打印文件时常会用到“页面设置”命令 1.最通常的操作方法是:执行“文件→页面设置”菜单命令。 2.将Word的“页面设置”命令放进Word右键菜单:首先,打开Word,执行“工具→自定义”菜单命令,在弹出的“自定义”对话框中,单击“工具栏”选项卡,在其下的下拉列表框中选择“快捷菜单”选项。此时,屏幕上便会出现“快捷菜单”工具栏,再单击“命令”选项卡,在“类别”下拉列表框中选择“文件”项,单击“命令”下拉列表框中的“页面设置”后,用鼠标左键将“页面设置”选项拖动至“快捷菜单”工具栏的[文字]按钮上。这时,会出现“文字”下拉菜单,继续拖动“页面设置”至“文字”子菜单的“字体”命令上方后松开鼠标左键,然后再单击“自定义”对话框中的[关闭]按钮,退出设置。至此,我们已经将“页面设置”放进了Word右键菜单,只要在Word文本编辑区单击鼠标右键,便可在弹出的快捷菜单中看到“字体”上面的“页面设置”命令了。

二、奇偶页设置“文件”,“页面设置”,“版式”√选“奇偶页不同”后“确定”,“插入”,“页码”“对齐方式”选“外侧”后“确定” 三、页眉页脚其实Word对页眉和页脚的操作是可以针对节这个单位的。所以,我们首先应该做的就是让首页、目录、正文部分及附录部分分别处于不同的节当中。操作的方法是:先将鼠标定位在正文开始的地方,点击菜单命令“插入→分隔符…”。选中“分节符类型”中的“下一页”单选项(要注意不能用上面的分页符代替)。在附录部分开始的地方,用同样的方法也插入一个分节符。要注意的是,如果以前在正文开始处和附录开始处曾经使用过“分页符”来进行强制分页的话,也应该删除此分页符。页眉页脚设置1. 首页和目录首页和目录既然不想要页眉和页脚,那么我们就不需要什么操作。2. 页脚设置(1)先将鼠标定位于正文部分某页,点击菜单命令“视图→页眉和页脚”,显示“页眉和页脚”工具栏。此时该节的页眉处于可编辑状态。(2)切换到页脚编辑,先点击工具栏上的〔链接到前一节〕按钮,使其与前一节“断开联系”(页脚上方右侧的“与上一节相同”字样消失)。(3)点击菜

基于FPGA的VGA彩条图像显示

基于FPGA的VGA彩条图像显示 1. 设计的任务及内容 在电子电路领域中,设计自动化工具已经被广大电子工程师所接受,它必将取代人工设计方法并成为主要的设计手段。目前,Verilog语言已经成为各家EDA工具和集成电路厂商认同和共同推广的标准化硬件描述语言,随着科学技术的迅猛发展,电子工业界经历了巨大的飞跃。集成电路的设计正朝着速度快、性能高、容量大、体积小和微功耗的方向发展,这种发展必将导致集成电路的设计规模日益增大。 该实训的设计是用Verilog语言硬件描述语言设计出一个VGA图象显示控制器,用Verilog 硬件描述语言进行编程,把Verilog语言描述的VGA图象显示控制器所需的程序在QuartusⅡ软件环境下进行模拟仿真,以此来验证所设计的结果是否满足设计的要求。在结果符合要求的情况下把Verilog程序下载到FPGA器件上,利用FPGA器件内部存储器存储所需要的数据,再通过VGA接口输出到显示器上,从而达到设计的要求。 VGA显示器因为其输出信息量大,输出形式多样等特点已经成为现在大多数设计的常用输出设备,FPGA以其结构的优势可以使用很少的资源产生VGA的各种控制信号。 CRT显示器作为一种通用型显示设备,如今已广泛应用于我们的工作和生活中。与嵌入式系统中常用的显示器件相比,它具有显示面积大、色彩丰富、承载信息量大、接口简单等优点,如果将其应用到嵌入式系统中,可以显著提升产品的视觉效果。如今随着液晶显示器的出现,越来越多的数字产品开始使用液晶作为显示终端。但基于VGA标准的显示器仍是目前普及率最高的显示器[1]。若驱动此类显示器,需要很高的扫面频率,以及极短的处理时间,正是由于这些特点,所以可以用FPGA来实现对VGA显示器的驱动。本次专业课程设计即选用FPGA 来实现VGA的显示。 随着FPGA的不断发展及其价格的不断下降,FPGA的可编程逻辑设计的应用优势逐渐显现出来。现在,越来越多的嵌入式系统选择了基于FPGA的设计方案。在基于FPGA的大规模嵌入式系统设计中,为实现VGA显示功能,既可以使用专用的VGA接口芯片如SPX7111A等,也可以设计和使用基于FPGA的VGA接口软核。虽然使用VGA专用芯片具有更稳定的VGA时序和更多的显示模式可供选择等优点,但设计和使用VGA接口软核更具有以下优势:(1)使用芯片更少,节省板上资源,减小布线难度;(2)当进行高速数据传输时,具有更小的高频噪声干扰;(3) FPGA(现场可编程门阵列)设计VGA接口可以将要显示的数据直接送到显示器,节省了计算机的处理过程,加快了数据的处理速度,节约了硬件成本。 1.1 FPGA简介 FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分[9]。FPGA的基本特点主要有: 1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。 2)FPGA可做其它全定制或半定制ASIC电路的中试样片。 3)FPGA内部有丰富的触发器和I/O引脚。 4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 1

VGA图形显示控制器的设计与实现

8.8 VGA图形显示控制器的设计与实现 1.实验目的 (1)进一步熟悉QuartusⅡ软件的使用。 (2)掌握数字系统的设计方法。 (3)掌握VGA显示的原理和接口协议规范。 (4)熟悉实验平台的使用。 2.设计目标 设计实现一个VGA图形显示控制器,控制图像信号传输到CRT显示器上显示出来。要求显示模式为640×480×60Hz,通过拨码开关控制R、G、B使显示器可以显示64种纯色,并可在显示器上显示横向彩条信号(至少6种颜色)、纵向彩条信号(至少8种颜色)和棋盘格信号。 3.设计思路 VGA显示控制器控制图像信号通过电缆传输到CRT显示器上并显示出来。CRT通过帧同步信号和行同步信号控制电子枪的电子束逐行逐点的扫描,把电子打在荧光屏上,采用的是动态扫描的显示方式。但是CRT是模拟方式的,需要通过数/模转换电路实现控制,VGA 显示控制器控制过程如图6-6所示。 图6-6 VGA显示控制器示意图 电子枪的扫描在行同步、场同步信号控制下,实现水平扫描、水平回归、垂直扫描、垂直回归等过程,如图6-7所示。整个扫描过程为水平扫描结束后应该有个消隐信号使电子枪回归到行的开始并且进行场同步扫描,当扫描完一帧后还要有个场消隐信号使电子枪回归到

帧画面的开始。 图6-7 电子枪的扫描过程 设计VGA 控制器的关键是产生符合VGA 接口协议规定的行同步和场同步信号,它们扫描时序如图6-8所示。 图6-8 VGA信号时序图 根据上述介绍,结合设计任务要求可以看出VGA显示控制器只需要解决行场扫描和颜

色输出两个问题,设计组成框图如图6-9所示。 图6-9 系统逻辑框图 由于行场扫描时间是固定的,只要在这段时间内扫描不同的点数,就产生不同的分辨率。由于要显示64色,这就要求R、G、B中的每个通道需要有四色,对于二进制编码来说每个通道就需要两位拨码开关,然后采用查找表的方法,先将颜色信息编个表,然后根据行场计数器的值去查找颜色信息表中的值,就可将颜色信息输出。

matlab文件操作及读txt文件及字符串操作

转载,网上摘录)在使用MATLAB遇到问题时,在网上搜索到很多有用的知识,比起看帮助文件的英文要省力的多了 matlab文件操作 文件操作是一种重要的输入输出方式,即从数据文件读取数据或将结果写入数据文件。MATLAB提供了一系列低层输入输出函数,专门用于文件操作。 1、文件的打开与关闭 1)打开文件 在读写文件之前,必须先用fopen函数打开或创建文件,并指定对该文件进行的操作方式。fopen函数的调用格式为: fid=fopen(文件名,‘打开方式’) 说明:其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。文件名用字符串形式,表示待打开的数据文件。常见的打开方式如下: ‘r’:只读方式打开文件(默认的方式),该文件必须已存在。 ‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。 ‘w’:打开后写入数据。该文件已存在则更新;不存在则创建。 ‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。 ‘a’:在打开的文件末端添加数据。文件不存在则创建。 ‘a+’:打开文件后,先读入数据再添加数据。文件不存在则创建。 另外,在这些字符串后添加一个“t”,如‘rt’或‘wt+’,则将该文件以文本方式打开;如果添加的是“b”,则以二进制格式打开,这也是fopen函数默认的打开方式。 2)关闭文件 文件在进行完读、写等操作后,应及时关闭,以免数据丢失。关闭文件用fclose函数,调用格式为: sta=fclose(fid) 说明:该函数关闭fid所表示的文件。sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回-1。如果要关闭所有已打开的文件用fclose(‘all’)。 2、二进制文件的读写操作 1)写二进制文件 fwrite函数按照指定的数据精度将矩阵中的元素写入到文件中。其调用格式为: COUNT=fwrite(fid,A,precision) 说明:其中COUNT返回所写的数据元素个数(可缺省),fid为文件句柄,A用来存放写入文件的数据,precision代表数据精度,常用的数据精度有:char、uchar、int、long、float、double等。缺省数据精度为uchar,即无符号字符格式。 例6.8 将一个二进制矩阵存入磁盘文件中。 >> a=[1 2 3 4 5 6 7 8 9]; >> fid=fopen('d:\test.bin','wb') %以二进制数据写入方式打开文件 fid = 3 %其值大于0,表示打开成功 >>fwrite(fid,a,'double') ans = 9 %表示写入了9个数据 >>fclose(fid) ans =

基于FPGA的VGA显示控制器设计

课程设计 开课学期:第六学期 课程名称:FPGA课程设计学院: 专业: 班级: 学号: 姓名: 任课教师: 2015 年7 月20 日

基于FPGA的VGA显示控制器设计 一、设计方案 1. 设计的主要内容 此设计要求实现某一分辨率下(如640*480@60Hz)的VGA显示驱动,能简单显示彩条和图像等。能够熟悉VGA接口协议、工作时序及VGA工作原理,并计算出合适的时序,对原始时钟进行分频处理以获取符合时序要求的各率,此外须要显示的图像等可存储于外部存储器,运行时,从外部存储器读取显示数据。将图像控制模块分为这样几部分;二分频电路、地址发生器、VGA时序控制模块、图像数据存储器读出模块.如图1-1所示: 图1-1 VGA显示控制系统框图 2. 设计原理 显示控制器是一个较大的数字系统,采用模块化设计原则、借鉴自顶向下的程序设计思想,进行功能分离并按层次设计。利用VHDL硬件描述语言对每个功能模块进行描述,并逐一对每个功能模块进行编译仿真,使顶层VGA显示控制器的模块实体仿真综合得以顺利通过。其中二分频把50MHZ实在频率分成25Mhz并提供给其它模块作为时钟;VGA时序控制模块用于产生640X480显示范围,并控制显示范围和消隐范围以及产生水平同步时序信号HS和垂直同步时序信号VS的值;存储器读出模块提供给SRAM地址并按地址读出八位数据(灰度值Y),然后得到R、G、B的值(若Y>中间值,则R=G=B=1;

否则R=G=B=0),并把R、G、B 的值通过VGA接口传送给VRT显示器[9]。地址发生器接收所要显示的数据读取控制信号,产生与图像数据ROM模块对应得地址,根据VGA显示的像素分布,确定读取对应数据的地址,由于所显示的图形每行需256个像素,而ROM中每个地址存储的数据时64位,故每4个地址取出的数据用于一行的显示。VGA显示控制模块:主要分为时序信号和数据颜色的控制,imgrom模块即图像数据ROM模块,在这一模块中需要解决的是图像数据BMP位图文件的来源及转换成HEX文件,利用Image2lcd 对本次设计图片处理得到BMP文件,最终在Quartus II得到HEX文件,在已设置LPM_ROM 进行加载图像数据。注意其数据线宽为3,恰好可以放置RGB三信号数据,因此此设计图像仅能显示8种颜色。此外注意各模块对图像显示的区域控制。 二、系统实现 此系统设计分主要由,二分频模块,地址译码器模块,VGA显示控制模块及图像数据ROM来实现对图像的显示。计数器模块设计简单,用计数器计数来控制,以实现某一个区域显示相应的颜色。具体以VGA显示模块和图像数据ROM为例进行详细分析与操作。 1. VGA显示控制模块 VGA显示控制模块主要通过VGA时序产生640*480显示范围,并控制和消隐范围以及产生水平同步时序信号hs和垂直同步时序信号vs的值。 一个独立的计数器产生垂直时序信号。垂直同步计数器在每个HS脉冲信号来临时自动加1,译码值产生VS信号。计数器产生当前显示行。这两个计数器从地址到显示缓冲器连续计数。 首先启动QUARTUS Ⅱ软件,新建vga640480显示扫描模块工程文件,如下图2-1所示:

相关主题