简易计算器的设计计算机硬件微机原理课程设计

合集下载

简易计算器c课程设计

简易计算器c课程设计

简易计算器c 课程设计一、课程目标知识目标:1. 让学生掌握简易计算器C的基本结构,包括算术表达式、运算符和操作数。

2. 使学生了解计算器C中的数据类型及其在内存中的存储方式。

3. 让学生理解顺序结构程序设计的原理,并能够运用到简易计算器C的开发中。

技能目标:1. 培养学生运用计算器C编写简单程序的能力,如加减乘除运算。

2. 培养学生分析问题、解决问题的能力,能够针对特定需求设计相应的计算器功能。

3. 提高学生的编程实践能力,通过动手编写代码,实现简易计算器的功能。

情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发他们主动探索新知识的欲望。

2. 培养学生团队协作意识,学会与他人共同分析问题、解决问题,共同进步。

3. 培养学生严谨、细致的学习态度,养成良好的编程习惯,为今后的学习打下基础。

课程性质:本课程属于编程启蒙课程,以实践操作为主,结合理论讲解,让学生在动手实践中掌握编程基础。

学生特点:本课程面向的学生为具有一定计算机操作基础,对编程感兴趣的年级学生。

教学要求:教师需结合学生特点,以实例为主线,引导学生主动参与课堂,注重培养学生的动手实践能力和团队协作精神。

通过本课程的学习,使学生在掌握计算器C基本知识的同时,提高编程技能和综合素质。

二、教学内容1. 计算器C基本语法:介绍计算器C的数据类型、变量、常量的定义及使用,让学生掌握基本语法规则。

- 教材章节:第一章 计算器C概述- 内容列举:数据类型、变量定义、常量定义、运算符、表达式。

2. 算术表达式:讲解算术表达式的构成,以及加减乘除运算符的使用方法。

- 教材章节:第二章 算术表达式- 内容列举:算术表达式构成、运算符优先级、括号的使用。

3. 顺序结构程序设计:引导学生学习顺序结构程序设计,掌握程序的基本执行流程。

- 教材章节:第三章 程序结构与控制流程- 内容列举:顺序结构、程序执行流程、输入输出语句。

4. 简易计算器C程序设计:结合前面的知识,设计一个简易计算器C程序,实现加减乘除运算。

简易计算器的课程设计

简易计算器的课程设计

简易计算器的课程设计一、课程目标知识目标:1. 学生能理解简易计算器的内部工作原理,掌握其基本功能操作。

2. 学生能运用计算器进行基本的算术运算,包括加、减、乘、除以及百分比计算。

3. 学生理解并掌握计算器上各个按键的功能及其在数学运算中的应用。

技能目标:1. 学生能够使用计算器辅助解决实际问题,如购物找零、面积计算等。

2. 学生通过计算器的使用,提高数据输入、结果读取和运算过程纠错的能力。

3. 学生能够结合数学知识,利用计算器进行数据的简单统计分析。

情感态度价值观目标:1. 培养学生对待科学技术的积极态度,认识到计算器在日常生活和学习中的便捷性。

2. 增强学生的团队协作意识,通过小组活动,学会分享和交流使用计算器的经验。

3. 培养学生遵守计算器使用的规则,养成良好的计算器使用习惯,珍惜公共资源。

本课程设计针对的学生群体为小学高年级学生,他们已经具备了一定的数学基础和操作简单电子设备的能力。

课程性质为实用技能型,旨在通过简易计算器的教学,将理论知识与实践操作相结合,提高学生解决实际问题的能力。

在教学要求上,注重培养学生的动手操作能力和创新思维,同时强调情感态度的培养,使学生在学习技能的同时,也能形成正确的价值观。

通过具体学习成果的分解,教师可进行有针对性的教学设计和学习效果评估。

二、教学内容本章节教学内容依据课程目标,结合教材内容,科学系统地组织以下部分:1. 简易计算器基础知识:介绍计算器的发展历程、种类及简易计算器的结构组成,对应教材第二章第一节。

2. 计算器按键功能:详细讲解各按键的功能及其在数学运算中的应用,对应教材第二章第二节。

3. 基本运算操作:教授如何使用计算器进行加、减、乘、除以及百分比计算,对应教材第二章第三节。

4. 计算器在实际应用中的使用:结合实际案例,如购物找零、面积计算等,展示计算器的实用性,对应教材第二章第四节。

5. 数据的简单统计分析:利用计算器进行数据输入、处理和简单统计分析,对应教材第二章第五节。

简易计算器设计的课程设计

简易计算器设计的课程设计

简易计算器设计的课程设计一、课程目标知识目标:1. 学生能够理解简易计算器的基本原理,掌握其设计流程。

2. 学生能够运用所学编程知识,实现简易计算器的功能。

3. 学生能够了解并掌握计算器界面设计的基本原则。

技能目标:1. 学生能够运用所学的编程技能,独立完成简易计算器的设计与开发。

2. 学生能够通过编写代码,实现计算器的加、减、乘、除等基本运算功能。

3. 学生能够运用调试工具,对计算器程序进行测试和优化。

情感态度价值观目标:1. 学生在课程学习中,培养对编程的兴趣和热情,增强信息素养。

2. 学生通过团队协作,培养沟通能力和团队精神,学会共同解决问题。

