资源描述:
《串行扫描显示电路设计.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验六串行扫描显示电路设计一、实验目的1.通过用AHDL语言设计串形扫描显示电路进一步掌握使用AHDL方法。2.通过用VHDL语言设计串形扫描显示电路进一步掌握使用VHDL方法。3.熟悉使用CPLD/FPGA实验箱的数码管进行显示。二.实验仪器1.PC机一台2.KHF-1/KHF-2/KHF-3/KHF-4/KHF-5CPLD/FPGA实验开发系统一套。三、实验要求1.预习串行扫描显示的原理2.复习教材相关内容。3.用硬件描述语言进行电路设计。四、实验内容及实验步骤1.串形扫描显示电路设计(1)AHDL设计输入。参考程序如下:
2、Subdesigncxsm(inclk:INPUT;----定义输入输出out[7..0],b[3..0]:OUTPUT;)VARIABLE-----定义变量d[3..0],js[21..0],f:DFF;BEGIN(js[],f).clk=inclk;ifjs[]==999999then-----分频模块js[]=0;f=!f;elsejs[]=js[]+1;f=f;endif;(d[].prn,d[].clrn)=VCC;-----扫描输出d[].clk=f;d[]=d[]+1;TABLE-----段码转换模块d[].q=
3、>out0,out1,out2,out3,out4,out5,out6,b[];H"0"=>1,1,1,1,1,1,0,1;-----0H"1"=>0,1,1,0,0,0,0,2;-----1H"2"=>1,1,0,1,1,0,1,4;-----2H"3"=>1,1,1,1,0,0,1,8;-----3H"4"=>0,1,1,0,0,1,1,1;-----4H"5"=>1,0,1,1,0,1,1,2;-----5H"6"=>1,0,1,1,1,1,1,4;-----6H"7"=>1,1,1,0,0,0,0,8;-----7H"
4、8"=>1,1,1,1,1,1,1,1;-----8H"9"=>1,1,1,1,0,1,1,2;-----9H"a"=>1,1,1,0,1,1,1,4;-----aH"b"=>0,0,1,1,1,1,1,8;-----bH"c"=>1,0,0,1,1,1,0,1;------cH"d"=>0,1,1,1,1,0,1,2;------dH"e"=>1,0,0,1,1,1,1,4;------eH"f"=>1,0,0,0,1,1,1,8;-------fENDTABLE;out7=VCC;END;(2)用VHDL设计,示例如下:l
5、ibraryieee;-------调用库useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitytcxis-------实体说明port(inclk:instd_logic;-------输入输出定义outa:outstd_logic_vector(6downto0);outb:outstd_logic_vector(3downto0));endtcx;architecturearth_tcxoftcxis--------结构体定义signalma:st
6、d_logic_vector(1downto0);signalmb:std_logic_vector(3downto0);signalfp:std_logic_vector(23downto0);signalf:std_logic;beginprocess(inclk)---------进程说明beginif(inclk'eventandinclk='1')then---------分频模块iffp=4999999thenfp<="000000000000000000000000";f<=notf;elsefp<=fp+1;e
7、ndif;endif;endprocess;process(f)---------扫描输出模块beginif(f'eventandf='1')thenma<=ma+1;mb<=mb+1;endif;endprocess;withmaselectoutb<="0001"when"00","0010"when"01","0100"when"10","1000"whenothers;withmbselect---------段码转换模块outa<="0110000"when"0001",--1"1101101"when"0010",
8、--2"1111001"when"0011",--3"0110011"when"0100",--4"1011011"when"0101",--5"1011111"when"0110",--6"1110000"when"0111",--7"1111111"when"1000",