实验九_步长可变的加减计数器
数字计步器实验报告无错版

数字电路课程设计任务书20 12 -20 13 学年第1学期第19 周-20周题目数字记步器容及要求〖基本要求〗采用4位数字显示步数,传感器采用水银开关,主人走一步的时候,开关闭合一次〖提高要求〗〖参考原理、框图〗本系统的原理和计数器相同、但是要注意开关的抖动以及信号的整形问题。
〖主要参考元器件〗74LS390,74LS48,74LS08进度安排1.仿真、画PCB线路板图、领元器件:2天;2. 制作、焊接:2天3.调试:3天4. 验收:1天5. 提交报告:2012-2013学年第一学期3~7周学生:100421 24 10042129指导时间:第2~3周指导地点:综合楼508室任务下达20 13年 1 月 5 任务完成20 13年 1 月18日日考核方式 1.评阅□√ 2.答辩□√ 3.实际操作□√ 4.其它□指导教师小林系(部)主任付崇芳注:1、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。
2、课程设计结束后与“课程设计小结”、“学生成绩单”一并交院教务存档。
课程设计说明书课程设计名称:数字电路课程设计课程设计题目:数字计步器学院名称:信息工程学院专业:通信工程班级:100421学号:24 :**评分:教师:20 12 年 1 月18 日摘要本课程设计是设计数字计步器,要求采用4位数字显示步数,传感器采用水银开关,主人走一步的时候,开关闭合一次,同时还应具备清零的功能。
为了实现对移动步数的累计,在人体移动时水平位置发生变化从而触动水银开关使电路实现间断性的接触,从而产生脉冲信号使计数电路实现累计,达到记录人体移动步数的目的。
在设计该电路时,由于要实现对移动步数的累计故要用计数器来计数。
为了清楚的知道自己任何时候走了多少步采用了LED数码管来显示数据并用BCD七段译码器来驱动数码管。
故该电路由输入电路,计数电路,译码电路三部分构成。
其中,输入电路由一个脉冲计数产生电路和一个置零电路组成;记数电路由两块74LS390和一块74LS08连接而成;译码电路是通过四片74LS247和电阻以及LED管。
可变步长计数器的设计

东南大学电工电子实验中心实验报告课程名称:电路与电子线路实验1第 2 次实验实验名称:可变步长计数器的设计院(系):专业:姓名:学号:实验室: 实验组别:同组人员:实验时间:年月日评定成绩:审阅教师:一、实验内容要求1.可变步长计数器的设计内容:实现N步长计数器●实现1/N步长计数器●N为四位二进制数,可现场设置要求:●在Multisim软件平台上设计实验电路●运行并检验实验结果二、实现方案1.N步长计数器设计方案(1)使用1个全加器和4个D触发器实现N步长加减计数器。
4个D触发器用来存储表示运算结果的4位二进制数,其D输入端分别接全加器的运算结果输出端SUM_1, SUM_2, SUM_3, SUM_4,时钟信号端CP接控制开关A。
控制开关A闭合一次,相当于加一次脉冲信号。
全加器的其中一个4位二进制数输入端A1, A2, A3, A4分别接4个D触发器的输出端Q,另一个4位二进制输入端B1, B2, B3, B4则分别接控制开关B,C,D,E。
这四个开关用于控制步长,每个开关代表着4位二进制数的一位。
设置好步长N后(通过设置控制开关B,C,D,E的闭合与断开实现),每闭合一次控制开关A,全加器将前一次的运算结果+N(二进制加法)后送到4个D触发器,因此4个D触发器的输出结果为前一次结果+N(二进制加法),从而实现了N步长加法计数器。
N步长减法计数器只需在设置步长N时取N的补码即可实现。
(2)使用1个全加器,1个二输入与门,1个二输入与非门,2个74LS47和2个七段数码管实现结果的十进制表示。
运算结果的量程为15,一个数码管用于显示结果的十位数,另一个数码管用于显示结果的个位数。
上述4个D触发器的结果Q输出到全加器的一个4位二进制数输入端,全加器的另一个4位二进制数输入端则或者输入0000,或者输入0110,具体输入哪一个要看与门输出的结果。
全加器的4个输出端接到74LS47上,该74LS47再接到显示个位数的数码管。
99进制加减手动自动计数器.