3. 学生在设计与开发简易计算器的过程中,体验创新实践的过程,培养创新思维和动手能力。

课程性质:本课程为信息技术课程,旨在帮助学生将所学的编程知识运用到实际项目中,提高学生的编程实践能力和创新能力。

学生特点:六年级学生具备一定的编程基础,对新鲜事物充满好奇心,喜欢动手实践。

教学要求:结合学生特点和课程性质,注重理论与实践相结合,强调动手实践,培养创新思维。

在教学过程中,关注学生的个体差异,鼓励学生相互交流、合作,共同完成学习任务。

通过本课程的学习,使学生能够将所学知识运用到实际项目中,提高解决问题的能力。

二、教学内容1. 计算器原理:介绍计算器的基本工作原理,包括算术运算逻辑、数据存储与处理等。

教材章节:第三章 计算机硬件基础2. 编程语言基础:回顾所学的编程语言(如Python),重点掌握变量定义、数据类型、运算符、条件语句和循环语句等。

教材章节:第二章 编程语言基础3. 界面设计:讲解计算器界面设计的原则和技巧,如布局、颜色、字体等。

教材章节:第四章 用户界面设计4. 编程实现计算器功能:引导学生运用所学知识,编写程序实现计算器的加、减、乘、除等基本运算功能。

教材章节:第五章 算法与程序设计5. 程序调试与优化:教授学生如何使用调试工具,对计算器程序进行测试、调试和优化。

微机原理课程设计简易计算器

微机原理课程设计简易计算器

-O一一〜二O—二学年第一学期信息科学与工程学院自动化系课程设计计划书二o—年十二月六日一、课题名称简易计算器设计二、课题目的利用8088和8255设计一个简易计算器,并将其结果显示在LED数码管上。

熟悉系统设计的基本步骤,掌握8088与8255的接口设计,掌握通过8255设计键盘扫描技术,掌握通过8255显示七段共阴极数码管设计。

加强对8088数据总线,地址总线及接口寻址的理解,加深对8255的端口控制的理解。

三、需求分析(1)能够实现99以内的加减乘法运算,并显示在2位LED上。

(2)对于减法运算产生的负数,可在LED上显示号,若负量超过9,则显示“E0S四、方案选择方案一:该方案将LED显示电路直接接在8088的DB上,而键盘则采用8255进行扫描。

方案二:该方案则是将LED显示电路和键盘扫描电路分别接在两个不同的8255上,扫描和显示时,选中不同的8255。

方案三:该方案则只用一片8255驱动LED显示和键盘扫描电路。

方案评估:方案一:LED显示驱动电路实现起来较简单,但是很浪费系统总线资源,舍弃!方案二:释放了系统数据总线,但是方案缺乏经济性,因为采用了两片8255,与建设资源节约型社会初衷冲突!舍弃!方案三:此种方案较为经济,方便,具有模块化的特点(因为将计算和显示电路全部集成在了8255上,应用时,直接挂接8255即可实现要求!)综上所述:采用方案三!五、程序流程图程序总流程图:判断输入流程图: 断电开始I六. 系统原理图键盘映射图:键盘编码图:系统原理图:注:1、复位电路单独画在旁边,其参数设置符合6MHZo2、74HC04反相器由于位置不够,本人自己画了一个小型的74HC04。

3、IOW, IOR信号线由于采用了最大系统组态,故由8288的IORC 和AIOWC 代替。

4.8088的CLK由8284A提供,其电路连接方式参照Datasheet5、最大系统组态连接方式参照课本。

6、LED与键盘扫描电路的上拉电阻阻值统一采用,保证数码管有足够亮度。

8086简易计算器的设计微机原理计硬报告DOC

8086简易计算器的设计微机原理计硬报告DOC

简易计算器的设计 自动化(电站方向)计算机硬件技术实践报告题目 姓名 专业 班级学号上海电力学院自动化工程学院 实践报告内容(目录)一. 设计题目二.开发目的三.小组成员分工及成果四.设计方案以及论证五. 硬件原理图(包括芯片的选型介绍)六. 程序流程图(包括各个子系统和子过程的程序流程)七. 程序清单,要有适当的注释八. 程序运行结果分析与预测九. 结果评述或总结(对实验结果进行分析,对实验过程进行总结,系统改进升级建议或者提出新的方案等。

)8255 控制键. 设 计题目 :用 8086 设计一个能实现 0~9 整数加法运算的计算器 , 并用 2 位 LED 数码显示 . 键盘包 括0-9 , + , - ,*, / , =, ON/C;共16个按键.能实现简单的清零操作,减法运算,乘法运算.. 开发目的 :通过课程设计,熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,得到微机 开发应用方面的初步训练。

培养集体讨论设计题目的总体设计方案、 编程、软件硬件调试、 编写设计报告等问题,做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。

通过本次课程设计熟练运用程序对 盘和LED 显示的控制,完成计算器加减法的应用,并熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。

本组的三个成员一起讨论研究简易计算器设计的主要方案。

粗略设计程序流程图以确定简易计算器设计的大概框架。

明确目的后各自查询资料了解设计原理、逐步清晰设计思路。

