集成计数器74LS90测试及分频

集成计数器74LS90测试及分频
集成计数器74LS90测试及分频

集成计数器74LS90的测试与分频

一、实验目的

1、掌握二—十进制(BCD码)异步计数器的工作原理和设计方法

2、掌握中规模集成二—五—十进制(BCD码)异步计数器74LS90的功能及应用

3、熟悉任意进制计数器的设计与实现

二、实验器材

双踪示波器、函数信号发生器、三路直流稳压电源、万用表、74LS90

三、实验原理

异步集成计数器74LS90

74LS90为中规模TTL集成计数器,可实现二分频、五分频和十分频等功能,它由一个二进制计数器和一个五进制计数器构成。其引脚排列图和功能表如下所示:

异步计数器7490功能描述:

1、以CP0(CPA)为计数脉冲,Q0(QA)为输出,得到一位二进制计数器。

2、以CP1(CPB)为计数脉冲,Q3Q2Q1(QDQCQB)为输出,得到5进制计数器,计数状态为(Q3Q2Q1):000、001、010、011、100,Q3为CP1的5分频输出。

3、R0(1)R0(2)为11时QDQCQBQA输出为0000;R9(1)R9(2)为11时QDQCQBQA输

出为1001。

4、8421BCD码十进制计数器接法,输出高位到低位的顺序为QDQCQBQA,QD为最

高位。

5、5421BCD码十进制计数器接法,输出高位到低位的顺序为QAQDQCQB,QA为最高位。

异步计数器7490内部逻辑图:

集成电路74LS00为四组2输入端与非门(正逻辑)其引脚排列图和功能表如下所示:

四、实验内容

1、使用74LS90实现8421BCD码十进制计数器(十分频器),使用示波器测量波形

2、在8421BCD码十进制计数器设计六进制计数器(六分频器),有置零法和置九法两

种方案

3、十进制以上以上计数器:用两片74LS90构成一个BCD码的37进制计数器和100

进制计数器

五、实验步骤

1、8421BCD码十进制计数器电路图

观察多路信号时,以周期最长的一路信号作为最小周期,该实验中以QD为基准,为了便于观察绘制波形,示波器屏幕小格与CP调整成2:1的关系。

2、在8421BCD码下设计六进制计数器

(1)置零法

六进制计数器在0000、0001、0010、0011、0100、0101六个状态间循环,跳过0110、0111、1000、1001四个状态,由于74LS90为异步计数器,选择在

0110置零,0110状态很短时间存在。电路图如下:

(2)置九法

计数器在0000、0001、0010、0011、0100、1001六个状态间循环,在0101状态异步置九,电路图如下:

(3)波形绘制方法与1中相同

3、三十七进制及一百进制计数器

(1)一百进制计数器

两片74LS90串联可以构成一百进制计数器,一片控制个位,另一片控制十位,两片都首先连成十进制8421BCD码计数器,个位QD连十位INA端,电路图如下:

(2)三十七进制计数器

在一百进制的基础上采用置零法可以接成三十七进制计数器在0—36这三十七个状态之间循环异步计数器在37状态置零,即十位BCD码为0011,个位0111时置零。用与非门阵列接反馈电路。十位QB、QA与非结果与1与非得结果接R01,个位QC、QB与非结果与1与非结果与QA与非结果与1与非结果接R02。即在00110111到来时,十位与个位均置零。电路图如下:

六、思考题

1、是否六进制到九进制,每一个都可以不加器件用74LS90置零和置九实现?请一一判断,并写出能够实现的规律?

答:六进制可以实现已经证明;七进制,若采用置零法,在7(0111)状态异步置零,不加器件不能实现,若置九,在6(0110)状态置九,QB、QC分别反馈至R91、R92,即不加器件可以实现;八进制0—7,若置零在8(1000)异步置零,可以R01接高电平,QD接回R02,若置九则在7(0111)状态置九,不加器件不能实现;九进制0—8,若采用置零法,在9(1001)状态异步置零,QA、QD分别接回R01、R02,可以实现,若采用置九法,则在8(1000)状态置九,可以R91接高电平,QD接回R02,便可实现九进制。

规律:设置置零或者置九的状态的BCD码中1的个数少于两个,则不加器件用74LS90可以实现,否则不能实现。

2、分析一下本实验的六进制计数器能否自启动?

答:检测能否自启动,画出状态转换图如下:

QDQCQBQA/IN74LS90为下降沿出发,状态图中箭头上面均为/0。

七、实验感想

实验中要求输入信号有2.5伏的直流偏置,不然得不到正确结果。还有学会看器件手册,虽然是英文的,必须搞懂,否则实验难免出差错。

