精华内容
下载资源
问答
  • 移位寄存器及verilog实现 并行输入串行输出
    千次阅读
    2020-02-20 21:36:00

    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
    
    
    
    更多相关内容
  • 1 Verilog描述 module shift_p2s( input clk, input [7:0] din, input load, output reg q ); reg [7:0] tmp; always@(posedge clk)begin if(load == 1...

    1 Verilog描述

    module shift_p2s(
        input         clk,
        input [7:0]    din,
        input         load,
        output reg     q
    );
        reg [7:0] tmp;
        
        always@(posedge clk)begin
            if(load == 1'b1)
                tmp <= din;
            else begin
                q <= tmp[7];
                tmp <= {tmp[6:0],1'b0};
            end
        end

    endmodule

    2 RTL视图

    3 功能仿真

    展开全文
  • 74HC165驱动程序 74HC165并行输入串行输出移位寄存器的简单AVR驱动程序
  • 按照传统的串行输入/并行输出寄存器来解决,不考虑满时钟域到快时钟域的同步打拍问题。 源代码: module chuan_bing( input clka,clkb,//clka串行输入时钟,clkb并行输出时钟 input da,//串行输入数据 input ...

    题目如下:用Verilog 设计一个接口转换电路,接口timing如下图所示,假设clka频率为clkb频率的两倍(不同源,注意图中clock关系仅为示意),且两次有效访问(wra_n)的间隔时间足够长。

     方法一

    按照传统的串行输入/并行输出寄存器来解决,不考虑满时钟域到快时钟域的同步打拍问题。

    源代码:

    module chuan_bing(
    
    	input clka,clkb,//clka串行输入时钟,clkb并行输出时钟
    	input da,//串行输入数据
    	input rst_n,//异步复位低电平有效
    	input wra_n,//输入使能低电平有效
    	
    	output [7:0]db,//并行输出
    	output reg[2:0] cnt,//计数器:记录da输入的次数,从0计数,满7,wrb有效,输出并行数据
    	output reg wrb//输出
    );
    	reg [7:0]db_reg;
    //	reg wra_1,wra_2;
    	assign db = (wrb)?(db_reg):8'hxx;//如果wrb有效,则db输出寄存器的值,否则输出0;
    	
    	//a时钟域
    	//串行数据输入及存储
    	always @(posedge clka, negedge rst_n) begin
    		if(!rst_n) begin//如果复位,输出为0,计数器清零
    			cnt <= 'b0;
    			db_reg <= 8'hxx;
    		end
    		else if(!wra_n) begin//只在wra_n为0时 才计数
    			cnt <= cnt + 'b1;
    			db_reg <= {db_reg[6:0],da};
    		end
    	end
    	
    	//并行数据输出
    	//快时钟域到慢时钟域需要打拍
    	always @(posedge clkb, negedge rst_n) begin
    		if(!rst_n)
    			wrb <= 'b0;
    		else if(wra_n && cnt=='b0) begin//wrb只在cnt计满值并溢出,且wra_n无效时输出
    			wrb <= 'b1;
    			cnt <= 'bxxx;
    		end
    		else if(wrb)//只让wrb有效一个周期,即输出只输出一个周期
    			wrb <= 'b0;
    	end
    	
    /*	always @(posedge clkb) begin
    		wra_1 <= wra_n;
    		wra_2 <= wra_1;
    	end*/
    	
    endmodule

    测试代码:

    `timescale 1ns/1ns
    module tb_chuan_bing;
    
    	reg clka,clkb,da,rst_n,wra_n;
    	wire [7:0] db;
    	wire [2:0] cnt;
    	wire wrb;
    	
    chuan_bing U1(
    	.clka(clka),
    	.clkb(clkb),
    	.da(da),
    	.rst_n(rst_n),
    	.wra_n(wra_n),
    	.db(db),
    	.cnt(cnt),
    	.wrb(wrb)
    );
    	initial begin
    		clka = 0;
    		clkb = 0;
    		rst_n = 0;
    		#5 rst_n = 1;
    	end
    	
    			always begin 
    			#10 clkb = ~clkb;
    			end
    			always begin 
    			#5 clka = ~clka;
    			end
    
    	
    	initial 
    		begin
    			wra_n = 1;
    			#5 wra_n = 0;
    			
    			da = 1;#10;
    			da = 1;#10;
    			da = 0;#10;
    			da = 0;#10;
    			da = 0;#10;
    			da = 0;#10;
    			da = 1;#10;
    			da = 1;#10;
    			da = 'bx;
    			wra_n = 1;
    			#100;
    			$stop;
    		end
    
    endmodule

    仿真结果:

     仅从波形图上来看,实现了基本功能,但是没有考虑异步时钟域问题。


    方法二

     源代码

    module chuan_bing(
    
    	input clka,clkb,//clka串行输入时钟,clkb并行输出时钟
    	input da,//串行输入数据
    	input wra_n,//输入使能低电平有效
    	output reg wra_n_reg1, wra_n_reg2,
    	output [7:0]db,//并行输出
    	output wrb//输出
    );
    	reg [7:0]db_reg = 0;
    //	reg wra_1,wra_2;
    
    	
    	//a时钟域
    	//串行数据输入及存储
    	always @(posedge clka) begin
    		if(!wra_n) begin//只在wra_n为0时 才计数
    			db_reg <= {db_reg[6:0],da};
    		end
    	end
    	
    	//并行数据输出
    	//快时钟域到慢时钟域需要打拍
    	//reg wra_n_reg1, wra_n_reg2;
    	always @(posedge clkb) begin
    		wra_n_reg1 <= wra_n ;
    		wra_n_reg2 <= wra_n_reg1 ;
    	end
    	
    	
    	wire wra_n_check ; 
    	assign wra_n_check = wra_n_reg1 &&(!wra_n_reg2); //异或亦可以
    	assign wrb = wra_n_check ; 
    	assign db = (wra_n_check == 1'b1) ? db_reg : 0;
    
    	
    endmodule

     仿真代码:

    `timescale 1ns/1ns
    module tb_chuan_bing;
    	reg clka ;
    	reg wra_n;
    	reg da ;
    	reg clkb ;
    	wire [7:0] db ;
    	wire wrb ;
    	wire wra_n_reg1, wra_n_reg2;
    
    	initial begin
    		clka  = 0 ;
    		#3 ;
    		clkb  = 0 ; 
    	end
    	initial begin
    		wra_n = 1 ;
    		@(posedge clka) wra_n = 0 ;
    		da = $random%2 ;
    
    		@(posedge clka) wra_n = 0 ;
    		da = $random%2 ;
    
    		@(posedge clka) wra_n = 0 ;
    		da = $random%2 ;
    
    		@(posedge clka) wra_n = 0 ;
    		da = $random%2 ;
    
    		@(posedge clka) wra_n = 0 ;
    		da = $random%2 ;
    
    		@(posedge clka) wra_n = 0 ;
    		da = $random%2 ;
    
    		@(posedge clka) wra_n = 0 ;
    		da = $random%2 ;
    
    		@(posedge clka) wra_n = 0 ;
    		da = $random%2 ;
    
    		@(posedge clka) wra_n = 1;
    
    	end
    always #5 clka = ~clka ; 
    always #10 clkb = ~clkb ; 
    
    
    chuan_bing my_chuan_bing (
    	.clka(clka) ,
    	.wra_n(wra_n),
    	.da(da) , 
    	.clkb(clkb) ,
    	.db(db) , 
    	.wrb(wrb),
    	.wra_n_reg1(wra_n_reg1), 
    	.wra_n_reg2(wra_n_reg2)
    );
    
    
    endmodule

    仿真结果:

    展开全文
  • 它内建的CMOS位移寄存器与锁存功能,可以将串行输入数据转换成平行输出数据格式。芯片的输入电压范围值为3.3伏特至5伏特,提供16个恒定电流源,可以在每个输出级提供 3-45mA 的恒定电流量以驱动 LED。  特点: ...
  • 这是一个将并行数据转换为串行输出的变换器,利用双向总线输出。这是由EEPROM读写器的缩减得到的,首先对I2C总线特征介绍: I2C总线(inter integrated circuit)双向二线制串行总线协议为:只有总线处于“非忙”...

    利用状态机实现比较复杂的接口设计:

    这是一个将并行数据转换为串行输出的变换器,利用双向总线输出。这是由EEPROM读写器的缩减得到的,首先对I2C总线特征介绍:

    I2C总线(inter integrated circuit)双向二线制串行总线协议为:只有总线处于“非忙”状态时,数据传输才开始。在数据传输期间,只要时钟线为高电平,数据线都必须保持稳定,否则数据线上的任何变化都被当作“启动”或“停止”信号。

     

    下面介绍A、B、C、D的工作状态:

    (1)总线处于非忙状态(A段):该段内的数据线(sda)和时钟线(scl)都保持高电平;

    (2)启动数据传输(B段):当时钟线(scl)为高电平时,数据线(sda)由高电平变为低电平的下降沿被认为是“启动”信号;

    (3)停止数据传输(C段):当时钟线(scl)为高电平时,数据线(sda)由低电平变为高电平的上升沿被认为是“停止”信号;

    (4)数据有效(D段):在出现“启动”信号之后,在时钟线(scl)为高电平时,数据线是稳定的,这是数据线上的数据就是要传送的数据,数据线上的数据改变必须在时钟线(scl)为低电平期间完成,每个数据占用一个时钟;

    (5)应答信号:每个正在接受数据的EEPROM在接收到一个字节的数据后,通常需要发出一个应答信号;而每个正在发送数据的EEPROM在发出一个字节的数据后,通常需要接受一个应答信号;EEPROM读写控制器必须提供一个与这个应答信号相联系的二外的始终脉冲。

    其控制字节一共有8位:1010xxxW/R 其中1010是I2C总线器件特征编码,xxx表示地址,W/R表示读写状态。

     

    在实现并行输入串行输出时,需要两个状态机:

    主状态机主要控制内部存储器和输入端的连接,以及给出应答信号;从状态机主要负责总线连接时,内部寄存器的最高位输出个移位;

     

    状态机的源码如下:

    复制代码
      1 module parallel_to_serial(rst,clk,addr,data,sda,ack);
      2   input rst,clk;
      3   input [7:0]data,addr;
      4   
      5   inout sda;                     //data bus
      6   output ack;                    //ask for next address/data writting wo eeprm;
      7   reg link_write;                //whether connect to output
      8   reg [2:0]state;                //main status,
      9   reg [4:0]sh8out_state;         //serial output status
     10   reg [7:0]sh8out_buf;           //output data buffer
     11   reg finish_F;                  //whether finished an operation of main status
     12   reg ack;                       
     13   
     14   parameter  idle=0, addr_write=3'd1, data_write=3'd2, stop_ack=3'd4;          //main status code
     15   parameter  bit0=1, bit1=2, bit2=3, bit3=4, bit4=5, bit5=6, bit6=7, bit7=8;   //serial output status code
     16   
     17   assign sda=link_write?sh8out_buf[7]:1'bz;               //???????????
     18   
     19   always @(posedge clk)
     20   begin
     21   if(!rst)                       //reset
     22     begin
     23     ack<=0;
     24     link_write<=0;               //???????
     25     finish_F<=0;
     26     state<=idle;
     27     sh8out_state<=idle;
     28     sh8out_buf<=0;
     29     end
     30     else
     31       case(state)
     32         idle:begin
     33              link_write<=0;        //??????
     34              ack<=0;
     35              finish_F<=0;
     36              sh8out_buf<=addr;     //???????
     37              sh8out_state<=idle;
     38              state<=addr_write;    //???????
     39              end
     40         addr_write:begin
     41              if (finish_F==0) begin shift8_out;end    //???????
     42              else
     43                begin
     44                link_write<=0;
     45                ack<=0;
     46                finish_F<=0;
     47                sh8out_buf<=data;  //???????
     48                state<=data_write;
     49                sh8out_state<=idle;     
     50                end          
     51              end
     52         data_write:begin
     53              if (finish_F==0) begin shift8_out;end    //???????
     54              else
     55                begin
     56                link_write<=0;
     57                finish_F<=0;
     58                state<=stop_ack;
     59                ack<=1;            //????????
     60                end
     61              end 
     62         stop_ack:begin            //????
     63              ack<=0;
     64              state<=idle;
     65              end    
     66       endcase
     67     end
     68     
     69     task shift8_out;             //???????
     70     begin
     71     case(sh8out_state)
     72       idle:begin
     73            link_write<=1;        //?????????????????17?assign sda=link_write?sh8out_buf[7]:1'bz;  sda??????????sh8out_buf?????  
     74            sh8out_state<=bit7;
     75            end
     76       bit7:begin
     77            link_write<=1;       
     78            sh8out_buf=sh8out_buf<<1;   //?????data?????bit6
     79            sh8out_state<=bit6;
     80            end
     81       bit6:begin
     82            link_write<=1;       
     83            sh8out_buf=sh8out_buf<<1;  
     84            sh8out_state<=bit5;
     85            end
     86       bit5:begin
     87            link_write<=1;       
     88            sh8out_buf=sh8out_buf<<1;   
     89            sh8out_state<=bit4;
     90            end
     91       bit4:begin
     92            link_write<=1;       
     93            sh8out_buf=sh8out_buf<<1;   
     94            sh8out_state<=bit3;
     95            end
     96       bit3:begin
     97            link_write<=1;       
     98            sh8out_buf=sh8out_buf<<1;   
     99            sh8out_state<=bit2;
    100            end
    101       bit2:begin
    102            link_write<=1;       
    103            sh8out_buf=sh8out_buf<<1;   
    104            sh8out_state<=bit1;
    105            end
    106       bit1:begin
    107            link_write<=1;       
    108            sh8out_buf=sh8out_buf<<1;   
    109            sh8out_state<=bit0;
    110            end
    111       bit0:begin
    112            link_write<=0;       
    113            finish_F<=1;
    114            end
    115       endcase
    116     end
    117     endtask
    118 endmodule
    复制代码

     

     测试程序:

     

    复制代码
     1 `timescale 1ns/1ns
     2 `define clk_period 50
     3 module parallel_to_serial_test;
     4   reg rst,clk;
     5   reg [7:0]data,addr;
     6   wire ack,sda;
     7   wire [2:0]state;                //main status,
     8   wire [4:0]sh8out_state; 
     9   
    10   initial 
    11   begin
    12   clk=0;
    13   rst=1;
    14   data=0;
    15   addr=0;
    16   #(2*`clk_period) rst=0;
    17   #(2*`clk_period) rst=1;
    18   #(100*`clk_period) $stop;
    19   end
    20   
    21   always #50 clk=~clk;
    22   
    23   
    24 
    25   always @(posedge clk)
    26   begin data=data+1; addr=addr+1; end
    27   
    28   parallel_to_serial m(
    29                        .rst(rst),
    30                        .clk(clk),
    31                        .addr(addr),
    32                        .data(data),
    33                        .sda(sda),
    34                        .ack(ack)
    35   );
    36   
    37   assign state=m.state;
    38   assign sh8out_state=m.sh8out_state; 
    39 endmodule
    复制代码

    波形信号:

    转载于:https://www.cnblogs.com/ZZiz/p/6752289.html

    展开全文
  • 8 位串行输入输出或者并行输出移位寄存器 74HC595芯片 英文资料
  • 别的并转串不同的是这次是并转串plus 笔者看网上大多数有关Verilog并转串程序实践性较差,要么输出延时较大,要么不支持输入数据更新输出,还有的就是从低位到高位输出(个人觉得不大方便)。 那么废话少说,...
  • 8 位串行输入输出或者并行输出移位寄存器 74HC595芯片 中文资料.rar
  • 它内建的CMOS位移寄存器与锁存功能,可以将串行输入数据转换成平行输出数据格式。芯片的输入电压范围值为3.3伏特至5伏特,提供16个恒定电流源,可以在每个输出级提供 3-45mA 的恒定电流量以驱动 LED。  特点: ...
  • 1、8位并行数据输入串行数据输出,采用移位方式,代码如下: module shift ( clk,rst_n, din,dout ); parameter Num=8; output dout; //串行数据输出 input clk; //控制时钟 input rst_n; //复位信号,...
  • 并行存取的移位寄存器的设计

    千次阅读 2020-12-10 00:08:14
    4.能够右移串行输入并行输出(串并转换); 5.能够并行输入、右移串行输出(并串转换)。 相关知识 寄存器(Register)的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位...
  • 并行串行 串行并行输出模块

    千次阅读 2018-12-28 17:50:02
    并行串行 串行并行输出模块 夏宇闻Verilog 第15章学习...两个模块ptosdaout16hi,将ptosda并转串模块的串行输出给out16hi串转并模块,输出对应的高位电平 代码如下 //************************并行数据转一种...
  • 74HC595 - 串行并行

    2020-07-14 17:44:36
    移位寄存器存储串行输入的数据,锁存寄存器锁存移位寄存器内的数据。 1)SHIFT CLOCK:移位时钟输入引脚,上升沿将数据串行输入; 2)SERIAL DATA INPUT:串行数据输入引脚; 3)RESET:清空移位寄存器中数据,低电平有效...
  • Verilog实现8位串行数据转并行数据

    千次阅读 2021-08-18 19:26:11
    解串器(deserialize):串行信号转并行信号 输入信号有: 时钟信号clk, 复位信号rst 串行数据输入信号din。 输出信号为8bit并行信号dout。 每经过8个时钟周期,便把收到的8个串行信号合成并行信号并输出,等下8个...
  • 串行/并行转换的具体过程如下:转换前,RC端加低电平,使1、2两片寄存器的内容清0,此时S1S0=11,寄存器执行并行输入工作方式。当第一个CP脉冲到来后,寄存器的输出状态Q0~Q7为01111111,与此同时S1S0变为01,转换...
  • LFSR主要用于通信加扰解...线性反馈移位寄存器(LFSR)是内测试电路中最基本的标准模块结构,既用作伪随机测试码产生器,也作为压缩测试结果数据的特征分析器。 一个n阶的LFSR由n个触发器若干个异或门组成。在实际...
  • 在SL低电平且SCK上升沿的时候,将串行数据SDATA存入寄存器里(要求存入D0之后的数据,A0、A1、A2及TEST BIT不存入寄存器)。并且,SL由高电平转为低电平后,数据重新从寄存器的第一位开始存。
  • 1 串转并功能,通过移位寄存器和输出锁存器实现 2 FPGA需要通过74HC595这个芯片把16位的数据(sel+seg)变为并行端口用来驱动数码管 3 3.3V供电情况下,取SHCP时钟频率位12.5MHz(50-20ns,25-40ns,12.5-80ns),让...
  • /* 名称:串行数据转换为并行数据说明:串行数据由 RXD 发送给串并转换芯片 74164,TXD 则用于输出移位时钟脉冲,74164 将串行输入的 1 字节转换为并行数据,并将转换的数据通过 8 只 LED 显示出来。本例串口工作...
  • 移位寄存器串进并出

    2021-06-17 21:20:03
    第一步:目的:将要准备输入的位数据移入74HC595数据输入端上。 方法:送位数据到_595。 第二步:目的:将位数据逐位移入74HC595,即数据串入 方法:SH_CP产生一上升沿,将DS上的数据移入74HC595移位寄存器中,先送低位...
  • 移位寄存器——数电第六章学习

    千次阅读 2022-04-06 10:25:59
    串行输入并行输出(serial in/parallel out) 并行输入串行输出(parallel in /serial out) 并行输入并行输出(parallel in /parallel out) 单向寄存器 由D触发器组成的电路,输出Q跟随D状态。
  • 题: 试用D触发器必要的门电路(或最小数量的中规模集成电路芯片)设计两位串行输入并行输出双向移位寄存器. 寄存器有X、K两个输入端, K控制移位方向, X输入数据. K=0时, 寄存器数据从高位移向低位, X往寄存器高位...
  • 并行串行传输,串行高速传输

    万次阅读 2018-03-24 17:17:05
    串行只有一根数据线,不存在信号线之间的串扰,而且串行还可以采用低压差分信号,可以大大提高它的抗干扰性,所以可以实现更高的传输速率,尽管并行可以一次传多个数据位,但是时钟远远低于串行,所以目前串行传输...
  • 移位寄存器

    2020-12-09 01:57:52
    移位寄存器是暂时存放数据的部件,同时它还具有移位功能。 一、特点分类 从逻辑结构上看,移位寄存器...移位寄存器的数据输入方式有串行输入和并行输入之分。串行输入就是在时钟脉冲作用下,把要输入的数据从一个
  • 微型计算机可编程并行接口输入/输出实验 一、实验目的 1.掌握8255工作方式1时的使用及编程。 2.进一步掌握中断处理程序的编写。 二、实验设备与环境 TPC-2003A通用微机接口实验箱,windows XP运行环境 三、实验...
  • 串行工作模式之同步移位寄存器输入输出方式 主要用于扩展并行输入或输出口。数据有RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送接受均为8位数据。低位在前,高位在后。 //串行口...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,693
精华内容 10,677
关键字:

寄存器并行输入和串行输入