以下为大体分工:主要负责: 1 、设计主要程序,编写;2、查找资料验证修改;主要负责: 1、选择需要用的各个芯片;2、设计硬件原理图;主要负责: 1、各个芯片功能的资料查找;2 、设计程序流程图四. 设计方案以及论证利用程序不断扫描所设的按钮键盘是不是有输入,如果没有就一直扫描,如果有就调 用子程序进行判断,是数值则进行存储并同时进行显示,是运算符号等就调用相应的子程 序进行操作,操作后则继续利用程序不断扫描键盘是不是有输入,从而实现部分十进制数 的加、减、乘、除的运算。

微型计算机原理课程设计

微型计算机原理课程设计

微型计算机原理课程设计一、绪论微型计算机原理是计算机专业中的基础课程,是学生深入了解计算机硬件结构和工作原理的重要内容。

本次课程设计旨在通过实践让学生更加深入地理解微型计算机的各个方面,提高其掌握计算机原理和设计基本能力。

本文将介绍本次微型计算机原理课程设计的主要内容和设计思路。

二、实验目的本次实验旨在加深学生对微型计算机的理解,掌握微型计算机各个部分的工作原理和工作方式,提高其在计算机硬件设计和工程实践方面的能力。

具体目的如下:1.学习计算机硬件结构和工作原理;2.运用学习的知识,设计一台简单的微型计算机;3.熟悉计算机硬件设计的实验流程;4.掌握使用各类计算机硬件和接口的方法。

三、实验内容3.1 实验原理微型计算机是指体积小、功能完备的计算机。

微型计算机通常由中央处理器、存储器、输入输出接口、系统总线等各个部分构成。

本次实验的设计将重点涵盖以下内容:1.计算机硬件基础理论知识;2.中央处理器的工作原理;3.计算机存储器的组成和工作方式;4.输入输出接口的作用和示例;5.实际计算机的使用和调试。

3.2 设计流程本次实验设计的流程如下:1.确定本次计算机设计的具体规格和要求;2.设计计算机的主要硬件部件,包括CPU、存储器、输入输出接口等;3.进行线路图的绘制和布线连接;4.完成微型计算机的安装和系统测试;5.完成模拟CPU和程序的编程。

四、实验步骤4.1 设计计算机硬件本次设计的计算机硬件包括以下部分:1.中央处理器:选用Intel 8086 CPU;2.存储器:选择SRAM,容量为8MB;3.输入输出接口:选择标准键盘、鼠标、RGB显示器。

4.2 绘制线路图并布线对应于上述硬件设计,我们需要绘制出其线路图,并将各个硬件元件正确地连接起来。

4.3 安装微型计算机在完成线路图的布线之后,需要进行微型计算机的安装和系统测试。

此步骤中需要对各个部件进行正确的安装和配置,以确保微型计算机的各个部分都正常工作。

简易的计算器课程设计

简易的计算器课程设计一、课程目标知识目标:1. 学生能理解计算器的基本功能,掌握开关机、数字输入、基本运算符号的使用。

2. 学生能掌握计算器上各按键的功能,如清除、撤销等操作。

3. 学生了解计算器的类型,如简单计算器、科学计算器等。

技能目标:1. 学生能熟练操作计算器,完成基本的数学运算,如加减乘除、百分比等。

2. 学生能运用计算器解决实际生活中的数学问题,如购物找零、计算面积等。

3. 学生能通过计算器进行简单的数据统计和分析。

情感态度价值观目标:1. 学生培养对数学的兴趣和好奇心,认识到计算器在生活中的重要性。

2. 学生养成良好的计算习惯,尊重数学知识,注重实际应用。

3. 学生在小组合作中,学会分享和倾听,培养团队协作精神。

本课程针对小学四年级学生设计,结合学生的认知特点,注重培养实际操作能力和解决问题的能力。

课程以计算器为工具,引导学生运用数学知识解决实际问题,提高学生对数学学科的兴趣和自信心。

通过分解课程目标,教师可以更好地进行教学设计和评估,确保学生达到预期学习成果。

二、教学内容本章节教学内容主要包括以下三个方面:1. 计算器的基本操作与功能- 认识计算器的各部分名称和功能- 学习开关机、数字输入、基本运算符号的使用- 掌握清除、撤销等操作教学内容关联课本第四章第一节数学工具的使用。

2. 基本数学运算- 加减乘除四则运算- 百分数、乘方运算- 混合运算顺序与计算教学内容关联课本第四章第二节数学运算的应用。

3. 计算器在实际生活中的应用- 解决购物找零问题- 计算简单图形的面积和周长- 数据的统计与处理教学内容关联课本第四章第三节数学与生活。

教学大纲安排如下:第一课时:认识计算器及其基本操作第二课时:基本数学运算与计算器操作第三课时:计算器在实际生活中的应用教学进度根据学生的掌握情况灵活调整,确保学生充分理解和掌握教学内容。

三、教学方法针对本章节内容,采用以下教学方法:1. 讲授法:教师通过生动的语言和形象的表达,向学生介绍计算器的基本操作与功能,以及基本数学运算的规则。

8086简易计算器的设计-计算机硬件-微机原理-课程设计

计算机硬件技术实践报告题目简易计算器的设计姓名专业自动化(电站方向)班级学号上海电力学院自动化工程学院一、设计题目及目的本次课程设计的实验目的是:通过该实验掌握较复杂程序的设计;能独立完成用程序对8086、8255A控制键盘和LED显示的控制,完成计算器加减法的应用;独立编写程序,明白和掌握程序的原理和实现方式;学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用;进一步加强理论知识与应用相结合的实践和锻炼,为以后的设计提供经验。