74LS90加外接器件可以接成任意进制计数器。大体思路:若采用异步置零法,计数器从全零状态开始计数,计满M个状态产生置零信号,使计数器恢复到初态,然后再重复前面过程。假设:计数器最大计数值为M,当要求计数器计数模值为N时:计数器在S0~SN-1共N个状态中工作,当计数器进入SN状态时,利用SN状态进行译码产生置零信号并反馈到异步置零端,使计数器立即返回S0状态。清置零信号SN不计算在主循环内,SN是过渡态。若采用置九法,假设:计数器最大计数值为M,当要求计数器计数模值为N时:计数器在S0~SN-2和最大值共N个状态中工作,当计数器进入SN-1状态时,利用SN-1状态进行译码产生置九信号并反馈到异步置九端,使计数器立即返回S(状态。置九信号SN-1不计算在主循环内,SN-1是过渡态。

个人觉得置零法更加容易理解,易于实现。但由于置零信号随着计数器被置零而消失,

所以置零信号持续时间很短,如果触发器的复位信号有快有慢,则可能动作慢的触发器还未来得及复位,置零信号已经消失,导致误动作。可以让置零信号通过一个SR锁存器在接回置零端解决这个问题。此时,置零信号的宽度和输入计数脉冲高电平持续时间相等。

基于Quartus六十进制计数器的设计说明

EDA技术实践课程设计 2014年 7月 25日

EDA技术实践课程设计任务书 课程 EDA技术实践课程设计 题目六十进制计数器 专业学号 主要容: 利用QuartusII设计一个六十进制计数器。该电路是采用整体置数法接成的六十进制计数器。首先需要两片74160接成一百进制的计数器,然后将电路的59状态译码产生LD′=0信号,同时加到两片74160上,在下一个计数脉冲(第60个计数脉冲)到达时,将0000同时置入两片74160中,从而得到六十进制计数器。主要要求如下:(1)每隔1个周期脉冲,计数器增1; (2)当计数器递增到59时,进位端波形发生跳变,说明计数器产生进位信号,之后计数器会自动返回到00并重新计数; (3)本设计主要设备是两片74160同步十进制计数器,时钟信号通过建立波形文件得以提供。 主要参考资料: [1] 朱正伟.EDA技术及应用[M].第2版.:清华大学,2013. [2] 国洪.EDA技术与实验[M].:机械工业,2009. [3] 忠平,高金定,高见芳.基于QuartusII的FPGA/CPLD设计与实践[M].:电子工业,2010. [4] 颂华.数字电子技术基础[M].第2版.:电子科技大学,2009. [5] 阎石.数字电子技术基础[M].第5版.:高等教育,2006. [6] 康华光.电子技术基础:数字部分[M].:高等教育,2000. 完成期限 2014.7.21——2014.7.25 指导教师 专业负责人 2014年 7 月18日

目录 1 设计 (1) 2 方案选择与电路原理图的设计 (1) 2.1 单元电路一:十进制计数器电路(个位) (2) 2.2 单元电路二:十进制计数器(十位) (3) 2.3 单元电路三:置数与进位电路 (3) 3 元件选取与电路图的绘制 (4) 3.1 元件选取 (4) 3.2 电路图的绘制 (4) 4 编译设计文件 (5) 5 仿真设计文件 (6) 6 总结 (10) 参考文献 (11)

60进制计数器课程设计报告

电子技术基础实验 课程设计 60进制计数器

一、实验目的 (一)掌握中规模集成计数器74LS161的引脚图和逻辑功能。 (二)熟悉555集成定数器芯片的引脚图。 (三)利用74LS161和555定时器构成60进制计数器。 (四)在Multisim软件中仿真60进制计数器。 二、实验容 (一)集成计数器74LS161逻辑功能验证。 (二)用555定时器构成多谐振荡器。 (三)用两片74LS161和555定时器构成60进制计数器。 三、集成计数器介绍 (一)集成计数器74LS161管脚介绍 74LS161是4位二进制同步加法计时器。图1为它的管脚排列图,集成芯片74LS161的CLR是异步清零端(低电平有效),LOAD是异步预置数控制端(低电平有效)。CLK是时钟脉冲输入端,RCO是进位输出端,ENP、ENT是计数器使能端,高电平有效。A、B、C、D是数据输入端; QA、QB、QC、QD是数据输出端。

图1 74LS161管脚排列图 (二)集成计数器74LS161功能介绍 由表1可知,74LS161具有以下功能: 1.异步清零。当CLR=0时,无论其他各输入端的状态如何,计数器均被直接置“0”。 2.同步预置数。当CLR=1、LOAD=0且在CP上升沿作用时,计数器将ABCD同时置入QA、QB、QC、QD,使QA、QB、QC、QD=ABCD。 3.保持(禁止)。CLR=LOAD=1且ENP、ENT=0时,无论有无CP脉冲作用,计数器都将保持原有的状态不变(停止计数)。 4.计数。CLR=LOAD=ENP=ENT=1时,74LS161处于计数状态。 表1 74LS161功能表

60进制计数器设计

《数字电子技术基础》课程设计任务书 专业:16电气工程及其自动化 班级:专升本二班 学号:160732060 姓名:王冬 指导教师:耿素军 二零一六年十二月二十七日

目录 1、计数器的概述 (3) 2、六十进制计数器 (4) 2.1设计要求 (4) 2.2设计方案框架图 (4) 3、六十进制计数器设计描述 (5) 3.1设计的思路 (5) 3.2设计的实现 (7) 4、六十进制计数器的仿真设计与仿真的结果 (10) 4.1基本电路分析仿真设计 (11) 4.2 计数器电路的仿真的结果 (12) 5、心得体会 (13) 6、参考文献 (13)

1、计数器概述 计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能,计数器是由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS触发器、T触发器、D触发器及JK触发器等。计数器在数字系统中应用广泛,如在电子计算机的控制器中对指令地址进行计数,以便顺序取出下一条指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。 在数字电子技术中应用的最多的时序逻辑电路。计数器不仅能用于对时钟脉冲计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。但是并无法显示计算结果,一般都是要通过外接LCD或LED屏才能显示。 计数器的种类 1.按照计数器中的触发器是否同时翻转分类,可将计数器分为同步计数器和异步计数器两种。 2.按照计数过程中数字增减分类,又可将计数器分为加法计数器、减法计数器和可逆计数器,随时钟信号不断增加的为加法计数器,不断减少的为减法计数器,可增可减的叫做可逆计数器。

c计算器实验报告

简单计算器 姓名: 周吉祥 实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。 实验内容: (1)体系设计: 程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,运算结果能正确显示,可以清楚数据等。 (2)设计思路: 1)先在Visual C++ 6.0中建立一个MFC工程文件,名为calculator. 2)在对话框中添加适当的编辑框、按钮、静态文件、复选框和单选框 3)设计按钮,并修改其相应的ID与Caption. 4)选择和设置各控件的单击鼠标事件。 5)为编辑框添加double类型的关联变量m_edit1. 6)在calculatorDlg.h中添加math.h头文件,然后添加public成员。 7)打开calculatorDlg.cpp文件,在构造函数中,进行成员初始化和完善各控件 的响应函数代码。

