当前位置:文档之家› 实验一两个多位十进制数相加的实验

实验一两个多位十进制数相加的实验

实验一两个多位十进制数相加的实验
实验一两个多位十进制数相加的实验

实验一两个多位十进制数相加的实验

一、实验目的

1、学习数据传送和算术运算指令的用法。

2、熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。

二、实验内容

将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。

三、程序框图

四、程序清单

DATA SEGMENT ;定义数据段DATA1 DB 33H,39H,31H,37H,34H ;被加数DATA1END EQU $-1

DATA2 DB 34H,35H,30H,38H,32H ;加数DATA2END EQU $-1

SUM DB 5 DUP() ;定义5个空字节DATA ENDS

STACK SEGMENT ;定义堆栈段

STA DB 20 DUP() ;取从STA开始的20个字节为堆栈段

TOP EQU LENGTH STA ;将堆栈段长度存放在TOP中

STACK ENDS ;堆栈段定义结束

CODE SEGMENT ;定义程序代码段

ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA ;表明程序代码段与段地址之间的关系START: MOV AX,DATA

MOV DS,AX ;将段地址送入段地址寄存器

MOV AX,STACK

MOV SS,AX ;将当前堆栈段首地址送入SS

MOV SP,AX ;将堆栈段首地址送入堆栈指针寄存器

MOV SI,OFFSET DATA1END ;将DATA1的偏移地址送入SI

MOV DI,OFFSET DATA2END ;将DATA2的偏移地址送入DI

CALL ADDA ;调用子程序ADDA

MOV AX,4C00H

INT 21H ;中断调用

ADDA PROC NEAR ;子程序段

MOV DX,SI ;DX=0004H

MOV BP,DI ;BP=0009H

MOV BX,05H ;程序调用次数

AD1: SUB BYTE PTR[SI],30H ;将被加数的ASCII码转换成十六进制数

SUB BYTE PTR[DI],30H ;将加数的ASCII码转换成十六进制数

DEC SI ;SI中的内容自减1

DEC DI ;DI中的内容自减1

DEC BX ;程序调用次数自减1

JNZ AD1 ;条件转移

MOV SI,DX ;回到初始位置

MOV DI,BP

MOV CX,05H ;循环次数控制

CLC ;清除CF位

AD2: MOV AL,[SI]

MOV BL,[DI]

ADC AL,BL ;从低位开始进行带进/借位的加法运算

AAA ;转换成非压缩BCD码,低位存于AL,高位存于AH MOV [SI],AL ;将AL中的内容存入SI所在地址

DEC SI ;偏移地址自减

DEC DI ;偏移地址自减

LOOP AD2 ;循环控制指令

MOV SI,DX

MOV DI,BP

MOV BX,05H

AD3: ADD BYTE PTR[SI],30H ;将16进制数转换为ASCII码表示 ADD BYTE PTR[DI],30H

DEC SI ;偏移地址自减

DEC DI

DEC BX

JNZ AD3

RET ;返回指令

ADDA ENDP ;结束子程序

CODE ENDS ;结束程序代码段

END START

五、实验结果(截屏--软件实验或者拍照---硬件实验)

六、实验结果分析(预期结果与实际结果的对照)

1、数据段分析

用ASCII码值的形式表示被加数和加数

被加数=39174;加数=45082

2、堆栈段分析

用于存放计算过程中的过程量。

3、程序代码段分析

1)从低位起,将被加数和加数转换成十六进制数

被加数和加数转换各位转换成十六进制数表示。

2)从低位起进行各个位上的带进位的加法运算

得到的结果的各位上的十六进制表示形式。

3)将结果的各个位上的数转换成ASCII码的形式得到最后的结果

实验得到的最后的结果是39174+45082=84256。

七、实验心得体会

通过本次实验,我对汇编有了更物理化的认识,也明白了汇编中各个寄存器的作用及寄存器间是怎样联系的,也初步明白了什么是段地址,什么是堆栈,以及汇编的基本结构和循环结构的基本运用。但是,我的了解只是初步的,汇编中还有很多我不明白和不了解的地方,最重要的是,汇编语句掌握不牢固,不能很快的知道一些专用的汇编语句的意义,对于宏方面的认识也非常薄弱,还需要在今后的实验和学习中不多的学习和练习。

计数器的设计实验报告

计数器的设计实验报告 篇一:计数器实验报告 实验4 计数器及其应用 一、实验目的 1、学习用集成触发器构成计数器的方法 2、掌握中规模集成计数器的使用及功能测试方法二、实验原理 计数器是一个用以实现计数功能的时序部件,它不仅可用来计脉冲数,还常用作数字系统的定时、分频和执行数字运算以及其它特定的逻辑功能。 计数器种类很多。按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器。根据计数制的不同,分为二进制计数器,十进制计数器和任意进制计数器。根据计数的增减趋势,又分为加法、减法和可逆计数器。还有可预置数和可编程序功能计数器等等。目前,无论是TTL还是

CMOS集成电路,都有品种较齐全的中规模集成计数器。使用者只要借助于器件手册提供的功能表和工作波形图以及引出端的排列,就能正确地运用这些器件。 1、中规模十进制计数器 CC40192是同步十进制可逆计数器,具有双时钟输入,并具有清除和置数等功能,其引脚排列及逻辑符号如图5-9-1所示。 图5- 9-1 CC40192引脚排列及逻辑符号 图中LD—置数端CPU—加计数端CPD —减计数端CO—非同步进位输出端BO—非同步借位输出端 D0、D1、D2、D3 —计数器输入端 Q0、Q1、Q2、Q3 —数据输出端CR—清除端 CC40192的功能如表5-9-1,说明如下:表5-9-1 当清除端CR为高电平“1”时,计数

