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

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

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

学生实验报告

(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等于堆栈单元数

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 ;设置堆栈段

MOV AX,TOP

MOV SP,AX

MOV SI,OFFSET DATA2 ;DATA2的偏移地址送SI

MOV BX,05 ;计数次数为5次

CALL DISPL ;调用多次显示子程序DISPL(显示28056)

CRLF ;回车换行

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

MOV BX,05 ;计数次数为5次

CALL DISPL ;调用多次显示子程序DISPL(显示47193)

CRLF ;回车换行

MOV DI,OFFSET DATA2

CALL ADDA ;使用加法运算程序

MOV SI,OFFSET DATA1 ;将和显示在屏幕上

MOV BX,05 ;显示结束

CALL DISPL ;调用多次显示子程序DISPL

CRLF ;执行回车换行程序

MOV AX,4C00H ;返回系统提示符

INT 21H

DISPL PROC NEAR ;多次显示子程序

DS1: MOV AH,02 ;显示功能号

MOV DL,[SI+BX-1] ;显示字符串中一字符

INT 21H ;DOS的中断调用

DEC BX ;BX减1,修改偏移量

JNZ DS1 ;如果BX未减到零跳到DSL执行指令

RET ;返回

DISPL ENDP ;完成显示功能子程序定义

ADDA PROC NEAR ;实行加法运算子程序定义、属性为NEAR MOV DX,SI

MOV BP,DI

MOV BX,05 ;转换5次

AD1: SUB BYTE PTR [SI+BX-1],30H ;把加数的ASCLL转换为16进制SUB BYTE PTR [DI+BX-1],30H ;把被加数的ASCLL转换为16进制

DEC BX ;修改偏移量

JNZ AD1

MOV SI,DX

MOV DI,BP

MOV CX,05 ;包括进位,共5位

CLC ;清进位

AD2: MOV AL,[SI]

MOV BL,[DI]

ADC AL,BL ;进行代进位加法

AAA ;非组合BCD码的加法调整

MOV [SI],AL ;结果送被加数区

INC SI

INC DI ;指向下一位

LOOP AD2 ;循环

MOV SI,DX

MOV DI,BP

MOV BX,05

AD3: ADD BYTE PTR [SI+BX-1],30H

ADD BYTE PTR [DI+BX-1],30H

DEC BX ;十六进制的数字串转化

JNZ AD3

RET

ADDA ENDP ;加法程序结束

CODE ENDS ;代码段结束

END START ;整个程序结束

五、实验结果

六、心得体会

通过这次实验让我对这个软件的编程有了更深的了解、知道如何安装这个软件、怎样运行程序。让我学到了很多课本是学不到的东西,有一点意外收获的感觉。

Welcome To Download !!!

欢迎您的下载,资料仅供参考!

汇编语言实现十进制加减计算器

课程设计 题目十进制数加减计算器学院计算机科学与技术 专业计算机科学与技术 班级计算机0808班 姓名何爽 指导教师袁小玲 2010 年12 月31 日

课程设计任务书 学生姓名:何爽专业班级:计算机0808班 指导教师:袁小玲工作单位:计算机科学与技术学院 题目: 十进制数加减计算器的设计 初始条件: 理论:学完“汇编语言程序设计”、“课程计算机概论”、“高级语言程序设计”和“数字逻辑”。 实践:计算机学院科学系实验中心提供计算机和软件平台。如果自己有计算机可以在其上进行设计。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) (1)十进制数加减计算器的设计。 (2)程序应有操作提示、输入和输出,界面追求友好,最好是菜单式的界面。 (3)设计若干用例(测试数据),上机测试程序并分析(评价)所设计的程序。 (4)设计报告格式按附件要求书写。课程设计报告书正文的内容应包括: 在正文第一行写课程设计题目; 1.需求说明(要求、功能简述)或问题描述; 2.设计说明(简要的分析与概要设计); 3.详细的算法描述; 4.源程序与执行结果(含测试方法和测试结果); 5.使用说明; 6.总结,包括设计心得(设计的特点、不足、收获与体会)和展望(该 程序进一步改进扩展的设想)。 时间安排: 设计时间一周:周1:查阅相关资料。 周2:系统分析,设计。 周3~4:编程并上机调试。 周5:撰写课程设计报告。 设计验收安排:20周星期五8:00起到计算机学院科学系实验中心进行上机验收。 设计报告书收取时间:20周的星期五下午5:00之前。 指导教师签名: 2010年12月31日 系主任(或责任教师)签名: 2010年12月31日