(3)程序清单: 添加的public成员: double tempvalue; //存储中间变量 double result; //存储显示结果的值 int sort; //判断后面是何种运算:1.加法 2.减法 3.乘法 4.除法 int append; //判断后面是否添加数字 成员初始化: CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/) : CDialog(CCalculatorDlg::IDD, pParent) { //{{AFX_DATA_INIT(CCalculatorDlg) m_edit1 = 0.0; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); tempvalue=0;

六十进制计数器设计

六十进制计数器 设计报告 姓名: 学号: 班级:13电气工程1班 系别:自动化工程系 指导教师: 时间: 2015-1-10

目录 1.概述 (2) 1.1计数器设计目的 (3) 1.2计数器设计组成 (3) 2.六十进制计数器设计描述 (4) 2.1设计的思路 (6) 2.2设计的实现 (6) 3. 六十进制计数器的设计与仿真 (7) 3.1基本电路分析设计 (7) 3.2 计数器电路的仿真 (10) 4.总结 (13) 4.1遇到的问题及解决方法 (13) 4.2实验的体会与收获 (14)

◆1概述 计数器是一个用以实现计数功能的时序部件,它不仅可用来及脉冲数,还常用作数子系统的定时、分频和执行数字运算以及其它特定的逻辑功能。 计数器种类很多。按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器。根据计数制的不同,分为二进制计数器、十进制计数器和任意进制计数器。根据计数器的增减趋势,又分为加法、减法和可逆计数器。还有可预制数和可变程序功能计数器等等。目前,无论是TTL还是CMOS集成电路,都有品种较齐全的中规模集成计数器。使用者只要借助于器件手册提供的功能和工作波形图以及引出端的排列,就能正确运用这些器件。 计数器在现代社会中用途中十分广泛,在工业生产、各种和记数有关电子产品。如定时器,报警器、时钟电路中都有广泛用途。在配合各种显示器件的情况下实现实时监控,扩展更多功能。 1.1计数器设计目的 1)每隔1s,计数器增1;能以数字形式显示时间。 2)熟练掌握计数器的各个部分的结构。 3)计数器间的级联。 4)不同芯片也可实现六十进制。 1.2计数器设计组成 1)用两个74ls192芯片和一个与非门实现。 2)当定时器递增到59时,定时器会自动返回到00显示,然后继续计 时。 3)本设计主要设备是两个74LS160同步十进制计数器,并且由200HZ, 5V电源供给。作高位芯片与作低芯片位之间级联。 4)两个芯片间的级联。 ◆2.六十进制计数器设计描述

微机原理实验简易计算器

【实验题目】 简易计算器设计 【实验目的】 综合测试学生微机接口技术及应用能力,包括系统构思设计、电路设计搭建、软件调试等; 结合应用实际,培养学生运用微机技术服务应用、服务实际的能力。 【基本要求】 1)利用实验箱上的4x4键盘及6位数码管,实现两个16位宽的非负整数(0~65535)进行+、-、×运算,计算结果限制在范围-65535~65535,超过范围在数码管最低位显示E; 2) 16个按键的分配可以自行指定; 【扩展要求】 1)按基本要求保持输入的范围不变(16位宽),扩展计算结果的范围到用足6位数码管,当计算结果超过-65535~999999时,显示E; 2)增加÷的功能,有小数显示; 【实验程序】 ;该程序实现了基本要求及扩展要求的2) DSEG SEGMENT BUFF DB 6 DUP() LED_7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39 H,5EH,79H,71H,00H,40H POSITION DB 0DFH,0EFH,0F7H,0FBH,0FDH,0FEH UNIT10 DW 10000,1000,100,10,1 NEWNUM DB 0 COUNT DB 0 FLAG DB 0 ;是否有键按下的标志 NEGTI DB 0 ;是否为负数的标志 NUM DW 0 NUM1 DW 0 NUM2 DW 0 TAG DB 0 ;运算种类标志 POINT DB 0 ;除法结果添加小数点标志 RESULT DW 0 DSEG ENDS CSEG SEGMENT ASSUME DS:DSEG,CS:CSEG START: MOV AX,DSEG MOV DS,AX MOV DX,300CH ;8255初始化 MOV AL,81H OUT DX,AL LEA SI,BUFF MOV CX,6 NEXT: MOV BYTE PTR[SI],16 INC SI LOOP NEXT CALL SHOW ;将显示缓冲区中内容在LED上一次显示出来 MOV COUNT,0 ;记按下了几位数 NEXT2: CALL SHOW CALL SCAN ;判断是否有按键按下 CMP FLAG,1 JZ OK JMP NEXT2 OK: MOV FLAG,0 MOV POINT,0 MOV DX,3000H ;判断是哪一个键被按下 MOV AL,0FFH OUT DX,AL MOV CH,-1 ;CH用于保存当前被扫描的列号MOV CL,07FH XL: ROL CL,1 INC CH MOV DX,3000H MOV AL,CL OUT DX,AL MOV DX,3008H

