《专题七动态扫描电路设计精.ppt》由会员分享,可在线阅读,更多相关《专题七动态扫描电路设计精.ppt(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、专题七动态扫描电路设计第1页,本讲稿共33页专题七:七段显示器动态扫描电路设计 一、教学内容:七段显示器动态扫描电路设计一、教学内容:七段显示器动态扫描电路设计 二、教学目的及要求:二、教学目的及要求:1、掌握、掌握VHDL语言的基本结构及编程思想。语言的基本结构及编程思想。2、掌握七段显示器动态扫描电路设计方法。、掌握七段显示器动态扫描电路设计方法。三、授课课时:三、授课课时:6课时课时 第2页,本讲稿共33页设计要求:1、设计一个七段数码管动态扫描电路。数码管个数为、设计一个七段数码管动态扫描电路。数码管个数为8个,共阴极接法。个,共阴极接法。2、设计一电路,控制上述电路实现、设计一电路,
2、控制上述电路实现“12345678”八个数字的显示,要求八个数字的显示,要求显示方式为:显示方式为:(1)自左至右逐个点亮数码管,最后全亮;再重复以上动作,每次变)自左至右逐个点亮数码管,最后全亮;再重复以上动作,每次变化时间间隔为化时间间隔为1秒。秒。(2)自左至右点亮数码管,每次只点亮一个,最后全息灭,再重复以上动)自左至右点亮数码管,每次只点亮一个,最后全息灭,再重复以上动作,每次变化时间间隔为作,每次变化时间间隔为1秒。秒。(3)先中间两个点亮,再依次向外点亮;全亮后,再依次向中间熄灭;先中间两个点亮,再依次向外点亮;全亮后,再依次向中间熄灭;重复上述步骤,每次变化时间间隔为重复上述步
3、骤,每次变化时间间隔为1秒。秒。相当于实现相当于实现8279的显示部分的功能的显示部分的功能第3页,本讲稿共33页第4页,本讲稿共33页一、七段显示器动态扫描电路设计框图七段显示器动态扫描电路设计框图abcdefgc6c5c1c4c2c3c7c8扫描控制器扫描控制器显显示示字字符符码码存存储储器器循循环环取取数数电电路路同步时钟发生器同步时钟发生器CLKA0A1A2地地址址线线WR数据写入控制数据写入控制数据线数据线RD读读A00A01A02数据线数据线clk1clk2双口双口RAM第5页,本讲稿共33页二、存储器设计(存储器设计(8位位8字节静态随机存储器字节静态随机存储器SRAM)LIBR
4、ARY ieee;USE ieee.std_logic_1164.all;ENTITY MEMO_RD_WR ISPORT(WR,RD:IN STD_LOGIC;A:IN STD_LOGIC_VECTOR(2 DOWNTO 0);B:IN STD_LOGIC_VECTOR(2 DOWNTO 0);D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END MEMO_RD_WR;显显示示字字符符码码存存储储器器(8字节)字节)A0A1A2地地址址线线WR数据写入控制数据写入控制数据线数据线D7.0Q7.0RD读
5、数据控制读数据控制A00A01A02双口双口RAMAB第6页,本讲稿共33页ARCHITECTURE a OF MEMO_RD_WR IS SIGNAL Q0,Q1,Q2,Q3:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL Q4,Q5,Q6,Q7:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINPROCESS(WR,A)BEGIN IF WR=1 THEN CASE A IS WHEN 000=Q0 Q1Q2 Q3Q4 Q5Q6 Q7NULL;END CASE;END IF;END PROCESS;第7页,本讲稿共33页PROCESS(RD,B)B
6、EGIN IF RD=1 THEN CASE B IS WHEN 000=Q QQ QQ QQ QNULL;END CASE;END IF;END PROCESS;END a;第8页,本讲稿共33页仿真结果:仿真结果:第9页,本讲稿共33页三、同步时钟同步时钟CLK频率计算频率计算同步时钟发生器同步时钟发生器CLKclk1CLK频率计算:频率计算:根据人的视觉暂留现象,一个数码管所根据人的视觉暂留现象,一个数码管所要显示的字符只要在一秒内点亮要显示的字符只要在一秒内点亮24次以上,则次以上,则感觉上该数码管没有熄灭一样。若感觉上该数码管没有熄灭一样。若8只数码管要只数码管要出现这种效果,要求在
7、一秒内每只数码管要闪出现这种效果,要求在一秒内每只数码管要闪亮亮24次以上。次以上。则则CLK频率应为频率应为24X8192Hz以上,为了减以上,为了减少闪烁现象,达到较好的显示效果,取少闪烁现象,达到较好的显示效果,取CLK频率为频率为1024Hz,每秒内每个数码管显示次数为,每秒内每个数码管显示次数为128次。次。CLK1=CLK;CLK2=CLK;第10页,本讲稿共33页四、循环取数电路设计循环取数电路设计LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY GET_CODE ISPORT(CLK1:IN STD_LOGIC;D:IN STD_L
8、OGIC_VECTOR(7 DOWNTO 0);RD:OUT STD_LOGIC;A:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END GET_CODE;该电路利用地址线该电路利用地址线A00、A01、A02对存储器循环取数,并通过对存储器循环取数,并通过DOUT7.0送数码管显示。每个送数码管显示。每个CLK1时钟取出一个显示码并立即送时钟取出一个显示码并立即送数码管显示。数码管显示。abcdefgRD读读A00A01A02数据线数据线clk1循环取数电路循环取数电路D0D7DOUT6.0DO
9、UT1DOUT0DOUT2DOUT3DOUT4DOUT5DOUT6RDA第11页,本讲稿共33页地址信号地址信号发生电路发生电路锁存信号锁存信号产生电路产生电路读信号产读信号产生电路生电路A00A01A02RDCLK1锁存器锁存器DOUT6.0D7.0锁存信号锁存信号LOAD循环取数电路内部功能图循环取数电路内部功能图CLK1的上升沿锁存第12页,本讲稿共33页ARCHITECTURE a OF GET_CODE IS SIGNAL LOAD:STD_LOGIC;SIGNAL QQ:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL NUM:INTEGER RANGE 7
10、DOWNTO 0;BEGIN RD=1;LOAD=CLK1;PROCESS(CLK1)BEGIN IF CLK1EVENT AND CLK1=1 THEN NUMAAAAAAAANULL;END CASE;END PROCESS;PROCESS(LOAD)BEGIN IF LOADEVENT AND LOAD=1 THEN-上升沿锁存上升沿锁存 QQ=D;END IF;END PROCESS;DOUT(7 DOWNTO 0)=QQ(7 DOWNTO 0);END a;第14页,本讲稿共33页五、扫描控制器设计扫描控制器设计abcdefgc6c5c1c4c2c3c7c8扫描控制器扫描控制器clk
11、2LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY SCAN_8 ISPORT(CLK2:IN STD_LOGIC;C:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END SCAN_8;第15页,本讲稿共33页扫描控制器时序图扫描控制器时序图第16页,本讲稿共33页ARCHITECTURE a OF SCAN_8 IS SIGNAL NUM:INTEGER RANGE 7 DOWNTO 0;BEGINPROCESS(CLK2)BEGIN IF CLK2EVENT AND CLK2=1 THEN IF NUM=7 THEN NU
12、M=NUM+1;ELSE NUMC CC CC CC CNULL;END CASE;END PROCESS;END A;第17页,本讲稿共33页第18页,本讲稿共33页地址数据线扫描控制器电路图扫描控制器电路图存储器电路读显示码电路列扫描电路第19页,本讲稿共33页应用实例一:显示应用实例一:显示“01234567”八个数字八个数字第20页,本讲稿共33页LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY disp_data ISPORT(CLK:IN STD_LOGIC;WR:OUT STD_LOGIC;A:OUT STD_LOGIC_VECTOR
13、(2 DOWNTO 0);Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END disp_data;ARCHITECTURE a OF disp_data IS -SIGNAL QQ:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL NUM:INTEGER RANGE 7 DOWNTO 0;BEGIN WR=1;PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN IF NUM=7 THEN NUM=NUM+1;ELSE NUMQ=00111111;AQ=00000110;AQ=01011011;AQ=01001
14、111;AQ=01100110;AQ=01101101;AQ=01111101;AQ=01111111;ANULL;END CASE;END PROCESS;END a;第22页,本讲稿共33页应用实例二:数字增加顺序重复显示应用实例二:数字增加顺序重复显示“12345678”八个数字八个数字应用实例三:单数字顺序重复显示应用实例三:单数字顺序重复显示“12345678”八个数字八个数字第23页,本讲稿共33页七段显示器动态扫描电路设计框图七段显示器动态扫描电路设计框图abcdefgc6c5c1c4c2c3c7c8扫描控制器扫描控制器显显示示字字符符码码存存储储器器循循环环取取数数电电路路同步
15、时钟发生器同步时钟发生器CLKA0A1A2地地址址线线WR数据写入控制数据写入控制数据线数据线RD读读A00A01A02数据线数据线clk1clk2第24页,本讲稿共33页LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY disp_data2 ISPORT(clk,clk1s:IN STD_LOGIC;WR:OUT STD_LOGIC;A:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);Qout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END disp_data2;第25页,本讲稿共33页ARCHITEC
16、TURE a OF disp_data2 IS SIGNAL NUM1:INTEGER RANGE 7 DOWNTO 0;SIGNAL num2:INTEGER RANGE 8 DOWNTO 0;SIGNAL q0,q1,q2,q3,q4,q5,q6,q7:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN WR=1;process(clk)begin if clkevent and clk=1 then if num1=7 then num1=num1+1;else num1A=000;qoutA=001;qoutA=010;qoutA=011;qoutA=100;qout
17、A=101;qoutA=110;qoutA=111;qoutNULL;end case;end process;第27页,本讲稿共33页 process(clk1s)begin if clk1sevent and clk1s=1 then if num28 then num2=num2+1;else num2 q0=00000000;q1=00000000;q2=00000000;q3=00000000;q4=00000000;q5=00000000;q6=00000000;q7 q0=00000110;q1=00000000;q2=00000000;q3=00000000;q4=000000
18、00;q5=00000000;q6=00000000;q7 q0=00000110;q1=01011011;q2=00000000;q3=00000000;q4=00000000;q5=00000000;q6=00000000;q7 q0=00000110;q1=01011011;q2=01001111;q3=00000000;q4=00000000;q5=00000000;q6=00000000;q7 q0=00000110;q1=01011011;q2=01001111;q3=01100110;q4=00000000;q5=00000000;q6=00000000;q7 q0=000001
19、10;q1=01011011;q2=01001111;q3=01100110;q4=01101101;q5=00000000;q6=00000000;q7 q0=00000110;q1=01011011;q2=01001111;q3=01100110;q4=01101101;q5=01111101;q6=00000000;q7 q0=00000110;q1=01011011;q2=01001111;q3=01100110;q4=01101101;q5=01111101;q6=00000111;q7 q0=00000110;q1=01011011;q2=01001111;q3=01100110;q4=01101101;q5=01111101;q6=00000111;q7 NULL;end case;end process;END a;第31页,本讲稿共33页用单片机实现ALTRA公司芯片编程下载接口电路第32页,本讲稿共33页用单片机实现公司芯片编程下载接口电路第33页,本讲稿共33页
限制150内