同步二进制加法计数器

同步二进制加法计数器 F0302011 5030209303 刘冉 计数器是用来累计时钟脉冲(CP脉冲)个数的时序逻辑部件。它是数字系统中用途最广泛的基本部件之一,几乎在各种数字系统中都有计数器。它不仅可以计数,还可以对CP 脉冲分频,以及构成时间分配器或时序发生器,对数字系统进行定时、程序控制操作。此外,还能用它执行数字运算。 1、计数器的特点: 在数字电路中,把记忆输入CP脉冲个数的操作叫做计数,能实现计数状态的电子电路称为计数器。特点为(1)该电路一般为Moore型电路,输入端只有CP信号。 (2)从电路组成看,其主要组成单元是时钟触发器。 2、计数器分类 1) 按CP脉冲输入方式,计数器分为同步计数器和异步计数器两种。 同步计数器:计数脉冲引到所有触发器的时钟脉冲输入端,使应翻转的触发器在外接的CP脉冲作用下同时翻转。 异步计数器:计数脉冲并不引到所有触发器的时钟脉冲输入端,有的触发器的时钟脉冲输入端是其它触发器的输出,因此,触发器不是同时动作。 2) 按计数增减趋势,计数器分为加法计数器、减法计数器和可逆计数器三种。 加法计数器:计数器在CP脉冲作用下进行累加计数(每来一个CP脉冲,计数器加1)。 3) 按数制分为二进制计数器和非二进制计数器两类。 二进制计数器:按二进制规律计数。最常用的有四位二进制计数器,计数范围从0000到1111。 异步加法的缺点是运算速度慢,但是其电路比较简单,因此对运算速度要求不高的设备中,仍不失为一种可取的全加器。同步加法优点是速度快,虽然只比异步加法快千分之一甚至几千分之一秒,但对于计数器来讲,却是十分重要的。所以在这个高科技现代社会中,同步二进制计数器应用十分广泛。 下图为三位二进制加法计数器的电路图。 图1 三位二进制计数器 图示电路为对时钟信号计数的三位二进制加法计数器或称为八进制加法计数器。 该电路的经典分析过程: 1.根据电路写出输出方程、驱动方程和状态方程 2. 求出状态图 3.检查电路能否自启动 4.文字叙述逻辑功能 解:

微机原理,键盘输入实现任意两个数相加

用汇编语言,从键盘输入任意两个十进制数,实现两个数相加DATAS SEGMENT X DB 100 DUP(0) Y DB 100 DUP(0) Z DB 100 DUP(?),'$' DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV DS,AX MOV BX,0 X1: MOV AH,01H INT 21H CMP AL,'+' JZ X2 PUSH AX INC BX JMP X1 X2: MOV CX,BX MOV SI,99 X3: POP AX MOV X[SI],AL DEC SI LOOP X3 MOV BX,0 X4: MOV AH,01H INT 21H CMP AL,'=' JZ X5 PUSH AX INC BX JMP X4 X5: MOV CX,BX MOV SI,99 X6: POP AX MOV Y[SI],AL DEC SI LOOP X6 CLC PUSHF

MOV CX,100 MOV SI,99 MOV DI,99 X7: MOV AL,X[SI] MOV DL,Y[SI] POPF ADC AL,DL AAA PUSHF ADD AL,30H MOV Z[DI],AL DEC SI DEC DI LOOP X7 MOV SI,0 X8: CMP Z[SI],30H JNZ X9 INC SI JMP X8 X9: LEA DX,Z[SI] MOV AH,09H INT 21H MOV AH,4CH INT 21H CODES ENDS END START