100进制同步计数器设计

实验名称:100进制同步计数器设计 专业班级:姓名:学号:实验日期: 一、实验目的: 1、掌握计数器的原理及设计方法; 2、设计一个0~100的计数器; 3、利用实验二的七段数码管电路进行显示; 二、实验要求: 1、用VHDL 语言进行描写; 2、有计数显示输出; 3、有清零端和计数使能端; 三、实验结果: 1. VHDL程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; PACKAGE my_pkg IS Component nd2 -- 或门 PORT (a,b: IN STD_LOGIC; c: OUT STD_LOGIC); END Component; Component led_decoder PORT (din:in std_logic_vector(3 downto 0 ); --四位二进制码输入 seg:out std_logic_vector(6 downto 0) ); --输出LED七段码 END Component; 1

Component CNT60 --2位BCD码60进制计数器 PORT ( CR:IN STD_LOGIC; EN:IN STD_LOGIC; CLK:IN STD_LOGIC; OUTLOW:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); OUTHIGH:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) ); END Component; Component CNT100 --带使能和清零信号的100进制计数器PORT ( CLK:IN STD_LOGIC; EN:IN STD_LOGIC; CLR:IN STD_LOGIC; OUTLOW:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); OUTHIGH:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) ); END Component; Component freq_div --50MHZ时钟分频出1Hz PORT ( clkinput : IN STD_LOGIC; output : OUT STD_LOGIC ); END Component;

六十进制计数器综合设计

物理与机电工程学院(2015——2016 学年第一学期) 《计算机辅助电路设计》 综合设计报告 可编程计数器 专业:电子信息科学与技术学号:2014216041 姓名:张腾 指导教师:周佐

项目十七可编程计数器 一、设计目的及任务 1.1设计目的 掌握74LS90的功能原理;利用74LS90完成简单计数器电路设计。 每隔1s,计数器增1;能以数字形式显示时间。熟练掌握计数器的各个部分的结构。计数器间的级联。不同芯片也可实现六十进制。 1.2设计任务 利用两片74Ls90构成六十进制(0~59)计数器,并用Altium Designer 进行仿真。 二、原理及过程 2.1系统原理图 2.2原理分析 认识芯片: 74LS90计数器是一种中规模二-五-十进制异步计数器,管脚图如图所示。 R01、R02是计数器置0端,同时为1有效;R91和R92为置9端,同时为1时有效;若用A输入,QA输出,为二进制计数器;如B为输入,QB-QD可输出五进制计数器;将QA与B相连,A做为输入端,QA-QD输出十进制计数器;若QD与A输入端相连,B为输入端,电路为二-五混合进制计数器。

74LS90的功能表: 2.3理论分析 当接通电源,电路开始工作时,显示器显示从0开始依次递增到59,然后重新回到0再开始依次递增到59,如此反复,直到关掉电源。

三、系统仿真 3.1仿真原理图 3.2仿真结果图 3.3仿真步骤 1.按可编程计数器的原理图在Multisim中连接电路。 2.打开开关,开始仿真. 3.4仿真结果及分析 显示器可显示:00、01、02、03、04、05、06、07、08、09、1-、11、12、13、14、15、16、17、18、19、20、21、22、23、24、25、26、27、28、29、30、31、32、33、34、35、36、37、38、39、40、41、42、43、44、45、46、47、48、49、50、51、52、53、54、55、56、57、58、59。

60进制计数器设计(VHDL)

《EDA技术》课程实验报告 学生姓名:黄红玉 所在班级:电信100227 指导教师:高金定老师 记分及评价: 一、实验名称 实验6:60进制计数器设计 二、任务及要求 【基本部分】4分 1、在QuartusII平台上,采用文本输入设计方法,通过编写VHDL语言程序,完成60进制计数器的设计并进行时序仿真。 2、设计完成后生成一个元件,以供更高层次的设计调用。 3、实验箱上选择恰当的模式进行验证,目标芯片为ACEX1K系列EP1K30TC144-3。 【发挥部分】1分 在60进制基础上设计6进制计数器,完成时序仿真。 三、实验程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity jinzhi60 is port(clk:in std_logic; co:out std_logic; qh:buffer std_logic_vector(3 downto 0); ql:buffer std_logic_vector(3 downto 0)); end entity jinzhi60; architecture art of jinzhi60 is begin co<='1'when(qh="0101"and ql="1001")else'0'; process(clk) begin if(clk='1')then if(ql=9)then ql<="0000";