基础工程设计(论文)说明书题目:M=99的十进制加/减可逆计数器院(系):电子工程与自动化学院专业:测控技术与仪器学生姓名:黄昭阳学号:1100820216指导教师:黄源2013年9月13日目录引言 (2)1 设计方案 (3)1.1 手动方案 (3)1.2 自动方案 (4)2 实现方案 (5)2.1 脉冲电路实现方案 (5)2.2 手动加减可逆计数方案 (6)2.3 自动加减可逆计数方案 (7)2.4 74LS192功能介绍 (8)2.5 译码电路及LED数码管 (9)2.6 画出完整电路原理图 (10)3 制作电路板与调试 (11)3.1 制作板子过程 (11)3.1.1 注意事项 (11)3.2 调试步骤 (11)3.2.1 调试结果与分析 (11)4 基础工程设计总结 (12)谢辞 (13)参考文献 (14)附录 (15)引言我们从数电的学习中可以知道,计数器是数电最基本也是最重要的知识。
以74LS192为首的计数器电路单元也是很常见的电路。
本次基础工程设计的目的就是强化我们对计数器的基础学习,同时深化学习掌握利用74LS192设计不同功能的计数器电路的能力。
同时在本次基础工程设计中我们也掌握了proteus仿真软件的使用,以及加减可逆计数器的设计和调试方法。
本次课题先是简要说明了M=99进制加减可逆计数器的基本原理和技术指标。
本次报告中,我将陈述自己的设计方案和思路,制作过程还有总结体会。
功能指标要求可以实现0到99和99到0的加减计数方式,要求加减计数切换为手动和自动。
即加减计数可利用数据选择器来实现加减自动转换。
主要元器件74LS00,74LS20,NE555,74LS76,74LS192,74LS48及LED共阴数码管数码管。
1 设计方案1.1 手动方案用开关人为选择控制脉冲和高电平的输出从方案设计图1.1—a可以看出,我可以手动控制让电路输出CLK给CPU且输出高电平给CPD让其实现加法计数。
实验九 计数器及其应用 实验内容、原理及表格

实验九 计数器及其应用实验内容:一、用D 触发器构成异步二进制加法计数器说明:本电路用两块74LS74共四只D 触发器构成,图中第一、二只为第一块,第三、四只为第二块;除了图中标注的引脚外,电源端14、地端7记住连接;3Q 、2Q 、1Q 、0Q 接到电平显示。
请大家在实验报告中将减法电路图画出。
该电路的特点是每一个D 触发器都构成T '触发器,利用了其具有的翻转功能。
在计数器清零后(如何清零?),第一个T '触发器的状态为0=Q 、1=Q 。
(1)当第一个CP 0到来时,变化为1=Q 、0=Q ,此时输出结果为0001。
(2)当第二个CP 0到来时,第一个T '触发器的状态变化为0=Q 、1=Q ,即Q 由0→1,此时CP 1得到一个上升沿触发信号,第二个T '触发器的状态变为1=Q 、0=Q ,输出结果为0010。
(3)接着重复步骤(1),得到0011,依此类推。
表一 用D 触发器构成异步二进制加/减法计数器二、按下表格测试CC40192同步十进制可逆计数器的逻辑功能三、用CC40192同步十进制可逆计数器实现8421码十进制加/减法计数器表二实现8421码十进制加/减法计数器四、按图9—3,用两片CC40192级联组成两位十进制加法计数器,输入1Hz连续脉冲,实现00—99累加计数。
说明:CR、LD、CP应接计数为加计数时相应的电平。
请大家在实验报告中将实现由D99—00递减的减法计数器电路图画出。
五、用CC40192同步十进制可逆计数器实现六进制加法计数器(复位法)表三实现六进制加法计数器六、用CC40192同步十进制可逆计数器实现九进制加法计数器(复位法)表四实现九进制加法计数器七、利用置数功能(LD )获得421进制计数器421进制计数器的计数原理:当第10个脉冲输入CC40192(1)后,CC40192(1)的CO 将向CC40192(2)进位,而当第100脉冲输入CC40192(1)后,CC40192(2)的CO 就向CC40192(3)进位,当第400个脉冲输入CC40192(1)后,CC40192(3)计数器输出的32100100Q Q Q Q =,即相当于百位的十进制数4。
可编程逻辑器件实验EDA-步长可变的加减计数器

实验六步长可变的加减计数器
一、实验目的
1、掌握加减法计数器以及特殊功能计数器的设计原理;
2、用HDL语言设计多功能计数器。
二、硬件需求
EDA/SOPC实验箱一台。
三、实验原理
计数器的步长是指计数器每次的改变量。
在很多应用场合,都希望计数器的步长可变。
所谓步长可变,也就是计数器的步长是一个不定值,具体是多少是要靠外部干预的,比如外部给定其步长为5,那么该计数器每次要么增加5,要么减少5,也就是说计数器每次的改变量是5。
这种步长可变的计数器才具有一定的实际意义,比如在直接数字频率合成DDFS 中的地址累加器就是一个步长可变的递增计数器。
四、实验内容
本实验要完成的任务就是设计一个8位的计数器,步长的改变量要求从0~15,实验中用拨挡开关模块的SW1A~SW4A来作为步长改变量的输入,用按键F1来控制计数器的增减,具体要求为:当F1输入为高时,计数器为步长可变的加计数器;当F1输入为低时,计数器为步长可变的减计数器。
计数器输出的Q值用七段数码管模块来表示。
实验中计数器的时钟频率为了便于眼睛观察,同上个实验一样用1Hz的时钟。
五、实验步骤
(1)实现程序
本实验采用顶层设计
元件例化
(2)仿真波形图
从仿真波形图可以看出,LED输出波形持续变化,以设定的步长,增减计数,产生相应的七位译码值。
(3)实际结果。
实验:计数器功能及其应用

