基于8086与Proteus仿真的44键盘计算器的设计
proteus仿真计算器课程设计
proteus仿真计算器课程设计一、课程目标知识目标:1. 学生能理解Proteus仿真软件的基本原理和操作流程;2. 学生能掌握利用Proteus进行简单计算器电路设计与仿真;3. 学生能了解并描述计算器电路中的基本电子元件及其功能;4. 学生掌握基本的数字电路知识,如逻辑门、触发器等。
技能目标:1. 学生能独立使用Proteus软件进行电路设计;2. 学生能通过Proteus软件进行电路仿真,并对结果进行分析;3. 学生能运用已学知识解决实际计算器电路设计中遇到的问题;4. 学生能通过团队协作,共同完成一个具有基本功能的计算器电路设计。
情感态度价值观目标:1. 学生培养对电子技术的兴趣,激发创新意识和实践欲望;2. 学生在团队合作中学会沟通、协作,培养团队精神和责任感;3. 学生通过动手实践,体验成功的喜悦,增强自信心;4. 学生树立正确的价值观,认识到科技发展对国家和社会的重要性。
本课程针对高年级学生,结合电子技术课程内容,以Proteus仿真软件为载体,使学生掌握基本电子元件和数字电路知识。
课程注重实践操作和团队协作,旨在提高学生的实际动手能力和创新能力,为后续深入学习电子技术打下坚实基础。
通过本课程的学习,学生将能够独立完成一个简单计算器电路的设计与仿真,并在过程中培养良好的情感态度和价值观。
二、教学内容1. 计算器电路设计基础理论:- 简介计算器电路的组成和原理;- 学习基本电子元件:电阻、电容、二极管、三极管等;- 了解并掌握数字电路基础知识:逻辑门、触发器、计数器等。
2. Proteus仿真软件操作:- 学习Proteus软件的基本界面和功能;- 掌握Proteus软件的电路设计、仿真和调试方法;- 学习如何利用Proteus软件绘制电路图、设置元件参数等。
3. 计算器电路设计与仿真:- 根据计算器功能需求,设计电路原理图;- 利用Proteus软件进行电路仿真,观察并分析仿真结果;- 针对仿真过程中出现的问题,进行调试和优化。
4x4键盘实验报告
单片机及DSP课程设计报告专业:班级:姓名:学号:指导教师:时间:一、设计目的为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的课程设计。
通过设计使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。
1、通过本设计,使学生综合运用《单片机技术原理与应用》、《DSP原理与应用》《C语言程序设计》以及《数字电路》、《模拟电路》等课程的内容,为以后从事电子产品设计、软件编程、系统控制等工作奠定一定的基础。
2、学会使用KEIL C和PROTEUS等软件,用C语言或汇编语言编写一个较完整的实用程序,并仿真运行,保证设计的正确性。
3、了解单片机接口应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等。
二、硬件电路方案设计1、4X4键盘设计4x4键盘工作原理:每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。
矩阵的行线和列线分别通过两并行接口和CPU通信。
键盘的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。
键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或断开时的抖动。
两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。
2、数码管显示电路设计数码管显示原理:动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。
这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。
选亮数码管采用动态扫描显示。
所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
8086汇编语言实现简易计算器
8086汇编语⾔实现简易计算器8086汇编语⾔实现简易计算器本周看了⼀个很有意思的知识。
C语⾔的编译器最初是怎么来的?最初应该是由汇编语⾔实现⼀个简化版C语⾔,然后使⽤简化版的C语⾔进⾏多次迭代,功能更新,从⽽出现了如今强⼤的C语⾔。
本⼈找到了⼀个古⽼的课程设计,当时学汇编时候的⼀个⼩demo分享出来。
1.概述为了更深⼊地理解计算机⼯作原理以及CPU的功能和结构,掌握汇编语⾔的使⽤。
本⽂以简易计算器程序的汇编语⾔实现为主要任务,进⾏对程序的⼀些算法和汇编语⾔语法的论述。
计算器是最简单的计算⼯具,简单计算器具有加、减、乘、除四项运算功能。
想要⽤汇编语⾔实现简单的计算器,就必须通过对数据存储,寄存器的使⽤,加减乘除相关指令以及模块的调⽤等汇编语⾔知识进⾏运⽤,以实现⼀个基本功能完善,界⾯友好,操作简便易⾏的计算器。
⽤汇编语⾔实现简单计算器还涉及到输⼊输出模块的设计,加减乘除运算的判断以及退出程序的判断的设计。
通过对各种指令的合理使⽤,设计各个功能模块。
当实现各个程序模块后,通过程序的调⽤最终实现⼀个简单的计算器。
本⽂以⽤8086汇编语⾔实现简易计算器为⽬标,对程序的算法以及结构进⾏分析和解释。
汇编语⾔的语句类型有指令语句、伪指令语句和宏指令语句。
在实现简易计算器的过程中暂不需要宏指令语句,故对此语句不进⾏介绍。
计算器的实现需要使⽤输⼊输出,DOS系统的01H,02H,09H号调⽤可以完成所需功能。
由于简易计算器对结果没有很⾼的范围要求,故对四则运算只需考虑ADD,SUB,MUL,DIV等指令。
在计算器中,输⼊的是10进制数字,⽽在汇编语⾔中读⼊字符只能⼀位⼀位的读取,故需要使⽤MUL设置⼀个循环算法,将输⼊的数字以16进制形式放⼊寄存器中,⽽输出则是使⽤MOD设置⼀个循环算法,将16进制转化为10进制后处理为ASCII码进⾏输出。
2.程序算法结构简易计算器程序的任务主要有处理输⼊数据,选择运算⽅式进⾏计算,显⽰算式结果。
4×4_矩阵键盘计算器设计
西华大学课程设计说明书题目4×4 矩阵键盘计算器设计系(部) 电气信息学院专业(班级) 自动化3班姓名学号指导教师胡红平起止日期2012.6.10-2012.6.30计算机接口及应用课程设计任务书系(部):电气信息学院专业:09自动化指导教师:日期:2012-6-20西华大学课程设计鉴定表摘要近几年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面的知识是不够的,还应根据具体硬件结合,加以完善。
本任务是个简易得三位数的减法运算,用4×4 矩阵键盘及计算器设计,利用数码管实现255内的减法运算。
程序都是根据教材内和网络中的程序参考编写而成,在功能上还并不完善,限制也较多。
本任务重在设计构思与团队合作,使得我们用专业知识,专业技能分析和解决问题全面系统的锻炼。
关键词:单片机,AT89C51,矩阵键盘,数码管ABSTRACTIn recent years, along with the rapid development of science and technology, the application of SCM is unceasingly thorough, it causes the traditional control test technology increasingly updates. In real-time detection and automatic control of single-chip microcomputer application system, often as a core component to use, only microcontroller aspects of knowledge is not enough, should according to specific hardware combined, and perfects.This task is a simple three digits, subtract with 4 * 4 matrix keyboard and a calculator design, use digital tube realization within the 255 subtract. Program is according to the teaching material and within the network reference and compiled program, on the function is not perfect, restrictions also more. This task focuses on design conception and team cooperation, make us with professional knowledge, professional skills to analyze and solve problems of full system exercise.Keywords:Single-chip,AT89C51,Matrix keyboard,digital tube目录摘要 (I)ABSTRACT (II)第1章课题概述 (1)1.1 课题概述 (1)1.2 课题要求 (2)第2章系统设计 (3)2.1 设计思路 (3)2.2 框图设计 (3)2.3 知识点 (3)2.4 硬件设计 (4)2.4.1 电路原理图 (4)2.4.2 元件选择 (5)2.4.3 PCB制版及效果 (9)2.5 软件设计 (10)2.5.1 程序流程图 (10)2.6 系统仿真及调试 (11)2.6.1 硬件调试 (11)2.6.2 软件调试 (11)2.6.3 软硬件调试 (11)结论 (11)参考文献 (14)附录 (15)第1章课题概述1.1 课题概述随着当今时代的电子领域的发展,尤其是自动化的控制领域,传统的分立元件或数字逻辑电路构成的控制系统正被智能化的单片机所取代。
如何利用proteus来仿真emu8086下编写的EXE程序教学文案
如何利用p r o t e u s来仿真e m u8086下编写的E X E程序如何利用proteus来仿真emu8086下编写的EXE程序1.安装proteus和emu8086,都采用默认安装方式2.打开proteus,在其中设置emu8086编译器1)打开“源代码”菜单中的“设定代码生成工具”弹出下面所示对话框2)选中上面所示对话框中左下角的“新建”按钮,然后打开c盘下emu8086文件夹,选中emu8086.exe。
3)按照下图所示,填写源程序扩展名为“ASM”目标代码扩“EXE”,命令行“%1”,然后点击确定。
2.使用emu8086,生成可执行文件1)打开emu8086,会出现下图所示,在其中选择NEW2)单击new按钮后会弹出如下所示对话框,选择empty workspace3)再出现的空白编辑区部分敲入代码如:实验二中给的EX2_1.ASM4)利用FILE菜单中的save as对源程序进行存盘,利用assembler菜单下并编译,注意文件名和路径,请注意生成的可执行文件EXE一定要和仿真电路图DSN在同一文件夹下。
5)如果编译时提示有错误,则修改反色部分,再重新编译,直至没有错误编译成功生成可执行EXE文件为止。
3.打开仿真电路图,设置仿真运行环境。
1)以EX2_1.DSN为例,双击电路图中U1:8086单元2)弹出如下图所示对话框3)双击第三行 program file 右侧打开按钮,选择同文件夹下EX2_1.EXE,其他参数如上图设置。
4)下面如下图所示,设置内部存储器的容量Internal Memory Size 为0x1f0h,(注:内部存储器的容量还可以加大,根据情况设置即可,但因为本实验中用得到了外部扩展存储器,所以注意不能超过4000H)又因为本程序中有INT 3;断点中断,故要设置断点Stop on int 3 YES4.以上都做完,即可仿真执行程序并调试了,并可观察结果。
单片机(44按键与数码管制作的简易计算器,含原理图)
return (i+j*4);//返回键码
}
temp <<= 1;
}
}
}
#endif
#ifndef _wei_h_
#define_wei_h_
int mei;
int wei(int num1,int num2,int num3,int num4,int num5,int num6,int num7 )
if(P1 != 0xf0)//第三次判断有无按键按下
{
m = Keyscan();
if(0<=m && m<=9)
{
if(ch==1)
{Key_Value= Key_Value*10+m;}
else{Key_Value=m;ch=1;}
}
else
{
if(m==15)
{
Key_Value=0;n=0;l=0;
简易计算器(矩阵键盘+数码管)
#include <reg52.h>
#include <as.h>
#include<sd.h>
#include<math.h>
#include<df.h>
#define uint unsigned int
#define uchar unsigned char
long int Key_Value,n;
{mei=4;return mei;}
else
{
if(num6!=0)
{mei=3;return mei;}
else
{
if(num7!=0)
{mei=2;return mei;}
微机原理与接口技术——基于8086和Proteus仿真
1电子社新书信息表发布日期:2011年 9 月 10 日微机原理与接口技术——基于8086和P r o t e u s 仿真作 译 者 顾 晖 等编著 出版日期 2011年8月估 价 35.00元 页 数 304 教辅资源电子课件 程序源代码 习题解答请访问 免费注册下载本书从微型计算机系统应用的角度出发,以Intel 8086微处理器和IBM PC 系列微机为主要对象,系统介绍了微型计算机的基本组成、工作原理、接口技术及应用。
全书共13章,包括:微型计算机系统概述、计算机中的数和数制、8086微型计算机系统、8086寻址方式与指令系统、8086汇编语言程序设计、存储器、输入/输出接口、可编程接口芯片8255A 、可编程定时器8253、可编程串行通信接口芯片8251A 、中断与中断管理、数模与模数转换及应用、总线、Proteus 仿真平台的使用和Proteus ISIS 仿真实例。
本书内容全面、实用性强,原理、技术与应用并重,并特别介绍了利用EDA 工具——Proteus ISIS 的实验方法,讲述有特点和新意。
书中提供了较多的实例,这些实例全部在Proteus 中调试通过,设计方案同时适用于实验箱实验的教学方式。
本书可作为高等院校工科电气与电子信息类各专业本科生的教材,也可作为研究生教材或供有关工程技术人员参考使用。
“微机原理与接口技术”是高等学校电子信息工程、通信工程、自动化、电气工程及其自动化等工科电气与电子信息类各专业的核心课程。
本课程的任务是使学生从系统的角度出发,掌握微机系统的基本组成、工作原理、接口电路及应用方法,使学生掌握微机系统的开发能力。
为了适应教学的需要,编者在总结了多年的教学科研实践经验、对有关微型计算机技术资料进行综合提炼的基础上,编写了本书。
本书特别考虑了内容的选取与组织,注意从微机应用的需求出发,以Intel 8086微处理器和IBM PC 系列微机为主要对象,系统、深入地介绍了微型计算机的基本组成、工作原理、接口技前 言内容简介术及应用,把微机系统开发过程中用到的硬件技术和软件技术有机地结合起来。
Intel8086软件仿真器的设计与实现
Intel8086软件仿真器的设计与实现.txt -你脚踏俩只船,你划得真漂亮。
- 每个说不想恋爱的人心里都装着一个不可能的人。
我心疼每一个不快乐却依然在笑的孩子。
(有没有那么一个人,看透我在隐身,知道我在等人。
本文由bear8899贡献pdf文档可能在WAP端浏览体验不佳。
建议您优先选择TXT,或下载源文件到本机查看。
?50 ?系统仿真学报1996 年 9 月Intel 8086 软件仿真器的设计与实现北京计算机应用和仿真技术研究所 , 100854 贺红卫摘要本文以软件仿真系统在航天、航空及其它领域的实际需求为背景 , 介绍了嵌入式软件仿真系统的工作原理 , 对其中一种层次化的软件仿真器模型进行了描述 , 并讨论了该模型在实现过程中遇到的一些关键性技术问题。
关键词嵌入式系统软件仿真器建模引言目前 , 以嵌入式微处理器为核心的嵌入式计算机系统得到了越来越广泛的应用。
特别是集中了高、精、尖技术的航天控制领域更是如此。
因而 , 迫切需要一整套完备的手段来支持嵌入式软件的设计开发工作。
lator) 为核心。
这类开发手段存在以下缺陷 :制无法并发进行。
往往是软件研制滞后于硬件系统开发的过程。
开发效率 , 也无法满足航天系统软件所要求的高质量与高可靠性。
的是要提高技术人员对系统软件的开发和调试效率 , 对嵌入式软件的分析设计、编码调试、测试分析、可靠性评估和维护等各阶段提供强有力的支持 , 从根本上保证软件的质量 , 提高嵌入式软件的可靠性与安全性。
嵌入式软件全过程支持环境是以软件仿真器为核心。
软件仿真器是用软件的手段对运行嵌入式应用而 , 可以在没有真实硬件环境的情况下 , 实现程序的仿真运行。
软件仿真器技术的引入 , 有着它存在的价值 : 程序所需的特定硬件环境 ( 包括 CPU 芯片 , 内存及其它外围硬件设备 ) 及其活动进行描述 ( 仿真 ) 。
进发。
它完全脱离具体的硬件限制 , 提高了系统开发效率 , 相对减少了一些不必要的额外开销。
基于8086和proteus课程设计
基于8086和proteus课程设计一、课程目标知识目标:1. 理解8086微处理器的内部结构、工作原理及其指令系统;2. 掌握使用Proteus软件进行8086微处理器电路设计与仿真;3. 学会分析并设计简单的微处理器控制系统。
技能目标:1. 能够运用8086微处理器的指令集进行基本的编程;2. 能够利用Proteus软件绘制8086微处理器电路图,并进行仿真测试;3. 能够通过课程学习,提高动手实践能力和问题解决能力。
情感态度价值观目标:1. 培养学生对微处理器技术的兴趣,激发学习热情;2. 培养学生团队协作意识,提高沟通与协作能力;3. 引导学生认识到微处理器在现代科技领域的重要地位,树立正确的科技观。
课程性质:本课程为电子信息类专业的实践性课程,注重理论知识与实践操作的结合。
学生特点:学生具备一定的电子技术基础和编程能力,对微处理器技术有一定了解。
教学要求:结合学生特点,课程目标分解为具体学习成果,强调实践操作,注重培养学生的动手能力和问题解决能力。
在教学过程中,教师应引导学生主动探索,激发学习兴趣,提高课程教学效果。
二、教学内容1. 8086微处理器基础知识:包括8086内部结构、工作原理、寄存器组、指令系统等;- 教材章节:第3章“8086微处理器结构及其工作原理”,第4章“8086指令系统”;- 进度安排:2课时。
2. Proteus软件使用:介绍Proteus软件的基本操作、电路图绘制、仿真测试等;- 教材章节:第5章“Proteus软件及其应用”;- 进度安排:2课时。
3. 8086微处理器电路设计与仿真:结合实例,讲解如何使用Proteus软件进行8086微处理器电路设计与仿真;- 教材章节:第6章“基于Proteus的微处理器电路设计与仿真”;- 进度安排:4课时。
4. 基于微处理器的控制系统设计:分析并设计简单的微处理器控制系统;- 教材章节:第7章“微处理器控制系统设计”;- 进度安排:4课时。
基于PROTEUS软件的计算器设计
基于PROTEUS软件的计算器设计摘要近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,在很多先进的系统中,单片机往往是作为一个核心部件来使用。
在日常生活中,计算器的应用更是极为普遍,已经成为我们日常生活中必不可少的计算工具,而它的主要部分就是单片机。
本设计介绍了单片机在计算器领域的应用技术,以常用的MCS-51系列(本次选用8051)单片机为基础,简单介绍了单片机与键盘之间以及与显示器之间的应用技术。
本次设计中的键盘的识别是一个非常重要的部分,我们此次所用的是非编码键盘,只需要预先写入识别程序,这种方法使得我们的硬件设计变的简洁许多。
在设计过程中由于实际情况的要求,我们利用部分器件对单片机进行了数据扩展,以满足计算器系统的工作要求。
设计中利用键盘进行数据的输入,然后通过单片机对其进行处理,最后就可以通过LCD显示器显示出来。
关键词:单片机;键盘;显示器;LCD如需程序/Word版本,请访问: 嵌入式软件院。
The calculator design based on PROTEUSAbstractWith the infiltration in the social field of the computer in recent years, the application of the one-chip computer is moving towards deepening constantly, in very many advanced systems, the one-chip computer often was took a core part used. In the daily life, the calculator application is extremely universal, already became in our daily life the essential computation tool, and further its main part was the one-chip computer.This design introduced the one-chip computer in the calculator domain application technology, take the commonly used MCS-51 series the one-chip computer as a foundation(this time selects 8051), introduced between the one-chip computer and the keyboard as well as with the monitor between application technology simply.In this design keyboard recognition is an extremely important part, this time we use the right and wrong code keyboard, only needs to read in the recognizer in advance, this method causes our hardware design to change succinct many. In the design process as a result of the actual situation request, we used the partial components to carry on the data expansion to the one-chip computer, satisfied the calculator system the work requirement.In the design carries on the data input using the keyboard, then carries on processing through the one-chip computer to it, finally may demonstrate through the LCD monitor. Keywords: the one-chip computer; Keyboard; Display; LCD2目录引言 (6)第1章概述 (7)第2章硬件设计 (8)2.1 MCS-51单片机的硬件结构 (8)2.1.1 MCS-51单片机的逻辑结构 (8)2.1.2 MCS-51的外部引脚 (9)2.1.3 数据存储器的扩展 (11)2.2 门电路 (13)2.2.1 74LS373芯片 (14)2.2.2 74LS00芯片 (15)2.2.3 7407芯片 (16)2.3 键盘 (17)2.3.1 键盘简介 (17)2.3.2 非编码键盘 (18)2.3.3 非编码键盘的控制方式 (19)2.3.4 非编码键盘接口技术 (20)2.3.5 键盘实例分析 (22)2.4 LCD显示器 (23)2.4.1 液晶显示器概述 (23)2.4.2 LCD的分类及特点 (24)2.4.3 LCD显示模块 (25)2.4.4 所选器件讲解 (26)第3章软件部分 (28)3.1 总程序流程图 (28)3.2 键盘扫描程序流程图 (28)3.3 显示程序流程图 (30)第4章PROTEUS介绍 (31)4.1 Proteus 介绍 (31)4.2 Keil 与proteus 连接调试 (32)4.2.1 Proteus 与Keil 联机 (32)4.2.2 界面简介 (33)结论与展望 (36)致谢 (37)参考文献 (38)附录A 电气原理总图 (39)附录B 外文文献及其译文 (40)附录C 参考文献及其摘要 (44)附录D 源程序 (46)插图清单图1-1 硬件结构框图 (7)图2-1 MCS-51单片机的内部结构框图 (8)图2-2 8051引脚图 (10)图2-3 MCS-51内、外部时钟连接方式 (11)图2-4 数据存储器6264引脚图 (12)图2-5 MCS-51扩展RAM的示意图 (12)图2-6 扩展8KB数据存储器电路 (13)图2-7 74LS373芯片引脚图 (14)图2-8 74LS373原理结构 (15)图2-9 74LS00逻辑图 (16)图2-10 7407逻辑图 (17)图2-11 独立连接式非编码键盘 (19)图2-12 4行4列矩阵式键盘连接线 (19)图2-13 编码键盘例图 (22)图2-14 点阵式LCD显示字母“A”的情况 (25)图2-15 LCD显示模块的内部结构 (25)图2-16 LCD显示引脚图 (26)图2-17 LCD连接线路图 (27)图3-1 总程序流程图 (28)图3-2 键盘扫描流程图 (29)图3-3 显示程序流程图 (30)图4-1 Keil 目录下的TOOLS.ini 文件 (33)图4-2 使用ISIS打开的原理图 (33)图4-3 选择Keil工程 (34)图4-4 调试程序 (34)图4-5 运行前的界面 (35)图4-6 运行结果显示 (35)4表格清单表2-1 P3口的第二功能 (10)表2-2 6264芯片控制操作 (13)表2-3 74LS373主要电器特性 (14)表2-4 74LS373真值表 (14)表2-5 74LS00主要电特性 (15)表2-6 74LS00功能表(Y=AB) (16)表2-7 7407主要电特性 (16)表2-8 7407功能表(Y=A) (17)表2-9 1602显示器引脚说明 (26)引言可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
(微机原理)EMU8086+PROTEUS的使用方法
EMU8086+PROTEUS的使用方法简介
1、EMU8086软件的使用
EMU8086为一种普通的汇编软件,使用方法与其他汇编软件类似。
(1)写好程序之后单击compile经行编译。
(2)当程序无误时,选择路径保存;当程序有问题时,软件会提示出错位置。
(3)单击emulate运行程序。
可查看标志位,堆栈等
2、Proteus+EMU8086 的仿真
在Proteus软件中绘制系统原理图,然后需要对Proteus进行程序导入设置才能运行汇编程序进行仿真调试。
具体步骤如下:
(1)点击菜单项Source的下拉项Define Code Generation Tools…
(2)在弹出如下对话框,单击new按钮。
(3)弹出如下对话框,找到本机中emu8086软件安装后生成的EMU8086文件夹,选择可执行程序emu8086.exe,点击打开按钮。
(4)回到设置对话框后,将源文件和目标文件分别设为ASM和EXE,单击OK。
(5)点击菜单项Source的下拉项Add/Remove Source files…
(6)在弹出如下对话框,单击new按钮。
(7)弹出如下对话框,找到需调试运行的asm源程序。
单击ok,成功。
(8)在运行过程中,利用Proteus中Debug菜单项中的选项可进行各项调试功能。
如下图所示查看寄存器内容。
3 说明
硬件原理图可参考Proteus安装文件SAMPLES\VSM for 8086\8086 Demo Board模板文件建立。
有一点值得指出的是,仿真时若需要改变程序路径则需新建工程,个人理解。
单片机4X4键盘计算器课程设计
《单片机课程设计报告》教学院:专业班级:学号:学生:指导教师:时间:地点:单片机课程设计任务书一、课题名称单片机课程设计二、设计目的为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的单片机课程设计。
通过实训使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。
三、设计容设计基于51单片机的简易计算器系统电路,并以该电路为基础进行编程,要求能够实现0-99之间的数进行加、减、乘、除运算的功能。
四、设计要求1、设计简易计算器,要求能对0-99之间的数进行加、减、乘、除运算。
2、用4×4的键盘作为输入设备。
3、用LED或LCD进行显示。
4、编写无符号数加、减、乘、除运算、输入和显示的程序。
5、对系统的进行综合和调试,使其具有对0-99之间的数进行加、减、乘、除运算的功能。
6、编写课程设计的总结六、设计报告课程设计报告的基本容至少包括封面、正文、附录三部分。
课程设计报告要求统一格式,字体工整规。
1、封面封面包括“《单片机课程设计》课程设计报告”、班级、、学号以及完成日期等。
2、正文正文是实践设计报告的主体,具体由以下几部分组成:(1)课程设计题目;(2)课程设计任务与要求;(3)设计过程(包括设计方案、设计原理、创新点以及采用的新技术等);(4)方案的比较与论证;(5)硬件电路设计,各个模块的设计与器件的选择;(6)软件程序的设计与调试;(7)课程设计总结(包括自己的收获与体会;遇到的问题和解决的方法;技术实现技巧和创新点;作品存在的问题和改进设想等);3.附录附录1:系统设计原理图附录2:系统硬件元器件清单附录3:系统的程序七、考核方式与成绩评定办法格(60分~69分)、60分以下为不及格。
八、参考书目[1] 朝青.单片机原理及接口技术(简明修订版).:航空航天大学,1998[2] 广弟.单片机基础[M].:航空航天大学,1994[3] 阎石.数字电子技术基础(第三版). :高等教育,1989[4] 廖常初.现场总线概述[J].电工技术,1999.[5] 徐仁贵等编著.《单片微型计算机应用技术》.:机械工业.2001年2月第1版[6] 毅刚等编著.《单片机原理及应用》. :高等教育.2004年1月第1版一、课程设计任务与要求设计基于51单片机的简易计算器系统电路,并以该电路为基础进行编程,要求能够实现0-99之间的数进行加、减、乘、除运算的功能,并要求如下:1、设计简易计算器,要求能对0-99之间的数进行加、减、乘、除运算;2、用4×4的键盘作为输入设备;3、用LED或LCD进行显示;4、使用C语言编写无符号数加、减、乘、除运算、输入和显示的程序;5、对系统的进行综合和调试,使其具有对0-99之间的数进行加、减、乘、除运算的功能,还具有清零功能等;6、编写课程设计的总结。
微机原理与接口技术基于8086和Proteus仿真第二版课程设计
微机原理与接口技术基于8086和Proteus仿真第二版课程设计简介《微机原理与接口技术基于8086和Proteus仿真》是一门针对计算机相关专业的课程,主要介绍了8086微处理器的基本原理、汇编语言编程和接口技术等内容。
本门课程的第二版扩展了课程的实践部分,引入了Proteus仿真软件,增加了课程设计的实验项目,使学生能够更深入地学习和掌握课程内容。
本文主要介绍《微机原理与接口技术基于8086和Proteus仿真第二版》课程设计的实验项目及其要求。
实验项目本门课程设计共有三个实验项目,分别为:实验一:LED流水灯实验目的通过设计一个LED流水灯的电路,提高学生对8086微处理器、接口技术和汇编语言的理解和掌握,同时熟练掌握Proteus仿真软件的使用。
实验要求1.设计一个LED流水灯电路,要求至少包含8个LED灯。
2.使用8255A接口芯片控制LED流水灯电路,实现LED灯的流动效果。
3.使用8086微处理器编写汇编语言程序,实现对8255A接口芯片的控制,控制LED流水灯电路的流动效果。
4.使用Proteus仿真软件进行电路的仿真和调试,最终验证电路的正确性和稳定性。
实验二:数码管计数器实验目的通过设计一个数码管计数器的电路,提高学生对8086微处理器、接口技术和汇编语言的理解和掌握,同时熟练掌握Proteus仿真软件的使用。
实验要求1.设计一个数码管计数器电路,要求使用74LS47译码器和74LS48数码管显示器。
2.使用8255A接口芯片控制数码管计数器电路,实现对计数器的控制和显示。
3.使用8086微处理器编写汇编语言程序,实现对8255A接口芯片的控制,控制数码管计数器电路的计数和显示。
4.使用Proteus仿真软件进行电路的仿真和调试,最终验证电路的正确性和稳定性。
实验三:多功能小车实验目的通过设计一个多功能小车的电路,提高学生对8086微处理器、接口技术和汇编语言的理解和掌握,同时熟练掌握Proteus仿真软件的使用。
单片机4X4键盘接口和显示设计报告
微型计算机技术课程设计报告专业:通信工程班级:XXXXX姓名:XXXX学号:XXXXX指导教师:XXXX时间:2011-03-08~19通信与电子工程学院键盘接口和显示设计课程设计报告一、课设目的为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的课程设计。
通过设计使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。
1、通过本设计,使学生综合运用《微型计算机技术》、《C语言程序设计》以及《数字电路》、《模拟电路》等课程的内容,为以后从事电子产品设计、软件编程、系统控制等工作奠定一定的基础。
2、学会使用KEIL C和PROTEUS等软件,用C语言或汇编语言编写一个较完整的实用程序,并仿真运行,保证设计的正确性。
3、了解单片机接口应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等。
二、设计内容设计并实现一4×4键盘的接口,并在两个数码管上显示键盘所在的行与列。
三、问题分析及方案的提出4×4键盘的每个按键均和单片机的P1口的两条相连。
若没有按键按下时,单片机P1口读得的引脚电平为“1”;若某一按键被按下,则该键所对应的端口线变为地电平。
单片机定时对P1口进行程序查询,即可发现键盘上是否有按键按下以及哪个按键被按下。
实现4×4键盘的接口需要用到单片机并编写相应的程序来识别键盘的十六个按键中哪个按键被按下。
因为此题目还要求将被按下的按键显示出来,因此可以用两个数码管来分别显示被按下的按键的行与列。
四、设计思路及原因对于4×4键盘,共有十六个按键。
如果每个按键与单片机的一个引脚相连,就会占用16个引脚,这样会使的单片机的接口不够用(即使够用,也是对单片机端口的极大浪费)。
因此我们应该行列式的接法。
行列式非编码键盘是一种把所有按键排列成行列矩阵的键盘。
在这种键盘中,每根行线和列线的交叉处都接有一个按键,每当某个按键被按下时,与这个按键相连的行线和列线就会接通,否则是断开状态。
基于Proteus软件的4x4矩阵键盘设计与仿真
基于Proteus软件的4x4矩阵键盘设计与仿真4*4矩阵键盘仿真摘要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。
单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。
由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。
单片机系统的开发过程中,程序设计语言的选择尤为重要。
C51提供高效的代码,结构化的编程和丰富的操作符,多被采用。
C51是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能,而且可以直接实现对硬件的控制。
本毕业设计以AT89S51芯片为核心,程序设计采用汇编语言,辅以必要的电路,并运用proteus软件设计了4*4矩阵键盘仿真。
目录前言 (1)第一章单片机的概述.................................................................. 2 1.1什么是单片机.......................................................................................2 1.2MCS-51单片机内部结构............................................................ 2 1.3单片机的应用领域 (3)1.4 AT89C51简介.......................................................................................4 第二章软件的介绍及使用............................................................ 7 2.2 Proteus软件的介绍和使用.................................................................. 7 2.1Keil uVision2软件的介绍和使用............................................................ 9 第三章系统总体设计..................................................................14 3.1 系统原理.......................................................................................... 14 3.2电路组成.......................................................................................... 14 3.2.1键盘部分..........................................................................................14 3.2.2LED显示.......................................................................................... 15 3.2.3晶振电路..........................................................................................16 3.3系统功能和原理图................................................................................. 16 3.3.1实现功能....................................................................................... 16 3.3.2硬件电路原理图.............................................................................. 16 3.4系统与硬件的连接................................................................................. 17 第四章系统软件设计........................................................................... 18 4.1程序流程图.......................................................................................... 18 4.2源程序................................................................................................ 18 第五章程序的编译调试与仿真............................................................... 21 5.1程序的编译 (21)5.2调试与仿真 (22)第六章结束语………………………………………………………………………………24 6.1论文总结…………………………………………………………………………………24 6.2工作展望.............................................................................................24 参考文献 (25)致谢 (25)前言随着人们生活水平的提高,19世纪兴起的数字电路以其先天的便捷、稳定的优点在现代电子技术电路中占有越来越重要的地位。
基于Emu8086和Proteus的《汇编语言和接口技术》课程仿真实验研究
基于Emu8086和Proteus的《汇编语言和接口技术》课程仿真实验研究作者:彭玄璋郑伟骆珍仪来源:《电脑知识与技术》2018年第17期摘要:该文针对《汇编语言与接口技术》在实验教学存在的问题,提出了基于Emu8086和Proteus仿真软件的虚拟实验教学方法;介绍了一个实验教学实例——使用Emu8086和Proteus仿真软件设计与实现的8253定时/计数器实验,通过实例说明Emu8086和Proteus仿真软件在该课程实验教学中的应用方法和仿真过程。
关键词:实验教学;仿真实验;微机接口;汇编语言中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)17-0165-031 引言《汇编语言与接口技术》课程对于计算机、通信工程、物联网工程等专业的学生来说是一门重要的课程。
该课程又是一门理论性和实践性都很强的课程,因此必须加强理论教学和实验教学的结合。
通过实验促使学生能使用微处理器芯片及典型接口芯片设计出微机接口电路,加深对微处理器芯片和典型接口芯片特性的认识和理解,掌握微机接口电路设计的方法,接受一定的汇编语言编程训练,从而加强微机应用的工程实践能力。
在传统的《汇编语言与接口技术》实验教学中,采用的微机原理与接口技术实验箱由于其内部线路已经连好,没有给学生实际设计微机接口电路的机会,实验效果不是很理想。
再有就是实验设备成本高,容易损坏,维护困难,使用受到场地限制。
针对使用实验箱进行实验教学现状中的诸多限制,我们提出了一种基于EMU8086和PROTEUS的《汇编语言与接口技术》仿真实验的方法,通过使用PROTEUS7.9提供的VSM FOR 8086模块,利用虚拟仿真软件进行电路设计和仿真。
这一方法不仅完全取代了以往使用实验箱才能做《汇编语言与接口技术》实验,而且使用方便、快捷,可靠性高,节省投资。
2 虚拟实验使用的仿真软件简介Emu8086-Assembler and Microprocessor Emulator是一个可在Microsoft Windows 操作系统环境下运行的8086CPU汇编仿真软件。
如何利用proteus来仿真emu8086下编写的EXE程序
如何利用proteus来仿真emu8086下编写的EXE程序
1.安装proteu和emu8086,都采用默认安装方式
2.打开proteu,在其中设置emu8086编译器
1)打开“源代码”菜单中的“设定代码生成工具”
弹出下面所示对话框
2)选中上面所示对话框中左下角的“新建”按钮,然后打开c盘下emu8086文件夹,选中emu8086.e某e。
3)按照下图所示,填写源程序扩展名为“ASM”目标代码扩“E某E”,命令行“%1”,然后点击确定。
2.使用emu8086,生成可执行文件
1)打开emu8086,会出现下图所示,在其中选择NEW
2)单击new按钮后会弹出如下所示对话框,选择emptyworkpace
3)再出现的空白编辑区部分敲入代码如:实验二中给的E某
2_1.ASM
4)利用FILE菜单中的avea对源程序进行存盘,利用aembler菜单下并编译,注意文件名和路径,请注意生成的可执行文件E某E一定要和仿真电路图DSN在同一文件夹下。
5)如果编译时提示有错误,则修改反色部分,再重新编译,直至没有错误编译成功生成可执行E某E文件为止。
3.打开仿真电路图,设置仿真运行环境。
1)以E某2_1.DSN为例,双击电路图中U1:8086单元2)弹出如下图所示对话框。
8086计算器仿真设计
实验报告一、设计任务:利用微机原理所学的8086微处理器相关知识为核心,利用Proteus仿真软件,设计一个关于计算器的仿真电路并编写汇编代码。
根据8086的结构和其寻址方式、输入输出、I/O 口读写等技术,使用汇编语言的基本语法、伪指令,结合Proteus软件SAMPLES中8086 Demo Board 示例的理解分析,自行设计。
二、需求分析:(1)用8086作为核心处理器;(2)用8255芯片连接主机与外设;(3)用74273锁存器对数据进行锁存;(4)用数码管显示器来显示输入的数字以及输出的结果;(5)由于需要输入数字及运算符所以要用到键盘;(6)用蜂鸣器在按下按键的同时发出声响;(7)连接整个电路要用到导线以及总线将相应的引脚相连接。
三、总体方案(选择与论证)1•方案的选择:基于技术成熟的Proteus软件,以Proteus软件SAMPLES中8086 Demo Board示例为蓝本并充分分析理解,在此基础上提出自己的设计方案。
将例子中电路结构优化精简,舍弃不必要的芯片,并用汇编来实现全部功能。
即计算器能够进行4位数的加、减、乘、除运算在此基础上,为使设计的计算器更具有实用性,我们通过循环调用的方式加入了对幕运算的功能。
与此同时,为优化人机界面,使计算器更为美观和实用,我们加入软件自带的封装好的矩阵键盘和蜂鸣器。
这就使得整个设计更加紧凑。
蜂鸣器实现了每按下一次按键就发出一次声响的功能以使按键检测更加直观,实际的计算器无差别。
此计算器拥有计数的功能,分自动计数和手动计数两种。
自动计数即为一个简单的计时器,用户可按需要定时,当到预定时间时,计算器会发声音提示用户。
手动计数有加1和减1两种,当用户需要计数某些场合中尤为适用。
2. 方案的论证:8086通过74273锁存器与8255A相连,使8086能够读外部数据和给外部芯片写数据。
8255A的A 口设置为输出,B 口和C 口设置为输入,将8255A分别和4*5矩阵、数码管、蜂鸣器相连接。
4x4键盘设计
实验二4×4编码键盘设计1. 实验目的(1)掌握按键工作原理及硬件实现;(2)掌握矩阵式按键识别方法;2. 实验环境(1)PC机(2)protues仿真软件(3)Keil C编程软件3. 实验内容(1)在protues仿真环境中设计基于8051单片机的按键硬件实现并行硬件仿真;(2)在Keil C中编程实现矩阵式按键识别;(3)在protues中进行软硬件仿真;分析仿真过程。
4. 实验要求在实验报告中的实验内容中应包括以下内容:(1)硬件原理图;(2)程序流程图及部分关键代码;程序:#include"reg51.h"#include"LCD1602.h"#include"hardware.h"char code tab[4][4]={ {'1','4','7','#'},{'2','5','8','0'},{'3','6','9','*'},{'A','B','C','D'}}; //0到F的16个键植void delay(unsigned char a){unsigned char i;while(a--)for(i=100;i>0;i--);}char kbscan() //键盘扫描{unsigned char hang,lie,key;if(P3!=0x0f)delay(5);if(P3!=0x0f){switch(P3&0x0f){case 0x0e:lie=0;break;case 0x0d:lie=1;break;case 0x0b:lie=2;break;case 7:lie=3;break;}P3=0xf0;P3=0xf0;switch(P3&0xf0){case 0xe0:hang=0;break;case 0xd0:hang=1;break;case 0xb0:hang=2;break;case 0x70:hang=3;break;}P3=0x0f;while(P3!=0x0f);key=tab[hang][lie];}elsekey=0;return (key);}void main(){unsigned char temp;LCD_initial();LCD_prints("piaoling");P3=0x0f;P0=0xff;while(1){temp=kbscan();if(temp!=0){P0=temp;LCD_set_position(0x40);LCD_printc(temp);}}}(3)仿真截图(仿真结果)(4)结论开发板上设计了行列式矩阵编码键盘,规模为4*4,可作为外部输入。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于8086与Proteus仿真的4*4键盘计算器的设计一、设计目的本次课程设计的实验目的是通过该实验掌握较复杂程序的设计。
能够独立完成用程序对8086、8255控制键盘和LED显示的控制,完成计算器加减法的应用。
独立编写程序,明白和掌握程序的原理和实现方式。
为以后的设计提供经验。
学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
二、设计内容设计计算器,要求至少能完成多位数的加减乘除运算。
独立完成用程序对8086、8255控制键盘和LED显示的控制,完成计算器加减乘除的应用。
三、设计原理与硬件电路设计的思路是:首先利用程序不断扫描键盘是不是有输入,如果没有就一直扫描,如果有就停止扫描,完成输入,利用汇编的程序核对输入键的数值,通过调用子程序完成数据的储存或者是加减的运算。
运算完成后将运算的结果储存并显示到LED显示器上。
各部分硬件功能:可编程并行通信接口芯片8255A 8255A内部结构:1. 并行输入/输出端口A,B,C8255A内部包括三个8位的输入输出端口,分别是端口A、端口B、端口C,相应信号线是PA7~PA0、PB7~PB0、PC7~PC0。
端口都是8位,都可以作为输入或输出。
通常将端口A和端口B定义为输入/输出的数据端口,而端口C则既可以作数据端口,又可以作为端口A和端口B的状态和控制信息的传送端口。
2.A组和B组控制部件端口A和端口C的高4位(PC7~PC4)构成A组;由A组控制部件实现控制功能。
端口B和端口C的低4位(PC3~PC0)构成B组;由B组控制部件实现控制功能。
A组和B组利用各自的控制单元来接收读写控制部件的命令和CPU通过数据总线(D0~D7)送来的控制字,并根据他们来定义各个端口的操作方式。
3. 数据总线缓冲存储器三态双向8位缓冲器,是8255A与8086CPU之间的数据接口。
与I/O操作有关的数据、控制字和状态信息都是通过该缓冲器进行传送。
4. 读/写控制部件8255A完成读/写控制功能的部件。
能接收CPU的控制命令,并根据控制命令向各个功能部件发出操作指令。
CS 片选信号:由CPU输入,有效时表示该8255A被选中。
RD, WR 读、写控制信号:由CPU输入。
RD有效表示CPU读8255A,WR有效表示CPU写8255A。
RESET 复位信号:由CPU输入。
RESET信号有效,清除8255A中所有控制字寄存器内容,并将各个端口置成输入方式。
定义工作方式控制字:工作方式0:8255A中各端口的基本输入/输出方式。
5.键盘输入模块键盘是常用信息输入元件,其实键盘也是由一个个按钮组成,如果是独立按钮的话必须要需要一个I/O口对它进行检测,而键盘往往这需要键盘按钮数一半的I/O口数对它进行检测,也许对一个比较简单的系统I/O口数一般不是问题,但对于一个大型、复杂的系统来说I/O资源就显得非常珍贵了,尽量减少I/O使用是非常利于降低成本,另外一方面键盘比用独立按键要美观,这也是键盘能够长期得到人们青睐的原因,可是硬件上的节省必然导致软件上编程的复杂,那就来看看键盘到底使软件编程有多复杂?下图是一个4*4键盘的结构图,它是四条I/O线作为行线,四条I/O线作为列线组成的键盘。
在键盘的行线和列线的每一个交点上,设置一个按键,这样键盘中按键的个数是4*4个。
这种行列式键盘结构能够有效地提高单盘及系统中I/O口的利用率。
于是将键盘接8255A的PC口,至于为什么选择PC是有原因的,进行键盘扫描一般要求有一部分的I/O口的工作方式是输入,另一部分I/O是输出,具体到4*4键盘则要求4个I/O口输入,另外4个输出,这一点PC口刚好符合,而PA、PB口要么全部输入或输出,所以只能是PC口接键盘。
4*4键盘结构图五、设计流程图六、实验程序DATA SEGMENTX DB ?,?,?,? ;存放数据的每一位X1 DW ? ;存放第一个数据值X2 DW ? ;存放第二个数据值Y DW ? ;存放运算结果S DB ? ;存放运算符号值E DB ? ;按下等号键标记CC DB ? ;存放运算数据位数H DB 0 ;存放按键行号L DB 0 ;存放按键列号DISCODE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,3 9H,5EH,79H,71H ;段码表DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AL,90H ;设置为A口输入,B口输出,C口输出OUT 46H,ALMOV DI,OFFSET X+3 ;DI指向X的高位KKK: CALL KEY ;扫描按键JMP KKK;以下为按键扫描子程序,程序返回后,在变量H和L中存放当前按键的行列号KEY PROC CHECK: CALL DISP ;等待按键按下的同时进行显示MOV AL,0F0H ;所有行输出低电平OUT 44H,ALIN AL,40HCMP AL,0FFH ;读列值JZ CHECK ;若都为高电平则无键按下,等待MOV CX,50LOOP $ ;延时消抖IN AL,DX ;重读列值CMP AL,0FFHJZ CHECK ;无键按下一直等待MOV H,0 ;有键按下,先把行列号变量清0MOV L,0MOV BL,01HMOV BH,0FEH ;扫描法读键值:从第一行开始测试,即PC0输出低电平NEXT: MOV AL,BHOUT 44H,ALNEXTH: IN AL,40H ;读列值,判断是第几列有键按下TEST AL,BL ;从第一列开始判断JZ WAIT0ROL BL,1CMP BL,10H ;当前行状态下没有任何列有键按下,则转为对下一行的测试JZ NEXTLINC H ;每判断一列,列号加1JMP NEXTH ;再对下一列进行判断NEXTL: MOV H,0MOV BL,01HROL BH,1 ;对下一行测试,让下一个PC 口输出低电平CMP BH,0EFHJZ EXITINC LJMP NEXTWAIT0: IN AL,40H ;若有键按下,则等该按键松开后再计算键值CMP AL,0FFHJNZ WAIT0MOV CX,50LOOP $ ;延时消抖IN AL,40HCMP AL,0FFHJNZ WAIT0CALL KEYVALUE ;调计算键值子程序EXIT: RETKEY ENDP;以下为计算键值子程序,通过行列号计算键值(键值=列号*4+行号);键值存放在DL寄存器中KEYVALUE PROCMOV DL,LMOV DH,HSHL DL,1SHL DL,1 ;列号乘4ADD DL,DHCMP DL,9 ;按下的是数字键JNG NUM_CALLCMP DL,14JL CONT_CALL ;按下的是运算键CMP DL,14JZ OUTP_CALL ;按下的是等于键CMP DL,15JZ CLR_CALL ;按下的是清除键NUM_CALL: CALL NUMBER ;调数字键处理子程序JMP EXIT1CONT_CALL: MOV S,DL ;存放运算键的键值MOV E,0CALL COUNT ;调运算键处理子程序,计算第一个加数JMP EXIT1OUTP_CALL: CALL OUTP ;调等号键处理子程序JMP EXIT1CLR_CALL: CALL CLEAR ;调清除键处理子程序EXIT1: RETKEYVALUE ENDP;以下为清除键处理子程序,按下清除键后,X变量全部清0 CLEAR PROCMOV X[3],0MOV X[2],0MOV X[1],0MOV X[0],0CALL BITPRETCLEAR ENDP;以下为等号键处理子程序,该子程序负责将第二个运算数据的数值计算出来存入X2变量;并根据运算符号,调用相应的运算子程序OUTP PROCPUSH AXPUSH DXPUSH BXINC ECALL COUNT ;调运算键处理子程序,计算第二个运算数据CMP S,10JZ ADD_CALL ;运算符为加号,则调用加法子程序CMP S,11JZ SUB_CALL ;运算符为减号,则调用减法子程序CMP S,12JZ MUL_CALL ;运算符为乘号,则调用乘法子程序CMP S,13CALL DIVP ;运算符为除号,则调用除法子程序JMP STORE1ADD_CALL: CALL ADDPJMP STORE1SUB_CALL: CALL SUBPJMP STORE1MUL_CALL: CALL MULPSTORE1: MOV AX,Y ;以下程序将各运算子程序返回的运算结果,按位分解,送入X变量MOV DX,0MOV BX,1000DIV BXMOV X[0], ALMOV AX,DXMOV BL,100DIV BLMOV X[1],ALMOV AL,AHMOV AH,0MOV BL,10DIV BLMOV X[2],ALMOV X[3],AHPOP BXPOP DXPOP AXRETOUTP ENDP;以下为运算键处理子程序,该程序将第一个运算数据的数值计算出来并存入X1变量;或者将第二个运算数据的数值计算出来并存入X2变量;将运算符的值存入S变量COUNT PROCPUSH AXPUSH BXPUSH DXMOV DX,0CALL BITP ;测试X中的数据是多少位CMP CC,4 ;输入的数据是4位数?JZ C4CMP CC,3 ;输入的数据是3位数?JZ C3CMP CC,2 ;输入的数据是2位数?JZ C2JMP C1 ;输入的数据是1位数?C4: MOV AX,0MOV AL,X[0]MOV BX,1000MUL BXMOV DX,AXC3: MOV AL,X[1]MOV BL,100MUL BLADD DX,AXC2: MOV AL,X[2]MOV BL,10MUL BLADD DX,AXC1: MOV AL,X[3]MOV AH,0ADD DX,AXCMP E,1JNZ X1_SMOV X2,DX ;按下的是等号,则将第二个运算数据的值存入X2变量JMP EXIT3X1_S: MOV X1,DX ;按下的是运算符号,则将第一个运算数据的值存X1变量MOV X[3],0 ;清空X变量MOV X[2],0MOV X[1],0MOV X[0],0EXIT3: POP DXPOP BXPOP AXRETCOUNT ENDP;以下为数字键处理子程序;该程序,将输入的数据按位存放在X变量中,并由CC记录数据的位数NUMBER PROCCMP E,1JNZ CONTINUEMOV E,0CALL CLEARCONTINUE: CMP CC,0 ;目前数据为0位,即没有数据,则转到SSSJZ SSS;若已有数据,以下程序将X左移8位。