if(qh=5)then qh<="0000"; else qh<=qh+1; end if; else ql<=ql+1; end if; end if; end process; end architecture art; 四、仿真及结果分析 由以上代码编译,仿真,得到一下时序仿真波形图。 用VHDL语言实现一个六十进制计数器,该计数器有计数使能端en,清零端clr和进位输出端co。档en=1时,计数器正常计数;当clr=1时,计数器清零。最后在试验箱上仿真,数码管显示了0到59,则60进制计数器完成。 五、硬件验证 1、选择模式:模7 2、引脚锁定情况表:

课程设计:六十进制计数器的设计

一、实验目的 1.进一步掌握VHDL语言中元件例化语句的使用 2.通过本实验,巩固利用VHDL语言进行EDA设计的流程 二、实验原理 1.先分别设计一个六进制和十进制的计数器,并生成符号文件2.利用生成的底层元件符号,设计六十进制计数器顶层文件 三、实验步骤 (略) 四、实验结果

六进制计数器源程序cnt6.vhd: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE. STD_LOGIC_UNSIGNED.ALL; ENTITY CNT6 IS PORT (CLK, CLRN, ENA, LDN: IN STD_LOGIC; D: IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT: OUT STD_LOGIC); END CNT6; ARCHITECTURE ONE OF CNT6 IS SIGNAL CI: STD_LOGIC_VECTOR(3 DOWNTO 0):="0000"; BEGIN PROCESS(CLK, CLRN, ENA, LDN) BEGIN IF CLRN='0' THEN CI<="0000"; ELSIF CLK'EVENT AND CLK='1' THEN IF LDN='0' THEN CI<=D; ELSIF ENA='1' THEN IF CI<5 THEN CI<=CI+1; ELSE CI<="0000"; END IF; END IF; END IF; Q<=CI; END PROCESS; COUT<= NOT(CI(0) AND CI(2)); END ONE;

10进制和60进制计数器

十进制计数器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10IS PORT(CLK,RST,EN:IN STD_LOGIC; CQ:OUT STD_LOGIC_VECTOR(3DOWNTO 0); COUT:OUT STD_LOGIC); END CNT10; ARCHITECTURE behav OF CNT10IS BEGIN PROCESS(CLK,RST,EN) VARIABLE CQI: STD_LOGIC_VECTOR(3DOWNTO0); BEGIN IF RST='1'THEN CQI:=(OTHERS =>'0');--计数 ELSIF CLK'EVENT AND CLK='1'THEN IF EN='1'THEN IF CQI<9THEN CQI:=CQI+1; --允许计数, ELSE CQI:=(OTHERS=>'0'); --大于9, END IF; END IF; END IF; IF CQI=9THEN COUT<='1';--计数大于9,输出进位信号 ELSE COUT<='0'; END IF; CQ<=CQI;--将计数值向端口输出 END PROCESS; END behav;六十进制计数器源程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt60is port(clk,rst,en:in std_logic; cq:out std_logic_vector(7downto0); cout:out std_logic); end cnt60; architecture behav of cnt60is begin process(clk,rst,en) variable cqi:std_logic_vector(7downto0); begin if rst='1'then cqi:=(others=>'0'); elsif clk'event and clk='1'then if en='1'then if cqi<59then cqi:=cqi+1; else cqi:=(others=>'0'); end if; end if; end if; if cqi=59then cout<='1'; else cout<='0'; end if; cq<=cqi; end process; end behav;

计算器白盒测试

一、实验目的

针对实验一编写的源代码进行白盒测试。要求绘制出程序的控制流图,采用逻辑覆盖和基路径方法设计测试用例。执行测试用例,并分析测试结果。如果是C++源码,请使用C++Test对代码进行静态检查和动态测试。如果是Java源码,请使用JUnit进行动态测试。 二、实验内容 (一)、题目白盒测试 (1)画控制流图 (2)设计测试用例,实现语句覆盖、判定覆盖、条件覆盖、基路径测试 (3)练习用单元测试 (4)测试结果分析 (二)实验过程 (1)针对计算器的黑盒测试的基础上,可以根据实验一的源代码进行白盒测试,以下是程序的流程图以及控制流图

(2)设计测试用例,实现语句覆盖、判定覆盖、条件覆盖、基路径测试 判定覆盖测试用例: 每个判定必须至少获得一次“真”值和“假”值,则测试用例: 条件覆盖测试用例: 表 9 条件覆盖

