数字电路与逻辑设计实验设计方案双色点阵显示控制器.doc_第1页
数字电路与逻辑设计实验设计方案双色点阵显示控制器.doc_第2页
数字电路与逻辑设计实验设计方案双色点阵显示控制器.doc_第3页
数字电路与逻辑设计实验设计方案双色点阵显示控制器.doc_第4页
数字电路与逻辑设计实验设计方案双色点阵显示控制器.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

数字电路与逻辑设计实验设计方案题目:双色点阵显示控制器一、设计思路n 基本要求:1. 固定红色显示一个汉字或图形,显示亮度4级可调,用一个btn按钮实现亮度调节,亮度变化视觉效果要尽量明显。2. 用从红到绿8级渐变色显示一个固定汉字或图形。3. 分别用单字循环显示、左右滚动显示、上下滚动显示三种显示方式单色显示四个汉字或图形,显示过程中,显示方式用一个btn按键进行切换。4. 显示的图形或汉字要尽量饱满美观。 n 提高要求:1. 滚动显示过程中实现四种显示颜色的自动变换,颜色变化视觉效果要尽量明显。2. 自拟其它功能。二、系统设计总体框图时钟输入按键开关btn1 btn2 分频电路 8*8矩形显示屏控制器防抖6个状态方框图(模块划分)clkbutton1button2按键防抖电路控制器b1b2分频电路intensity_choosediv_clk_lightnesschange_occupy扫描控制电路8*8点阵显示屏in_modein_intensitystate_choosediv_rowdiv_movediv_occupydiv_clkdiv_tempdisplayasm图启动b1单字循环b1b1左右滚动11上下滚动b1红字:1级b2b2b2b2红字:2级红字:3级红字:4级渐变色显示b1mds图状态5状态4状态3状态2状态1状态0b1b1b1b1b1b1三、仿真波形及仿真分析1 时钟分频分析:这个进程组用于产生不同频率的时钟用于不同用途的时钟信号,图中所表达的也是如此,不同频率的时钟信号。对于lightness信号来说,它是一个低分频的,可控占空比的信号,图中所示为占空比为80%时的信号。2 防抖分析:mode_in和intensity_in信号有短时间的抖动现象,在经过防抖之后,短时间的抖动并不会影响mode和intensity信号。mode_in和intensity_in信号有长时间的高电平,这会使控制电路既要检测上升沿又要检测下降沿。经过防抖程序之后,将控制信号mode和intensity处理成脉冲信号,这样控制电路只需检测是否有正脉冲就可以了。3 状态控制与亮度调节分析:每当mode信号有一个正脉冲时,state就变化一次。每当intensity信号有一个正脉冲时,lightness就改变一次占空比。4 颜色改变分析:当状态改变到s1的时候,占空比信号才会改变。从图中可以看出,可控占空比信号是每八个时间单位为一组,这八个时间单位分别代表着第一行被选中、第二行被选中、第八行被选中。当第一行被选中时,可以清楚看到红色和绿色控制信号的占空比是不同的,这样就会导致点阵点的颜色中红色成分和绿色成分亮度不同,从而改变其颜色。5 字符显示部分分析:从图中可以看出,当模式切换后,列内容信号会被赋予不同的值,且随时间而改变。6 显示部分分析:从图中可以看出,各个信号之间的逻辑关系符合代码中的表达式。四、源程序(含注释)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity pointmatrix is port(clk:in std_logic;mode_in:in std_logic;intensity_in:in std_logic;row:out std_logic_vector(7 downto 0);red_col:out std_logic_vector(7 downto 0);green_col:out std_logic_vector(7 downto 0);end pointmatrix;architecture a of pointmatrix istype all_state is (s0,s1,s2,s3,s4);signal state:all_state;signal clk_move:std_logic;signal clk_div:std_logic;signal clk_occupy:std_logic;signal clk_temp:std_logic;signal clk_lightness:std_logic_vector(7 downto 0);signal data0,data1,data2,data3,data4,data5,data6,data7:std_logic_vector(7 downto 0);signal data_row:std_logic_vector(7 downto 0);signal data_col:std_logic_vector(7 downto 0);signal gr_occupy:std_logic_vector(7 downto 0);signal re_occupy:std_logic_vector(7 downto 0);signal mode:std_logic;signal intensity:std_logic;signal occupy_count:integer range 0 to 100;signal tmp1,tmp2,tmp3,tmp4:std_logic;begindiv_move:process(clk) -用于防抖的分频variable count:integer range 0 to 25000000;beginif clkevent and clk=1 thenif count=9999999 thencount:=0;elsecount:=count+1;end if;if count5000000 thenclk_move=1;elseclk_move=0;end if;end if;end process div_move;div_occupy:process(clk) -控制占空比进程和数码管显示的高频时钟variable count:integer range 0 to 25000000;beginif clkevent and clk=1 thenif count=19999 thencount:=0;elsecount:=count+1;end if;if count10000 thenclk_occupy=1;elseclk_occupy=0;end if;end if;end process div_occupy;div_clk:process(clk) -控制字符图形显示的高频时钟variable count:integer range 0 to 25000000;beginif clkevent and clk=1 thenif count=159999 thencount:=0;elsecount:=count+1;end if;if count80000 thenclk_div=1;elseclk_div=0;end if;end if;end process div_clk;div_temp:process(clk) -用于防抖进程组和检测输入信号的中频时钟variable count:integer range 0 to 25000000;beginif clkevent and clk=1 thenif count=255 thencount:=0;elsecount:=count+1;end if;if count128 thenclk_temp=1;elseclk_temp=0;end if;end if;end process div_temp;in_mode:process(mode_in,clk_temp,tmp1,tmp2) -按键防抖1beginif clk_tempevent and clk_temp=0 thentmp1=tmp2;tmp2=mode_in;end if;mode=clk_temp and tmp2 and (not tmp1);end process in_mode;in_intensity:process(intensity_in,clk_temp,tmp3,tmp4) -按键防抖2beginif clk_tempevent and clk_temp=0 thentmp3=tmp4;tmp4=intensity_in;end if;intensitystatestatestatestatestateoccupy_countoccupy_countoccupy_countoccupy_countoccupy_count=100;end case;end if;end process intensity_choose;div_clk_lightness:process(clk,occupy_count) -单字调节亮度variable count:integer range 0 to 25000000;beginif clkevent and clk=1 thenif count=99 thencount:=0;elsecount:=count+1;end if;if countoccupy_count thenclk_lightness=00000000;elseclk_lightnessdata0=01100110;data1=11111111;data2=11111111;data3=01111110;data4=00111100;data5=00011000;data6=00011000;data7data0=01100110;data1=11111111;data2=11111111;data3=01111110;data4=00111100;data5=00011000;data6=00011000;data7case count1 iswhen 0=data0=11111110;data1=10000001;data2=10000001;data3=11111110;data4=11111110;data5=10000001;data6=10000001;data7data0=11000011;data1=11000011;data2=11000011;data3=11000011;data4=11000011;data5=01100110;data6=00111100;data7data0=11111100;data1=10000010;data2=10000001;data3=10000010;data4=11111100;data5=10000000;data6=10000000;data7data0=11111111;data1=11111111;data2=00011000;data3=00011000;data4=00011000;data5=00011000;data6=00011000;data7case count is when 0=data0=11111110;data1=10000001;data2=10000001;data3=11111110;data4=11111110;data5=10000001;data6=10000001;data7data0=11111101;data1=00000011;data2=00000011;data3=11111101;data4=11111101;data5=00000010;data6=00000010;data7data0=11111011;data1=00000111;data2=00000111;data3=11111011;data4=11111011;data5=00000101;data6=00000100;data7data0=11110110;data1=00001110;data2=00001110;data3=11110110;data4=11110110;data5=00001011;data6=00001001;data7data0=11101100;data1=00011100;data2=00011100;data3=11101100;data4=11101100;data5=00010110;data6=00010011;data7data0=11011000;data1=00111000;data2=00111000;data3=11011000;data4=11011000;data5=00101100;data6=00100111;data7data0=10110000;data1=01110000;data2=01110000;data3=10110000;data4=10110000;data5=01011001;data6=01001111;data7 data0=01100001; data1=11100001; data2=11100001; data3=01100001; data4=01100001; data5=10110011; data6=10011110; data7 data0=11000011; data1=11000011; data2=11000011; data3=11000011; data4=11000011; data5=01100110; data6=00111100; data7 data0=10000111; data1=10000111; data2=10000111; data3=10000111; data4=10000111; data5=11001101; data6=01111001; data7 data0=00001111; data1=00001110; data2=00001110; data3=00001110; data4=00001111; data5=10011010; data6=11110010; data7 data0=00011111; data1=00011100; data2=00011100; data3=00011100; data4=00011111; data5=00110100; data6=11100100; data7 data0=00111111; data1=00111000; data2=00111000; data3=00111000; data4=00111111; data5=01101000; data6=11001000; data7 data0=01111111; data1=01110000; data2=01110000; data3=01110000; data4=01111111; data5=11010000; data6=10010000; data7 data0=11111111; data1=11100000; data2=11100000; data3=11100000; data4=11111111; data5=10100000; data6=00100000; data7 data0=11111110; data1=11000001; data2=11000000; data3=11000001; data4=11111110; data5=01000000; data6=01000000; data7 data0=11111100; data1=10000010; data2=10000001; data3=10000010; data4=11111100; data5=10000000; data6=10000000; data7 data0=11111001; data1=00000101; data2=00000010; data3=00000100; data4=11111000; data5=00000000; data6=00000000; data7 data0=11110011; data1=00001011; data2=00000100; data3=00001000; data4=11110000; data5=00000000; data6=00000000; data7 data0=11100111; data1=00010111; data2=00001000; data3=00010000; data4=11100000; data5=00000000; data6=00000000; data7 data0=11001111; data1=00101111; data2=00010001; data3=00100001; data4=11000001; data5=00000001; data6=00000001; data7 data0=10011111; data1=01011111; data2=00100011; data3=01000011; data4=10000011; data5=00000011; data6=00000011; data7 data0=00111111; data1=10111111; data2=01000110; data3=10000110; data4=00000110; data5=00000110; data6=00000110; data7 data0=01111111; data1=01111111; data2=10001100; data3=00001100; data4=00001100; data5=00001100; data6=00001100; data7 data0=11111111; data1=11111111; data2=00011000; data3=00011000; data4=00011000; data5=00011000; data6=00011000; data7 data0=11111110; data1=11111110; data2=00110000; data3=00110000; data4=00110000; data5=00110000; data6=00110000; data7 data0=11111100; data1=11111100; data2=01100000; data3=01100000; data4=01100000; data5=01100000; data6=01100000; data7 data0=11111000; data1=11111000; data2=11000000; data3=11000000; data4=11000000; data5=11000000; data6=11000000; data7 data0=11110000; data1=11110000; data2=10000000; data3=10000000; data4=10000000; data5=10000000; data6=10000000; data7 data0=11100000; data1=11100000; data2=00000000; data3=00000000; data4=00000000; data5=00000000; data6=00000000; data7 data0=11000000; data1=11000000; data2=00000000; data3=00000000; data4=00000000; data5=00000000; data6=00000000; data7 data0=10000000; data1=10000000; data2=00000000; data3=00000000; data4=00000000; data5=00000000; data6=00000000; data7case count iswhen 0= data0=11111110; data1=10000001; data2=10000001; data3=11111110; data4=11111110; data5=10000001; data6=10000001; data7 data0=10000001; data1=10000001; data2=11111110; data3=11111110; data4=10000001; data5=10000001; data6=11111110; data7 data0=10000001; data1=11111110; data2=11111110; data3=10000001; data4=10000001; data5=11111110; data6=11000011; data7 data0=11111110; data1=11111110; data2=10000001; data3=10000001; data4=11111110; data5=11000011; data6=11000011; data7 data0=11111110; data1=10000001; data2=10000001; data3=11111110; data4=11000011; data5=11000011; data6=11000011; data7 data0=10000001; data1=10000001; data2=11111110; data3=11000011; data4=11000011; data5=11000011; data6=11000011; data7 data0=10000001; data1=11111110; data2=11000011; data3=11000011; data4=11000011; data5=11000011; data6=11000011; data7 data0=11111110; data1=11000011; data2=11000011; data3=11000011; data4=11000011; data5=11000011; data6=01100110; data7 data0=11000011; data1=11000011; data2=11000011; data3=11000011; data4=11000011; data5=01100110; data6=00111100; data7 data0=11000011; data1=11000011; data2=11000011; data3=11000011; data4=01100110; data5=00111100; data6=00011000; data7 data0=11000011; data1=11000011; data2=11000011; data3=01100110; data4=00111100; data5=00011000; data6=11111100; data7 data0=11000011; data1=11000011; data2=01100110; data3=00111100; data4=00011000; data5=11111100; data6=10000010; data7 data0=11000011; data1=01100110; data2=00111100; data3=00011000; data4=11111100; data5=10000010; data6=10000001; data7 data0=01100110; data1=00111100; data2=00011000; data3=11111100; data4=10000010; data5=1

温馨提示

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

评论

0/150

提交评论