器直接清零;CR置低电平则执行其它功能。当CR为低电平,置数端LD也为低电平时,数据直接从置数端D0、D1、D2、D3 置入计数器。 当CR为低电平,LD为高电平时,执行计数功能。执行加计数时,减计数端CPD 接高电平,计数脉冲由CPU 输入;在计数脉冲上升沿进行8421 码十进制加法计数。执行减计数时,加计数端CPU接高电平,计数脉冲由减计数端CPD 输入,表5-9-2为8421 码十进制加、减计数器的状态转换表。加法计数表5-9- 减计数 2、计数器的级联使用 一个十进制计数器只能表示0~9十个数,为了扩大计数器范围,常用多个十进制计数器级联使用。 同步计数器往往设有进位(或借位)输出端,故可选用其进位(或借位)输出信号驱动下一级计数器。 图5-9-2是由CC40192利用进位

数据结构实验报告,一元多项式资料

数据结构课程设计报告

目录 一、任务目标,,,,,,,,,,,, 3 二、概要设计,,,,,,,,,,,, 4 三、详细设计,,,,,,,,,,,, 6 四、调试分析,,,,,,,,,,,, 8 五、源程序代码,,,,,,,,,, 8 六、程序运行效果图与说明,,,,, 15 七、本次实验小结,,,,,,,,, 16 八、参考文献,,,,,,,,,,, 16

任务目标 分析(1) a. 能够按照指数降序排列建立并输出多项式 b.能够完成两个多项式的相加,相减,并将结果输入要求:程序所能达到的功能: a.实现一元多项式的输入; b.实现一元多项式的输出; c.计算两个一元多项式的和并输出结果; d.计算两个一元多项式的差并输出结果;除任务要求外新增乘法: 计算两个一元多项式的乘积并输出结果 (2)输入的形式和输入值的范围:输入要求:分行输入,每行输入一项,先输入多项式的指数,再输入多项式的系数,以0 0 为结束标志,结束一个多项式的输入。 输入形式: 2 3 -1 2 3 0 1 2 0 0 输入值的范围:系数为int 型,指数为float 型 3)输出的形式: 第一行输出多项式1; 第二行输出多项式2; 第三行输出多项式 1 与多项式 2 相加的结果多项式; 第四行输出多项式 1 与多项式 2 相减的结果多项式;第五行输出多项式 1 与多项式 2 相乘的结果多项式 二、概要设计 程序实现 a. 功能:将要进行运算的二项式输入输出;

b. 数据流入:要输入的二项式的系数与指数; c.数据流出:合并同类项后的二项式; d.程序流程图:二项式输入流程图; e.测试要点:输入的二项式是否正确,若输入错误则重新输入

实验一 两个多位十进制数相加的实验

实验一两个多位十进制数相加的实验 一、实验目的 1、学习数据传送和算术运算指令的用法。 2、熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。 二、实验内容 将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。 三、程序框图

四、程序清单 DATA SEGMENT ;定义数据段 DATA1 DB 33H,39H,31H,37H,34H ;被加数 DATA1END EQU $-1 DATA2 DB 34H,35H,30H,38H,32H ;加数 DATA2END EQU $-1 SUM DB 5 DUP(?) ;定义5个空字节 DATA ENDS STACK SEGMENT ;定义堆栈段 STA DB 20 DUP(?) ;取从STA开始的20个字节为堆栈段TOP EQU LENGTH STA ;将堆栈段长度存放在TOP中

STACK ENDS ;堆栈段定义结束 CODE SEGMENT ;定义程序代码段 ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA ;表明程序代码段与段地址之间的关系START: MOV AX,DATA MOV DS,AX ;将段地址送入段地址寄存器 MOV AX,STACK MOV SS,AX ;将当前堆栈段首地址送入SS MOV SP,AX ;将堆栈段首地址送入堆栈指针寄存器 MOV SI,OFFSET DATA1END ;将DATA1的偏移地址送入SI MOV DI,OFFSET DATA2END ;将DATA2的偏移地址送入DI CALL ADDA ;调用子程序ADDA MOV AX,4C00H INT 21H ;中断调用 ADDA PROC NEAR ;子程序段 MOV DX,SI ;DX=0004H MOV BP,DI ;BP=0009H MOV BX,05H ;程序调用次数 AD1: SUB BYTE PTR[SI],30H ;将被加数的ASCII码转换成十六进制数SUB BYTE PTR[DI],30H ;将加数的ASCII码转换成十六进制数 DEC SI ;SI中的内容自减1 DEC DI ;DI中的内容自减1 DEC BX ;程序调用次数自减1 JNZ AD1 ;条件转移 MOV SI,DX ;回到初始位置

实验五 时序逻辑电路实验报告 计数器