路径覆盖: 测试用例要求覆盖所有可能的路径: 表10 路径覆盖 条件组合覆盖: 表11 条件组合覆盖 基路径测试 (1)程序环路复杂度:V(G)=E-N+2=13-11+2=4 (2)独立路径: Path1:1-2-3-11 Path2:1-2-4-5-10-11 Path3:1-2-4-6-7-9-10-11 Path4:1-2-4-6-8-9-10-11 (三)实验结果测试 由于程序是用MFC写的计算器的程序,所以在进行测试的时候有点困难,没有很好的辅助工具来进行具体的测试,但是在分析的时候我很细致的列举了各类的测试用例,以达到测试用例的完整,同时保证测试结果的正确性 (四)测试用例设计体会: 在这次软件测试过程中,我扮演了用户、程序员、测试员三钟角色,为了充分体现黑盒、白盒的特点,我特意设计了一个0—100之间的整数、小数。负数简单加减乘除运算。 对于白盒测试,在设计测试用例时首先对程序进行分析,从程序的内部结构出发设计测试用例,涉及到程序的控制方法、源语句、编码细节、数据库设计等。设计测试用例时应用了白盒测试中的多种测试方法,其中包括:测试覆盖(语句覆盖、分支覆盖、分支条件覆盖等)、基路径测试等方法。白盒测试中,对代码的测试比较透彻,但不容易生成测试用例,而且测试工作量很大,。因为白盒测试是基于代码的基础上,所以对变量的定义、数据的分析、精度的度量都有严格的要求。 总之,在这次测试设计让我对软件测试有了一个深入了解,对于测试方法、测试过程,都有了较好的认识,学会了如何进行黑盒测试、白盒测试、以及一些测试工具(如Junit)。当然,对于以后企业上的软件测试,还有待很大的提高。

EDA60进制计数器设计

《EDA技术》课程实验报告 学生姓名: 所在班级: 指导教师: 记分及评价: 报告满分3分 得分 一、实验名称 实验6:60进制计数器设计 二、任务及要求 【基本部分】 1、在QuartusII平台上,采用文本输入设计方法,通过编写VHDL语言程序,完成60进制计数器的设计并进行时序仿真。 2、设计完成后生成一个元件,以供更高层次的设计调用。 3、实验箱上进行验证。 【发挥部分】 在60进制基础上设计6进制计数器,完成时序仿真。 三、实验程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity sixth is port(clk:in std_logic; co:out std_logic;--jin wei qh:buffer std_logic_vector(3 downto 0);--shi wei ql:buffer std_logic_vector(3 downto 0));--ge wei end entity sixth; architecture art of sixth is begin co<='1'when(qh="0101"and ql="1001")else'0'; process(clk) begin if(clk='1')then if(ql=9)then ql<="0000"; if(qh=5)then

qh<="0000"; else qh<=qh+1; end if; else ql<=ql+1; end if; end if; end process; end architecture art; 四、仿真及结果分析 图6-1 60进制计数器仿真图 用VHDL语言实现一个六十进制计数器,该计数器有计数使能端en,清零端clr和进位输出端co。档en=1时,计数器正常计数;当clr=1时,计数器清零。最后在试验箱上仿真,数码管显示了0到59,则60进制计数器完成。 五、硬件验证 1、选择模式: 2、引脚锁定情况表: 六、小结 1、六进制程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity six is port(clk,en,clr:in std_logic; co:out std_logic;--jin wei qh:buffer std_logic_vector(3 downto 0));--shi wei end entity six; architecture art of six is begin co<='1'when(qh="0101" and en='1')else'0';

数字电子实验——60进制计数器

综合性、设计性实验报告电子技术实验(数字电子部分) 报告分数: 学期: 班级: 姓名: 日期:

1. 实验目的 1)学习仿真软件Multisim的使用方法; 2)学习、掌握时序电路的设计方法; 3)掌握常用电子元器件的使用方法; 4)熟练运用用已有集成计数器(M进制)构成任意进制计数器(N进制),M < N 时,多片级联实现的方法; 5)熟悉由555定时器构成的多谐振荡器产生时钟脉冲; 6)了解反馈置数法和反馈清零法的特点及区别,并能熟练运用这两种方法。 2. 预习要求 1)阅读《数字电子技术基础》相关内容,了解集成计数器的原理及功能; 2)熟悉集成计数器74LS161及七段数码显示管的各引脚功能; 3)了解555定时器构成的多谐振荡器产生脉冲的基本原理; 4)对于反馈清零法和反馈置数法有基本的了解。 3. 实验内容 1)在Multisim集成环境中用74LS161和555定时器设计60进制计数器,要求能够实现暂停和置数的功能,并完成其仿真; 2)在模块化电子技术综合实验箱上完成电路搭接与调试; 4. 实验原理 4.1 个位模块 (1)利用反馈置数法,U2(74LS161D)为低位片即个位模块,用A、B、C、D四个输入端的高低电平实现个位预置数; (2)用开关控制U2的EP使能端高低电平实现暂停功能; (3)U2的CP脉冲端连接555定时器构成的多谐振荡器的矩形脉冲输出端;

(4)U2的使能端ET始终接有效的高电平,清零端CR始终接无效的高电平; 因为用的是反馈置数法,U2实现0(0000)~9(1001)的十进制循环,U2的QD和QA段用作二输入与非门U5A(74LS00D)的输入端,其输出端连接到U2的LD上。 (5)U2的四个输出端QD、QC、QB、QA连接U4数码管的D、C、B、A输入端,从而显示0~9这十个状态。 图1 个位模块原理图 4.2 十位模块 (1)利用反馈置数法,U1(74LS161D)为高位片即十位模块,用A、B、C 三个输入端的高低电平实现十位预置数; (2)U1的CP脉冲端连接555定时器构成的多谐振荡器的矩形脉冲输出端; (3)U1的使能端ET、EP始终接有效的高电平,清零端CR始终接无效的高电平; (4)因为用的是反馈置数法,U1实现0(0000)~5(0101)的六进制循环,U1的QC和QA端与个位数的QD和QA端用作四输入与非门U6A(74LS20D)的输入端,其输出端连接到U1的LD上。 (5)U1的四个输出端QD、QC、QB、QA连接U3数码管的D、C、B、A输入端,从而显示0~5这六个状态。

