精华内容
下载资源
问答
  • 在Logisim中,构建由4个D触发器构成的4位并行存取的移位寄存器,要求: 1.具有异步复位功能; 2.能够并行数据同步加载、并行输出(基本寄存); 3.能够右移串行输入、右移串行输出(移位寄存); 4.能够右移串行输入...

    在Logisim中,构建由4个D触发器构成的4位并行存取的移位寄存器,要求:
    1.具有异步复位功能;
    2.能够并行数据同步加载、并行输出(基本寄存);
    3.能够右移串行输入、右移串行输出(移位寄存);
    4.能够右移串行输入、并行输出(串并转换);
    5.能够并行输入、右移串行输出(并串转换)。

    相关知识
    寄存器(Register)的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。
    并行存取的移位寄存器的结构相对要复杂一些,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,或串行输入、并行输出。如下图所示。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 具有串行=并功能,通过移位寄存器和输出锁存器实现。驱动开发板上的8位数码管。 FPGA需要通过74HC595这个芯片把16位的数据(SEL + SEG)变为并行端口用来驱动数码管 74HC595的波形图 如图可知: 输入数据DS,先...

    74HC595大概原理
    在这里插入图片描述
    具有串行=转并功能,通过移位寄存器和输出锁存器实现。驱动开发板上的8位数码管。
    FPGA需要通过74HC595这个芯片把16位的数据(SEL + SEG)变为并行端口用来驱动数码管

    74HC595的波形图
    在这里插入图片描述

    如图可知:
    输入数据DS,先输入的数据,在8个时间周期之后,在Q7上

    数码管结构
    在这里插入图片描述
    此结构为一个SPI协议接口

    第一片74HC595 作为位选信号
    第二片作为段选
    在这里插入图片描述
    要求:对于74HC595芯片,该芯片在SH_CP(SCLK)的上升沿将(DIO)上的数据移入内部寄存器。
    目的:因此我们需要保证DS上的数据在SH_CP上升沿前后的一段时间,保持稳定。
    手段:FPGA要在SH_CP的下降沿改变DS的值。
    设SH_CP时钟的频率为12.5HZ
    根据波形,找到SH_CP的最小时间周期,以这个周期为基准来描述DS ST_CP 的变化,类似于此
    在这里插入图片描述
    则此信号频率应该为SH_CP的二倍

    代码如下:

    数码管显示模块:

    module hex8_2(
        Clk,
        Reset_n,
        Disp_Data,
        SEL,
        SEG
    );
        
        input Clk;
        input Reset_n;
        input [31:0]Disp_Data;
        output reg[7:0]SEL;
        output reg[7:0]SEG;//seg[0]-a,seg[1]-b...seg[7]-h
        
        reg clk_1k;
        reg [15:0]div_cnt;
        always@(posedge Clk or negedge Reset_n)    //1000000/20/2*2=50000
        if(!Reset_n)
            div_cnt <= 0;
        else if(div_cnt >= 49999)
            div_cnt <= 0;
        else
            div_cnt <= div_cnt + 1'b1;
            
        always@(posedge Clk or negedge Reset_n)    //使能时钟信号
        if(!Reset_n)
            clk_1k <= 0;
        else if(div_cnt == 49999)
            clk_1k <= 1'b1;
        else
            clk_1k <= 0;
          
        reg [2:0]num_cnt;                         
        always@(posedge Clk or negedge Reset_n)
        if(!Reset_n)
            num_cnt <= 0;
        else if(clk_1k)
            num_cnt <= num_cnt + 1'b1;
            
        always@(posedge Clk)
            case(num_cnt)
                0: SEL = 8'b00000001;
                1: SEL = 8'b00000010;
                2: SEL = 8'b00000100;
                3: SEL = 8'b00001000;
                4: SEL = 8'b00010000;
                5: SEL = 8'b00100000;
                6: SEL = 8'b01000000;
                7: SEL = 8'b10000000;
            endcase
    
        reg[3:0]disp_tmp;
        always@(posedge Clk)
            case(num_cnt)
                7: disp_tmp = Disp_Data[31:28];
                6: disp_tmp = Disp_Data[27:24];
                5: disp_tmp = Disp_Data[23:20];
                4: disp_tmp = Disp_Data[19:16];
                3: disp_tmp = Disp_Data[15:12];
                2: disp_tmp = Disp_Data[11:8];
                1: disp_tmp = Disp_Data[7:4];
                0: disp_tmp = Disp_Data[3:0];
            endcase   
    
         always@(posedge Clk)
            case(disp_tmp)
                0: SEG = 8'hc0;
                1: SEG = 8'hf9;
                2: SEG = 8'ha4;
                3: SEG = 8'hb0;
                4: SEG = 8'h99;
                5: SEG = 8'h92;
                6: SEG = 8'h82;
                7: SEG = 8'hf8;
                8: SEG = 8'h80;
                9: SEG = 8'h90;
                4'ha: SEG = 8'h88;
                4'hb: SEG = 8'h83;
                4'hc: SEG = 8'hc6;
                4'hd: SEG = 8'ha1;
                4'he: SEG = 8'h86;
                4'hf: SEG = 8'h8e;
            endcase   
    
    endmodule
    

    驱动模块:

    `timescale 1ns / 1ps
    
    module HC595_Driver(
        Clk,
        Reset_n,
        Data,
        S_EN,
        SH_CP,
        ST_CP,
        DS
    );
        
        input Clk;
        input Reset_n;
        input [15:0]Data;
        input S_EN;
        output reg SH_CP;
        output reg ST_CP;
        output reg DS;
        parameter CNT_MAX = 2;
        
        reg [15:0]r_data;
        always@(posedge Clk)
            if(S_EN)
                r_data <= Data;
    
        reg [7:0]divider_cnt;//分频计数器,得到最小的那个使能时间单位
        always@(posedge Clk or negedge Reset_n)
        if(!Reset_n)
            divider_cnt <= 0;
        else if(divider_cnt == CNT_MAX - 1'd1)
            divider_cnt <= 0;
        else
            divider_cnt <= divider_cnt + 1'b1;
        
        wire sck_plus;      //产生这个两倍时钟信号
        assign sck_plus = (divider_cnt == CNT_MAX - 1'd1);
        
        reg [5:0]SHCP_EDGE_CNT;
        always@(posedge Clk or negedge Reset_n)
        if(!Reset_n)
            SHCP_EDGE_CNT <= 0;
        else if(sck_plus)begin
            if(SHCP_EDGE_CNT == 6'd32)            //传16位数据,需要32位计数
                SHCP_EDGE_CNT <= 0;
            else
                SHCP_EDGE_CNT <= SHCP_EDGE_CNT + 1'b1;
        end
            
        always@(posedge Clk or negedge Reset_n)
        if(!Reset_n)begin
            SH_CP <= 0;
            ST_CP <= 0;
            DS <= 0;   
        end
        else begin
            case(SHCP_EDGE_CNT)
                0: begin SH_CP <= 0;ST_CP <= 1'd0;DS <= r_data[15];end
                1: SH_CP <= 1'd1;
                2: begin SH_CP <= 0;DS <= r_data[14];end
                3: SH_CP <= 1'd1;
                4: begin SH_CP <= 0;DS <= r_data[13];end   
                5: SH_CP <= 1'd1;
                6: begin SH_CP <= 0;DS <= r_data[12];end
                7: SH_CP <= 1'd1;
                8: begin SH_CP <= 0;DS <= r_data[11];end   
                9: SH_CP <= 1'd1;
                10: begin SH_CP <= 0;DS <= r_data[10];end
                11: SH_CP <= 1'd1;
                12: begin SH_CP <= 0;DS <= r_data[9];end  
                13: SH_CP <= 1'd1;
                14: begin SH_CP <= 0;DS <= r_data[8];end
                15: SH_CP <= 1'd1;
                16: begin SH_CP <= 0;DS <= r_data[7];end   
                17: SH_CP <= 1'd1;
                18: begin SH_CP <= 0;DS <= r_data[6];end
                19: SH_CP <= 1'd1;
                20: begin SH_CP <= 0;DS <= r_data[5];end   
                21: SH_CP <= 1'd1;
                22: begin SH_CP <= 0;DS <= r_data[4];end
                23: SH_CP <= 1'd1;
                24: begin SH_CP <= 0;DS <= r_data[3];end   
                25: SH_CP <= 1'd1;
                26: begin SH_CP <= 0;DS <= r_data[2];end
                27: SH_CP <= 1'd1;
                28: begin SH_CP <= 0;DS <= r_data[1];end
                29: SH_CP <= 1'd1;
                30: begin SH_CP <= 0;DS <= r_data[0];end
                31: SH_CP <= 1'd1;
                32: ST_CP <= 1'd1;
                default:
                    begin
                        SH_CP <= 0;
                        ST_CP <= 0;
                        DS <= 0;   
                    end
            endcase
        end
    
    endmodule
    

    测试模块:

    module hex8_test(
        Clk,
        Reset_n,
        SEL,
        SEG,
        SH_CP,
        ST_CP,
        DS
    );
        
        input Clk;
        input Reset_n;
    
        output [7:0]SEL;
        output [7:0]SEG;//seg[0]-a,seg[1]-b...seg[7]-h
        
        output SH_CP;
        output ST_CP;
        output DS;
        
        wire [31:0]Disp_Data;
        
        hex8_2 hex8_2(
            Clk,
            Reset_n,
            Disp_Data,
            SEL,
            SEG
        ); 
        wire [15:0]Data;
        assign Data = {SEG,SEL};
        
        wire S_EN;
        assign S_EN = 1;
        
        HC595_Driver HC595_Driver(
            Clk,
            Reset_n,
            Data,
            S_EN,
            SH_CP,
            ST_CP,
            DS
        );
        
        assign Disp_Data = 32'h13579bdf;    
        
    endmodule
    
    TB文件:
    `timescale 1ns / 1ps
    module hex8_tb();
    
        reg Clk;
        reg Reset_n;
        reg [31:0]Disp_Data;
        wire [7:0]SEL;
        wire [7:0]SEG;
        
        hex8 hex8(
            Clk,
            Reset_n,
            Disp_Data,
            SEL,
            SEG
        );  
        
        initial Clk = 1;
        always#10 Clk = ~Clk;
        
        initial begin
            Reset_n = 0;
            Disp_Data = 32'h00000000;
            #201;
            Reset_n = 1;
            #2000;
            Disp_Data = 32'h12345678;
            #10000000;
            Disp_Data = 32'h9abcdef0;
            #10000000;
            $stop;
        end
        
    endmodule
    
    展开全文
  • 1 串转并功能,通过移位寄存器和输出锁存器实现 2 FPGA需要通过74HC595这个芯片把16位的数据(sel+seg)变为并行端口用来驱动数码管 3 3.3V供电情况下,取SHCP时钟频率位12.5MHz(50-20ns,25-40ns,12.5-80ns),让...

    1 串转并功能,通过移位寄存器和输出锁存器实现

    2 FPGA需要通过74HC595这个芯片把16位的数据(sel+seg)变为并行端口用来驱动数码管

    3 3.3V供电情况下,取SHCP时钟频率位12.5MHz(50-20ns,25-40ns,12.5-80ns),让其每40ns翻转一次,也就是每两个CLK周期翻转一次

    上图所对应的代码段

    	parameter CNT_MAX = 2;
    
    	reg [7:0]divider_cnt;
    	always@(posedge Clk or negedge Rst_n)
    	if(!Rst_n)
    		divider_cnt <= 0;
    	else if(divider_cnt == CNT_MAX - 1'b1)
    		divider_cnt <= 0;
    	else
    		divider_cnt <= divider_cnt + 1'b1;
    		
    	assign sck_plus = (divider_cnt == CNT_MAX - 1'b1)
    
    	always@(posedge Clk or negedge Rst_n)
    	if(!Rst_n)
    		SH_CP <= 0;
    	else if(sck_plus)
    		SH_CP <= ~ SH_CP;

     

    上图所对应打代码

    	reg [7:0]divider_cnt;
    	always@(posedge Clk or negedge Rst_n)
    	if(!Rst_n)
    		divider_cnt <= 0;
    	else if(divider_cnt == 3)
    		divider_cnt <= 0;
    	else
    		divider_cnt <= divider_cnt + 1'b1;
    		
    	assign sck_plus = (divider_cnt == 3)
    
    	always@(posedge Clk or negedge Rst_n)
    	if(!Rst_n)
    		SH_CP <= 0;
    	else if(sck_plus)
    		SH_CP <= ~ SH_CP;

     32个时刻输出16位数据

    	reg [5:0]SHCP_EDGE_CNT;//计的是SHCP的边沿变化
    	
    	always@(posedge Clk or negedge Rst_n)
    	if(!Rst_n)
    		SHCP_EDGE_CNT <= 0;
    	else if(sck_plus)begin
    		if(SHCP_EDGE_CNT == 32)
    			SHCP_EDGE_CNT <= 0;
    		else
    			SHCP_EDGE_CNT <= SHCP_EDGE_CNT + 1'b1;
    	end
    	else
    		SHCP_EDGE_CNT <= SHCP_EDGE_CNT;
    		
    	//根据SHCP_EDGE_CNT值是多少,决定干什么事
    	always@(posedge Clk or negedge Rst_n)
    	if(!Rst_n)begin
    		ST_CP <= 1'b0;
    		DS <= 1'b0;
    		SH_CP <= 1'b0;
    	end
    	else begin
    		case(SHCP_EDGE_CNT)
    			0:begin SH_CP <= 0; ST_CP <= 1'd0; DS <= r_data[15];end
    			1:begin SH_CP <= 1; ST_CP <= 1'd0;end
    			2:begin SH_CP <= 0; DS <= r_data[14];end
    			3:begin SH_CP <= 1; end
    			4:begin SH_CP <= 0; DS <= r_data[13];end
    			5:begin SH_CP <= 1; end
    			6:begin SH_CP <= 0; DS <= r_data[12];end
    			7:begin SH_CP <= 1; end
    			8:begin SH_CP <= 0; DS <= r_data[11];end
    			9:begin SH_CP <= 1; end
    			10:begin SH_CP <= 0; DS <= r_data[10];end
    			11:begin SH_CP <= 1; end
    			12:begin SH_CP <= 0; DS <= r_data[9];end
    			13:begin SH_CP <= 1; end
    			14:begin SH_CP <= 0; DS <= r_data[8];end
    			15:begin SH_CP <= 1; end
    			16:begin SH_CP <= 0; DS <= r_data[7];end
    			17:begin SH_CP <= 1; end
    			18:begin SH_CP <= 0; DS <= r_data[6];end
    			19:begin SH_CP <= 1; end
    			20:begin SH_CP <= 0; DS <= r_data[5];end
    			21:begin SH_CP <= 1; end
    			22:begin SH_CP <= 0; DS <= r_data[4];end
    			23:begin SH_CP <= 1; end
    			24:begin SH_CP <= 0; DS <= r_data[3];end
    			25:begin SH_CP <= 1; end
    			26:begin SH_CP <= 0; DS <= r_data[2];end
    			27:begin SH_CP <= 1; end
    			28:begin SH_CP <= 0; DS <= r_data[1];end
    			29:begin SH_CP <= 1; end
    			30:begin SH_CP <= 0; DS <= r_data[0];end
    			31:begin SH_CP <= 1; end
    			32:begin ST_CP <= 1; end
    			default:
    				begin
    					ST_CP <= 1'b0;
    					DS <= 1'b0;
    					SH_CP <= 1'b0;
    				end
    		endcase
    	end

     

    展开全文
  • 移位寄存器内的数据可以在移位脉冲(时钟信号)的作用下依次左移或右移。移位寄存器不仅可以存储数据,还可以用来实现数据的串并转换、分频,构成序列码发生器、序列码检测器,进行数值运算以及数据处理等,它也是...

    1 概念

    移位寄存器内的数据可以在移位脉冲(时钟信号)的作用下依次左移或右移。移位寄存器不仅可以存储数据,还可以用来实现数据的串并转换、分频,构成序列码发生器、序列码检测器,进行数值运算以及数据处理等,它也是数字系统中应用非常广泛的时序逻辑部件之一。

    有四种不同类型的移位寄存器可用数据输入和输出设备的方式不同:

    串行输入,串行输出

    串行输入,并行输出

    并行输入,串行输出

    并行输入,并行输出
    在这里插入图片描述
    右移位寄存器的特点是右边寄存器的次态等于左边触发器的现态。串行输出数据从触发器FD的QD端输出,并行数据从个触发器的QA~QD端输出,两种输出方式都属于同向输出。各触发器都采用同一时钟信号,所以它们工作在同步状态。如果将FD的输出端QD接到FA的输入端DI,则可以构成循环移位的右移位寄存器。

    右移寄存器

    并行输入串行输出

    module right_shift_pin_sout(
        clk    ,
        rst_n  ,
        //其他信号,举例dout
        sout,
        pin    
        );
    
        //参数定义
        parameter      DATA_W =         4;
        parameter    CNT_W=2;
    
        //输入信号定义
        input               clk    ;
        input               rst_n  ;
        input [DATA_W-1: 0] pin    ;
    
        //输出信号定义
        output  sout   ;
    
    
    
        //中间信号定义
        reg[CNT_W-1: 0]     cnt    ;
        wire [DATA_W-1: 0]   D    ;
    
        reg [DATA_W-1: 0]   Q    ;
        //计数
        always@(posedge clk or negedge rst_n)begin
            if(rst_n==1'b0)begin
                cnt<=0;
            end
            else begin
                if(cnt==DATA_W-1)begin
                    cnt<=0;
                end
                else begin
                    cnt<=cnt+1;
                end
             end
        end
        //D
        assign D=(cnt==0)?pin:4'b0;
        assign sout=Q[3];
        //sout
        always  @(posedge clk or negedge rst_n)begin
            if(rst_n==1'b0)begin
                sout<=0;
            end
            else begin
                sout<=Q[3];
            end
        end
    //Q
        always  @(posedge clk or negedge rst_n)begin
            if(rst_n==1'b0)begin
                Q<=0;
            end
            else if(cnt==0)begin
                Q<=D;
            end
            else begin
                Q[3:1]<=Q[2:0]; 
            end
        end
    
    
    
        endmodule
    
    
    

    tb

     `timescale 1 ns/1 ns
    
    module testbench_name();
    parameter      DATA_W =         4;
    parameter    CNT_W=2;
    //时钟和复位
    reg clk  ;
    reg rst_n;
     
    wire sout;  
    reg[DATA_W-1: 0]  pin ; 
            //时钟周期,单位为ns,可在此修改时钟周期。
            parameter CYCLE    = 20;
    
            //复位时间,此时表示复位3个时钟周期的时间。
            parameter RST_TIME = 3 ;
    
            //待测试的模块例化
            right_shift_pin_sout 
            #(.DATA_W(DATA_W),.CNT_W(CNT_W))  uut(
           .clk    (   clk    ), 
           .rst_n  (   rst_n  ), 
           .sout   (  sout   ),
           .pin    (   pin    ) 
                )  ;  
            
    
                //生成本地时钟50M
                initial begin
                    clk = 0;
                    forever
                    #(CYCLE/2)
                    clk=~clk;
                end
    
                //产生复位信号
                initial begin
                    rst_n = 1;
                    #2;
                    rst_n = 0;
                    #(CYCLE*RST_TIME);
                    rst_n = 1;
                end
    
                //输入信号pin赋值方式
                initial begin
                    #1;
                    //赋初值
                    pin =4'b1111;
                    #(9*CYCLE);
                    pin=4'b1000;
                    #(9*CYCLE);
                    pin=4'b0010;
                    #(9*CYCLE);
                    pin=4'b0001;
                    //开始赋值
    
                end
    
    endmodule
    
    
    
    展开全文
  • 文章部分自...线性反馈移位寄存器(LFSR)是内测试电路中最基本的标准模块结构,既用作伪随机测试码产生器,也作为压缩测试结果数据的特征分析器。 一个n阶的LFSR由n个触发器和若干个异或门组成。在实际...
  • 移位寄存器专题(verilog HDL设计)

    万次阅读 多人点赞 2018-05-19 21:09:11
    4、并行输入串行输出移位寄存器 移位寄存器简介 移位寄存器内的数据可以在移位脉冲(时钟信号)的作用下依次左移或右移。移位寄存器不仅可以存储数据,还可以用来实现数据的串并转换、分频,构成序列码发生器、...
  • 移位寄存器

    千次阅读 2020-05-04 18:34:05
    移位寄存器 具有存储代码、移位两大功能。 . 移位功能: 寄存器里存储的代码能够在移位脉冲的的作用下依次左移或右移。 . 移位寄存器应用: 寄存代码、串行-并行转换、数值运算、数据处理。 【 1. 结构图 】 下图...
  • 了解移位寄存器,包括它们如何工作以将并行连接转换为串行连接。 所需的组件 ● Arduino Uno开发板 ● 74HC165 ● 跳线电缆 移位寄存器有不同的版本,可用于各种应用。本文将向您介绍移位寄存器并说明它们的工作原理...
  • 移位寄存器示例

    千次阅读 2019-02-25 20:26:01
    这里的移位寄存器不是简单的向左移位将串行输入转换为并行输出,而且要保留最后一个周期的输入数作为下一次输出的最高位,代码如下所示: module shift_reg( clk,rst,din,dout//,ordy ); input clk; input rst...
  • EDA 电子设计自动化VHDL系列课程9 – 串-并移位寄存器的VHDL设计 本EDA系列介绍的系统环境是: 软件: VHDL编程语言 ;...原理: 输入 一个 4位 并行信号 plin,将其 转换成 串行信号 slout ,在clo...
  • 74HC165并行数据转串行数据

    千次阅读 2012-11-21 00:53:44
    74HC165 概述 (NXP founded by Philips) ...74HC165是8位并行读取或串行输入移位寄存器,可在末级得到互斥的串行输出(Q7和Q7),当并行读取(PL)输入为低时,从D0到D7口输入的并行数据将被异步地读取进寄存器内。
  • 74HC595 - 串行转并行

    2020-07-14 17:44:36
    1、串行转并行 引脚图 逻辑框图 2、功能注释 芯片主要分为移位寄存器和锁存寄存器两大部分。移位寄存器存储串行输入的数据,锁存寄存器锁存移位寄存器内的数据。 1)SHIFT CLOCK:移位时钟输入引脚,上升沿将...
  • 名称:串行数据转换为并行数据 说明:串行数据由 RXD 发送给串 并转换芯片 74164,TXD 则用于输出移位时钟脉冲,74164 将串行输入的 1 字节转换为并行数据,并将转换的...本例串口工作模式 0,即移位寄存器 I/O 模式。
  • 利用8031串行口,和并行输出串行移位寄存器74LS164,扩展一位数码显示在数码显示器上循环显示0-9这10个数字。 二.实验目的 1.掌握8031串行口方式0工作方式及编程方法。 2.掌握利用串行口扩展I/O通道的方法。 三.实验...
  • 51单片机串-并转换实验

    千次阅读 2008-01-17 16:09:00
    实验要求利用8031串行口,和并行输出串行移位寄存器74LS164,扩展一位数码显示在数码显示器上循环显示0-9这10个数字。二.实验目的1.掌握8031串行口方式0工作方式及编程方法。2.掌握利用串行口扩展I/O通道的方法。三....
  • 74hc165并行串口芯片学习

    千次阅读 2019-04-28 15:31:38
    8 位移位寄存器并行输入,互补串行输出) **时序图:**移位输出的顺序是从H->A输出到QH端口 #include <reg51.h> #include “intrins.h” typedef unsigned int u16; typedef unsigned char u8; #define...
  • Dos串口编程

    2019-01-25 13:55:58
    Dos串口编程串行通信使用单...据,然后通过一个并行串行出的移位寄存器,转换成串行位,每次发送一位,将数据发送出去。同样,在接 收端也必须有一个串行并行出的移位寄存器来接收串行数据。并组合打包成一个字节。
  • 方式0是外接串行移位寄存器方式。工作时,数据从RXD串行地输入/输出,TXD输出移位脉冲,使外部的移位寄存器移位。波特率固定为fosc/12(即,TXD每机器周期输出一个同位脉冲时,RXD接收或发送一位数据)。每当发送或...
  • [] 串、并行加法器

    2012-07-10 18:01:00
    全加器(加法单元) 加法单元是一个三端输入,两端输出的加法网络 ·串行加法器和并行加法器 串行加法器:只设一个全加器称串行加法器 典型的串行加法器只用一位全加器,由移位寄存器从低位到高位串行地提供操作数进行...
  • 8位串行转并行移位寄存器,英文文档,免费下载。
  • DOS下的串口编程

    千次阅读 2012-02-08 14:29:07
    自:...通信接口每次从CPU得到8位数据,然后通过一个并行串行出的移位寄存器,转换成串行位,每次发送一位,将数据发送出去。同样,在接收端也必须有一个串行并行出的移位寄存器来接
  • 74LS164:串行转并行芯片,内部是1个8位的移位寄存器组成,由8个D触发器组成 缺点是:不带锁存寄存器,移位寄存器移位的过程会表现在164的输出引脚上,容易产生输出干扰。 4、用KEIL4进行软件仿真时,按正常...
  • 74HC595芯片

    2012-12-29 19:31:42
    8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态,三态。 特点 8位串行输入 8位串行并行输出 存储状态寄存器,三种状态 输出寄存器可以直接清除 100MHz的移位频率 输出能力 并行输出,总线...
  • DOS串口编程

    千次阅读 2008-12-24 11:53:00
    通信接口每次从CPU得到8位数据,然后通过一个并行串行出的移位寄存器,转换成串行位,每次发送一位,将数据发送出去。同样,在接收端也必须有一个串行并行出的移位寄存器来接收串行数据。并组合打包成一个字节。...
  • 简单并行CRC(verilog)(

    千次阅读 2013-03-07 15:52:37
    偏偏网上资料少得可怜…本来没有想到弄CRC检验的,但是由于前个星期在囧状态机的时候无意描述了一个LFSR也就是线性移位寄存器,然后不知道除了做模2还可以干嘛,于是查到了CRC可以用那块实现.也就是串行校验…并且相当...
  • 文章目录一. 移位寄存器I. D触发器构成的4位移位寄存器II. 双向移位寄存器 74HC194二. 计数器三. 顺序脉冲发生器四....其可以实现将原有的代码依次右移1位,利用这个性质还可以实现代码的串行-并行转
  • 74HC165 是 8 位并行输入串行输出移位寄存器,它是一款高速 CMOS 器件, 遵循 JEDEC 标准。 ①CLK,CLK INH:74HC165 的时钟输入是一个“ 或非门” 结构, CLK 和 CLK INH 功能是可以等效的可以互换使用的, 一般...

空空如也

空空如也

1 2 3 4 5
收藏数 83
精华内容 33
关键字:

并行转串行移位寄存器