实验五 时序逻辑电路实验 一、实验目的 1.掌握同步计数器设计方法与测试方法。 2.掌握常用中规模集成计数器的逻辑功能和使用方法。 二、实验设备 1.直流稳压电源、信号源、示波器、万用表、面包板 2.74LS190、74LS393、74LS04 3.1kΩ电阻、发光二极管 三、实验原理 1.计数器 计数器不仅可用来计数,也可用于分频、定时和数字运算。在实际工程应用中,一般很少使用小规模的触发器组成计数器,而是直接选用中规模集成计数器。 2.(1) 四位二进制(十六进制)计数器74LS161(74LS163) 74LSl61是同步置数、异步清零的4位二进制加法计数器,其功能表见表5.1。 74LSl63是同步置数、同步清零的4位二进制加法计数器。除清零为同步外,其他功能与74LSl61相同。二者的外部引脚图也相同,如图5.1所示。 表5.1 74LSl61(74LS163)的功能表 3.集成计数器的应用——实现任意M进制计数器 一般情况任意M进制计数器的结构分为3类,第一类是由触发器构成的简单计数器。第二类是由集成二进制计数器构成计数器。第三类是由移位寄存器构成的移位寄存型计数器。第一类,可利用时序逻辑电路的设计方法步骤进行设计。第二类,当计数器的模M较小时用一片集成计数器即可以实现,当M较大时,可通过多片计数器级联实现。两种实现方法:反馈置数法和反馈清零法。第三类,是由移位寄存器构成的移位寄存型计数器。 4.实验电路: 十进制计数器

六进制扭环计数器 具有方波输出的六分频电路 图5.1 74LS161(74LS163)外部引脚图 四、实验内容及步骤 1.集成计数器实验 (1)按电路原理图使用中规模集成计数器74LS163和与非门74LS00,连接成一个同步置数或同步清零十进制计数器,并将输出连接至数码管或发光二极管。然后使用单次脉冲作为触发输入,观察数码管或发光二极管的变化,记录得到电路计数过程和状态的转换规律。 (2)根据电路图,首先用D触发器74LS7474构成一个不能自启的六进制扭环形计数器,同样将输出连接至数码管或发光二极管。然后使用单次脉冲作为触发输入,观察数码管或发光二极管的变化,记录得到电路计数过程和状态的转换规律。注意观察电路是否能自启,若不能自启,则将电路置位有效状态。接下来再用D触发器74LS7474构成一个能自启的六进制扭环形计数器,重复上述操作。 2.分频实验 同步置数法 同步清零法

EDA实验报告-实验3计数器电路设计(DOC)

暨南大学本科实验报告专用纸 课程名称EDA实验成绩评定 实验项目名称计数器电路设计指导教师郭江陵 实验项目编号03 实验项目类型验证实验地点B305 学院电气信息学院系专业物联网工程 组号:A6 一、实验前准备 本实验例子使用独立扩展下载板EP1K10_30_50_100QC208(芯片为EP1K100QC208)。EDAPRO/240H实验仪主板的VCCINT跳线器右跳设定为3.3V;EDAPRO/240H实验仪主板的VCCIO跳线器组中“VCCIO3.3V”应短接,其余VCCIO均断开;独立扩展下载板“EP1K10_30_50_100QC208”的VCCINT跳线器组设定为 2.5V;独立扩展下载板“EP1K10_30_50_100QC208”的VCCIO跳线器组设定为3.3V。请参考前面第二章中关于“电源模块”的说明。 二、实验目的 1、了解各种进制计数器设计方法 2、了解同步计数器、异步计数器的设计方法 3、通过任意编码计数器体会语言编程设计电路的便利 三、实验原理 时序电路应用中计数器的使用十分普遍,如分频电路、状态机都能看到它的踪迹。计数器有加法计数器、可逆计数器、减法计数器、同步计数器等。利用MAXPLUSII已建的库74161、74390分别实现8位二进制同步计数器和8位二——十进制异步计数器。输出显示模块用VHDL实现。 四、实验内容 1、用74161构成8位二进制同步计数器(程序为T3-1); 2、用74390构成8位二——十进制异步计数器(程序为T3-2); 3、用VHDL语言及原理图输入方式实现如下编码7进制计数器(程序为T3-3): 0,2,5,3,4,6,1 五、实验要求 学习使用Altera内建库所封装的器件与自设计功能相结合的方式设计电路,学习计数器电路的设计。 六、设计框图 首先要熟悉传统数字电路中同步、异步计数器的工作与设计。在MAX+PLUS II中使用内建的74XX库选择逻辑器件构成计数器电路,并且结合使用VHDL语言设计转换模块与接口模块,最后将74XX模块与自设计模块结合起来形成完整的计数器电路。并借用前面设计的数码管显示模块显示计数结果。 ◆74161构成8位二进制同步计数器(程序为T3-1)

数电实验报告 计数器

实验报告 实验七计数器原理测试及其设计 2.7.1 实验目的 1.掌握中规模集成计数器74LS160、74LS161、74LS163的逻辑功能及使用方法。 2.掌握同步清零与异步清零的区别及74LS160计数器的级联方法。 3.学习用中规模集成计数器设计任意进制计数器。 2.7.2 实验仪器设备与主要器件 实验箱一个;双踪示波器一台;稳压电源一台;函数发生器一台。 74LS160,74LS161和74LS163。 2.7.3 实验原理 计数器的功能是记录输入脉冲的个数。他所能记忆的最大脉冲个数称为该计数器的模。计数器不仅能统计输入脉冲的个数,还可以用作分频、定时、产生节拍脉冲等。根据进位方式,可分为同步和异步两类。根据进制,可分为二进制、十进制和任意进制等。根据逻辑功能,可分为加法计数器、减法计数器和可逆计数器等。根据电路集成度,可分为小规模集成计数器和中规模集成计数器。 2.7.4 实验内容 1.分别用74LS161和74LS163设计模13计数器,采用清零法实现,并用数码管显示实验结果。 设计思路:74LS161是十六进制计数器,所以我在它计数到13(1101)清零就行了,再利用二进制数与BCD码对应关系,即利用74LS283的逻辑功能使数码管显示实验结果。计数时电路状态转换关系: 0000→0001→0010→0011→0100→0101→0110→0111→1000→1001→1010→1011→1100→0000