用Junit测试计算器单元对象类

实验报告五 课程名称:软件测试 学生姓名:董月 班级:浦计1104班 学号:P1401110402 指导教师:韩志刚 实验日期:2014-5-8 南京工业大学电子与信息学院

实验五 一、实验内容 用java语言编写一个计算器类,求实现加、减、乘、除、求平方根、求绝对值、求倒数1/x,方法,并用junit进行对象类的单元测试。参阅帮助文档。(说明,设计求除法、求倒数的方法,可在方法中不检测x是否为0,测试用例用y/0去测试、求平方根可不检测x>0,用负数测试) 二、实验步骤 首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。 建立一个hzg包: 建立一个Calculator类:

把代码输进类中: package hzg; public class Calculator { private static int result; // 静态变量,用于存储运行结果 public void add(int n) { result = result + n; } public void substract(int n) { result = result - 1; //Bug: 正确的应该是result =result-n } public void multiply(int n) { result=result*n; } public void divide(int n) { result = result / n; } public void square(int n) { result = n * n; } public void squareRoot(int n) { result= (int) Math.sqrt(n); } public void clear() { // 将结果清零 result = 0; } public void reciprocal(int n) { result=1/n; } public void absolute(int n) { result=Math.abs(n); } public int getResult() { return result; } }

设计60进制计数器数电课程设计资料

电子技术基础实验 课程设计 用74LS161设计六十进制计数器 学院:班级:姓名:学号: 电气工程学院 电自1418 刘科2014303010328

用74LS161设计六十进制计数器 摘要 计数器是一个用以实现计数功能的时序部件,它不仅可用来及脉冲数,还常用作数子系统的定时、分频和执行数字运算以及其它特定的逻辑功能。目前,无论是TTL还是CMOS 集成电路,都有品种较齐全的中规模集成计数器。使用者只要借助于器件手册提供的功能和工作波形图以及引出端的排列,就能正确运用这些器件。计数器在现代社会中用途中十分广泛,在工业生产、各种和记数有关电子产品。如定时器,报警器、时钟电路中都有广泛用途。在配合各种显示器件的情况下实现实时监控,扩展更多功能。 利用两片74LS161分别作为六十进制计数器的高位和低位,分别与数码管连接。把其中的一个通过一个与门器件构成一个十进制计数器,另一个芯片构成六进制计数器。十进制计数器(个位)和六进制计数器(十位)均采用反馈清零法利用两个74LS161构成。当个位计数器从1001计数到0000时,十位计数器要计数一次,可通过两芯片之间级联实现。使用200HZ时钟信号作为计数器的时钟脉冲。根据设计基理可知,计数器初值为00,按递增方式计数,增到59时,再自动返回到00。 关键字:60进制,计数器,74LS161,级联

目录 第1章概述 (1) 1.1 计数器设计目的 (1) 1.2 计数器设计组成 (1) 第2章六十进制计数器设计描述 (2) 2.1 74LS161的功能 (2) 2.2 方案框架 (3) 第3章六十进制计数器的设计与仿真 (4) 3.1 基本电路分析设计 (4) 3.2 计数器电路的仿真 (6) 第4章总结 (8)

计算器测试报告

计算器测试报告

计算器测试报告 共 7 页 拟制孙姝萍2014 年 4 月24 日审核李晨曦2014 年 4 月25 日会签易厚旭2014 年 4 月25 日

1 范围 本文档适用于windows计算器的功能测试。 1.2 系统概述 使用“计算器”可以完成任意的通常借助手持计算器来完成的标准运算。“计算器”可用于基本的算术运算,比如加减运算等。同时它还具有科学计算器的功能,比如对数运算和阶乘运算等。 1.3 文档概述 本文档用于对windows计算器的测试工作阶段成果的描述。包括对软件测试的整体描述,软件测试的分类和级别,软件测试的过程描述,软件测试的结果等内容。 2 使用文档 《计算器帮助文档》 《计算器测试计划》 《计算器测试用例》 3 测试概述 本次测试主要完成一下目标: 1.执行简单的加减乘除运算,记录结果 2.执行科学计算,记录结果 3.执行统计计算,记录结果 4.在标准型和科学型间转换数据,记录结果; 5.使用数字分组,查看结果; 3.1 测试小结 本次测试对windows计算器进行了功能测试,重要依据为计算器的帮助文档所描述的功能。测试工作分为三个阶段。第一阶段进行了测试计划制定,第二阶段测试用例设计、第三阶段执行测试。

测试过程中,使用了自动化测试(QTP)和人工测试两种方法,分别记录了测试结果和画面截屏。 测试结果表明,windows计算器的功能比较完善,基本符合用户需求。 3.2 测试结果记录 目标1:执行简单的加减乘除运算

错误为超出范围。此时使用人工测试截屏。如下:

当超出范围时,显示如上。 目标2:执行科学计算 实际输出见测试用例文档,测试结果表明,计算器功能完善。目标3:执行阶乘

实验一十进制计数器的设计与仿真电子科技大学

实验一十进制计数器的设计与仿真 一、实验目的 熟悉QuartusⅡ的Verilog HDL文本设计流程全过程,学习计数器的设计、仿真和硬件测试。 二、实验原理 该程序设计是带有异步复位、同步计数使能、可预置型功能全面的十进制计数器。 (1)第一个条件句if(!RST)构成的RST接于寄存器下方的异步清0端CLR。 (2)第二个条件句if(EN)构成EN接于寄存器左侧的使能端ENA。 (3)第三个条件句if(LODA)构成LODA接于上面的多路选择器,使之控制选择来自DATA的数据,还是来自另一多路选择器的数据。 (4)不完整的条件语句与语句Q1<=Q1+1构成了加1加法器和4位寄存器。 (5)语句(Q1<9)构成了小于比较器,比较器的输出信号控制左侧多路选择器。 (6)第二个过程语句构成了纯组合电路模块,即一个等式比较器,作进位输出。 三、实验设备与软件平台 实验设备:计算机、FPGA硬件平台是Cyclone系列FPGA 软件平台:Quartus II (32-Bit)、5E+系统 四、实验内容 编写Verilog程序描述一个电路,实现以下功能:设计带有异步复位、同步计数使能和可预置型的十进制计数器。 具有5个输入端口(CLK、RST、EN、LOAD、DATA)。CLK输入时钟信号;RST 起异步复位作用,RST=0,复位;EN是时钟使能,EN=1,允许加载或计数;LOAD 是数据加载控制,LOAD=0,向内部寄存器加载数据;DATA是4位并行加载的数

据。有两个输出端口(DOUT和COUT)。DOUT的位宽为4,输出计数值,从0到9;COUT是输出进位标志,位宽为1,每当DOUT为9时输出一个高电平脉冲。 五、实验步骤 设计程序: module CNT10 (CLK,RST,EN,LOAD,COUT,DOUT,DATA); input CLK; input EN; input RST; input LOAD; input [3:0] DATA; output [3:0] DOUT; output COUT; reg [3:0] Q1 ; reg COUT ; assign DOUT = Q1; always @(posedge CLK or negedge RST) begin if (!RST) Q1 <= 0; else if (EN) begin if (!LOAD) Q1 <= DATA; else if (Q1<9) Q1 <= Q1+1; else Q1 <= 4'b0000; end end always @(Q1) if (Q1==4'h9) COUT = 1'b1; else COUT = 1'b0; Endmodule

