《专题七动态扫描电路设计精选PPT.ppt》由会员分享,可在线阅读,更多相关《专题七动态扫描电路设计精选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
4、)LIBRARY 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
5、.0RD读数据控制读数据控制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
6、(RD,B)BEGIN 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;
8、D:IN STD_LOGIC_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循环取数电路循环取数电路D0D
9、7DOUT6.0DOUT1DOUT0DOUT2DOUT3DOUT4DOUT5DOUT6RDA第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:INTE
10、GER RANGE 7 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
11、扫描控制器扫描控制器clk2LIBRARY 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 I
12、F NUM=7 THEN NUM=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:O
13、UT STD_LOGIC_VECTOR(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;A
14、Q=01011011;AQ=01001111;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_data
16、2;第25页,此课件共33页哦ARCHITECTURE 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;q
17、outA=011;qoutA=100;qoutA=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=000000
18、00;q3=00000000;q4=00000000;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;
19、q6=00000000;q7 q0=00000110;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内