实验8 移位寄存器实验报告

移位寄存器实验报告

(一)    实验原理

 移位寄存器是用来寄存二进制数字信息并且能进行信息移位的时序逻辑电路。根据移位寄存器存取信息的方式可分为串入串出、串入并出、并入串出、并入并出4种形式。74194是一种典型的中规模集成移位寄存器,由4个RS触发器和一些门电路构成的4位双向移位寄存器。该移位寄存器有左移,右移、并行输入数据,保持及异步清零等5种功能。有如下功能表

(二)    文本框: 74194移位寄存器

实验框图

 

(三)    实验内容

1. 按如下电路图连接电路

十个输入端,四个输出端,主体为74194.

2. 波形图 

参数设置:

End time:2us                  Grid size:100ns

波形说明:

clk:时钟信号;                  clrn:置0

s1s0:模式控制端             sl_r:串行输入端

abcd:并行输入                 qabcd:并行输出

结论:

clrn优先级最高,且低有效高无效;s1s0模式控制,01右移,10左移,00保持,11置数重载;sl_r控制左移之后空位补0或补1。

3. 数码管显示移位

(1)电路图

(2)下载验证

管脚分配:

a,b,c,d:86,87,88,89    bsg[3..0]:99,100,101,102

clk:122        clk0:125          clrn:95

q[6..0]:51,49,48,47,46,44,43    s0,s1:73,72

sl_r:82,83

结论:

下载结果与仿真结果一致,下载正确。

 

第二篇:实验一、线性移位寄存器实验报告

实验一、实验报告

姓名: 何璟 学号: 1208060099 实验日期:2014.10.8

一、实验名称: 线性移位寄存器

二、 实验目的

1、

2、

3、

4、 了解线性移位寄存器产生伪随机序列的原理。 伪随机寄存器的软件实现。 同一个反馈函数不同初始值下的输出序列。 同一个初始值在不同反馈函数下的输出序列。

三、 实验基本方法

用C语言编写一个32位线性移位寄存器,其输出的伪随机序列显示在屏幕上。

四、 实验步骤

1、 编程实现32位线性移位寄存器。

2、 观察输出序列前1000——2000位的随机性。

3、 改变反馈函数,再观察输出序列前1000——2000位的随机性。

4、 改变初始值,再观察输出序列前1000——2000位的随机性。

5、 将寄存器改成8位,找到一个m序列。**

五、 实验结果

1、 程序设计的思想,及程序原代码。

计算为随机序列按钮的程序代码

void CSy1View::OnButton1()

{

// TODO: Add your control notification handler code here

unsigned int lfsr,fsc=0x94411889;// 反馈函数

unsigned int t1,s,f,fs;

int i,j,c0=0,c1=0; // 0和1个数

UpdateData(TRUE);

lfsr=m_shuru;

m_ed="";

fs=lfsr&fsc;

for(i=0;i<2000;i++)

{

fs=lfsr&fsc;

t1=lfsr&0x80000000;

if(t1==0)

{

c0++;

m_ed = m_ed+"0";

}

else

{

m_ed = m_ed+"1";

c1++;

}

f=0; //反馈函数计算

for(j=0;j<32;j++)

{

if(fs&0x1!=0) //最低位

f=f^1;

else

f=f^0;

fs=fs/2;

}

lfsr=lfsr*2+f; //移位

}

m_c0.Format("%d",c0);

m_c1.Format("%d",c1);

UpdateData(FALSE);

}

改变反馈函数

void CSy1View::OnButton1()

{

// TODO: Add your control notification handler code here unsigned int lfsr,fsc=0x23193324;//反馈函数 unsigned int t1,s,f,fs;

int i,j,c0=0,c1=0; // 0和1个数

UpdateData(TRUE);

lfsr=m_shuru;

m_ed="";

fs=lfsr&fsc;

for(i=0;i<2000;i++)

{

} fs=lfsr&fsc; t1=lfsr&0x80000000; if(t1==0) { c0++; m_ed = m_ed+"0"; } else { m_ed = m_ed+"1"; c1++; } f=0; //反馈函数计算 for(j=0;j<32;j++) { if(fs&0x1!=0) //最低位 f=f^1; else f=f^0; fs=fs/2; } lfsr=lfsr*2+f; //移位 } m_c0.Format("%d",c0); m_c1.Format("%d",c1); UpdateData(FALSE);

2、 报告观察结果。

实验一线性移位寄存器实验报告

改变初始值

实验一线性移位寄存器实验报告

改变反馈函数

实验一线性移位寄存器实验报告

3、 对观察结果的分析。

4、 分析8位寄存器产生的m序列。*** 打**号的选做。

相关推荐