设计思路:74LS163接法与74LS161基本一样,只是163的清零信号是12不是13,如图: 2.设计一个用3位数码管指示的六十进制计数器,并用三只开关控制计数器的数据保持、计数及清零功能。 设计思路:用Cr=0控制计数器清零,用EP*ET=0控制计数器数据保持,用高低电平和CP脉冲进行与运算控制计数器计数功能。U1的清零信号是在计数到6时,U1清零的同时U3开始计数,这样就能实现用3位数码管指示的六十进制计数器。如图:

数字时钟设计实验报告

数字时钟设计实验报告

电子课程设计题目:数字时钟

数字时钟设计实验报告一、设计要求: 设计一个24小时制的数字时钟。 要求:计时、显示精度到秒;有校时功能。采用中小规模集成电路设计。 发挥:增加闹钟功能。 二、设计方案: 由秒时钟信号发生器、计时电路和校时电路构成电路。 秒时钟信号发生器可由振荡器和分频器构成。 计时电路中采用两个60进制计数器分别完成秒计时和分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。 校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。 三、电路框图:

图一 数字时钟电路框图 四、电路原理图: (一)秒脉冲信号发生器 秒脉冲信号发生器是数字电子钟的核心部分,它的精度和稳定度决定了数字钟的质量。由振荡器与分频器组合产生秒脉冲信号。 ? 振荡器: 通常用555定时器与RC 构成的多谐振荡器,经过调整输出1000Hz 脉冲。 ? 分频器: 分频器功能主要有两个,一是产生标准秒脉冲信号,一是提供功能 扩展电路所需要的信号,选用三片74LS290进行级联,因为每片为1/10分频器,三片级联好获得1Hz 标准秒脉冲。其电路图如下: 图二 秒脉冲信号发生器 译译译时计 分计秒计 校 时 电 路 秒信号发生器

(二)秒、分、时计时器电路设计 秒、分计数器为60进制计数器,小时计数器为24进制计数器。 ?60进制——秒计数器 秒的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数和进位功能。利用74LS161和74LS11设计6进制计数器显示秒的十位,当十位计数器由0增加到5时利用74LS11与门产生一个高电平接到个位、十位的CD40110的清零端,同时产生一个脉冲给分的个位。其电路图如下: 图三60进制--秒计数电路 ?60进制——分计数电路 分的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:来自秒计数电路的进位脉冲使分的个位加1,利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数和进位功能。利用74LS161和74LS11设计6进制计数器显示秒的十位,当十位计数器由0增加到5时利用74LS11与门产生一个高电平接到个位、十位的CD40110的清零端,同时产生一个脉冲给时的个位。其电路图如下:

C++一元多项式合并实验报告

