目录
1.理解移位发生器74LS299的工作原理及其功能表。
2.掌握移位控制运算的原理。
3.验证移位控制器的组合功能。
1.移位运算实验原理如图所示,使用了一片74LS299(U34)作为移位发生器,其八位输入/输出端引到8芯排座ALUO2,在实验时用8芯排线连至数据总线插座BUS4。299B`信号由开关299B提供,控制其使能端,T4为其时钟脉冲,手动方式实验时将T4与手动脉发生器输出端SD相连,即J23跳线器上T4连SD。

74LS299芯片:

(1)芯片功能:
74LS299芯片是一个8位通用移位/存储寄存器,具有3态输出。四种操作模式:保持(存储)、左移、右移和加载数据。并行负载输入和触发器输出被多路复用,以减少封装管脚的总数。单独的输出Q0和Q7可以轻松级联。单独的低电平主复位用于复位寄存器。
(2)芯片引脚:
CLK: 时钟脉冲输入端(有效上升沿)
D0(DS0):左移的串行数据输入
D7(DS7):右移的串行数据输入
S1,S0:模式选择输入端
(MR)`:异步主复位输入端(低电平有效)
(OE1)`,(OE2)`:三态门输入输出端(低电平有效)
I/O0~I/O7: 并行数据输入或三态并行输出
Q0,Q7: 串行输出
(3)芯片功能表:
| 299B | S1 | S0 | M | 功 能 |
| 0 | 0 | 0 | 任意 | 保持 |
| 0 | 1 | 0 | 0 | 循环右移: DS7→I/O7…I/O0 (Q0)→AQ0→DS7 |
| 0 | 1 | 0 | 1 | 带进位循环右移: DS7→I/O7…I/O0(Q0)→AQ0→CY→DS7 |
| 0 | 0 | 1 | 0 | 循环左移: DS0←AQ7←I/O7(Q7)…I/O0← DS0 |
| 0 | 0 | 1 | 1 | 带进位循环左移: DS0←CY←AQ7←I/O7(Q7)…I/O0← DS0 |
| 任意 | 1 | 1 | 任意 | 装数 |
1、实验接线图
⑴ ALUO2连BUS4;⑵ EXJ1连BUS3;⑶ SJ2连UJ2;
⑷ 跳线器ALUB、299B、SWB拨在左边(手动位置),且开关ALUB拨在1电平,299B拨在0电平。
⑸ 跳线器J23上T4连SD;

2、实验原理图


1、连接实验线路,仔细查线无误后接通电源。
2、置数(写入学号后两位05H),具体步骤如下:

