实验六七三八译码器及应用_第1页
实验六七三八译码器及应用_第2页
实验六七三八译码器及应用_第3页
实验六七三八译码器及应用_第4页
实验六七三八译码器及应用_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

实验原理译2n8421BCD210进16LEDLCD两类。变量译是一个将n个输入变为2^n个最小项输出的多输出端的组合逻辑电路n2~643-874LS138变量译功能表和引脚如下

74LS139变量译功能表和引脚如下

G2A

Y7用变量译实现组合函楼道灯控制器可用3-8译实现,如下2.2实验实验内容case4实验原理按键去抖抖动原因:按键按下或放开时,存在机械10~20ms七段数码管71LED48LED的一端连在一起,另一端为点亮控制共阳连接:8LED正极连在一起,负极低电平时点亮共阴连接:8LED(50MHz计计段控制信数据选择器的基本原4LED0上 4选14选1多路选择Y源代码

基本4选1数据选择器的电路框modulemodulebasic_4to1_mux(inled0);inputwire[7:0]in;//输入端outputwireled0;//输出端always@(in[3:0],in[7:6])2'b00led0in[0]002'b01led0in[1]012'b10led0in[2]102'b11led0in[3]11in[3]module yswitch(clk,digit_anode,//portdeclaration,anddefinevariable:disp_numassigndisp_num=16'b1010_1011_1100_1101;module yswitch(clk,digit_anode,//portdeclaration,anddefinevariable:disp_numassigndisp_num=16'b1010_1011_1100_1101;//显示"AbCd“ yDIS Y_0(clk,disp_num,digit_anode,segment);module y(clk,disp_num,digit_anode,//portdeclaration,anddefinevariable:cnt,numalways@(posedgeclk)begin//incrementcase//case(num)//yeachdigitaccordingtoy0~Faccrodingtomodule yswitch(clk,btn_in,digit_anode,//portdeclaration,anddefinevariable:initialdisp_num<=16'b1010_1011_1100_1101;//dis y"AbCd"always@(posedgebtn_in[0])disp_num[3:0]<=disp_num[3:0]+4'd1;//btn_in[0]1always@(posedgebtn_in[1])disp_num[7:4]<=disp_num[7:4]+4'd1;//btn_in[1]1always@(posedgebtn_in[2])disp_num[11:8]<=disp_num[11:8]+4'd1;//btn_in[2]1always@(posedgebtn_in[3])disp_num[15:12]<=disp_num[15:12]+4'd1;//btn_in[3]1 y Y_0(clkdisp_numdigit_anodesegment);//4module y(clk,disp_num,digit_anode,//portdeclaration,anddefinevariable:cnt,numalways@(posedgeclk)begin//incrementcase// yeachdigitaccordingto根 case(num)// y0~Faccrodingtonummodule yswitch(clk,module yswitch(clk,btn_in,digit_anode,//portdeclaration,anddefinevariable:disp_num,clk_1ms, Y_0(clk,disp_num,digit_anode,segment);timer_1msTIMER_1MS(clk,clk_1ms);anti_jitterANTI_JETTER(clk,clk_1ms,btn_in,initialdisp_num<=//ydisp_num[3:0]<=disp_num[3:0]disp_num[4]<=disp_num[+++三、主要仪器设实验实验设装有ISE的计算机系 1Spartan-III开发 1实验实验设装有ISE的计算机系 1Spartan-III开发 1四、操作方法与实验步实验Spartan3实验板上实现3-8modulemoduledecoder_3_8(C,B,A,G,G2A,G2B,inputwireABCGG2AG2B;//对应电路图上的输入端及使能端outputwire[7:0]Y;//输出端 node00(An,A),//1-2译node01(Bn,B),//1-2译node02(Cn,C),//1-2译node03(GnG)使能端构造andnode10(D0,Bn,An),//4个3输入与门,与两个1-2 node_1_1(D1,B_n,A),node12(D2,B,Anode13(D3,B,Anornode14(EN,Gn,G2A,G2B);//使能端构造 node_2_0(Y[0],EN,D0,C_n), node21(Y[1],EN,D1,Cnode_2_2(Y[2],EN,D2,node_2_3(Y[3],EN,D3,node24(Y[4],EN,D0,Cnode_2_5(Y[5],EN,D1,Cnode_2_6(Y[6],EN,D2,Cnode27(Y[7],EN,D3,CUCF引脚定6个开关:3个译码输入,3个使能控制。8LED。NET”C”NET”C”LOC=”K13”;//CNET”B”LOC=”K14”;//BNET”A”LOC=”J13”;//ANET”G”LOC=”H14”;//GNET”G2B”NET”G2B”LOC=”G12”;//使能端G2BNET”G2A”LOC=”F12”;//使能端G2A LOC=”P11”//LED灯 LOC=”P12”//LED灯 LOC=”N12”//LED灯 LOC=”P13”//LED灯 LOC=”N14”//LED灯 LOC=”L12”//LED灯 LOC=”P14”//LED灯 LOC=”K12”//LED仿真测modulemoduleregC;regB;regA;regG;regG2A;regwire[7:0]integer//InstantiatetheUnitUnderTest(UUT)decoder_3_8uut()//InitializeInputsC=0;B=A=G=G2A=G2BG2B=G=G2A=G2B=for(i=0i<=7;i=i+1begin8assignG=0;assignG2A=0;assignG2B=0;assignG=1;assignG2A=1;assignG2B=0;assignG=1;assignG2A=0;assignG2B=1;FPGA代码到实验板上并调试至开发板后,对开关进行操作,观察LED灯,验证3-8译功能是否被实现用3-8译实现楼道灯控制利用前面实现的3-8译,实现楼道灯控制modulemoduletop(inputwireC,B,A,G,G2A,G2B,outputwireY);wire[7:0]decoder_3_8decoder_3_8INSTANCE(C,B,A,G,G2A,G2B,assignY=!(T[1]&T[2]&T[4]&UCF引脚定6个开关:3个译码输入,3个使能控制。1LED。NET”C”NET”C”LOC=”K13”;//输入端CNET”B”LOC=”K14”;//输入端BNET”A”LOC=”J13”;//输入端ANET”G”LOC=”H14”;//使能端GNET”G2B”LOC=”G12”;//使能端G2BNET”G2A”LOC=”F12”;//使能端G2A LOC=”K12”//LED灯FPGA代码到实验板上并调试LED实验程序功能case语句实现47段数码管的扫描显示和显示译moduledis inputwire moduledis inputwire inputwire[15:0digit,//outputreg3:0node4个数码管的位选outputreg[7:0]segment);//七段+小数点reg[3:0]code=4'b0;reg[15:0]count=always@(posedgeclkbegin上升沿触发case(count[15:14])2'b00begin//count[15:14]001;;;;;;;;;;;;;;;;;node<=4'b1110;code<=digit[3:0];2'b01begin/count[15:14]01node<=4'b1110;code<=digit[3:0];2'b01begin/count[15:14]012node<=4'b1101;code<=digit[7:4];2'b10begin/count[15:14]103node<=4'b1011;code<=digit[11:8];2'b11begin/count[15:14]114node<=code<=digit[15:12];case(code)//codecountcount1源代码(Top主程序module always@(posedgedisp_num[disp_num[+always@(posedgedisp_num[disp_num[+always@(posedge+ input[3:0btn_in;//判断哪一位对应的按键被按下output[3:0]digit_anode;//记录一个数位的数值output[7:0] input[3:0btn_in;//判断哪一位对应的按键被按下output[3:0]digit_anode;//记录一个数位的数值output[7:0]segment;//7reg[15:0]wire[3:0]initialdisp_num=16‘b1010_1011_1100_1101;//AbCdpbdebounceb0(clk,btn_in[0],btn_out[0]);//调用去抖动程序pbdebounceb1(clkbtn_in[1]btn_out[1])调用去抖动程序pbdebounceb2(clkbtn_in[2]btn_out[2])调用去抖动程序pbdebounceb3(clkbtn_in[3]btn_out[3]) ym1(clk,disp_numdigit_anode,segment);//modulepbdebounce(inputwireclk,inputmodulepbdebounce(inputwireclk,inputwirebutton,outputregreg[7:0]pbshift;wireclk_1ms;timer_1msm0(clkclk_1ms)clk_1ms1msalways@(posedgeclk_1ms)if(pbshift==0)if(pbshift==8‘hFF)/pbshift11moduletimer_1ms(inputmoduletimer_1ms(inputwireclk,outputregreg[15:0]cnt;initialbegincnt[15:0<=0;//clk_1ms0设置初值always@(posedgeclk)if(cnt>=25000beginclk_1ms~clk_1ms;//elsebeginUFC引脚定NetNet"clk"loc=net"segment[0]"loc="E14";net"segment[1]"loc="G13";net"segment[2]"loc="N15";net"segment[3]"loc="P15";net"s

温馨提示

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

评论

0/150

提交评论