实验二一元多项式相加问题本实验的目的是进一步熟练掌握应用链表处理实际问题的能力。 一、问题描述 一元多项式相加是通过键盘输入两个形如P 0+P 1 X1+P 2 X2+···+PnX n的多项式,经过程序运算后在屏幕上输出它 们的相加和。 二、数据结构设计 分析任意一元多项式的描述方法可知,一个一元多项式的每一个子项都由“系数—指数”两部分组成,所以可将它抽象成一个由“系数—指数对”构成线性表,由于对多项式中系数为0的子项可以不记录他的数值,对于这样的情况就不再付出存储空间来存放它了。基于这样的分析,可以采取一个带有头结点的单链表来表示一个一元多项式。具体数据结构定义为: typedef struct node { float ce; //系数域 float ex; //指数域 struct node *next; //指针域 }lnode,*linklist; 三功能(函数)设计 1、输入并建立多项式的功能模块 此模块要求按照指数递增的顺序和一定的输入格式输入各个系数不为0的子项的“系数—指数对”,输入一个子项建立一个相关的节点,当遇到输入结束标志时结束输入,而转去执行程序下面的部分。 屏幕提示: input ce & ex and end with 0: ce=1 ex=2 ce=0 ex=0 //输入结束标志 input ce & ex and end with 0: ce=2 ex=2 ce=0 ex=0 //输入结束标志 输入后程序将分别建立两个链表来描述两个一元多项式: A=X^2 B=2X^2 这两个多项式的相加的结果应该为: C=3X^2 2、多项式相加的功能模块 此模块根据在1中建立的两个多项式进行相加运算,并存放在以C为头指针的一个新建表中。可以采用以下方法进行设计: 开始时a,b分别指向A,B的开头,如果ab不为空,进行判断:如果a所指的结点的指数和b所指的结点的指数相同,将它们的系数相加做成C式中的一项,如果不一样则将小的一项加到C中。 if(a->ex==b->ex) //判断指数是否相等 {s->ce=a->ce+b->ce; if(s->ce!=0) s->ex=a->ex; else delete s; a=a->next; b=b->next; }

微机实验 两个多位十进制数相加的实验

实验2 两个多位十进制数相加的实验 一、实验目的 1. 学习数据传送和算术运算指令的用法。 2. 熟悉在PC机上建立、汇编、连接、调试和运行8088汇编语言程序的过程。 二、实验内容 将两个多位十进制数相加,要求被加数均以ASCII码形式各自顺序存放在以DA TA1和DA TA2为首的5个内存单元中(低位在前),结果送回DATA1处。附加题要求将加法过程显示与屏幕。 同学可以自己设计程序也可对代码段进行填空以及问答来完成程序。(附加题范例在第二页) ;该程序完成54321+54321=108642的多位十进制加法运算,和存放与DAT3 DATA SEGMENT DAT1 DB'12345';问一个多位十进制数各位是以何种顺序存放于内存的。 DAT2 DB'12345';个位存放于高地址或者为低地址。 DAT3 DB 6 DUP(0) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA BX,DAT1 LEA SI,DAT2 LEA DI,DAT3 MOV CX,5 CLC ;为什么要加入这条指令 L1: MOV AL[BX] ADC AL,[SI] ;BYTE PTR[BX]+[SI]+CF→AL 例‘1’+‘1’+0= 62H→AL __________;填空________________; AL=02H PUSHF;为什么要加入pushf popf这两条指令 OR AL,30H;为什么要加入这条指令 POPF MOV [DI],AL __________;填空________ __________;填空________ __________ ;填空________ LOOP L1 JNC L2 MOV [DI],31H INC DI hlt CODE ENDS END START 三、程序框图(见下页)

8254定时计数器应用实验报告

XX 大学实验报告 课程名称: 实验项目名称:8254定时/计数器应用实验学院:信息工程学院 专业:通信工程 指导教师: 报告人:学号:班级: 实验时间: 实验报告提交时间:

教务处制

单元的内容外,还可以读出状态寄存器的内容。 (6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为: n=fCLKi÷fOUTi、其中fCLKi 是输入时钟脉冲的频率,fOUTi 是输出波形的频率。 图(1)是8254 的内部结构框图和引脚图,它是由与CPU 的接口、内部控制电路和三个计数器组成。8254 的工作方式如下述:(1)方式0:计数到0 结束输出正跃变信号方式。 (2)方式1:硬件可重触发单稳方式。 (3)方式2:频率发生器方式。 (4)方式3:方波发生器。 (5)方式4:软件触发选通方式。 (6)方式5:硬件触发选通方式。 图(1)8254的内部借口和引脚8254 的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。这两个控制字共用一个地址,由标识位来区分。控制字格式如表

1所示。 表1 8254的方式控制字 表2 8254 读出控制字格式 表3 8254 状态字格式 8254 实验单元电路图如下图所示:

五、实验步骤及相应操作结果 1. 计数应用实验 编写程序,将8254 的计数器0 设置为方式3,计数值为十进制数4,用单次脉冲KK1+ 作为CLK0 时钟,OUT0 连接MIR7,每当KK1+按动5 次后产生中断请求,在屏幕上显示字符“M”。 实验步骤: (1)实验接线如图2所示。 (2)编写实验程序,经编译、链接无误后装入系统。 (3)运行程序,按动KK1+产生单次脉冲,观察实验现象。(4)改变计数值,验证8254 的计数功能。

计数器实验报告

实验4 计数器及其应用 一、实验目的 1、学习用集成触发器构成计数器的方法 2、掌握中规模集成计数器的使用及功能测试方法 二、实验原理 计数器是一个用以实现计数功能的时序部件,它不仅可用来计脉冲数,还常用作数字系统的定时、分频和执行数字运算以及其它特定的逻辑功能。 计数器种类很多。按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器。根据计数制的不同,分为二进制计数器,十进制计数器和任意进制计数器。根据计数的增减趋势,又分为加法、减法和可逆计数器。还有可预置数和可编程序功能计数器等等。目前,无论是TTL还是CMOS集成电路,都有品种较齐全的中规模集成计数器。使用者只要借助于器件手册提供的功能表和工作波形图以及引出端的排列,就能正确地运用这些器件。 1、中规模十进制计数器 CC40192是同步十进制可逆计数器,具有双时钟输入,并具有清除和置数等功能,其引脚排列及逻辑符号如图5-9-1所示。 图5-9-1 CC40192引脚排列及逻辑符号 图中LD—置数端 CP U—加计数端 CP D—减计数端 CO—非同步进位输出端BO—非同步借位输出端 D0、D1、D2、D3—计数器输入端 Q0、Q1、Q2、Q3—数据输出端 CR—清除端

CC40192的功能如表5-9-1,说明如下: 表5-9-1 输 入 输 出 CR LD CP U CP D D 3 D 2 D 1 D 0 Q 3 Q 2 Q 1 Q 0 1 × × × × × × × 0 0 0 0 0 0 × × d c b a d c b a 0 1 ↑ 1 × × × × 加 计 数 0 1 1 ↑ × × × × 减 计 数 当清除端CR 为高电平“1”时,计数器直接清零;CR 置低电平则执行其它功能。 当CR 为低电平,置数端LD 也为低电平时,数据直接从置数端D 0、D 1、D 2、D 3 置入计数器。 当CR 为低电平,LD 为高电平时,执行计数功能。执行加计数时,减计数端CP D 接高电平,计数脉冲由CP U 输入;在计数脉冲上升沿进行 8421 码十进制加法计数。执行减计数时,加计数端CP U 接高电平,计数脉冲由减计数端CP D 输入,表5-9-2为8421码十进制加、减计数器的状态转换表。 表5-9-2 加法计数 输入脉冲数 0 1 2 3 4 5 6 7 8 9 输出 Q 3 0 0 0 0 0 0 0 0 1 1 Q 2 1 1 1 1 Q 1 0 0 1 1 0 0 1 1 0 0 Q 0 1 0 1 1 1 1 减计数 2、计数器的级联使用 一个十进制计数器只能表示0~9十个数,为了扩大计数器范围,常用多个十进制计数器级联使用。 同步计数器往往设有进位(或借位)输出端,故可选用其进位(或借位)输出信号驱动下一级计数器。 图5-9-2是由CC40192利用进位输出CO 控制高一位的CP U 端构成的加数级联图。

实验一 两个多位十进制数相减实验

实验一两个多位十进制数相减实验 一、实验要求:将两个多位十进制数相减,要求被减数,减数均以ASCII码形式按顺序存放在以DATAI 和DATA2为首的5个内存单元中(低位在前),结果送回DATAI处。 二、实验目的:1.学习数据传送和算术运算指令的用法。 2.熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。 三、实验程序框图: 开始 显示减数和被减数 被减数和减数转换成十六进制数 设置计数值 消除最低进位数 制进位减 结果送被减数区 调整偏移量 计数值-1=10 结果转换成ASCII码字符串 显示结果 结果

四、实验程序: DA TA SEGMENT DA TA1 DB 33H,39H,31H,37H,38H ;第一个数据(作为被减数)DA TA2 DB 36H,35H,30H,38H,32H ;第二个数据(作为减数)MES1 DB '-','$' MES2 DB '=','$' DA TA ENDS STACK SEGMENT ;堆栈段 STA DB 20 DUP(0) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DA TA START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX MOV SI,OFFSET DA TA1 MOV BX,05 CALL DISPL ;显示被减数 MOV AH,09H LEA DX,MES1 INT 21H MOV SI,OFFSET DATA2 MOV BX,05 ;显示减数 CALL DISPL MOV AH,09H LEA DX,MES2 INT 21H MOV SI,OFFSET DA TA1 MOV DI,OFFSET DATA2 CALL SUBA ;减法运算 MOV SI,OFFSET DATA1 MOV BX,05 ;显示结果 CALL DISPL MOV DL,0DH MOV AH,02H INT 21H MOV DL,0AH MOV AH,02H INT 21H INT 21H MOV AX,4C00H

数字电路实验报告——进制计数器逻辑功能及其应用

24进制计数器逻辑功能及其应用 一、实验目的: 1. 熟悉中等规模集成电路计数器74LS160的逻辑功能,使用方法及应用。 2. 掌握构成计数器的方法。 二、实验设备及器件: 1. 数字逻辑电路实验板1片 2. 74HC90同步加法二进制计数器2片 3. 74HC00二输入四与非门1片 4. 74HC04 非门1片 三、实验原理: 计数器是一个用以实现计数功能的时序部件,它不仅可用来计脉冲数,还常用作数字系统的定时、分频和执行数字运算以及其它特定的逻辑功能。 计数器种类很多。按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器。根据计数制的不同,分为二进制计数器,十进制计数器和任意进制计数器。根据计数的增减趋势,又分为加法、减法和可逆计数器。还有可预置数和可编程序功能计数器等等。目前,无论是TTL还是CMOS集成电路,都有品种较齐全的中规模集成计数器。使用者只要借助于器件手册提供的功能表和工作波形图以及引出端的排列,就能正确地运用这些器件。 集成计数器74HC90是二-五-十进制计数器,其管脚排列如图。

四、实验内容

实验电路图: 用74HC00与非门和74HC04的非门串联,构成与门。74HC00的引脚图和真值表如图:

74HC04的引脚图与真值表如图: 按实验电路图,参照各个芯片的引脚图和真值表,连接电路。其中Q0到Q3分别连到数码管的对应的D0到D3,CP0端接到时钟脉冲,然后检查电路无误后,加电源,观察现象。实验结果:个位数码管随时间显示0、1、2、3、4、5、6、7、8、9,十位数码管显示个位进位计数结果,按0、1、2变化,当数字增加到23后,数码管自动清零,又从零开始变化。 五、实验心得: 本次实验,通过对计数器工作过程的探索,基本上了解了数码计数器的工作原理,以及74HC160的数字特点,让我更进一步掌握了如何做好数字电子数字实验,也让我认识到自身理论知识的不足和实践能力的差距,以及对理论结合实践的科学方法有了更深刻理解。

一元多项式相加完整实验报告

一元多项式相加实验报告 一元多项式的相加

一实验内容 根据所学的数据结构中线性结构(线性表)的逻辑特性和物理特性及相关算法,应用于求解一个具体的实际问题----------两个多项式相加 二需求分析 1掌握线性结构的逻辑特性和物理特性。 2建立一元多项式。 3将一元多项式输入,并存储在内存中,并按照指数降序排列输出多项式。 4能够完成两个多项式的加减运算,并输出结果。 三概要设计 1 本程序所用到的抽象数据类型: typedef OrderedLinkList polynomial; // 用带表头结点的有序链表表示多项式 结点的数据元素类型定义为: typedef struct { // 项的表示 float coef; // 系数 int expn; // 指数 term, ElemType; V oid AddPolyn(polynomail&Pa,polynomail&Pb) Position GetHead() Position NextPos(LinkList L,Link p) Elem GetCurElem(Link p) int cmp(term a term b) Status SetCurElem(Link&p, ElemType e) Status DelFirst(Link h, Link &q) Status ListEmpty(LinkList L) Status Append(LinkList&L, Link S) FreeNode() 2 存储结构

一元多项式的表示在计算机内用链表来实现,同时为了节省存储空间,只存储其中非零的项,链表中的每个节点存放多项式的系数非零项。它包含三个域,分别存放多项式的系数,指数,以及指向下一个项的指针。 创建一元多项式链表,对运算中可能出现的各种情况进行分析,实现一元多项式的相加相减操作。 3 模块划分 a) 主程序;2)初始化单链表;3)建立单链表; 4)相加多项式 4 主程序流程图 四详细设计 根据一元多项式相加的运算规则:对于两个一元多项式中所有指数相同的项,对应系数相加,若其和不为零,则构成“和多项式”中的一项,对