十进制加法计数器EDA大作业

百度文库- 让每个人平等地提升自我EDA技术实践报告 十进制加法计数器 姓名:王浩 学号: 9 专业:电气自动化 班级: 12级自动化二班日期:

目录 第1章前言 (1) 摘要 (1) 第2章设计说明 (2) 设计思路 (2) 模块介绍 (2) 真值表 (3) 第3章原理图 (5) 第4章波形仿真图 (10) 第5章管脚锁定及连线 (11) 第6章总结 (13)

第一章前言 本次课程设计介绍了一种基于数字电子技术的十进制加法器实现了如下功能: 1.用四个数码管显示加数与被加数和结果 2.设置加数和被加数。当加数和被加数超过9时显示“E”,计算结果显示为“EE” 3.分别用四个拨码开关控制加数与被加数 4.当加数、被加数超过9时,蜂鸣器报警5秒 EDA技术,就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为实验工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化建、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。 利用EDA技术进行电子系统的设计,具有以下几个特点:1.用软件的方式设计硬件;2.用软件方式设计的系统到硬件系统的转换是由有关的开发软件自当完成的;3.设计过程中可用有关软件进行仿真;4.系统可现场编程,在线升级;5.整个系统可集成在一个芯片上,体积小,功能低,可靠性高。因此,EDA技术是现代电子设计的发展趋势。 摘要 此次设计是十进制加法器,用74238进行加法部分,根据BCD码加法运算规则,当俩数相加的结果小于或等于9时,相加结果与二进制数相加结果一致,当相加结果大于9时,相当于按二进制数相加所得的结果再加6. 当加数或被加数超过九时,数码管显示E,结果显示EE。蜂鸣器报警5秒钟。 关键字:十进制加法器,数码管显示,蜂鸣器报警

两个任意长的整数的求和运算

两个任意长的整数的求和运算 进制的转换 2014 年6月 软件综合课程设计

目录 一、问题陈述 二、需求分析 三、概要设计 四、详细设计 五、程序代码 六、运行结果与测试 七、设计体会与总结

两个任意长的整数的求和运算 一、问题陈述 设计一个程序实现两个任意长的整数的求和运算。 利用双向循环链表,设计一个实现任意长的整数进行加法运算的演示程序。要求输入和输出每四位一组,组间用逗号隔开。如:1,0000,0000,0000,0000。 二、需求分析 1、本程序实现计算任意长的整数的加法运算. 以用户和计算机对话的方式,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令,然后程序就计算并显示出这两个数的运算。 2、本演示程序中,集合的元素限定为数字字符[‘0’~’9’],输入字符可以任意长,输入形式以“#”为结束标志,串中字符顺序不限,且允许出现重复字符。 3、利用双向循环链表现实长整数的存储,每个结点含一个整形变量。输入的形式以#结束,每四位一组。 三、概要设计 在此说明数据结构设计和关键的算法设计思想 Add()函数是实现该问题的主要函数即相加。 typedef struct et 定义双循环链表的存储结构. void setin(dtp *a) 读入数据存储在双链表中的函数; void print1(dtp *w,int len) 原样输出输入的数,略去结束符"#"; void print2(dtp a,int len) 输出运算结果,以每四位一个","样式; 四、详细设计 程序流程图

五、程序代码 #include using namespace std; #define null 0 typedef struct et //自定义双循环链表的存储结构.

十进制4位加法计数器设计

洛阳理工学院 十 进 制 4 位 加 法 计 数 器 系别:电气工程与自动化系 姓名:李奇杰学号:B10041016

十进制4位加法计数器设计 设计要求: 设计一个十进制4位加法计数器设计 设计目的: 1.掌握EDA设计流程 2.熟练VHDL语法 3.理解层次化设计的内在含义和实现 设计原理 通过数电知识了解到十进制异步加法器的逻辑电路图如下 Q3 则可以通过对JK触发器以及与门的例化连接实现十进制异步加法器的设计 设计内容 JK JK触发器的VHDL文本描述实现: --JK触发器描述 library ieee; use ieee.std_logic_1164.all; entity jk_ff is

