数字电路与逻辑设计综合实验报告.doc_第1页
数字电路与逻辑设计综合实验报告.doc_第2页
数字电路与逻辑设计综合实验报告.doc_第3页
数字电路与逻辑设计综合实验报告.doc_第4页
数字电路与逻辑设计综合实验报告.doc_第5页
免费预览已结束,剩余27页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字电路与逻辑设计综合实验报告 电子工程学院 07805班 杨杨数字电路与逻辑设计综合实验报告课题名称:点阵显示控制器学院:电子工程学院学号:072385班内序号:30 姓名:杨杨 实验指导教师:张永梅 课程主讲教师: 刘丽华报告提交日期: 2009年12月30日北京邮电大学一、 课题名称点阵显示控制器二、 摘要及关键词本次综合性数字电路实验主要完成了点阵显示控制器的三种功能,分别是光电扫描,字符显示以及动态图像显示。本次实验所采用的软件是Quarters,硬件是EPM7128SLC84-15。实验通过对于88点阵来显示相应的图像,分别通过行和列控制显示,显示的频率通过分频来得到。本课题的目的是让我们初步了解点阵结构的显示器,为以后的更进一步学习打下基础。关键词:扫描 分频 点阵显示三、 设计课题的任务要求1使用88点阵做一个基本矩阵,设计扫描控制电路,使光点从左上角像素点开始扫描,终止于右下角像素点,然后周而复始地重复下去,扫过一帧所需时间为16秒; 2用88点阵显示字符,每次显示1个字符,至少显示4个字符,每秒切换一个字符; 3用1个88点阵显示一幅活动图象或多个字符滚动显示; 4以上三种功能可以手动或自动转换; 5选做:自拟其它功能。 四、 设计思路和总体结构框图1设计思路及分块电路设计本次实验的总体设计思路是通过分频器产生的时钟信号进行不同频率的扫描,从而实现不同图像的扫描。1扫描(hehesm):输入1MHz的时钟信号分频24位,周期为16s,使扫描88点阵的时间为 固定的16s。24位信号中的18,19,20控制列选通21,22,23控制行选通,从左往右扫描完一行后再转到下一行,依次从上向下逐行扫描信号。2显示(hehexianshi):显示部分用计数器实现。输入1MHz的时钟信号分频22位得到一个4s的时间周期,每秒显示一个字符。定义20,21为gaowei,0,1,2为diwei,gaowei用来控制四个字符之间的转换,diwei用来控制二极管快速显示行和列的点,视觉上形成暂留现象出现连续的字符。3滚动(hehegd):滚动部分由计数器和译码器实现。输入1MHz的时钟信号分频22位得到一个4s的时间周期,每秒显示一个字符。定义18,19,20,21为gaowei,0,1,2为diwei,gaowei用来控制16种滚动图案的转换,diwei用来控制二极管快速显示行和列的点,高频扫描每种图案,使视觉上形成自右向左滚动的效果。4动画(hehedh):由于前面用计数器实现所剩空间较小,故动画部分用状态机实现。输入1MHz的时钟信号分频19位得到一个0.5s的时间周期,定义18,19为gaowei,0为diwei,gaowei控制每一图形的转换,diwei控制二极管快速显示同一图形中的不同状态,以使视觉上形成暂留现象出现连续变化的图案。2总体结构框图88点阵控制器分频模块ClkReset行输出列输出3整体模块图五、 控制器部分的状态转移图和流程图1.状态转移图 Reset Reset ResetSet0Set1Set2ResetResetReset2. 流程图Set1=0 ?显示逐点扫描Set1=1 ?显示字符Set1=2 ?显示动画set1=0开始YESNOYESYESNONO六、 所实现功能说明1使用88点阵显示屏设计一个点扫描控制电路,循环一周期为16秒,从左上角开始从左往右从上往下扫描至右下角截止,回到起点继续循环扫描。2显示“2083”4个不同字符,循环周期为4秒,每秒显示一个字符。3滚动显示“JYDZ.”,循环周期为4秒,使视觉上形成自右向左滚动的效果。4显示动画方型扩散图案,由中间到四周扩散5每进行一次切换就从该状态初始状态开始七、 所用元器件清单7.5伏稳压电源 一块EPM7128SLC8415实验版 一块八、 完整源程序1.library ieee; -扫描程序use ieee.std_logic_1164.all;use ieee.std_logic_signed.all;entity saomiao isport(clk2,reset2:in std_logic;hang2:out std_logic_vector(7 downto 0);lie2:out std_logic_vector(7 downto 0);end saomiao;architecture m of saomiao issignal chushi:std_logic_vector(23 downto 0):=000000000000000000000000;signal gaowei:std_logic_vector(2 downto 0);signal diwei:std_logic_vector(2 downto 0);signal hang1:std_logic_vector(7 downto 0);signal lie1:std_logic_vector(7 downto 0);beginprocess(clk2,reset2)beginif(reset2=1)thenchushi=000000000000000000000000;elsif(reset2=0)thenif(clk2event and clk2=1)thenchushi=chushi+1;end if;end if;end process;process(diwei,lie1,chushi)begindiwei(0)=chushi(18);diwei(1)=chushi(19);diwei(2)=chushi(20);if diwei=000then lie1=01111111;elsif diwei=001then lie1=10111111;elsif diwei=010then lie1=11011111;elsif diwei=011then lie1=11101111;elsif diwei=100then lie1=11110111;elsif diwei=101then lie1=11111011;elsif diwei=110then lie1=11111101;elsif diwei=111then lie1=11111110;end if;lie2=lie1;end process;process(gaowei,hang1,chushi)begingaowei(0)=chushi(21);gaowei(1)=chushi(22);gaowei(2)=chushi(23);if gaowei=000then hang1=10000000;elsif gaowei=001then hang1=01000000;elsif gaowei=010then hang1=00100000;elsif gaowei=011then hang1=00010000;elsif gaowei=100then hang1=00001000;elsif gaowei=101then hang1=00000100;elsif gaowei=110then hang1=00000010;elsif gaowei=111then hang1=00000001;end if;hang2clk, reset2=k,hang2=h2,lie2=l2);xs:hehexs port map(clk3=clk,reset3=k, hang3=h3,lie3=l3);gd:hehegd port map(clk4=clk,reset4=k, hang4=h4,lie4=l4);dh:hehedh port map(clk5=clk, reset5=k,hang5=h5,lie5=l5);process(k,state,h2,l2,h3,l3,h4,l4,h5,l5)beginif(kevent and k=1)thentstatestatestate state hang=h2;lie hang=h3;lie hang=h4;lie hang=h5;lie=l5;end case;end process;end;-library ieee; -扫描程序use ieee.std_logic_1164.all;use ieee.std_logic_signed.all;entity hehesm isport(clk2,reset2:in std_logic;hang2:out std_logic_vector(7 downto 0);lie2:out std_logic_vector(7 downto 0);end hehesm;architecture m of hehesm issignal chushi:std_logic_vector(23 downto 0):=000000000000000000000000;signal gaowei:std_logic_vector(2 downto 0);signal diwei:std_logic_vector(2 downto 0);signal hang1:std_logic_vector(7 downto 0);signal lie1:std_logic_vector(7 downto 0);beginprocess(clk2,reset2)beginif(reset2=1)thenchushi=000000000000000000000000;elsif(reset2=0)thenif(clk2event and clk2=1)thenchushi=chushi+1;end if;end if;end process;process(diwei,lie1,chushi)begindiwei(0)=chushi(18);diwei(1)=chushi(19);diwei(2)=chushi(20);if diwei=000then lie1=01111111;elsif diwei=001then lie1=10111111;elsif diwei=010then lie1=11011111;elsif diwei=011then lie1=11101111;elsif diwei=100then lie1=11110111;elsif diwei=101then lie1=11111011;elsif diwei=110then lie1=11111101;elsif diwei=111then lie1=11111110;end if;lie2=lie1;end process;process(gaowei,hang1,chushi)begingaowei(0)=chushi(21);gaowei(1)=chushi(22);gaowei(2)=chushi(23);if gaowei=000then hang1=10000000;elsif gaowei=001then hang1=01000000;elsif gaowei=010then hang1=00100000;elsif gaowei=011then hang1=00010000;elsif gaowei=100then hang1=00001000;elsif gaowei=101then hang1=00000100;elsif gaowei=110then hang1=00000010;elsif gaowei=111then hang1=00000001;end if;hang2=hang1;end process;end m;library ieee; -显示程序use ieee.std_logic_1164.all;use ieee.std_logic_signed.all; entity hehexs is port(clk3,reset3:in std_logic; hang3:out std_logic_vector(7 downto 0); lie3:out std_logic_vector(7 downto 0);end hehexs;architecture jg of hehexs issignal chushi:std_logic_vector(21 downto 0):=0000000000000000000000;signal gaowei:std_logic_vector(1 downto 0);signal diwei:std_logic_vector(2 downto 0);beginprocess(clk3,diwei,chushi,gaowei,reset3)beginif(reset3=1)thenchushi=0000000000000000000000;elsif(reset3=0)thenif(clk3event and clk3=1)thenchushi=chushi+1;end if;end if;gaowei(1 downto 0)=chushi(21 downto 20); diwei(2 downto 0)hang3hang3hang3hang3hang3hang3hang3hang3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3lie3=11111111;end case;end if;end process;end ;library ieee; -滚动程序use ieee.std_logic_1164.all;use ieee.std_logic_signed.all; entity hehegd is port(clk4,reset4:in std_logic; hang4:out std_logic_vector(7 downto 0); lie4:out std_logic_vector(7 downto 0);end hehegd;architecture a of hehegd issignal chushi:std_logic_vector(21 downto 0):=0000000000000000000000;signal diwei:std_logic_vector(2 downto 0);signal gaowei:std_logic_vector(3 downto 0); signal lie:std_logic_vector(7 downto 0); signal hang:std_logic_vector(7 downto 0);beginprocess(clk4,reset4,chushi,diwei,gaowei,lie,hang) beginif (reset4=1)then chushi=0000000000000000000000; elsif (reset4=0)then if(clk4event and clk4=1)then chushi=chushi+1; end if;end if;gaowei(3 downto 0)=chushi(21 downto 18);diwei(2 downto 0)hang=10000000;liehang=01000000;liehang=00100000;liehang=00010000;liehang=00001000;liehang=00000100;liehang=00000010;liehang=00000001;liehang=10000000;liehang=01000000;liehang=00100000;liehang=00010000;liehang=00001000;liehang=00000100;liehang=00000010;liehang=00000001;liehang=10000000;liehang=01000000;liehang=00100000;liehang=00010000;liehang=00001000;liehang=00000100;liehang=00000010;liehang=00000001;liehang=10000000;liehang=01000000;liehang=00100000;liehang=00010000;liehang=00001000;liehang=00000100;liehang=00000010;liehang=00000001;liehang=10000000;liehang=01000000;liehang=00100000;liehang=00010000;liehang=00001000;liehang=00000100;liehang=00000010;liehang=00000001;liehang=10000000;liehang=01000000;liehang=00100000;liehang=00010000;liehang=00001000;liehang=00000100;liehang=00000010;liehang=00000001;liehang=10000000;liehang=01000000;liehang=00100000;liehang=00010000;liehang=00001000;liehang=00000100;liehang=00000010;liehang=00000001;liehang=10000000;liehang=01000000;liehang=00100000;liehang=00010000;liehang=00001000;liehang=00000100;liehang=00000010;liehang=00000001;liehang=10000000;liehang=01000000;liehang=00100000;liehang=00010000;liehang=00001000;liehang=00000100;liehang=00000010;liehang=00000001;liehang=10000000;liehang=01000000;liehang=00100000;liehang=00010000;liehang=00001000;liehang=00000100;liehang=00000010;liehang=00000001;liehang=10000000;liehang=01000000;liehang=00100000;liehang=00010000;liehang=00001000;liehang=00000100;liehang=00000010;liehang=00000001;liehang=10000000;liehang=01000000;liehang=00100000;liehang=00010000;liehang=00001000;liehang=00000100;liehang=00000010;liehang=00000001;liehang=10000000;liehang=01000000;liehang=00100000;liehang=00010000;liehang=00001000;liehang=00000100;liehang=00000010;liehang=00000001;liehang=10000000;liehang=01000000;liehang=00100000;liehang=00010000;liehang=00001000;liehang=00000100;liehang=00000010;liehang=00000001;liehang=10000000;liehang=01000000;liehang=00100000;liehang=00010000;liehang=00001000;liehang=00000100;liehang=00000010;liehang=00000001;liehang=10000000;liehang=01000000;liehang=00100000;liehang=00010000;liehang=00001000;liehang=00000100;liehang=00000010;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论