3、移位,参照上表改变S0、 S1、 M、 299B 的状态,按动手动脉冲开关以产生时钟脉冲T4,观察移位结果。
移位寄存器初始数据为:05H, 299B S1 S0 M=0 0 1 0 循环左移
第1次按动手动脉冲开关,移位寄存器数据为:00001010
第2次按动手动脉冲开关,移位寄存器数据为:00010100
第3次按动手动脉冲开关,移位寄存器数据为:00101000
第4次按动手动脉冲开关,移位寄存器数据为:01010000
实验结果记录表
| 移位前的值 | 功能选择 | 移4位后的值 | 移8位后的值 | ||||
| 74LS299 | cy | 299B S1 S0 M | 操作 | 74LS299 | cy | 74LS299 | cy |
| 05H
| 0 | 0 0 1 0 | 循环左移 | 50H
| 0 | 05H
| 0 |
| 0 | 0 0 1 1 | 带进位循环左移 | 0 | 1 | |||
| 0 | 0 1 0 0 | 循环右移 | 0 | 0 | |||
| 0 | 0 1 0 1 | 带进位循环右移 | 0 | 0 | |||
1. 你认为移位寄存器在计算机中有什么用途?举两个例子说明。
移位寄存器可以构成计数器,顺序脉冲发生器,串行累加器,串并转换,并串转换等。
①其中把移位寄存器的末级触发器的Q输出反馈到它的串行输入端,就可以构成环形计数器。
②串行/并行转换是指串行输入的数据,经过转换电路之后变成并行数据输出,电路中S0端接高电平1,S1受Q7控制,两片寄存器连接成串行输入右移工作方式。Q7是转换结束标志。当Q7=1时,S1为0,使之成为S1S0=01的串入右移工作方式。当Q7=0时,S1为1,且有S1S0=11,表示串行送数结束,标志着串行输入数据已转换成为并行输出数据。
2. 根据电路的原理图,分析带进位循环左移时,数据的详细传输路径。
Ds0←CY←AQ7←I/O7(Q7)←I/O6(Q6)←I/O5(Q5)←I/O4(Q4)←I/O3(Q3)←I/O2(Q2)←I/O1(Q1)←I/O0(Q0)←Ds0
3. 根据电路的原理图,分析循环右移时,数据的详细传输路径。
Ds7→I/O7(Q7)→I/O6(Q6)→I/O5(Q5)→I/O4(Q4)→I/O3(Q3)→I/O2(Q2)→I/O1(Q1)→I/O0(Q0)→AQ0→Ds7
这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我
给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in
给定两个大小相等的数组,如何找到不考虑位置的匹配元素的数量?例如:[0,0,5]和[0,5,5]将返回2的匹配项,因为有一个0和一个5共同;[1,0,0,3]和[0,0,1,4]将返回3的匹配项,因为0有两场,1有一场;[1,2,2,3]和[1,2,3,4]将返回3的匹配项。我尝试了很多想法,但它们都变得相当粗糙和令人费解。我猜想有一些不错的Ruby习惯用法,或者可能是一个正则表达式,可以很好地回答这个解决方案。 最佳答案 您可以使用count完成它:a.count{|e|index=b.index(e)andb.delete_at
如thisanswer中所述,Array.new(size,object)创建一个数组,其中size引用相同的object。hash=Hash.newa=Array.new(2,hash)a[0]['cat']='feline'a#=>[{"cat"=>"feline"},{"cat"=>"feline"}]a[1]['cat']='Felix'a#=>[{"cat"=>"Felix"},{"cat"=>"Felix"}]为什么Ruby会这样做,而不是对object进行dup或clone? 最佳答案 因为那是thedocumenta
Ruby中如何“一般地”计算以下格式(有根、无根)的JSON对象的数量?一般来说,我的意思是元素可能不同(例如“标题”被称为其他东西)。没有根:{[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]}根包裹:{"posts":[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]} 最佳答案 首先,withoutroot代码不是有效的json格式。它将没有包
目标我正在尝试计算自给定日期以来周的距离,而无需跳过任何步骤。我更喜欢用普通的Ruby来做,但ActiveSupport无疑是一个可以接受的选择。我的代码我写了以下内容,这似乎可行,但对我来说似乎还有很长的路要走。require'date'DAYS_IN_WEEK=7.0defweeks_sincedate_stringdate=Date.parsedate_stringdays=Date.today-dateweeks=days/DAYS_IN_WEEKweeks.round2endweeks_since'2015-06-15'#=>32.57ActiveSupport的#weeks
技术选型1,前端小程序原生MINA框架cssJavaScriptWxml2,管理后台云开发Cms内容管理系统web网页3,数据后台小程序云开发云函数云开发数据库(基于MongoDB)云存储4,人脸识别算法基于百度智能云实现人脸识别一,用户端效果图预览老规矩我们先来看效果图,如果效果图符合你的需求,就继续往下看,如果不符合你的需求,可以跳过。1-1,登录注册页可以看到登录页有注册入口,注册页如下我们的注册,需要管理员审核,审核通过后才可以正常登录使用小程序1-2,个人中心页登录成功以后,我们会进入个人中心页我们在个人中心页可以注册人脸,因为我们做人脸识别签到,需要先注册人脸才可以进行人脸比对,进
如何计算两个字符串之间的字符交集?例如(假设我们有一个名为String.intersection的方法):"abc".intersection("ab")=2"hello".intersection("hallo")=4好的,男孩女孩们,感谢你们的大量反馈。更多示例:"aaa".intersection("a")=1"foo".intersection("bar")=0"abc".intersection("bc")=2"abc".intersection("ac")=2"abba".intersection("aa")=2一些补充说明:维基百科定义intersection如下:Int