port( j,k,clk: in std_logic; q,qn:out std_logic ); end jk_ff; architecture one of jk_ff is signal q_s: std_logic; begin process(j,k,clk) begin if clk'event and clk='0' then if j='0' and k='0' then q_s <= q_s; elsif j='0' and k='1' then q_s <= '0'; elsif j='1' and k='0' then q_s <= '1'; elsif j='1' and k='1' then q_s <= not q_s; end if; end if; end process; q <= q_s; qn <= not q_s; end one; 元件门级电路: 与门VHDL文本描述实现: --与门描述library ieee; use ieee.std_logic_1164.all;

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

实验一两个多位十进制数相加的实验 一、实验目的 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 ;回到初始位置

verilog HDL十进制加减法计数器报告

十进制加减法计数器 1.实验要求 (1)在Modelsim环境中编写十进制加减法计数器程序; (2)编译无误后编写配套的测试程序; (3)仿真后添加信号,观察输出结果。 2.设计程序如下 module decade_counter #(parameter SIZE=4) (input clock,load_n,clear_n,updown, input [SIZE-1:0]load_data, output reg [SIZE-1:0]q ); always @(negedge load_n,negedge clear_n,posedge clock) if (!load_n) q<=load_data; else if (!clear_n) q<=0; else //clock??? if(updown) q<=(q+1)%10; else begin if(q==0) q<=9; else q<=q-1; end endmodule 3.测试程序如下 `timescale 1ns/1ns module test_decade_counte; reg clock,load_n,clear_n,updown; reg [3:0]load_data; wire [3:0]q; decade_counter T1(clock,load_n,clear_n,updown,load_data,q); initial begin clock=0;clear_n=0;

#30 clear_n=1;load_n=0;load_data=7; #30 load_n=1;updown=0; #300 updown=1; #300 updown=0; #300 updown=1; #300 $stop; end always #10 clock=~clock; always @(q) $display("At time%t,q=%d",$time,q); endmodule 4.波形如下 5.测试结果如下 # At time 0,q= 0 # At time 30,q= 7 # At time 70,q= 6 # At time 90,q= 5 # At time 110,q= 4 # At time 130,q= 3 # At time 150,q= 2 # At time 170,q= 1 # At time 190,q= 0 # At time 210,q= 9 # At time 230,q= 8 # At time 250,q= 7 # At time 270,q= 6 # At time 290,q= 5 # At time 310,q= 4 # At time 330,q= 3

把两个数合并成一个数的运算

把两个数合并成一个数的运算,叫做加法。 在加法中相加的两个数叫做加数,加得的数叫做和。 加法各部分间的关系:和=加数+加数加数=和-另一个加数 已知两个数的和与其中的一个加数,求另一个加数的运算,叫做减法。 在减法中,已知的和叫做被减数,减法是加法的逆运算。 减法各部分间的关系:差=被减数-减数减数=被减数-差被减数=减数+差 把两个数合并成一个数的运算,叫做加法。 在加法中相加的两个数叫做加数,加得的数叫做和。 加法各部分间的关系:和=加数+加数加数=和-另一个加数 已知两个数的和与其中的一个加数,求另一个加数的运算,叫做减法。 在减法中,已知的和叫做被减数,减法是加法的逆运算。 减法各部分间的关系:差=被减数-减数减数=被减数-差被减数=减数+差 把两个数合并成一个数的运算,叫做加法。 在加法中相加的两个数叫做加数,加得的数叫做和。 加法各部分间的关系:和=加数+加数加数=和-另一个加数 已知两个数的和与其中的一个加数,求另一个加数的运算,叫做减法。 在减法中,已知的和叫做被减数,减法是加法的逆运算。 减法各部分间的关系:差=被减数-减数减数=被减数-差被减数=减数+差 把两个数合并成一个数的运算,叫做加法。 在加法中相加的两个数叫做加数,加得的数叫做和。 加法各部分间的关系:和=加数+加数加数=和-另一个加数 已知两个数的和与其中的一个加数,求另一个加数的运算,叫做减法。 在减法中,已知的和叫做被减数,减法是加法的逆运算。 减法各部分间的关系:差=被减数-减数减数=被减数-差被减数=减数+差