这次设计实践,加深了我对专业知识和理论知识学习的认识和理解,使我的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。

我们的具体任务是用8086设计一个能实现0~9整数加减乘除法的运算器,并用2位LED数码显示,键盘包括0-9,+ ,-,×,÷,=,NO/C共16个按键。

二、小组成员分工及成果在实验课程要求下,我们选择基于8086CPU的模拟计算器设计。

要完成设计首先需要构建简单的微型计算机应用系统,其次是确定组成各部件的芯片,然后画原理图,根据相应的原理以及实现过程,编写出相应的汇编代码。

再根据原理图连接硬件电路,电路连接完成后进行调试。

设计过程中我们用到了8086CPU、可编程并行输入/输出芯片8255A、74HC138、74HC373、矩阵式键盘、LED数码管。

我们的模拟计算器能实现2位十进制数以内的加减乘除法运算。

首先,本组的三个成员一起讨论研究简易计算器设计的主要方案。

粗略设计程序流程图以确定简易计算器设计的大概框架。

明确目的后各自查询资料了解设计原理、逐步清晰设计思路。

以下为大体分工:主要负责:1、设计主要程序,编写;2、查找资料验证修改;主要负责:1、选择需要用的各个芯片;2、设计硬件原理图;主要负责:1、各个芯片功能的资料查找;2、设计程序流程图三、设计方案思路用8086设计一个能实现0~9整数加减乘除法的运算器,并用2位LED数码显示,键盘包括0-9,+ ,-,×,÷,=,NO/C共16个按键。

c课程设计简易计算器

c 课程设计简易计算器一、课程目标知识目标:1. 让学生掌握简易计算器的基本功能与操作,包括加、减、乘、除等四则运算。

2. 使学生理解计算器的工作原理,了解显示屏、键盘等组成部分及其作用。

3. 帮助学生掌握计算器的使用规范,如开关机、输入输出等基本操作。

技能目标:1. 培养学生运用计算器解决实际问题的能力,提高计算速度和准确性。

2. 培养学生通过观察、尝试、探索等方法,自主发现计算器操作技巧和功能特点。

3. 培养学生合作交流的能力,学会在小组讨论中分享观点,共同解决问题。

情感态度价值观目标:1. 激发学生对计算器的学习兴趣,培养良好的学习习惯和探究精神。

2. 培养学生尊重科学、严谨求实的态度,树立正确的价值观。

3. 培养学生团队协作意识,增强合作解决问题的能力。

本课程针对小学四年级学生,结合教材内容,以实用性为导向,注重培养学生的动手操作能力和实际问题解决能力。

课程目标明确,易于衡量,为后续教学设计和评估提供依据。

在教学过程中,教师应关注学生个体差异,因材施教,确保每位学生都能在课程中收获知识和技能。

二、教学内容本章节教学内容主要包括以下几部分:1. 计算器的基本结构:介绍计算器的显示屏、键盘、电池等组成部分及其功能。

2. 四则运算操作:详细讲解加、减、乘、除四则运算在计算器上的操作步骤。

3. 计算器操作规范:教授计算器的开关机、清屏、输入输出等基本操作规范。

4. 实际问题解决:结合教材实例,引导学生运用计算器解决生活中的实际问题。

5. 操作技巧与功能探索:指导学生探索计算器的其他功能,如百分比、乘方等,并分享操作技巧。

教学内容安排如下:第一课时:计算器的基本结构及操作规范介绍。

第二课时:四则运算操作教学,以教材为例题进行讲解和实操。

第三课时:实际问题解决,分组讨论并运用计算器解决生活中的数学问题。

第四课时:操作技巧与功能探索,学生自主探究计算器其他功能并分享。

教学内容与教材紧密关联,确保科学性和系统性。

微机原理课设--简易计数器设计

1.总体设计思想及主要功能1.1总体设计思想程序主要分为主程序,输入子程序,输出子程序,加法子程序,减法子程序,乘法子程序,除法子程序。

根椐输入的符号选用不同的运算子程序,最后调用输出子程序。

各个程序的具体做法,详见后面的流程图和分析。

本程序的关键是在输入、输出程序,值得特别注意的地方是call 和ret的调用,而且还要清楚跳转的返回地址;由于计算器比数学用表等计算工具要先进得多,应该积极倡导学生加速用计算器取代数学用表的进程。

从键盘输入数据与运算符;可以进行加、减、乘、除四则运算,输入和输出的数均必须为十进制的。

输入的数据最大为双字的,。

如果输入的除数为0;输出错误信息。

输入的表达式有误,输出错误信息。

输入的两个数,不能除尽时,输出除数输入错误信息。

如果输入了空格,同样输出错误信息。

输出的数据最大可输出4字,为的是输出乘除法的结果。

除法最后所得结果可为小数点后四位值。

1.2实现的主要功能(1)输入和输出的数均为十进制的。

(2)输入的数据最大为双字的且必须是数字,当输入字母或其他非数字符号时,输出错误信息。

(3)如果输入的除数为0;输出错误信息。

(4)输入的表达式有误,输出错误信息。

(5)输入的两个数,有一个大于双字,输出错误信息。