60进制BCD同步计数器设计代码

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164 ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY count6x10tb IS PORT(clk,clr:IN STD_LOGIC; oc:OUT STD_LOGIC; y0,y1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END; ARCHITECTURE a OF count6x10tb IS SIGNAL q,k:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL j60:STD_LOGIC; BEGIN p1:process(clk) BEGIN IF(clr='0') THEN q<="0000"; ELSIF(clk'EVENT AND clk='1') THEN IF q="1001" THEN q<="0000"; ELSE q<=q+1; END IF; END IF; y0<=q; END PROCESS p1; p2:PROCESS(clk) BEGIN IF(clr='0') THEN k<="0000"; ELSIF(clk'EVENT AND clk='1') THEN IF(q="1001") THEN IF(k="0101") THEN k<="0000"; ELSE k<=k+1; END IF; ELSE k<=k; END IF; END IF; y1<=k; IF(q="1001" AND k="0101") THEN j60<='1'; ELSE

j60<='0'; END IF; oc<=j60; END PROCESS p2; END a;

设计60进制计数器--电子技术基础课程设计

X X 大学 电子技术基础实验 课程设计 用74LS161设计六十进制计数器 学院: 班级: 姓名: 学号:

用74LS161设计六十进制计数器 摘要 计数器是一个用以实现计数功能的时序部件,它不仅可用来及脉冲数,还常用作数子系统的定时、分频和执行数字运算以及其它特定的逻辑功能。目前,无论是TTL还是CMOS 集成电路,都有品种较齐全的中规模集成计数器。使用者只要借助于器件手册提供的功能和工作波形图以及引出端的排列,就能正确运用这些器件。计数器在现代社会中用途中十分广泛,在工业生产、各种和记数有关电子产品。如定时器,报警器、时钟电路中都有广泛用途。在配合各种显示器件的情况下实现实时监控,扩展更多功能。 利用两片74LS161分别作为六十进制计数器的高位和低位,分别与数码管连接。把其中的一个通过一个与门器件构成一个十进制计数器,另一个芯片构成六进制计数器。十进制计数器(个位)和六进制计数器(十位)均采用反馈清零法利用两个74LS161构成。当个位计数器从1001计数到0000时,十位计数器要计数一次,可通过两芯片之间级联实现。使用200HZ时钟信号作为计数器的时钟脉冲。根据设计基理可知,计数器初值为00,按递增方式计数,增到59时,再自动返回到00。 关键字:60进制,计数器,74LS161,级联

目录 第1章概述 (1) 1.1 计数器设计目的 (1) 1.2 计数器设计组成 (1) 第2章六十进制计数器设计描述 (2) 2.1 74LS161的功能 (2) 2.2 方案框架 (3) 第3章六十进制计数器的设计与仿真 (4) 3.1 基本电路分析设计 (4) 3.2 计数器电路的仿真 (6) 第4章总结 (8)

相关文档
最新文档