实验计数器功能及其应用实验目的:通过实验,熟悉中规模集成计数器的功能及应用,掌握利用中规模集成电路计数器构成任意进制计数器的方法,学会综合测试的方法,让学生加深对相关理论知识的理解。
实验原理:计数器对输入的时钟脉冲进行计数,来一个CP脉冲计数器状态变化一次。
根据计数器计数循环长度M,称之为模M计数器(M进制计数器)。
通常,计数器状态编码按二进制数的递增或递减规律来编码,对应地称之为加法计数器或减法计数器。
一个计数型触发器就是一位二进制计数器。
N个计数型触发器可以构成同步或异步N位二进制加法或减法计数器。
当然,计数器状态编码並非必须按二进制数的规律编码,可以给M进制计数器任意地编排M个二进制码。
在数字集成产品中,通用的计数器是二进制和十进制计数器。
按计数长度、有效时钟、控制信号、置位和复位信号的不同有不同的型号。
74LS161是集成TTL四位二进制加法计数器,其符号和管脚分布分别如下图所示:表 8-1为74LS161的功能表:表8-1A B C D从表1在为低电平时实现异步复位(清零需要时钟信号。
在复位端高电平条件下,预置端LD为低电平时实现同步预置功能,即需要有效时钟信号才能使输出状态等于并行输入预置数 A B C D。
在复位和预置端都为无效电平时,两计数使能端输入使能信号,74LS161实现模16加法计数功能,;两计数使能端输入禁止信号,,集成计数器实现状态保持功能,。
在时,进位输出端OC=1。
在数字集成电路中有许多型号的计数器产品,可以用这些数字集成电路来实现所需要的计数功能和时序逻辑功能。
用M进制集成计数器构成任意N进制计数器:1、M>N,需一片M进制计数器一种为反馈清零法,另一种为反馈置数法。
(1)反馈清零法反馈清零法是利用反馈电路产生一个给集成计数器的复位信号,使计数器各输出端为零(清零)。
反馈电路一般是组合逻辑电路,计数器输出部分或全部作为其输入,在计数器一定的输出状态下即时产生复位信号,使计数电路同步或异步地复位。
实验九_步长可变的加减计数器

实验九步长可变的加减计数器一、实验目的1.掌握加减法计数器以及特殊功能计数器的的设计原理。
2用VHDL语言设计多功能计数器。
二、实验原理计数分同步计数器和异步计数器,如果按工作原理和使用情况来分那就更多了。
1.加减工作原理加减计数也称为可逆计数,就是根据计数控制信号的不同,在时钟脉冲的作用下,计数器可以进行加1计数操作或者减1计数操作。
2.变步长工作原理如步长为3的加法计数器,计数状态变化为0、3、6、9、12……,步长值由输入端控制。
在加法计数时,当计数值达到或超过99时,在计数器下一个时钟脉冲过后,计数器清零;在减法计数时,当计数值达到或小于0时,在计数器下一个时钟脉冲过后,计数器也清零。
三、实验内容1 设计的计数步长可在0~79之间变化2 通过仿真或观察波形图验证设计的正确性。
3 编译下载验证结果。
四、设计提示1.注意IF语句的嵌套。
2.注意加减计数状态的变化,计数值由9变0(加法)及由0变9(减法)各位的变化。
由于计数器为十进制计数器,还应考虑进位或借位后进行加6及减6校正。
五、实验报告要求1.写出多模加减计数器的VHDL源程序。
2.叙述多模加减计数器的工作原理。
SF = ‘1’加标志,SF=’0’减标志3.画出计数器工作波形图.LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CHANGABLE ISPORT(CLK,RESET,SF:IN STD_LOGIC;SIZE:IN STD_LOGIC_VECTOR(6 DOWNTO 0);DO:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END ENTITY CHANGABLE;ARCHITECTURE C_SIZE OF CHANGABLE ISSIGNAL C_COUNT: STD_LOGIC_VECTOR(6 DOWNTO 0); BEGINPROCESS(CLK,RESET,SF,SIZE)V ARIABLE TP:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGINIF(RESET = '1')THENC_COUNT<=(OTHERS=>'0');ELSIF(CLK'EVENT AND CLK = '1')THENIF(SF='1')THENTP:=C_COUNT+SIZE;IF(TP>79)THENC_COUNT<=(OTHERS=>'0');ELSEC_COUNT<=C_COUNT+SIZE;END IF;ELSEIF(TP < SIZE)THENC_COUNT<=(OTHERS=>'0');ELSEC_COUNT<=C_COUNT-SIZE;END IF;END IF;END IF;DO<=C_COUNT;END PROCESS;END ARCHITECTURE C_SIZE;。
长整数加减运算实验报告

计算机存储的数据是有范围限制的,对于超出存储限制的数据无法直接在计算机中计算,为此需要设计相应的程序来完成这种超出范围限制的长整数间的四则运算。
设计一个实现任意长的整形数进行四则运算的程序,要求完成长整数的加、减运算,乘除运算可选做。
在这里长整数没有范围限制,可任意长。
运算后的进位、借位等都要进行正确处理,可实现动态的输入,实时的输出。
学习使用基本的数据结构解决实际应用中的问题,将学习的理论知识应用于实践,增强学生解决实际问题的能力。
这里可采用的基本数据结构为线性表。
1) 输入:动态输入以数字开头,可以任意长度,中间不用输入分隔符,直接输入即可。
2) 输出:实时输出的结果是加减运算后的结果。
3) 功能:实现长整数的加减运算。
4) 测试数据: 0、0;输出“0”2345,6789、-7654,3211;输出“1,0000,0000”1,0000,0000,0000、9999,9999;输出“9999,0000,0001”1,0001,0001、;1,0001,0001;输出“0”此实验采用的数据结构是双向循环链表。
这样可以很容易的找到他的前驱以及它的后继。
节点采用结构体类型,代码如下:typedef struct Node // 双向链表的结构体定义{int data;struct Node *prior;struct Node *next;}DLNode;1) void ListInitiate(DLNode **head)操作结果:初始化一个头结点为head 的双向循环链表;2) int ListLength(DLNode *head)操作结果:计算以head 为头结点的链表的长度3) int ListInsert(DLNode *head,int i,int x)操作结果:将节点数据为x 的节点插到第i 个位置上去。
4) int abs(int x)操作结果:绝对值函数,返回x 的绝对值。
5) int InputNumber(DLNode *head)操作结果:将从键盘中接收数据并把得到的数据存入以head 为头结点的链表中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验九步长可变的加减计数器
一、实验目的
1.掌握加减法计数器以及特殊功能计数器的的设计原理。
2用VHDL语言设计多功能计数器。
二、实验原理
计数分同步计数器和异步计数器,如果按工作原理和使用情况来分那就更多了。
1.加减工作原理
加减计数也称为可逆计数,就是根据计数控制信号的不同,在时钟脉冲的作用下,计数器可以进行加1计数操作或者减1计数操作。
2.变步长工作原理
如步长为3的加法计数器,计数状态变化为0、3、6、9、12……,步长值由输入端控制。
在加法计数时,当计数值达到或超过99时,在计数器下一个时钟脉冲过后,计数器清零;在减法计数时,当计数值达到或小于0时,在计数器下一个时钟脉冲过后,计数器也清零。
三、实验内容
1 设计的计数步长可在0~79之间变化
2 通过仿真或观察波形图验证设计的正确性。
3 编译下载验证结果。
四、设计提示
1.注意IF语句的嵌套。
2.注意加减计数状态的变化,计数值由9变0(加法)及由0变9(减法)各位的变化。
由于计数器为十进制计数器,还应考虑进位或借位后进行加6及减6校正。
五、实验报告要求
1.写出多模加减计数器的VHDL源程序。
2.叙述多模加减计数器的工作原理。
SF = ‘1’加标志,SF=’0’减标志
3.画出计数器工作波形图.
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CHANGABLE IS
PORT(CLK,RESET,SF:IN STD_LOGIC;
SIZE:IN STD_LOGIC_VECTOR(6 DOWNTO 0);
DO:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)
);
END ENTITY CHANGABLE;
ARCHITECTURE C_SIZE OF CHANGABLE IS
SIGNAL C_COUNT: STD_LOGIC_VECTOR(6 DOWNTO 0); BEGIN
PROCESS(CLK,RESET,SF,SIZE)
V ARIABLE TP:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGIN
IF(RESET = '1')THEN
C_COUNT<=(OTHERS=>'0');
ELSIF(CLK'EVENT AND CLK = '1')THEN
IF(SF='1')THEN
TP:=C_COUNT+SIZE;
IF(TP>79)THEN
C_COUNT<=(OTHERS=>'0');
ELSE
C_COUNT<=C_COUNT+SIZE;
END IF;
ELSE
IF(TP < SIZE)THEN
C_COUNT<=(OTHERS=>'0');
ELSE
C_COUNT<=C_COUNT-SIZE;
END IF;
END IF;
END IF;
DO<=C_COUNT;
END PROCESS;
END ARCHITECTURE C_SIZE;。