求几个相同加数的和的简便运算,叫做乘法。 乘法各部分间的关系:积= 因数×因数因数= 积÷另一个因数 已知两个因数的积与其中一个因数,求另一个因数的运算,叫做除法。除法是乘法的逆运算。除法各部分间的关系:商= 被除数÷除数被除数= 除数×商除数= 被除数÷商 如果是有余数的除法,除法各部分之间的关系:被除数= 除数×商+余数 除数=(被除数-余数)÷商商=(被除数-余数)÷除数余数=被除数-除数×商 求几个相同加数的和的简便运算,叫做乘法。 乘法各部分间的关系:积= 因数×因数因数= 积÷另一个因数 已知两个因数的积与其中一个因数,求另一个因数的运算,叫做除法。除法是乘法的逆运算。除法各部分间的关系:商= 被除数÷除数被除数= 除数×商除数= 被除数÷商 如果是有余数的除法,除法各部分之间的关系:被除数= 除数×商+余数 除数=(被除数-余数)÷商商=(被除数-余数)÷除数余数=被除数-除数×商 求几个相同加数的和的简便运算,叫做乘法。 乘法各部分间的关系:积= 因数×因数因数= 积÷另一个因数 已知两个因数的积与其中一个因数,求另一个因数的运算,叫做除法。除法是乘法的逆运算。除法各部分间的关系:商= 被除数÷除数被除数= 除数×商除数= 被除数÷商 如果是有余数的除法,除法各部分之间的关系:被除数= 除数×商+余数 除数=(被除数-余数)÷商商=(被除数-余数)÷除数余数=被除数-除数×商 求几个相同加数的和的简便运算,叫做乘法。 乘法各部分间的关系:积= 因数×因数因数= 积÷另一个因数 已知两个因数的积与其中一个因数,求另一个因数的运算,叫做除法。除法是乘法的逆运算。除法各部分间的关系:商= 被除数÷除数被除数= 除数×商除数= 被除数÷商 如果是有余数的除法,除法各部分之间的关系:被除数= 除数×商+余数 除数=(被除数-余数)÷商商=(被除数-余数)÷除数余数=被除数-除数×商

实验十进制加减法计数器

实验1 十进制加减法计数器 实验地点:电子楼218 实验时间:2012年10月19日指导老师:黄秋萍、陈虞苏 实验要求:设计十进制加减法计数器,保留测试程序、设计程序、仿真结果 1.设计程序: module count(EN,CLK,DOUT,F,RST); input EN,CLK,F,RST; output [3:0]DOUT; reg [3:0]DOUT; always@(posedge CLK) begin :abc if(EN) if(!RST) if(F) begin :a DOUT=DOUT+1; if(DOUT==10) DOUT=0; end //END A else begin :b DOUT=DOUT-1; if(DOUT==15) DOUT=9; end else DOUT=0; else DOUT=DOUT; end endmodule 2.测试程序 `timescale 10ns/1ns module test_count; wire [3:0] DOUT; reg EN,F,RST,CLK; count M(EN,CLK,DOUT,F,RST); initial begin :ABC CLK=0; EN=0;