(6)如果输入了空格,输出错误信息。

(7)输出的数据最大可输出4字,为的是输出乘法的结果。

(8)除法有不能整除的情况时,输出小数结果保留小数点后四位并显示除数输入错误信息。

2.简单计算器的流程图2.1 主程序的流程图主程序设计思路说明:输入的数据如果超过双字,就会溢出,因为我定义的存储器为双字的。

输入什么样的数都会有一个范围,一定得有这个信息。

根据输入的符号调用相应的函数。

除法和别的不一样,还要输出余数,并且,除数不能是0。

所以我就在里面调用了输出函数,要输出两次,而外面只能输出一次,为了更好输出结果,我就只好这样了。

输入y可以继续进行运算,要注意的是,要把原来的数给清0,不然得不到答案。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机硬件技术实践报告题目简易计算器的设计姓名专业自动化(电站方向)班级学号上海电力学院自动化工程学院一、设计题目及目的本次课程设计的实验目的是:通过该实验掌握较复杂程序的设计;能独立完成用程序对8086、8255A控制键盘和LED显示的控制,完成计算器加减法的应用;独立编写程序,明白和掌握程序的原理和实现方式;学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用;进一步加强理论知识与应用相结合的实践和锻炼,为以后的设计提供经验。

这次设计实践,加深了我对专业知识和理论知识学习的认识和理解,使我的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。

我们的具体任务是用8086设计一个能实现0~9整数加减乘除法的运算器,并用2位LED数码显示,键盘包括0-9,+ ,-,×,÷,=,NO/C共16个按键。

二、小组成员分工及成果在实验课程要求下,我们选择基于8086CPU的模拟计算器设计。

要完成设计首先需要构建简单的微型计算机应用系统,其次是确定组成各部件的芯片,然后画原理图,根据相应的原理以及实现过程,编写出相应的汇编代码。

再根据原理图连接硬件电路,电路连接完成后进行调试。

设计过程中我们用到了8086CPU、可编程并行输入/输出芯片8255A、74HC138、74HC373、矩阵式键盘、LED数码管。

我们的模拟计算器能实现2位十进制数以内的加减乘除法运算。

首先,本组的三个成员一起讨论研究简易计算器设计的主要方案。

粗略设计程序流程图以确定简易计算器设计的大概框架。

明确目的后各自查询资料了解设计原理、逐步清晰设计思路。

以下为大体分工:主要负责:1、设计主要程序,编写;2、查找资料验证修改;主要负责:1、选择需要用的各个芯片;2、设计硬件原理图;主要负责:1、各个芯片功能的资料查找;2、设计程序流程图三、设计方案思路用8086设计一个能实现0~9整数加减乘除法的运算器,并用2位LED数码显示,键盘包括0-9,+ ,-,×,÷,=,NO/C共16个按键。

1、通过小键盘做加减乘除运算。

2、数码管显示器作输入数据和结果数据的显示。

3、数字用小键盘0~9,“C、+、-、×、÷、= ”做功能键4、运算顺序:a.首先输入一个原始数据(在0~9之间,否则无反应)显示器跟随显示b.按“+、-、×、÷”显示器内容不变c.再次输入一个数据(在0~9之间,否则无反应)显示器跟随显示d.按“=”显示器显示结果数据e.按C显示“00”数据清0,并重新开始运算f.若输入一个数据后直接按“=”则数据不变设计思路:将整个程序划分为键盘扫描部分,显示部分,运算程序部分。

首先利用程序不断扫描键盘是不是有输入,如果没有就一直扫描,如果有就停止扫描,完成输入,利用汇编的程序核对输入键的数值,通过调用子程序实现运算。

运算完成后将运算的结果储存并显示到LED显示器上。

软件流程大致如下:开始,然后是系统的初始化,进行键盘扫描,对扫描的键值进行判断(分为数字键和功能键),若为数字键,则执行数字键处理程序,即显示数字并将数值存储;若为功能键,则先判断是否为清屏,如是清屏,则执行清屏子程序,如是加减乘除运算键则调用相应程序运算,如是等号键,则先判断上个符号位,调用相对应的运算子程序进行运算,如此就可以得到需要的结果了。

四、硬件原理图(包括芯片的选型介绍)硬件电路图:(见图1)图1 原理图1、键盘输入模块键盘是常用信息输入元件,其实键盘也是由一个个按钮组成,如果是独立按钮的话必须要对应一个I/O口对它进行检测,而键盘往往只需要键盘按钮数一半的I/O口对它进行检测,也许对一个比较简单的系统I/O口数一般不是问题,但对于一个大型、复杂的系统来说I/O资源就显得非常珍贵了,尽量减少I/O使用是非常利于降低成本,另外一方面键盘比用独立按键要美观,同时硬件上的节省必然导致软件上编程的复杂。

我们设计时使用的是4*4式键盘,如图2所示。

图2 键盘图中有4行4列,4根行线与PC口相连,4根列线与PA口相连。

按键设置在行、列交点处(数字或字符为其键号),行、列线分别连接到按键开关的两端。

键盘中有无按键按下是由行线送入全扫描字、列线读入行线状态来判断。

这就是:给行线所有I/O线均置成低电平,然后读入列线电平状态。

如果有按键按下,总会有一根列线电平被拉至低电平,从而使列线输入不全为1。

