资源描述:
《实验4-扫描显示驱动电路.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验4扫描显示驱动电路一、实验目的了解教学系统中8位八段数码管显示模块的工作原理,设计标准扫描驱动电路模块,以备后面实验用。二、硬件要求主芯片AlteraEPM7128SLC84-15,时钟,8位八段数码管显示器,四位拨码开关。三、实验内容用四位拨码开关产生8421BCD码,用CPLD分别产生字形编码电路和扫描驱动电路,然后进行仿真,观察波形,正确后编程下载实验测试。1、编一个简单的从0~F轮换显示十六进制数的电路。2、用计数器产生数码管扫描驱动信号,调节时钟频率,感受扫描的过程,并观察字符的亮度和显示刷新的效果。7段数码管显示字符0~F,显示字符与7段数码管驱动线的对
2、应关系如下:二进制数字符7段数码管(gfedcba)00000(3F)00011(06)00102(5B)00113(4F)01004(66)01015(6D)01106(7D)01117(07)10008(7F)10019(6F)1010A(77)1011B(7C)1100C(39)1101D(5E)1110E(79)1111F(71)四、实验原理四位拨码开关提供8421BCD码,经译码电路DECL7S后连接8段数码管的字形显示驱动信号a,b,c,d,e,f,g。数码管扫描电路可通过片选地址SEL[2..0]控制。由SEL[2..0]和a,b,c,d,e,f,g决定了
3、8位数码管中的那一位显示和显示什么字形。SEL[2..0]变化的快慢决定了扫描频率的快慢。1、参考电路:如图4-1所示(时钟频率>40Hz)图4-1(t4-1.gdf)图4-1’(t4-11.gdf)实验连线:把RESET和rst0接高电平,CLK接上时钟信号,可观察到第一个数码管循环显示字符0~F。2、参考电路:如图4-2所示图4-2(t4_2.gdf)五、实验连线输入信号:D3,D2,D1,D0所对应的管脚同四位拨码开关相连;清零信号RESET所对应的管脚同按键开关相连;时钟CLK所对应的管脚同试验箱上的时钟源相连。输出信号:代表扫描片选地址信号SEL2,SEL1,
4、SEL0的管脚同四位扫描驱动地址的低三位相连,最高位地址接“0”(也可悬空);代表七段数码驱动信号a,b,c,d,e,f,g的管脚分别同扫描数码管的段输入a,b,c,d,e,f,g相连。六、实验报告1、字形编码的种类,即一个8段数码管可产生多少种字符,产生所有字符需多少根译码信号线?2、字符显示亮度和扫描频率的关系,且让人感觉不出光烁现象的最低扫描频率是多少?七、附录(1)字符译码器DECL7S的VHDL源程序libraryieee;useieee.std_logic_1164.all;entitydecl7sisport(a:instd_logic_vector(3d
5、ownto0);led7s:outstd_logic_vector(6downto0));end;architectureoneofdecl7sisbeginprocess(a)begincaseaiswhen"0000"=>led7s<="";when"0001"=>led7s<="";when"0010"=>led7s<="";when"0011"=>led7s<="";when"0100"=>led7s<="";when"0101"=>led7s<="";when"0110"=>led7s<="";when"0111"=>led7s<="";when"1000"=
6、>led7s<="";when"1001"=>led7s<="";when"1010"=>led7s<="";when"1011"=>led7s<="";when"1100"=>led7s<="";when"1101"=>led7s<="";when"1110"=>led7s<="";when"1111"=>led7s<="";whenothers=>null;endcase;endprocess;end;(2)16进制4位计数器的VHDL源程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsign
7、ed.all;entitycnt4bisport(clk,rst,en:instd_logic;cq:outstd_logic_vector(3downto0);cout:outstd_logic);endcnt4b;architecturebehaveofcnt4bisbeginprocess(clk,rst,en)variableci:std_logic_vector(3downto0);beginifrst='1'thenci:=(others=>'0');--计数器异步复位elsifclk'eventandclk='1'theni