多位十进制数加法器实验-2014

实验三多位十进制数加法器设计 1、实验目的 (1)继续熟练掌握在PC机上建立、汇编、链接、调试和运行8088汇编语言程序的过程; (2)学习数据传送和算术运算指令的用法; (3)掌握子程序设计方法; (4)掌握宏汇编设计方法; (5)掌握键盘输出的DOS功能调用方法。 2、实验内容 (1)将两个多位十进制数相加。要求被加数、加数均以ASCII码形式各自按高位高地址的规律分别顺序存放在以DATAl和DATA2为首的5个内存单元中(低位在前),结果送回结果变量DATA3处,并屏幕显示结果。 (2)在以上程序基础上,设计一个多位十进制数加法器,键盘输入十进制加数和被加数,将输入和输出结果以竖式形式显示在屏幕。 3、提示: (1)算法说明:以42136与12547相加为例,首先将两个数中的每一位都以ASCII码存入相应的内存单元,然后将每一位数都减去30H,并将被加数DATA1和加数DATA2相对应位相加(BCD码加法及其十进制调整,要考虑低位向高位的进位),存入相应的结果DATA3存储单元中,最后将该单元中的每一位数转换成相应的ASCII码,调用DOS系统功能调用的显示字符指令,显示两数相加的结果。 (2)部分程序代码: DATA SEGMENT ;数据段 …;补充必要的代码,定义被加数、加数和结果变量 DATA ENDS STACK SEGMENT STACK ;堆栈段 STA DB 64 DUP(0) SP_TOP DB 0 STACK ENDS CODE SEGMENT ; 代码段 …;补充必要的代码 ;显示回车换行功能用宏定义CRLF实现,放在代码段最前面 CRLF MACRO MOV DL,0DH ;回车(0DH为回车的ASCII 码) MOV AH,02H ; 送DOS 的中断调用功能号 INT 21H ; DOS 的中断调用