2、可编程并行通信接口芯片8255A图3 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写8255ARESET 复位信号:由CPU输入。

RESET信号有效,清除8255A中所有控制字寄存器内容,并将各个端口置成输入方式。

图4 8255A内部结构定义工作方式控制字:工作方式0:8255A中各端口的基本输入/输出方式。

图5 8255A工作方式控制3、显示模块图6 显示器显示原理:显示子程序把数据每一位独立显示,每次从最高位显示到最低位,在扫描键盘的时候不断调用显示子程序,形成了从高位到低位的不断循环显示,由于循环速度快,看起来就好像一起显示的。

4、74HC373图7 74HC373其中AD0-AD7为数据输入端,A0-A7为输出端。

当三态允许控制端OE为低电平时,A0-A7为正常逻辑状态,可用来驱动负载或总线,当OE 为高电平时,A0-A7成高阻态,不驱动总线。

当锁存允许端LE为高电平时,A随数据AD而变,当LE为低电平AD被锁存在已建立的数据电平。

5、74HC138图8 74HC13874HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL)系列。

74HC138译码器可接受3位二进制加权地址输入(A0, A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。

74HC138特有3个使能输入端:两个低有效(E1和E2)和一个高有效(E3)。

除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高,74HC138为反相输出,它按照三位二进制输入码和赋能输入条件,从8 个输出端中译出一个低电平输出。

两个低电平有效的赋能输入端和一个高电平有效的赋能输入端减少了扩展所需要的外接门或倒相器。

6、8086CPU图98086CPU的40条引脚信号可按功能分可分为四类,它们是:地址总线,数据总线,控制总线,其它(时钟与电源)。

最小模式下一些引脚功能(MN/MX接+5V):AD15~AD0,地址/数据总线A19/S6~A16/S3,地址/状态总线RD,读信号WR,写信号M/IO,存储器/输入输出控制信号ALE,地址锁存允许信号READY(Ready),准备就绪信号INTR,可屏蔽中断请求信号INTA,中断响应信号NMI,非屏蔽中断请求信号RESET,系统复位信号DEN,数据允许信号DT/R,数据发送/接收控制信号HOLD,总线保持请求信号输入HLDA,总线保持响应信号TEST,测试信号CLK,时钟输入信号VCC(+5V),GND六、程序清单,要有适当的注释DATA SEGMENTNUM1 DB 03H DUP(0)NUM DB 03H DUP(0)DATA ENDSSTACK SEGMENTDW 100 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKPORTA EQU 30H ;A口地址PORTB EQU 32HPORTC EQU 34HPORT8255 EQU 36H ;8255片选始地址MAIN PROC FAR(8255初始化)START: MOV AX,DATA ; 数据段MOV DS,AX ;将寄存器AX的内容传送给寄存器DSMOV DX,PORT8255 ;把8255计数器里的内容放到DX寄存器 MOV AL,81H ;A组方式0;A口输出,C口高四位输入 OUT DX,AL ;B组方式0;B口输出,C口低四位输入LOPL: XOR AH,AH ;抑或指令,使AH清零CALL KEY ;调用KEY程序CMP AH,00H ;把AH和00H相比较JZ LOPL ;ZF=1,即结果为0,则转到LOPLCMP AL,0FH ;把AL和0FH相比较JZ CCCL ;ZF=1,即结果为0,则转到CCCLCMP AL,0AH ;把AH和0AH相比较JZ LOPL ;ZF=1,即结果为0,则转到LOPLJNC LOPL ;若CF=0,表示第一个数大,转向LOPL OUT 32H,AL ;输出B口数据ALLOPL2: LEA SI,NUM ;将NUM的偏移地址给SIMOV [SI],AL ;将AL的数据存放在SI中PUSH AX ;AX出栈LOPL1: XOR AH,AH ;抑或指令,使AH清零CALL KEY ;调用KEY程序CMP AH,00H ;把AH和00H相比较JZ LOPL1 ;ZF=1,即结果为0,则转到LOPL1CMP AL,0FH ;把AL和0FH相比较JZ CCCL ;ZF=1,即结果为0,则转到CCCLCMP AL,0AH ;把AL和0AH相比较JZ XX1 ;ZF=1,即结果为0,则转到XX1CMP AL,0BH ;把AL和0BH相比较JZ XX2 ;ZF=1,即结果为0,则转到XX2CMP AL,0CH ;把AL和0CH相比较JZ XX3D ;ZF=1,即结果为0,则转到XX3DCMP AL,0DH ;把AL和0DH相比较JZ XX4D ;ZF=1,即结果为0,则转到XX4DJMP LOPL1 ;转移到LOPL1CCCL: MOV AL,00HOUT 32H,AL ;输出B口数据ALJMP LOPL ;转移到LOPLXX3D: CALL XX3 ;调用XX3程序XX4D: CALL XX4 ;调用XX4程序MAIN ENDPXX1 PROCNOP ;加LOPL3: XOR AH,AH ;抑或指令,使AH清零CALL KEY ;调用KEY程序CMP AH,00H ;把AH和00H相比较JZ LOPL3 ; ZF=1,即结果为0,则转到LOPL3CMP AL,0FH ;把AL和0FH相比较JZ CCCL ; ZF=1,即结果为0,则转到CCCLCMP AL,0AH ;把AL和0AH相比较JZ LOPL3 ; ZF=1,即结果为0,则转到LOPL3JNC LOPL3 ;若CF=0,表示第一个数大,转向LOPL3OUT 32H,AL ;输出B口数据ALPUSH AX ;AX出栈LEA SI,NUM ;将NUM的偏移地址给SIMOV [SI+1],AL ;将AL的数据存放在SI+1中LOPL4: XOR AH,AH ;抑或指令,使AH清零CALL KEY ;调用KEY程序CMP AH,00H ;把AH和00H相比较JZ LOPL4 ;ZF=1,即结果为0,则转到LOPL4CMP AL,0FH ;把AL和0FH相比较JZ CCCL ; ZF=1,即结果为0,则转到CCCLCMP AL,0EH ;把AL和0EH相比较JZ XXX1 ; ZF=1,即结果为0,则转到XXX1JMP LOPL4 ;转移到LOPL4XXX1: LEA SI,NUMMOV AL,[SI]AND AL,0FHMOV DL,[SI+1]AND DL,0FH ; 相与,高四位置0,低四位保持不变,赋给DL ADD AL,DLDAA ;转化成BCD码OUT 32H,AL ;输出B口数据ALJMP LOPL ;转移到LOPLXX1 ENDPXX2 PROCNOP ;减LOPL5: XOR AH,AH ;抑或指令,使AH清零CALL KEY ;调用KEY程序CMP AH,00H ;把AH和00H相比较JZ LOPL5 ;ZF=1,即结果为0,则转到LOPL5CMP AL,0FH ;把AL和0FH相比较JZ CCCL ;ZF=1,即结果为0,则转到CCCLCMP AL,0AH ;把AL和0AH相比较JZ LOPL5 ; ZF=1,即结果为0,则转到LOPL5JNC LOPL5OUT 32H,AL ;输出B口数据ALPUSH AX ;AX出栈LEA SI,NUM ;将NUM的偏移地址给SIMOV [SI+1],AL ;将AL的数据存放在SI+1中LOPL6:XOR AH,AH ;抑或指令,使AH清零CALL KEY ;调用KEY程序CMP AH,00H ;把AH和00H相比较JZ LOPL6 ; ZF=1,即结果为0,则转到LOPL6 CMP AL,0FH ;把AL和0FH相比较JZ CCCL7 ;ZF=1,即结果为0,则转到LOPL7 CMP AL,0EH ;把AL和0EH相比较JZ XXX2 ;ZF=1,即结果为0,则转到XXX2JMP LOPL6 ;转移到LOPL6XXX2: LEA SI,NUM ;将NUM的偏移地址给SIMOV AL,[SI]AND AL,0FHMOV DL,[SI+1]AND DL,0FHSUB AL,DLADD AL,00HDAAOUT 32H,AL ;输出B口数据ALJMP LOPL ;转移到LOPLCCCL7: MOV AL,00HOUT 32H,AL ;输出B口数据ALJMP LOPL ;转移到LOPLXX2 ENDPXX3 PROC ;乘LOPL7: XOR AH,AH ;抑或指令,使AH清零CALL KEY ;调用KEY程序CMP AH,00H ;把AH和00H相比较JZ LOPL7 ;ZF=1,即结果为0,则转到LOPL7CMP AL,0FH ;把AL和0FH相比较JZ CCCL2 ;ZF=1,即结果为0,则转到CCCL2CMP AL,0AH ;把AL和0AH相比较JZ LOPL7 ; ZF=1,即结果为0,则转到LOPL7JNC LOPL7 ;若CF=0,表示第一个数大,转向LOPL OUT 32H,AL ;输出B口数据ALPUSH AX ;AX出栈LEA SI,NUM ;将NUM的偏移地址给SIMOV [SI+1],AL ;将AL的数据存放在SI+1中LOPL8: XOR AH,AH ;抑或指令,使AH清零CALL KEY ;调用KEY程序CMP AH,00H ;把AH和00H相比较JZ LOPL8 ;ZF=1,即结果为0,则转到LOPL8CMP AL,0FH ;把AL和0FH相比较JZ CCCL3 ; ZF=1,即结果为0,则转到CCCL3CMP AL,0EH ;把AL和0EH相比较JZ XXX3 ;ZF=1,即结果为0,则转到XXX3JMP LOPL8 ;转移到LOPL8XXX3: LEA SI,NUM ;将NUM的偏移地址给SIMOV AL,[SI]AND AL,0FHMOV DL,[SI+1]AND DL,0FHMUL DL ; DL*ALAAM ;商放AH,余数放ALMOV CL,4SAL AH,CL ;把AH向左移四位OR AL,AH ;或指令,有1置1OUT 32H,AL ;输出B口数据ALJMP LOPL ;转移到LOPLCCCL2: MOV AL,00HOUT 32H,AL ;输出B口数据ALJMP LOPL ;转移到LOPLCCCL3: MOV AL,00HOUT 32H,AL ;输出B口数据ALJMP LOPL ;转移到LOPLXX3 ENDPXX4 PROC ;除LOPL9: XOR AH,AH ;抑或指令,使AH清零CALL KEY ;调用KEY程序CMP AH,00H ;把AH和00H相比较JZ LOPL9 ; ZF=1,即结果为0,则转到LOPL9CMP AL,0FH ;把AL和0FH相比较JZ CCCL5 ; ZF=1,即结果为0,则转到CCCL5CMP AL,0AH ;把AL和0AH相比较JZ LOPL9 ;ZF=1,即结果为0,则转到LOPL9JNC LOPL9 ;若CF=0,表示第一个数大,转向LOPL9 OUT 32H,AL ;输出B口数据ALPUSH AX ;AX出栈LEA SI,NUM ;将NUM的偏移地址给SIMOV [SI+1],AL ;将AL的数据存放在SI+1中LOPL10: XOR AH,AH ;抑或指令,使AH清零CALL KEY ;调用KEY程序CMP AH,00H ;把AH和00H相比较JZ LOPL10 ;ZF=1,即结果为0,则转到LOPL10CMP AL,0FH ;把AL和0FH相比较JZ CCCL4 ;ZF=1,即结果为0,则转到CCCL4CMP AL,0EH ;把AL和0EH相比较JZ XXX4 ; ZF=1,即结果为0,则转到XXX4JMP LOPL10 ;转移到LOPL10XXX4: LEA SI,NUM ;将NUM的偏移地址给SIMOV AL,[SI]AND AL,0FH ;与指令,高四位清零,低四位不变MOV BL,[SI+1]AND BL,0FHAND AX,000FHDIV BL ; AL÷BL,商放在AL中,余数放在AH中OUT 32H,AL ;输出B口数据ALJMP LOPL ;转移到LOPLCCCL4: MOV AL,00HOUT 32H,AL ;输出B口数据ALJMP LOPL ;转移到LOPLCCCL5: MOV AL,00HOUT 32H,AL ;输出B口数据ALJMP LOPL ;转移到LOPLXX4 ENDPKEY PROCNOPLEA SI,NUM1MOV AL,0EHOUT 30H,AL ;输出A口数据ALIN AL,34HCMP AL,07H ;把AL和07H相比较JZ LL7 ; ZF=1,即结果为0,则转到LL7CMP AL,0BH ;把AL和0BH相比较JZ LL8 ;ZF=1,即结果为0,则转到LL8CMP AL,0DH ;把AL和0DH相比较JZ LL9 ; ZF=1,即结果为0,则转到LL9CMP AL,0EH ;把AL和0EH相比较JZ LDIV ; ZF=1,即结果为0,则转到LDIVSS1: MOV AL,0DHOUT 30H,AL ;输出A口数据ALIN AL,34HCMP AL,07H ;把AL和07H相比较JZ LL4 ; ZF=1,即结果为0,则转到LL4CMP AL,0BH ;把AL和0BH相比较JZ LL5 ; ZF=1,即结果为0,则转到LL5CMP AL,0DH ;把AL和0DH相比较JZ LL6 ;ZF=1,即结果为0,则转到LL6CMP AL,0EH ;把AL和0EH相比较JZ LMUL ; ZF=1,即结果为0,则转到LMULSS2: MOV AL,0BHOUT 30H,AL ;输出A口数据ALIN AL,34HCMP AL,07H ;把AL和07H相比较JZ LL1 ; ZF=1,即结果为0,则转到LL1CMP AL,0BH ;把AL和0BH相比较JZ LL2 ; ZF=1,即结果为0,则转到LL2CMP AL,0DH ;把AL和0DH相比较JZ LL3 ; ZF=1,即结果为0,则转到LL3 CMP AL,0EH ;把AL和0EH相比较JZ LSUB ;ZF=1,即结果为0,则转到LSUBSS3: MOV AL,07HOUT 30H,AL ;输出A口数据ALIN AL,34HCMP AL,07H ;把AL和07H相比较JZ SCLC ;ZF=1,即结果为0,则转到SCLC CMP AL,0BH ;把AL和0BH相比较JZ LL0 ;ZF=1,即结果为0,则转到LL0 CMP AL,0DH ;把AL和0DH相比较JZ LEQU ;ZF=1,即结果为0,则转到LEQU CMP AL,0EH ;把AL和0DH相比较JZ LADD ;ZF=1,即结果为0,则转到LADD JMP KCLC ;转移到KCLCLDIV: MOV AL,0DHJMP LCLCJMP LCLCLL1: MOV AL,01HJMP LCLCLL2: MOV AL,02HJMP LCLCLL3: MOV AL,03HJMP LCLCLL4: MOV AL,04HJMP LCLCLL5: MOV AL,05HJMP LCLCLL6: MOV AL,06HJMP LCLCLL7: MOV AL,07HJMP LCLCLL8: MOV AL,08HJMP LCLCLL9: MOV AL,09HJMP LCLCLADD: MOV AL,0AHJMP LCLCLSUB: MOV AL,0BHJMP LCLCLMUL: MOV AL,0CHJMP LCLCLEQU: MOV AL,0EHJMP LCLCSCLC: MOV AL,0FHLCLC: MOV [SI],AL ;将AL的数据存放在SI中MOV AH,01HKCLC:RET ; 强制复位KEY ENDP ;KEY结束CODE ENDS ;全部代码结束END START七、程序运行结果分析与预测图7 程序运行结果显示八、结果评述或总结本次实验是一个相对而言比较难的设计,因为这次设计不仅仅是课本上知识的整合,而且还有很多是课外的扩展。

相关文档
最新文档