RST=1; F=1; #100 EN=1; #200 RST=0; #1500 F=0; #3000 $stop; end always #50 CLK=~CLK; initial $monitor("EN=%b,F=%b,RST=%b,DOUT%D",EN,F,RST,DOUT); endmodule 3.测试结果 # EN=0,F=1,RST=1,DOUT x # EN=1,F=1,RST=1,DOUT x # EN=1,F=1,RST=1,DOUT 0 # EN=1,F=1,RST=0,DOUT 0 # EN=1,F=1,RST=0,DOUT 1 # EN=1,F=1,RST=0,DOUT 2 # EN=1,F=1,RST=0,DOUT 3 # EN=1,F=1,RST=0,DOUT 4 # EN=1,F=1,RST=0,DOUT 5 # EN=1,F=1,RST=0,DOUT 6 # EN=1,F=1,RST=0,DOUT 7 # EN=1,F=1,RST=0,DOUT 8 # EN=1,F=1,RST=0,DOUT 9 # EN=1,F=1,RST=0,DOUT 0 # EN=1,F=1,RST=0,DOUT 1 # EN=1,F=1,RST=0,DOUT 2 # EN=1,F=1,RST=0,DOUT 3 # EN=1,F=1,RST=0,DOUT 4 # EN=1,F=1,RST=0,DOUT 5 # EN=1,F=0,RST=0,DOUT 5 # EN=1,F=0,RST=0,DOUT 4 # EN=1,F=0,RST=0,DOUT 3 # EN=1,F=0,RST=0,DOUT 2 # EN=1,F=0,RST=0,DOUT 1 # EN=1,F=0,RST=0,DOUT 0 # EN=1,F=0,RST=0,DOUT 9 # EN=1,F=0,RST=0,DOUT 8 # EN=1,F=0,RST=0,DOUT 7 # EN=1,F=0,RST=0,DOUT 6 # EN=1,F=0,RST=0,DOUT 5

十进制可逆加减计数器

时序电路逻辑设计 实验人:周铮班级:中法1202班学号:U201215676 一实验目的 1.掌握用SSI实现简单组合逻辑电路的方法。 2.掌握简单数字电路的安装与测试技术。 3.熟悉使用Verilog HDL描述组合逻辑电路的方法,以及EDA仿真技术。 二实验器件 计算机,可编程实验板 三实验内容 十进制加减可逆计数器设计 功能要求: 拨码开关键SW1为自动可逆加减功能键,当SW1为HIGH时,计数器实现自动可逆模十加减计数功能,即4个七段数码管上几乎同步显示0—1—2—3—4—...9—8—7—...0—1...的模十自动可逆加减计数结果;当SW1为LOW时,计数器按拨码开关键SW0的选择分别执行加减计数功能。即当SW0为HIGH时,计数器实现模十加计数功能,即4个七段数码管上几乎同步显示0—1—2—3—4—...9——0—1...的模十加计数结果;当SW0为LOW时,计数器实现模十减计数功能,即4个七段数码管上几乎同步显示9—8—7—...—1—0— (9) —8—7…的模十减计数结果。 四实验设计 1.原理设计 脉冲发生电路采用555定时器组成的多谐振荡器振荡产生周期为1s的矩形脉冲,从而为计数器提供触发信号。其中,可以通过R1,R2,C来控制充放电的时间。 加/减计数控制电路主要由74LS138构成。74LS138芯片是常用的3-8线译码器,常用在单片机和数字电路的译码电路中,74LS138的引脚排列及 真值表如图