同步计数器的设计实验报告文档

2020 同步计数器的设计实验报告文档 Contract Template

同步计数器的设计实验报告文档 前言语料:温馨提醒,报告一般是指适用于下级向上级机关汇报工作,反映情况,答复上级机关的询问。按性质的不同,报告可划分为:综合报告和专题报告;按行文的直接目的不同,可将报告划分为:呈报性报告和呈转性报告。体会指的是接触一件事、一篇文章、或者其他什么东西之后,对你接触的事物产生的一些内心的想法和自己的理解 本文内容如下:【下载该文档后使用Word打开】 同步计数器的设计实验报告 篇一:实验六同步计数器的设计实验报告 实验六同步计数器的设计 学号: 姓名: 一、实验目的和要求 1.熟悉JK触发器的逻辑功能。 2.掌握用JK触发器设计同步计数器。 二、实验仪器及器件 三、实验预习 1、复习时序逻辑电路设计方法。 ⑴逻辑抽象,得出电路的状态转换图或状态转换表 ①分析给定的逻辑问题,确定输入变量、输出变量以及电路的状态数。通常都是取原因(或条件)作为输入逻辑变量,取结

果作输出逻辑变量。 ②定义输入、输出逻辑状态和每个电路状态的含意,并将电路状态顺序编号。 ③按照题意列出电路的状态转换表或画出电路的状态转换图。通过以上步骤将给定的逻辑问题抽象成时序逻辑函数。 ⑵状态化简 ①等价状态:在相同的输入下有相同的输出,并且转换到同一次态的两个状态。 ②合并等价状态,使电路的状态数最少。 ⑶状态分配 ①确定触发器的数目n。因为n个触发器共有2n种状态组合,所以为获得时序电路所需的M个状态,必须取2n1<M2n ②给每个电路状态规定对应的触发器状态组合。 ⑷选定触发器类型,求出电路的状态方程、驱动方程和输出方程 ①根据器件的供应情况与系统中触发器种类尽量少的原则谨慎选择使用的触发器类型。 ②根据状态转换图(或状态转换表)和选定的状态编码、触发器的类型,即可写出电路的状态方程、驱动方程和输出方程。 ⑸根据得到的方程式画出逻辑图 ⑹检查设计的电路能否自启动 ①电路开始工作时通过预置数将电路设置成有效状态的一种。 ②通过修改逻辑设计加以解决。

电子实验报告用D触发器做十进制计数器

计数器实际上是对时钟脉冲进行计数,每来一个脉冲,计数器状态改变一次。 8421 BCD 码十进制加计数器在每个时钟脉冲作用下,触发器输出编码值加 1, 编码顺序与8421 BCD 码一样,每个时钟脉冲完成一个计数周期。由于电路的状 态数、状态转换关系及状态编码都是明确的,因此设计过程较简单。 4. 实验过程 1) 列出状态表 十进制计数器共有十个状态,需要4个D 触发器构成,其状态表1-1所示。 表1-18421 BCD 码同步十进制加计数器的状态表 计数脉冲 CP 的顺序 状态 状态(激励信号) Q3 Q2 Q1 Q0 Q3 (D3) Q2 (D2) Q1 (D1) Q3 (0D0) 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 2 0 0 1 0 0 0 1 1 3 0 0 1 1 0 1 0 0 4 0 1 0 0 0 1 0 1 5 0 1 0 1 0 1 1 0 6 0 1 1 0 0 1 1 1 7 1 1 1 1 1. 实验内容 用D 触发器设计一个同步十进制计数器 2. 实验器材 3. 实验原理