计数单元电路主要由十进制计数器74LS192构成。74LS192是同步十进制可逆计数器,它具有双时钟输入,并具有清除和置数等功能,其引脚排列图如图 功能表如图 2.模拟仿真 用Verilog HDL语言设计二通道数据选择器实验程序如下: ①实验代码 module a( input clk,

10进制加法计数器课程设计

西北师范大学知行学院 数字电子实践论文 课题:74ls161组成的十进制加法计数器 (置数法) 班级:14电本 学号:14040101114 姓名:于能海

指导老师:崔用明 目录 第1章前言 (1) 1.1 摘要 (1) 1.2 设计目的 (2) 1.3 设计内容及要求 (2) 第2章设计方案 (3) ....................................................................................................................... 错误!未定义书签。 2.1主要芯片功能介绍 (3) 2.2.1 四位二进制计数器74161介绍 (3) ............................................................................................................... 错误!未定义书签。 2.2 工作原理 (4) 第3章硬件设计 (4) 3.1 单元电路设计 (4) 3.2 总硬件电路图 (5) 第4章仿真与试验 (6) 4.1 仿真结果 (6) 4.2 调试中遇到的问题 (7) 第5章结论和体会 (8)

第1章前言 1.1 摘要在数字电路技术的课程中,计数器的功能是记忆脉冲的个数,它是数字系统中应用最广泛的基本时序逻辑构件。计数器在微型计算机系统中的主要作用就是为CPU和I/O设备提供实时时钟,以实现定时中断、定时检测、定时扫描、定时显示等定时控制,或者对外部事件进行计数。一般的微机系统和微机应用系统中均配置了定时器/计数器电路,它既可当作计数器作用,又可当作定时器使用,其基本的工作原理就是"减1"计数。计数器:CLK输入脉冲是一个非周期事件计数脉冲,当计算单元为零时,OUT输出一个脉冲信号,以示计数完毕。 本十进制加法计数器是基于74161芯片而设计的, 该十进制加法计数器设计理念是用于工厂流水线上产品计数,自动计数,方便简单。 关键词:74ls161计数器 Introduction In the course of digital circuit technology, the counter memory function is the number of pulses, it is a digital system, the most widely used basic sequential logic components. The main role of the counter in the micro-computer system is to provide real-time clock for the CPU and I / O devices to achieve the timer interrupt, timing detection, scheduled scanning, the timing display timing control, or to count external events. General computer systems and computer application systems are equipped with a timer / counter circuit, it can as a counter action, but also as a timer, the basic working principle is "minus 1" count. Counter: CLK input pulse is a non-periodic event count pulses to zero when calculating unit, OUT outputs a pulse signal, to show the count is completed. The decimal addition counter is designed based on the 74161 chip, the low potential sensor senses when to rely on external signals, sensors in an object within the sensing range, otherwise it is a high potential. Within the sensing range of the sensor when an object is moved out of date, sensor potential from high to low and then high, appears on the edge. Counter is automatically incremented and displayed on a digital control. The decimal addition counters have two seven-segment LED. It can count from 0 to 99 objects, and easy to expand. The design concept of decimal addition counter is used to count on a factory assembly line products, automatic counting, convenient and simple. Keywords:74ls161counter

两个任意长的整数的求和运算

软件综合课程设计两个任意长的整数的求和运算 进制的转换 2014 年6月

目录 一、问题陈述 二、需求分析 三、概要设计 四、详细设计 五、程序代码 六、运行结果与测试 七、设计体会与总结

两个任意长的整数的求和运算 一、问题陈述 设计一个程序实现两个任意长的整数的求和运算。 利用双向循环链表,设计一个实现任意长的整数进行加法运算的演示程序。要求输入和输出每四位一组,组间用逗号隔开。如:1,0000,0000,0000,0000。 二、需求分析 1、本程序实现计算任意长的整数的加法运算. 以用户和计算机对话的方式,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令,然后程序就计算并显示出这两个数的运算。 2、本演示程序中,集合的元素限定为数字字符[‘0’~’9’],输入字符可以任意长,输入形式以“#”为结束标志,串中字符顺序不限,且允许出现重复字符。 3、利用双向循环链表现实长整数的存储,每个结点含一个整形变量。输入的形式以#结束,每四位一组。 三、概要设计 在此说明数据结构设计和关键的算法设计思想 Add()函数是实现该问题的主要函数即相加。 typedef struct et 定义双循环链表的存储结构. void setin(dtp *a) 读入数据存储在双链表中的函数; void print1(dtp *w,int len) 原样输出输入的数,略去结束符"#"; void print2(dtp a,int len) 输出运算结果,以每四位一个","样式; 四、详细设计 程序流程图

五、程序代码 #include using namespace std; #define null 0 typedef struct et {

千算万算-100以内加减法-2个数相加减-逆运算-10000题-含答案

1.( )+77=85 21.100-( )=49 41.( )-40=18 61.69+( )=91 81.( )+63=93 2.45+( )=56 22.34+( )=64 42.( )-47=29 62.42-( )=32 82.75+( )=75 3.( )-38=39 23.( )-12=2 43.( )-7=63 63.( )+9=37 83.26-( )=16 4.98-( )=69 24.98-( )=87 44.( )+16=19 64.77-( )=73 84.( )-44=6 5.12+( )=91 25.( )+31=66 45.61-( )=56 65.( )-6=28 85.80-( )=54 6.24+( )=36 26.( )+42=45 46.67-( )=12 66.97-( )=84 86.17+( )=18 7.( )-9=65 27.85-( )=49 47.( )-10=90 67.( )-20=39 87.99-( )=59 8.42+( )=80 28.( )+86=90 48.98-( )=73 68.( )-7=12 88.38-( )=37 9.71-( )=31 29.( )+56=93 49.( )+50=97 69.18+( )=35 89.73+( )=97 10.19+( )=48 30.81-( )=32 50.9+( )=17 70.( )-14=28 90.8+( )=49 11.( )+34=39 31.( )+20=45 51.( )+79=91 71.94-( )=68 91.( )+17=89 12.( )-46=30 32.43-( )=24 52.4+( )=86 72.71-( )=60 92.( )+56=59 13.( )-79=12 33.( )-13=18 53.( )-12=6 73.( )-21=26 93.( )-30=45 14.60-( )=49 34.81-( )=34 54.15+( )=81 74.( )-0=74 94.76-( )=35 15.( )+10=74 35.68-( )=41 55.53-( )=6 75.( )-57=20 95.( )-32=23 16.( )+45=82 36.( )-13=67 56.18+( )=49 76.( )-28=65 96.40+( )=88 17.56-( )=35 37.97-( )=15 57.0+( )=26 77.99-( )=0 97.( )-48=5 18.78-( )=28 38.( )-13=50 58.( )-2=76 78.( )+4=82 98.( )+71=85 19.( )-27=65 39.( )+4=93 59.( )+42=48 79.51+( )=84 99.90-( )=30 20.( )-31=47 40.( )-41=9 60.92-( )=30 80.( )+9=27 100.( )+43=68

加法计算器

十进制加法计算器设计报告 目录 1、摘要----------------------------------------------------------------------2 2、设计任务和要求--------------------------------------------------------2 3、单片机简要原理--------------------------------------------------------2 3.1 AT89C51的介绍------------------------------------------------3 3.2 单片机最小系统------------------------------------------------6 3.3 七段共阳极数码管---------------------------------------------7 4、硬件设计-----------------------------------------------------------------7 4.1 键盘电路的设计-------------------------------------------------8 4.2 显示电路的设计-----------------------------------------------9 5、软件设计------------------------------------------------------------10 5.1 系统设计------------------------------------------------------10 5.2 显示与按键设计---------------------------------------------12 6、系统调试.-------------------------------------------------------------13 6.1系统初始状态的调试------------------------------------------13 6.2键盘输入功能的调试-----------------------------------------14 6.3系统运算功能的调试------------------------------------------16 7、心得体会与总结---------------------------------------------------------16 参考文献---------------------------------------------------------------------17 附录1 系统硬件电路图--------------------------------------------------18 附录2 程序清单-----------------------------------------------------------19 -----------

十进制加法计数器 (3)

EDA技术与VHDL实验报告 一实验题目:十进制加法计数器 二实验目的: 设计带有异步复位和同步时钟使能的十进制加法计数器。 三实验内容: 编写十进制加法计数器的VHDL实现程序;通过电路仿真和硬件验证,了解变量的使用方法,以及“(OTHERS=>X)”的使用方法。四实验原理: 十进制加法计数器的VHDL描述 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT (CLK,RST,EN : IN STD_LOGIC; CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT10; ARCHITECTURE behav OF CNT10 IS BEGIN PROCESS(CLK, RST, EN) V ARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

IF RST = '1' THEN CQI := (OTHERS =>'0') ; --计数器异步复位 ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿 IF EN = '1' THEN --检测是否允许计数(同步使能) IF CQI < 9 THEN CQI := CQI + 1; --允许计数检测是否小于9 ELSE CQI := (OTHERS =>'0'); --大于9,计数值清零 END IF; END IF; END IF; IF CQI = 9 THEN COUT <= '1'; --计数大于9,输出进位信号 ELSE COUT <= '0'; END IF; CQ<= CQI; --将计数值向端口输出END PROCESS; END behav;

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

学生实验报告 (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等于堆栈单元数

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