10 0 1 (2)确定激励方程组 按表1-1可画出触发器激励信号的卡诺图,如图 4个触发器组合16个状态(0000 - 1111),其中有6个转台(1010 - 1111 )在 8421 BCD 码十进制计数器中是无效状态, 表示。于是,得到激励方程组: 1-1所示。 在图 1-1所示的卡诺图中以无关项X Q Q ; Q. y Q" r Q, Q, Q ; Qs Q. < y Q :

图1-1 (3)画出逻辑图,并且检查自启动能力 检查激励方程组可画出逻辑图,如图1-2所示。 为之地电平有效,如果系统没有复位信号,电路的 平计数器能够正常工作。 卡诺图 图中,各触发器的直接置0端 RESET 输入端应保持为高电

一元多项式的运算

数据结构课程设计实验报告 专业班级: 学号: 姓名: 2011年1月1日

题目:一元多项式的运算 1、题目描述 一元多项式的运算在此题中实现加、减法的运算,而多项式的减法可以通过加法来实现(只需在减法运算时系数前加负号)。 在数学上,一个一元n次多项式P n(X)可按降序写成: P n(X)= P n X^n+ P(n-1)X^(n-1)+......+ P1X+P0 它由n+1个系数惟一确定,因此,在计算机里它可以用一个线性表P来表示: P=(P n,P(n-1),......,P1,P0) 每一项的指数i隐含在其系数P i的序号里。 假设Q m(X)是一元m次多项式,同样可以用一个线性表Q来表示: Q=(q m,q(m-1),.....,q1,q0) 不是一般性,假设吗吗m

两个多位十进制数相加的实验

学生实验报告 (2010 —学年第学期)课程名称:微型计算机原理与接口技术开课实验室:2011年月日年级、专业、班学号姓名成绩实验项目名称两个多位十进制数相加的实验指导教 师 教 师 评语教师签名: 年月日 注:报告内容按实验须知中几点要求进行。 一、实验目的 1、学习数据传送和算术运算指令的用法。 2、熟悉在PC机上建立、汇编、链接、调试和运行8088汇编语言程序的过程。 3、学会PC机得安装 4、认识编程过程 二、实验原理及基本技术路线图或实验内容(方框原理图或程序流程图) 将两个多位十进制数相加。要求被加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。

程序框图 三、所用软件

四、实验步骤 整个程序分为4个部分:显示加数、转换、相加、输出结果。 五、源码程序编制及分析注释 CRLF MACRO ;宏定义指令(回车执行程序) MOV DL,0DH ;回车 MOV AH,02H ;2号调用,显示回车 INT 21H MOV DL,0AH ;换行 MOV AH,02H ;2号调用换行 INT 21H ENDM ;宏指令定义结束 DATA SEGMENT ;数据段定义 DATA1 DB 33H,39H,31H,37H,34H ;第一个数据(作为加数)47193 DATA2 DB 36H,35H,30H,38H,32H ;第二个数据(作为被加数)28056 DATA ENDS ;数据段定义结束 STACK SEGMENT ;堆栈段定义 STA DB 20 DUP(?) ;定义从STA开始20个单元作为堆栈使用TOP EQU LENGTH STA ;TOP等于堆栈单元数

数字电路实验报告计数器的逻辑功能及应用

数字电路实验报告 计数器逻辑功能及其应用 一、实验目的: 1.熟悉中等规模集成电路计数器74LS160的逻辑功能,使用方法及应用。 2.掌握构成任意进制计数器的方法。 二、实验设备及器件: 1.数字逻辑电路实验板1片 2.74HC160同步加法二进制计数器2片 3.74HC00二输入四与非门1片 三、实验原理: 计数器是一个用以实现计数功能的时序部件,它不仅可用来计脉冲数,还常用作数字系 统的定时、分频和执行数字运算以及其它特定的逻辑功能。 计数器种类很多。按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器。根据计数制的不同,分为二进制计数器,十进制计数器和任意进制计数器。根据计数的增减趋势,又分为加法、减法和可逆计数器。还有可预置数和可编程序功能 计数器等等。目前,无论是TTL还是CMOS集成电路,都有品种较齐全的中规模集成计数器。使用者只要借助于器件手册提供的功能表和工作波形图以及引出端的排列,就能正确地运用这些器件。 集成计数器74HC160是二-五-十进制计数器,其管脚排列如图。 四、实验内容 1.构成摸10计数器实验原理图

实验结果:数码管显示为从 0到5之间变化。 3、组成模100计数器 实验结果:个位数码管随时间显示 0、1 、 2、3、4、5、6、7、8、9,十位数码管显示个位进 位计数结果,按 0、1、2、3、4、5、6、7、8、9变化。 > CL 160 实验结果:数码管显示为从 2、组成模6计数器 实验原理图 OC LI) 0到9之间变化。

五、实验心得: 本次实验,通过对计数器工作过程的探索,基本上了解了数码计数器的工作原理,以及 74HC160 的数字特点,让我更进一步掌握了如何做好数字电子数字实验,也让我认识到自身理论知识的不足和实践能力的差距,以及对理论结合实践的科学方法有了更深刻理解。

相关主题
文本预览
相关文档 最新文档