硬件课程设计报告(电子计算器)

合集下载

系统硬件综合设计实验报告

系统硬件综合设计实验报告

系统硬件综合设计实验报告# 系统硬件综合设计实验报告## 实验目的本实验的主要目的是综合运用课程中所学的硬件设计知识,设计一个具有一定功能的系统硬件。

通过实践,加深对硬件设计原理的理解,提高硬件设计能力。

## 实验原理在本实验中,我们将使用FPGA作为硬件平台,通过Verilog HDL语言进行设计。

FPGA可以灵活重构硬件电路,方便在实验过程中进行调试和修改。

在设计过程中,我们将使用数电模块以及FPGA内部资源实现所需的功能。

## 实验内容本次实验要求设计一个功能齐全的计算器。

计算器需要实现基本的加减乘除运算功能,并且能够显示运算结果。

具体功能要求如下:1. 输入:使用8位开关模拟输入两个8位二进制数。

2. 输出:输出两个输入数以及运算结果,并在数码管上显示。

3. 加法:实现两个八位二进制数的加法。

4. 减法:实现两个八位二进制数的减法。

5. 乘法:实现两个八位二进制数的乘法。

6. 除法:实现两个八位二进制数的除法。

## 实验过程与结果根据实验要求,我们首先设计了输入部分。

通过读取8个开关的状态,我们可以获得两个8位二进制数。

然后我们使用Verilog HDL语言编写了加法、减法、乘法和除法的模块。

这些模块使用了逻辑运算和算术运算来实现相应的功能。

最后,我们将输出结果显示在数码管上。

为了实现数码管的显示功能,我们使用了FPGA提供的数码管驱动模块。

在设计过程中,我们将运算结果转换成BCD 码,然后将BCD码输入到数码管驱动模块中进行显示。

经过调试和修改,我们成功实现了计算器的基本功能。

通过改变开关的状态,我们可以输入不同的二进制数,并获得正确的运算结果。

同时,结果也能够正确地显示在数码管上。

## 实验总结通过本次实验,我们深入学习了硬件设计的原理和方法,并且实践中提高了我们的设计能力。

本次实验的设计过程中,我们灵活运用了课程中所学的知识,并且通过调试和修改,解决了一些问题。

在实验中,我们也意识到硬件设计需要细致入微,每一个步骤都要认真对待。

c课程设计计算器报告

c课程设计计算器报告

c 课程设计计算器报告一、教学目标本课程的教学目标是使学生掌握C语言的基本语法,熟练使用C语言进行程序设计。

具体分为三个部分:1.知识目标:学生需要掌握C语言的基本语法,包括数据类型、运算符、控制结构、函数等。

2.技能目标:学生能够使用C语言编写简单的程序,解决实际问题。

3.情感态度价值观目标:培养学生对计算机科学的兴趣,提高学生解决问题的能力。

二、教学内容教学内容主要包括C语言的基本语法和程序设计的基本方法。

具体安排如下:1.第一章:C语言概述,介绍C语言的历史和发展,理解C语言的特点。

2.第二章:数据类型和运算符,学习C语言的基本数据类型和运算符。

3.第三章:控制结构,学习C语言的条件语句和循环语句。

4.第四章:函数,学习C语言的函数定义和调用。

5.第五章:数组和字符串,学习C语言的数组和字符串操作。

6.第六章:指针,学习C语言的指针概念和应用。

7.第七章:结构体和文件,学习C语言的结构体和文件操作。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法:1.讲授法:讲解C语言的基本语法和概念。

2.案例分析法:通过分析实际案例,让学生理解C语言的应用。

3.实验法:安排实验课程,让学生动手编写C语言程序。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C程序设计语言》2.参考书:《C Primer Plus》、《C和指针》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、编程环境五、教学评估本课程的评估方式包括平时表现、作业、考试等。

具体安排如下:1.平时表现:占课程总评的30%,包括课堂参与度、提问回答、小组讨论等。

2.作业:占课程总评的30%,包括课后练习、编程任务等。

3.考试:占课程总评的40%,包括期中考试和期末考试。

评估方式要求客观、公正,能够全面反映学生的学习成果。

我们将根据学生的实际情况,及时给予反馈,帮助学生提高。

六、教学安排本课程的教学进度安排如下:1.每周一次课,每次课2小时。

计算机硬件课程设计报告---简单计算机的设计

计算机硬件课程设计报告---简单计算机的设计

计算机硬件课程设计报告一-简单计算机的设计计算机硬件基础课程设计学号:121407103姓名:蔡松成班级:软件1201指导老师:葛桂萍2013 年6 月一、设计目的与要求目的:通过对一个简单计算机的设计,对计算机的基本组成,部件的设计,部件间的连接,微程序控制器的设计,微指令和微程序的编制与调试等过程有了更深的了解,加深对理论课程的理解。

要求:1.运算器:釆用单累加器多寄存器结构(开关KA、KB、KC、KR分别置左、右、右、左)。

2.指令系统:多于16条指令,外设和内存统一编址、统一操作指令。

3.内存寻址方式:寄存器直接寻址寄存器间接寻址直接寻址立即数寻址二、设计原理1.样机逻辑框图:见图一2.样机指令系统和指令执行流程:见表一3.样机微指令格式和指令微程序:见表二三、设计微操作信号1、运算器模块(ALU)SA 接X0 接M16SB 接XI 接M17P0 接CYP1 接A0接SRP2 接A7接SLCA 接①非S3~S0 接M23~M20Cn的非接M19M 接M18 CG 接Mil CC 接①非0B 接M80T 接M10CT 接+5V2、寄存器堆模块(REG)RR 接MlA 接10B 接113.指令部件模块(I-PC)P+1 接M6GI 接M7CI 接①非CK 接eCLR 接+5V01 接M154.内存模块(MEM)RC=M2+O 非WC=M3+O 非5、总线缓冲模块(BUS)Bl、B3 接RFB2=RC+IAB2 • IAB10KA 接IABOPA 接IAB1 6、启停和时停模块(R-P)DR 接M5RCP 接①非7.微程序控制模块(MPG)MLD 接M4MP+1 接+5VMCLR 接R0MCLK 接 PO MIG 接地 MD1OT4D6 接地 MD5 接 17 MD4 接 16 MD3 接 15 MD2 接 12 $件接线SA-X0-M16 M-M18 CK 一①Pl-AO-SR 0T-M10 B1-B3-RF P2-A7-SL CT-+5VKA-IABOCA -①非-CC RR-M1 KB-IAB1 S3-M23 A-IODR-M5 S2-M22 B-IlMLD-M4S1-M21 P+1-M6 MP+1-+5VS0-M20 GI-M7 MCLR-RO Cn 的非-M19 CI-<D 非一 RCP MCLK-POSB-X1-M17 CG-M19 CLR-+5V PO-CY 0B-M8 0I-M15 MIG-GND MD10-GND MD9-GND MD8-GND MD7-GNDMD6-GND MD5-I7 MD4-I6 MD3-I5 MD2-I2 MD1-MD0-+5V接线图VccCPM14 CL14 13 12 11 10 9 874 LS 001 2 3 4 5 6 7i~~nn~~nrM12 ZC MOVcc祁 地五、调试1、根据计算机硬件实验及课程设计指导书,先内存,读内存;写控存,读控存,看看所用的机器是否有问题;2、将自己所连得线路连入机器中;3、将所有的微指令输入所用的机器中,然后依次调试存取类指令、调试算逻类运算类指令、调试跳转类I/O设备操作类指令,看机器是否可以运行存取指令、加减指令、移动指令;4、若不行,检査自己输入的程序是否正确以及检査电路是否有误;若电路成功,就可以做老师的题目了。

硬件课程设计报告

硬件课程设计报告

硬件课程设计报告班级:计08-2班姓名:王海峰,豆剑波指导老师:苏晓龙目录硬件课程设计报告 (1)摘要 (3).1设计任务与要求 (4)1.1设计任务 (4)1.2性能指标 (4)2总体方案与说明。

(5)2.1 设计模块 (5)2.2设计思路 (5)3系统硬件设计 (5)3.1 8279结构及功能介绍 (5)3.2键盘接口介绍 (7)3.3数码管显示电路 (8)4系统软件设计 (9)4.1主程序设计 (9)4.2键盘扫描子程序设计 (11)4.3输入子程序及结果计算子程序设计 ............... 错误!未定义书签。

5实验体会:.. (12)摘要本设计是一个实现加、减、乘、除的计算器,由于采用试验箱,它的内部硬件主要由四部分组成,一个8279单片机芯片,一个8位共阳极数码管,一个4*4键盘,可以进行简单的一位运算,若超出范围,则自动报错。

显示部分:由8位共阳极数码管与8279相连,但只能显示六位,将写入8279显示RAM的数据显示出来。

按键部分:采用4*4键盘。

通过软件识别键值并执行相应的操作,程序运行时依次扫描各行,查询是否有键按下,如果有则进入键盘识别处理程序,实现相应的运算,然后通过数码管输出结果,如果没有按键按下就等待,在进入键盘扫描程序。

执行过程:开机什么都不显示,等待输入数值,当键入数字,将通过数码管显示出来,在键入+、—、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当键入数值后将显示键入的数值,按等号就会在数码管上显示出运算结果。

完成第一次计算后,按c键开始下一次计算。

注:只能进行一位运算。

(具体操作见后面仿真图)用8279实现计算器.1设计任务与要求1.1设计任务利用16/32位微机接口技术试验系统设计制作一个计算器用LED显示计算值及结果。

要求写出硬件原理图、软件程序流程图,并给出程序清单,还要写出试验体会。

能够利用键盘显示区上的键输入数值来进行简单的计算,并且将结果输出到LED 显示灯上。

课程设计——电子计算器设计1

课程设计——电子计算器设计1

××大学××学院××系××课程设计电子计算器设计学生姓名学号所在系专业名称班级指导教师成绩××大学××学院二○一二年七月摘要:智能仪器是计算机技术与测量技术以及仪器仪表技术相结合的产物。

它具有传统仪器无法比拟的优点。

在精度,可靠性方面都有了本质性的改变。

仪器硬件都趋于采用嵌入式系统、片上系统等结构。

电子计算器是能进行数学运算的手持机器,拥有集成电路芯片,采用来实现电子计算器的各个功能。

该电子计算器由按键输入的数值显示在7段数码管上,但只限4位数;按加、减、乘、除键时,第一次输入的值被存放在缓冲区中,当做被加、减、乘、除数,且加、减、乘、除相对的运算指示灯会亮;接着输入一个数,之后若是按下“=”键,则此加、减、乘、除数被存放于另一个缓冲区中,与刚才输入的数做运算,且相对应的运算指示灯熄灭;运算结果显示在7段数码管上。

关键字:智能仪器片上系统电子计算器集成电路芯片缓冲区Abstract:Intelligent instrument is the computer technology and measurement technology and instrumentation technology combined with the product. It has the incomparable advantage of traditional instruments. In the accuracy, reliability are all essential changes. Instrument hardware are tending to use embedded system, system on chip structure. An electronic calculator is able to perform mathematical operations on handheld machine, has integrated circuit chip, used to realize each function of the electronic calculator. The electronic calculator from the key input values displayed in the7digital tube, but only4 digits; according to plus or minus, multiplication, addition to the key, the first input value is stored in the buffer, as is plus or minus, multiplication, addition, subtraction, division, and, in addition to take relative operation indicator light; and then enter a number, then press" if = " button, the plus, minus, multiplication, the divisor is stored in a buffer, and just the number of inputs to do arithmetic, and the corresponding operation indication lamp is extinguished; calculation results in the7 digital tube on.Key words: Intelligent instrument system on chip electronic calculator integrated circuit chip buffer目录前言 (1)1. 概述 (1)1.1 应用背景 (1)1.2 课题设计目标 (1)1.3 课题设计任务与思路 (1)2. 设计方案论述 (2)2.1 系统总体方案设计 (2)2.2 系统设计框图 (2)3. 系统硬件设计 (3)3.1 单片机最小系统 (3)3.2 矩阵键盘 (3)3.3 显示部分 (4)4. 程序设计 (4)4,1 具体设计内容 (5)4.1.1 四则运算 (5)4.1.2 键盘 (5)4.1.3 执行过程 (5)4.1.4 错误提示 (5)4.2 主程序流程图 (5)4.3 算数运算程序设计 (7)5.系统调试 (7)6. 设计总结 (8)7. 参考文献 (9)附录 (9)前言智能仪器是一种先进的技术产品,是计算机技术与测试技术相结合的产物,仪器内部带有处理能力很强的智能软件。

单片机课程设计报告(简易计算器).

单片机课程设计报告(简易计算器).

简易计算器摘要:计算器是人们的日常生活中是最常见的电子产品之一,它应用极广、发展迅猛,并且不断出现着拥有更加强大功能的计算器。

为了解和研究计算器,本次课设设计制作了一个简易计算器,能够在十四位的计算范围内进行“+”、“-”、“*”、“/”的基本运算,能进行负数以及小数点后两位的精确结果显示。

该计算器以AT89C51单片机芯片作为核心。

采用LCD1602工业字符液晶进行显示。

完成的计算器经过检验能够完整的实现预设功能,各种细节完善,具有很高的使用价值。

关键词:单片机;简易计算器;AT89C51;LCD1602Simple CalculatorAbstract:Calculator is People's Daily life is one of the most common electronic products, used very wide, developing rapidly, and constantly appear more powerful function with have calculators. In order to understand and study calculator, this class set design made a simple calculator, can the calculation in within 14 "+" and "-" and "*", "/" the basic computing, can carry out negative and two decimal places accurate results are shown. This calculator with AT89C51 chips as the core. Using liquid LCD1602 industrial characters displayed. Complete calculator after inspection can complete realization, various details preset functions to perfect, have high use value.Keywords:MCU; Simple calculator;AT89C51;LCD1602目录中文摘要............................................................1英文摘要............................................................2单片机课程设计......................................................4 1 课程设计任务.....................................................41.1 主要功能设计................................................41.2 任务目的....................................................42 整体设计方案......................................................42.1 方案论证....................................................42.2 系统框图....................................................53 硬件电路的设计...................................................63.1 计算机Protel总图............................................63.2 显示电路设计方案............................................93.3 键盘设计方案................................................93.4 复位电路设计...............................................103.5 晶振电路设计...............................................104 控制软件设计....................................................114.1 程序时序总图...............................................114.2 液晶显示软件设计...........................................124.3 键盘输入软件设计...........................................134.4 计算函数设置...............................................155 系统调试........................................................185.1 硬件调试...................................................185.2 软件调试...................................................18 参考文献...........................................................20 个人小结...........................................................21 附录...............................................................24 附录1..........................................................24 附录2..........................................................251课程设计任务1.1 主要功能设计以AT89C51单片机芯片为核心来制作一个简易计算器,外部由4*4矩阵键盘和一个LCD1602工业字符型液晶显示屏构成,内部由一块AT89C51单片机构成,通过软件编程可实现简单加减乘除。

硬件课程设计实验报告

硬件课程设计实验报告

计算机学院硬件课程设计报告1 课程设计指导教师评阅书指导教师评语:成绩:指导教师签字:年月日计算机学院硬件课程设计报告2摘要单片机是指一个集成在一块芯片上的完整计算机系统。

尽管它的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。

同时集成诸如通讯接口、定时器,实时时钟等外围设备。

而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。

本设计是基于芯片为AT90C516RD的单片机和点阵控制芯片74HC573共同来控制8*8的点阵显示屏的过程。

介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。

通过该芯片控制一个列驱动74HC573来驱动显示屏显示。

该电子显示屏可以显示各种文字或单色图像,选用1块8×8点阵LED来进行显示。

显示采用动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。

文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等。

单片机控制系统程序采用C语言进行编辑,通过编程控制显示点对应LED阳极和阴极端的电平,就可以有效的控制显示点的亮灭。

所显示字符的点阵数据可以自行编写(即直接点阵画图),也可从标准字库中提取。

关键词:单片机,AT90C51RD,LED8*8点阵显示屏,点阵控制,锁存器,驱动电路计算机学院硬件课程设计报告3目录摘要 (2)第0章绪论 (4)1、引言 (4)2、单片机的发展和现状 (4)第1章 LED显示屏的介绍 (6)1.1 LED显示屏的发展历程 (6)1.2 LED显示屏的应用 (6)1.3 LED显示屏的分类 (7)1.4 LED显示屏的选择 (8)第2章基于单片机的LED广告牌原理 (10)2.1 LED显示屏原理 (11)2.2点阵LED扫描法介绍 (11)2.3 MCS-51的引脚及相关功能 (12)2.4 74HC573芯片的逻辑连接表 (14)第3章系统设计 (15)3.1 设计任务及要求 (15)3.2 总的电路连接 (15)3.3 硬件电路连线 (15)3.4 LED电路说明 (16)第4章软硬件设计 (18)4.1 硬件设计方案 (19)4.2 软件设计 (19)4.3 程序设计 (20)第5章调试及性能分析 (29)5.1 开发环境介绍 (29)5.2 理论性能分析 (29)5.3 系统调试 (30)第6章总结 (31)第7章实验心得体会 (32)参考文献 (33)附录程序 (35)计算机学院硬件课程设计报告4 绪论1引言单片微型计算机简称单片机,是典型的嵌入式微控制器,常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。

嵌入式课程设计报告--电子计算器

嵌入式课程设计报告--电子计算器

重庆科技学院《嵌入式体系结构与接口技术》课程设计报告学院:_电气与信息工程学院_ 专业班级:计科2012-04学生姓名:杜江龙学号: 2012442090设计地点(单位):电气与信息工程学院I302实验室设计题目:_________________ 电子计算器_____ ___ __完成日期: 2014 年 7 月 4 日指导教师评语: ______________________ _________________ ___________________________________________________________________________________ ___________________________________________________________________________________ ___________________________________________________________________________________成绩(五级记分制):指导教师(签字):课程设计任务书设计题目:电子计算器教研室主任:指导教师:冯骊骁2014年6月30日摘要嵌入式系统是后PC时代被广泛使用的计算机平台,它通常都具有低功耗、体积小、功能强、集成度高等优点。

此设计一个具有加减乘除功能的计算器,硬件采用TQ2440板子LCD触摸屏,此计算器能够实现整数和小数的加减乘除的计算功能,并且动态显示,操作简单、实用。

通过此课程设计,对TQ2440板子操作更加熟悉,对ADS1.2的编程和调试更加灵活。

较好的熟悉并掌握了对LCD的操作显示原理和编程,对以后学习有一定的帮助。

关键词:TQ2440 ADS1.2 LCD目录课程设计任务书 (I)摘要 (I)目录 (II)1 系统需求分析 (1)1.1 设计内容与要求 (1)1.2 设计参数 (1)2 概要设计 (2)3 详细设计 (3)3.1 键盘部分和显示部分 (3)3.2 流程图 (4)3.3 功能函数 (5)4 测试 (13)5 总结致谢 (14)6 参考文献 (15)1 系统需求分析1.1 设计内容与要求设计一个具有能进行加减乘除运算,操作数可为整数、小数,可进行连续运算,比如按键输入“1+2*3”,按下“*”后应该显示1+2的运算结果,系统无明显bug的简易计算器。

硬件课程设计报告

硬件课程设计报告

硬件课程设计报告一、课程目标知识目标:1. 让学生掌握硬件基础知识,包括计算机硬件的基本组成、功能及工作原理。

2. 使学生了解各类硬件设备的发展历程、技术特点及未来发展趋势。

3. 帮助学生理解硬件与软件之间的相互关系,提高系统优化的能力。

技能目标:1. 培养学生运用所学硬件知识进行计算机组装、维护和故障排除的能力。

2. 提高学生运用硬件知识解决实际问题的能力,如根据需求选择合适的硬件配置、评估硬件性能等。

3. 培养学生的团队协作能力和动手实践能力,通过小组合作完成硬件课程项目。

情感态度价值观目标:1. 培养学生对计算机硬件的兴趣和热情,激发他们探索硬件领域新知识的欲望。

2. 增强学生的环保意识,让他们认识到硬件设备在环保方面的责任和担当。

3. 培养学生的创新精神和勇于挑战的精神,鼓励他们在硬件领域不断尝试和突破。

课程性质:本课程为实践性较强的学科,注重理论联系实际,强调学生的动手实践能力。

学生特点:学生处于好奇心强、求知欲旺盛的年级,具备一定的计算机操作基础,但对硬件知识了解有限。

教学要求:结合学生特点,注重启发式教学,以案例导入、小组讨论、实践操作等形式,激发学生的学习兴趣,提高他们的实践能力。

同时,注重分层教学,满足不同层次学生的学习需求。

通过本课程的学习,使学生能够达到上述课程目标,为后续相关课程打下坚实基础。

二、教学内容根据课程目标,教学内容主要包括以下几部分:1. 计算机硬件概述:介绍计算机硬件的基本组成、发展历程及各类硬件设备的功能。

- 教材章节:第1章 计算机硬件基础- 内容列举:CPU、主板、内存、硬盘、显卡等硬件设备的基本概念和作用。

2. 计算机硬件工作原理:剖析计算机硬件各部件的工作原理及相互协作关系。

- 教材章节:第2章 计算机硬件工作原理- 内容列举:CPU的工作原理、内存管理、总线系统、输入输出系统等。

3. 硬件设备选购与组装:教授如何根据需求选择合适的硬件配置,以及计算机组装的方法。

计算机硬件课程设计报告(模板)

计算机硬件课程设计报告(模板)

计算机硬件课程设计报告(模板)计算机硬件课程设计报告(模板)计算机硬件课程设计设计报告学号:姓名:成果:学号:姓名:成果:东南高校计算机科学与工程系二0年月一、设计名称:二、本设计的主要特色:三、设计方案:1.数据格式和指令系统2.本设计的体系结构3.各部件的设计与特色(包括掌握器、运算器、译码电路等设计思路及电路)四、测试结果与性能分析(测试程序、时序图、编译报告中资源使用状况)五、课程设计总结(包括设计的总结和需要改进之处及体会)老师评语:老师签字:日期:注:本设计报告中各个部分假如页数不够,请大家自行扩页,原则是肯定要把报告写具体,能说明本组设计的成果和特色,能够反应每个人的工作。

报告中应当叙述设计中的每个模块。

设计报告将是评定每个人成果的一个重要组成部分。

扩展阅读:计算机硬件课程设计报告模板计算机硬件课程设计设计报告学号:09011433姓名:李文康成果:学号:姓名:成果:东南高校计算机科学与工程系二0年月一、设计名称:二、本设计的主要特色:三、设计方案:1.数据格式和指令系统2.本设计的体系结构3.各部件的设计与特色(包括掌握器、运算器、译码电路等设计思路及电路)四、测试结果与性能分析(测试程序、时序图、编译报告中资源使用状况)测试程序:Memory.mifDEPTH=256;WIDTH=8;ADDRESS_RADIX=HEX;DATA_RADIX=HEX;CONTENTBEGIN00:30;01:10;02:34;03:11;04:51;05:20;06:40;07:16;08:60;09:12;10:09;11:06;12:91;13:20;14 :70;END;CM.mifDEPTH=256;WIDTH=24;ADDRESS_RADIX=HEX;DATA_RADIX=HEX;CONTENTBEGIN00:30C000;01:00201*;10:C00200;11:111080;20:110880;30:308000;31:008000;32:005280;40:308000;41:008000;42:104C80;50:181001;51:140801;52:0201*1;53:401281;60:308000;61:004100;62:000080;70:0003C0;80:C04100;81:310080;90:181000;91:140800;92:0201*0;93:401280;C0:308000;C1:C04400;C2:010080;END;时序图:ALUbi74161bi74640DataPathSequenceStartuAddrGenuControlerWaveform编译报告中资源使用状况:五、课程设计总结(包括设计的总结和需要改进之处及体会)老师评语:老师签字:日期:注:本设计报告中各个部分假如页数不够,请大家自行扩页,原则是肯定要把报告写具体,能说明本组设计的成果和特色,能够反应每个人的工作。

电子计算器课程设计报告书

电子计算器课程设计报告书

目录1 设计任务和性能指标 (1)1.1 设计任务 (1)1.2 性能指标 (1)2 设计方案 (1)2.1 需求分析 (1)2.2 方案论证 (1)3 系统硬件设计 (2)3.1 总体框图设计 (2)3.2 单片机选型 (2)3.3 单片机附属电路设计 (3)3.4 LCD液晶显示 (4)4 系统软件设计 (4)4.1 设计思路 (4)4.2 总体流程图 (4)4.3 子程序设计 (5)4.4 总程序清单 (6)5 仿真与调试 (6)5.1 调试步骤 (6)5.2 仿真结果及性能分析 (8)6 总结 (8)参考文献 (8)附录1 系统硬件电路图 (10)附录2 程序清单 (11)1 设计任务和性能指标1.1 设计任务电子计算器设计1、能实现4位整数的加减法和2位整数的乘法;2、结果通过5个LED数码管显示(4位整数加法会有进位)或通过液晶显示屏显示。

1.2 性能指标1.用数字键盘输入4位整数,通过LED数码显示管或液晶显示屏显示。

2.完成四位数的加减法应算。

当四位数想加时产生的进位时,显示进位。

3.显示2位,并进行2位整数的乘法。

4.设计4*4矩阵键盘输入线的连接。

2 设计方案2.1 需求分析我们日常生活的开支,大额数字或是多倍小数的计算都需要计算器的帮助,处理数字的开方、正余弦都离不开计算器。

虽然现在的计算器价格比较低廉,但是功能过于简单的不能满足个人需求,功能多的价格较贵,操作不便不说,很多功能根本用不到。

所以,我们想到可不可以用自己所学为自己设计开发一个属于自己的简单计算器来完成日常生活的需求。

2.2 方案论证使用单片机为ATMEL公司生产AT89C51,AT89C51提供以下标准功能:4K字节FLASH 闪速存储器,128字节部RAM,32个I/O口线,两个16位定时/计数器,一个向量两级中断结构,一个全双工串行通讯口,置一个精密比较器,片振荡器及时钟电路,同时AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的工作模式,空闲方式停止CPU的工作,但允许RAM,定时计数器,串行通信及中断系统继续工作。

计算机硬件课程设计报告

计算机硬件课程设计报告

计算机硬件综合课程设计报告专业:计算机科学与技术学号:姓名:指导教师:完成时间:一、课程设计的目的通过对一个简单计算机的设计,对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。

二、实验原理按照要求设计指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。

指令系统是设计计算机的依据,拟订指令系统将涉及基本字长、指令格式、指令种类、寻址方式等内容。

基本字长:程序设计平台中配置的存储器容量为256*8,可知道基本字长定为8位。

指令格式:指令格式可有单字长和双字长指令两种,在双字长格式中,第二字节一般定义为操作数或操作数地址。

指令格式为:模型机有单操作数指令、双操作数指令和无操作数指令。

操作码OP共四位,最多可定义16条指令。

数据的传送单位为8位数据的传送范围R—>R R—>RAM RAM—>R寻址方式:由于指令较短,操作数字段仅两位,为了简化硬件设计,将操作数字段和目的操作数字段的寻址定义为不同的含义。

源操作数字段寻址方式目的操作数寻址方式00 R0 00 R101 (R0) 01 (R1)10 I 10 I11 D 11 D三、实验装置TDN-CM++计算机组成原理教学实验系统一台,个人微机一台,排线若干。

四、实验题目图1 数据通路结构框图题目一:设计一台模型计算机,实现下列指令系统,并通过给定的工作程序验证上述指令系统。

本设计实现的模型机共包含五条机器指令:IN(输入)、ADD(加法)、STA(存数)、OUT(输出助记符机器指令码(二进制)说明微程序的入口地址(八进制)IN 00000000 “INPUT DEVICE”中的开关状态—>R010(取指令后续微指令默认地址为10)ADD addr 00010000 XXXXXXXX RO+[addr]——>R0 11 STA addr 00100000 XXXXXXXX RO——>[addr] 12 OUT addr 00110000 XXXXXXXX [addr]——>LED 13 JMP addr 01000000 XXXXXXXX addr——>PC 14控制台命令的微程序流程如下(01为取指微指令的地址):图2-3 控制台流程图3.1连接线路按照图用排线连接好电路3.2写程序方法一:手动写入先将机器指令对应的微代码正确的写入2816中。

硬件课程设计(电子计算器)报告

硬件课程设计(电子计算器)报告

电子计算器的设计主要分为键盘的编码、七段LED 数码管的显示及四则运算法则的编写三部分。

设计中我们用可编程外围接口芯片8255A 连接键盘和七段LED 数码管,用七段LED 数码管显示键盘输入信号及运算结果,利用简单的汇编语言编写相应程序进行四位自然数的有效四则运算。

由于本次实验中,实验箱是HUSYE3-MIT-16/32微机接口实验仪采用模块化、积木式的结构,各实验模块互不影响。

但可通过连线将各实验模块有机组合起来,进行微机外围接口实验。

实验箱中8279已经集成了键盘和LED数码管显示的功能。

因此,本次实验是采用了硬件设计更为简单而功能强大的8279辅助完成实验。

关键词:8279;七段LED 数码管;汇编语言;四则运算目录1选题与需求分析 (1)1.1选题 (1)1.2需求分析 (1)1.2.1课题的功能需求 (1)2总体设计 (2)2.1硬件方案 (2)2.2软件方案 (2)3详细设计 (5)3.1硬件实现 (5)3.2软件实现 (5)4设计结果 (10)5收获与体会 (15)6参考文献 (16)7附录....................................................................................... 错误!未定义书签。

1 选题与需求分析1.1 选题我选的题目是电子计算器。

电子计算器的设计主要分为键盘的编码、七段LED 数码管的显示及四则运算法则的编写三部分。

设计中我们用可编程外围接口芯片8255A 连接键盘和七段LED 数码管,用七段LED 数码管显示键盘输入信号及运算结果,利用简单的汇编语言编写相应程序进行四位自然数的有效四则运算。

由于本次实验中,实验箱是HUSYE3-MIT-16/32微机接口实验仪采用模块化、积木式的结构,各实验模块互不影响。

但可通过连线将各实验模块有机组合起来,进行微机外围接口实验。

实验箱中8279已经集成了键盘和LED数码管显示的功能。

硬件课程设计计算器

硬件课程设计计算器

硬件课程设计计算器一、课程目标知识目标:1. 学生能理解计算器的基本硬件结构,掌握其工作原理;2. 学生能了解计算器中各个按键的功能及其在计算过程中的作用;3. 学生能掌握计算器编程的基本方法,实现简单功能的编程。

技能目标:1. 学生能够运用计算器进行基本的算术运算,解决实际问题;2. 学生能够通过计算器编程,提高问题解决能力,培养逻辑思维能力;3. 学生能够运用所学知识,对计算器进行简单的故障排查和维护。

情感态度价值观目标:1. 学生培养对硬件课程的兴趣,激发学习热情;2. 学生在学习过程中,培养团队合作精神,提高沟通能力;3. 学生通过课程学习,认识到科技发展对生活的影响,增强创新意识。

分析课程性质、学生特点和教学要求,本课程目标具体、可衡量。

针对小学生好奇心强、动手能力逐渐增强的特点,课程设计注重实践操作和编程训练,使学生在实践中掌握知识,提高技能。

通过课程学习,学生能够更好地理解计算器的工作原理,提高计算速度和问题解决能力,同时培养良好的情感态度价值观。

后续教学设计和评估将围绕以上目标展开,确保教学效果。

二、教学内容1. 计算器硬件结构及原理- 介绍计算器的基本硬件组成,如键盘、显示屏幕、处理器等;- 讲解计算器的工作原理,包括数字的存储、运算过程和结果显示。

2. 计算器按键功能及使用方法- 列举计算器各个按键的功能,如数字键、运算符键、清除键等;- 指导学生正确使用计算器,进行加减乘除等基本运算。

3. 计算器编程方法- 介绍计算器编程的基本概念,如变量、运算符、程序结构等;- 指导学生掌握计算器编程方法,实现简单功能的编程。

教学大纲安排:第一课时:计算器硬件结构及原理第二课时:计算器按键功能及使用方法第三课时:计算器编程方法(上)第四课时:计算器编程方法(下)教学内容与课本紧密关联,确保科学性和系统性。

在教学过程中,教师需关注学生对知识点的掌握程度,及时调整教学进度,确保教学质量。

通过本章节的学习,学生将全面了解计算器相关知识,为实际应用打下坚实基础。

大班科学优秀教案《电子计算器》

大班科学优秀教案《电子计算器》

大班科学优秀教案《电子计算器》1. 教学目标知识目标•掌握电子计算器的基本功能和使用方法。

•理解电子计算器的构造原理和运作过程。

能力目标•能够正确使用电子计算器完成简单的算术运算。

•能够进行简单的计算器误差分析,了解计算器的精度和误差来源。

•能够通过观察电子计算器的内部构造,了解其中的电子元件和电路原理。

情感目标•鼓励学生保持好奇心和求知欲,探究事物的本质和原理。

•培养学生的自主学习能力和探究精神。

•激发学生对科技发展和创新的兴趣和热情。

2. 教学重难点教学重点•了解电子计算器的基本构造和工作原理。

•学会正确使用电子计算器完成加减乘除等基本运算。

•进行简单的计算器误差分析,了解其中的精度和误差来源。

教学难点•了解电子计算器内部的电子元件和电路原理。

•进行更加深入的计算器误差分析。

3. 教学过程第一节:电子计算器的基础知识1.介绍电子计算器的历史及发展现状。

2.介绍电子计算器的基本构造和工作原理。

第二节:电子计算器的使用方法1.介绍电子计算器的基本按钮和功能。

2.讲解电子计算器基本操作方法。

3.给学生展示不同类型的电子计算器,让学生比较不同型号的电子计算器的差异。

第三节:电子计算器的误差分析1.介绍电子计算器的精度和误差来源。

2.示范如何进行简单的计算器误差分析。

3.让学生自己进行计算器误差分析。

第四节:探究电子计算器的内部构造1.展示电子计算器的内部构造图。

2.介绍其中的电子元件和电路原理。

3.实践拆解电子计算器并观察电子元件。

4. 课堂作业1.操作电子计算器完成给定的简单算术运算。

2.计算不同电子计算器的误差,并进行简单的误差分析。

3.拆解及观察电子计算器内部构造,并写一个小结论。

5. 教学评价1.督促学生完成课堂作业。

2.鼓励学生互相交流,并在问题解决后进行总结。

3.考核学生在计算器误差分析和电子计算器内部结构等方面的学习情况。

6. 教学反思本次教学活动很好地帮助学生了解了电子计算器的构造原理和运作过程,并掌握了其基本使用方法和常见误差源。

计算器设计实验报告

计算器设计实验报告

一、实验目的1. 熟悉数字电路的基本原理和设计方法。

2. 培养学生的动手能力和创新意识。

3. 设计并实现一个功能齐全的计算器。

二、实验原理计算器是一种常见的电子设备,其核心部件为运算单元。

本实验通过设计并实现一个计算器,使学生掌握以下原理:1. 按键扫描电路:用于读取按键信息。

2. 数据存储电路:用于存储输入的数值和运算符。

3. 运算电路:根据输入的运算符进行相应的运算。

4. 显示电路:用于显示运算结果。

三、实验仪器与材料1. 数字电路实验箱2. 计算器原理图3. 连接导线4. 按键5. LED显示器6. 电阻、电容等元件四、实验步骤1. 按键扫描电路设计(1)设计按键扫描电路原理图,包括按键、电阻、二极管等元件。

(2)根据原理图,搭建实验电路,并进行调试。

2. 数据存储电路设计(1)设计数据存储电路原理图,包括寄存器、计数器等元件。

(2)根据原理图,搭建实验电路,并进行调试。

3. 运算电路设计(1)设计运算电路原理图,包括加法器、减法器、乘法器、除法器等元件。

(2)根据原理图,搭建实验电路,并进行调试。

4. 显示电路设计(1)设计显示电路原理图,包括LED显示器、译码器等元件。

(2)根据原理图,搭建实验电路,并进行调试。

5. 整体电路设计(1)根据以上四个部分的设计,设计整体电路原理图。

(2)根据原理图,搭建实验电路,并进行调试。

五、实验结果与分析1. 按键扫描电路按键扫描电路能够正确读取按键信息,实现按键功能。

2. 数据存储电路数据存储电路能够存储输入的数值和运算符,为后续运算提供数据支持。

3. 运算电路运算电路能够根据输入的运算符进行相应的运算,实现加、减、乘、除等基本运算。

4. 显示电路显示电路能够将运算结果正确显示在LED显示器上。

5. 整体电路整体电路能够实现计算器的功能,满足实验要求。

六、实验总结1. 通过本次实验,掌握了数字电路的基本原理和设计方法。

2. 提高了动手能力和创新意识,培养了团队协作精神。

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

计算机科学与技术学院硬件课程设计报告姓名:学号:专业:计算机科学与技术班级:计科班设计题目:电子计算器成员:指导教师:职称:年月课程设计指导教师评阅书指导教师评语:成绩:指导教师签字:年月摘要电子计算器的设计主要分为键盘扫描与读取编码、七段LED数码管显示和四则运算的编写。

这次设计中我们采用可编程接口芯片8255链接4*4键盘和LED显示屏,从键盘扫描读入数字,在显示屏上面显示出来,并通过cpu运算出结果显示在屏幕上。

由于对汇编语言也不甚了解,只是进行一些简单的自然数的四则运算。

由于本次实验中,实验箱是TPC-ZK综合微机开放式实验系统,微机接口实验仪采用模块化、积木式的结构,各实块互不影响。

但可通过连线将各实验模块有机组合起来,进行微机外围接口实验。

这个实验选择的是4*4键盘连接上8255A然后控制LED显示。

关键词:8255A ;七段LED数码管;键盘;汇编语言;四则运算目录1 设计任务与要求 (3)1.1选题 (3)1.2需求分析 (3)1.3设计任务 (3)2硬件方案 (3)2.1微处理器8086芯片 (3)2.2 可编程并行接口8255A芯片 (4)2.3 4*4矩阵键盘 (6)2.4 七段LED数码管 (7)2.5 电路及其功能模块图 (8)3软件方案 (10)3.1流程图 (10)3.2源程序代码 (11)4 问题与解决方案 (26)5 成果展示 (26)6 总结 (27)7 心得体会与收获 (27)8参考文献 (27)1 设计任务与设计要求1.1选题我选的题目是电子计算器,电子计算器的设计主要分为键盘编码、七段数码管显示、和四则运算法则这三部分。

设计时用可编程接口芯片8255A链接4*4键盘和七段LED数码管,8255扫描键盘并通过数码管显示相应的数字,这其中需要一定的汇编程序作为核心支撑,才能正确的使各种功能运行正常。

1.2需求分析通过对选题的深入了解,电子计算器基本功能可以概括为:1.可以进行简单的加、减、乘、除四则运算;2.为了显示的人性化,按下每个数字都要进行反馈显示;3.数码管只有四位显示,运算数和结果应尽量小于四位数,不然显示不全;4.计算器能判断个别简单的错误,如除数为零,显示报错;5.计算器要有清零功能,可以在按键失误后重新按键。

在显示屏上可以及时反馈按下数字,这需要扫描程序模块一直运行着,并能够及时调用显示程序模块,当有运算符号按下时还要及时给之前按下的数字进行组装成一个数值,组装键值模块也是程序的重要所在。

等等这些都是在主程序下合理安排、运用流畅的,才能带来较完美的计算器体验。

1.3设计任务本次实验我分为电路设计和编码设计这两个任务模块来设计的。

电路设计主要研究键盘按键位置设计和各个芯片器件之间的连线。

编码设计主要分为键盘扫描读取编码、七段数码管显示编码和四则运算编码。

2 硬件方案2.1微处理器8086芯片当引脚接高电平时,CPU工作于最小模式。

此时,引脚信号24~31的含义及其功能如下:(1)IO/M:存储器、I/O端口选择控制信号。

信号指明当前CPU是选择访问存储器还是访问I/O端口。

为高电平时访问存储器,表示当前要进行CPU与存储器之间的数据传送。

为低电平时,访问I/O端口,表示当前要进行CPU与I/O端口之间的数据传送。

(2)WR:写信号,输出,低电平有效。

信号有效时,表明CPU正在执行写总线周期,同时由信号决定是对存储器还是对I/O端口执行写操作。

(3)INTA:可屏蔽中断响应信号,输出,低电平有效。

CPU通过信号对外设提出的可屏蔽中断请求做出响应。

为低电平时,表示CPU已经响应外设的中断请求,即将执行中断服务程序。

(4)ALE:地址锁存允许信号,输出,高电平有效。

CPU利用ALE信号可以把AD15 ~AD0地址/数据、A19/S6~A16/S3地址/状态线上的地址信息锁存在地址锁存器中。

(5)DT:数据发送/接收信号,输出,三态。

DT/信号用来控制数据传送的方向。

DT/为高电平时,CPU发送数据到存储器或I/O端口;DT/为低电平时,CPU接收来自存储器或I/O端口的数据。

(6)DEN:数据允许控制信号,输出,三态,低电平有效。

信号用作总线收发器的选通控制信号。

当为低电平时,表明CPU进行数据的读/写操作。

(7)HOLD:总线保持请求信号,输入,高电平有效。

在DMA数据传送方式中,由总线控制器8237A发出一个高电平有效的总线请求信号,通过HOLD引脚输入到CPU,请求CPU让出总线控制权。

(8)HLDA:总线保持响应信号,输出,高电平有效。

HLDA是与HOLD配合使用的联络信号。

在HLDA有效期间,HLDA引脚输出一个高电平有效的响应信号,同时总线将处于浮空状态,CPU让出对总线的控制权,将其交付给申请使用总线的8237A控制器使用,总线使用完后,会使HOLD信号变为低电平,CPU又重新获得对总线的控制权。

2.2 可编程并行接口8255A芯片8255A可为8086微处理器与外部设备之间提供并行输入/输出的通道。

通过编程可以设置芯片的工作方式,因此,用8255A连接外部设备时,通常不用再附加外部电路。

并行接口是在多根数据线上,以数据字节/字与I/O设备交换信息。

在输入过程中,输入设备把数据送给接口,并且使状态线“输入准备好”有效。

接口把数据存放在“输入缓冲寄存器”中,同时使“输入回答”线有效,作为对外设的响应。

外设在收到这个回答信号后,就撤消数据和“输入准备好”信号。

数据到达接口中后,接口会在“状态寄存器”中设置输入准备好标志,或者向CPU 发一个中断请求。

CPU可用查询方式或中断方式从接口中读取数据。

接口中的数据被读取后,接口会自动清除状态寄存器中的标志,且撤消对CPU的中断请求。

在输出过程中,每当输出寄存器可以接收数据,接口就会将状态寄存器中“输出准备好”状态置1或向CPU发一个中断请求,CPU可用查询或中断方式向接口输出数据。

当CPU输出的数据到达接口后,接口会清除“输出准备好”状态,把数据送往外设,并向外设发一个“数据输出准备好”信号。

外设受到驱动后,便接收数据,并向接口电路发一个“输出回答”信号,接口收到该回答信号后,又将状态寄存器中“输出准备好”置位,以便CPU输出下一个数据。

(1)8255A的一些引脚RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O 口均被置成输入方式。

PA0~PA7:端口A 输入输出线,一个8 位的数据输出锁存器/缓冲器,一个 8 位的数据输入锁存器。

PB0~PB7:端口B 输入输出线,一个8 位的I/O 锁存器,一个 8 位的输入输出缓冲器。

PC0~PC7:端口C 输入输出线,一个8 位的数据输出锁存器/缓冲器,一个 8 位的数据输入缓冲器。

端口C 可以通过工作方式设定而分成2 个4 位的端口,每个 4 位的端口包含一个4 位的锁存器,分别与端口A 和端口B 配合使用,可作为控制信号输出或状态信号输入端口。

CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255 与CPU 进行通讯。

图2-1 8255A管脚图RD:读信号线,当这个输入引脚为低电平时,允许8255 通过数据总线向CPU 发送数据或状态信息,即CPU 从8255 读取信息或数据。

WR:写入信号,当这个输入引脚为低电平时,允许CPU 将数据或控制字写8255。

D0~D7:三态双向数据总线,8255 与CPU 数据传送的通道,当CPU 执行输入输出指令时,通过它实现8 位数据的读/写操作,控制字和状态信息也通过数据总线传送。

(2)8255A的读写控制:8255A的读/写控制逻辑电路接受CPU 发来的控制口号RD、WR、RESET 和地址信号A1~A0。

然后根据命令端口,控制信号的要求,将端口的数据读出选信CPU 或者将CPU送来的数据写入端口,各端口的工作状态。

通过用输出指令对8255A 的控制字寄存器编程,写入设定工作方式的控制字,可以让3个数据口以不同的方式工作,端口A 可工作于3 种方式的任一种,端口B 只能工作于方式0 和方式1,端口C 除了用于输入输出端口外,还能配合A 口和B 口工作,为这两个端口的输入输出操作提供联系信号。

图2-2 8255A控制字本次设计实验采用的控制字是10010000,A口输入、B口输出、C口输出。

2.3 4*4矩阵键盘键盘是信息输入元件,由一个个按钮组成,如果是独立按钮的话必须要需要一个I/O口对它进行检测。

因为4×4矩阵键盘有8个管脚,为了扫描键盘判断键值的方便将八个管脚中的列接PA和行接PC。

因为进行键盘扫描一般要求有一部分的I/O口的工作方式是输入,另一部分I/O是输出,具体到4×4键盘则要求4个I/O 口输入,另外4个输出,这一点PC口刚好符合,低四位接行作为键盘I/O输入,PA低四位接列作为键盘I/O输出。

键盘有16个按键,我们设计为0~9为数字键,ABCD分别为+、-、*、/,E为=号,F为清零键CL。

识别键盘上哪个键被压下的过程的扫描步骤:1.检测是否所有键都都松开了,若没有则反复检测。

2.但所有键都松开了,再检测是否有键压下,若无键按下则反复检测。

3.如有键压下,要消除键抖动,确认有键压下。

4.对压下的键位置进行判断,先判断是第几行有键按下,再判断第几列有键按下,键值=行号*4+列号。

至此确定了哪个键按下,再接着进行后面的操作。

0 1 2 34 5 6 78 9 + -* / = CL图2-3 4*4矩阵键盘表2-1 键盘设计2.4 七段LED数码管LED由7个字符段和一个小数点段组成,每段对应一个发光二极管,当发光二极管点亮时,相应的字符段点亮。

LED有共阴极和共阳极两种供应状态。

共阴极显示时,将LED显示的COM接地,将八个字符段端a、b、c、d、e、f、g、dp依次与一个8位I/O口的最低到最高位连接,当I/O给LED的哪个字符段送入一个高电平时,该段就被点亮,从而可从这7个字符段中被点亮的构成相应的字符显示出来。

同理,COM阳极即将COM端接Vcc,其显示原理与COM阴极的基本相同,但I/O口送入低电平是相应的段才被点亮。

图2-4七段数码管实物图图2-5 数码管管脚图表2-2 数码管显示数字对应表2.5 电路及其主要功能2.5.1 电路连接实物图图2-6 电路实物图2.5.2实验电路图图2-7 电路实验模拟图2.5.3 功能模块图图2-8 功能模块图3 软件方案3.1 流程图3.1.1键盘扫描流程图图3-9 扫描流程图3.1.2 计算器运算流程图图3-10 运算流程图3.2 程序源代码port_a equ 280Hport_b equ 281Hport_c equ 282Hport_ctl equ 283Hdata segmentx db 0,0,0,0; 存放数据的每一位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,39H,5EH,79H,71H,40H,;段码表,最后一个是负号data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov al,90h ;A口输入 B口输出 C口输出 10010000B即mov dx,port_ctlout dx,almov di,offset x+3; di指向X[3]kkk:call key; 扫描按键jmp kkk;key proc ;按键扫描子程序,程序返回后,在变量H和L中存放当前按键的行列号check:call disp; ;等待按键,按下的同时进行显示mov al,10h; ;PC0-PC3对应行号,输出低电平mov dx,port_cout dx,almov dx,port_ain al,dx ;读列值,即PA0-PA3的值and al,0fhcmp al,0fh;jz check ;ZF=1,即运算结果为0,相等,都为高电平则无键按下,等待mov cx,50loop $; ;消除键抖动in al,dx; ;重复读列值and al,0fhcmp al,0fhjz check; ;若无键按下则一直等待mov h,0; ;有键按下,先把行列号清0mov l,0mov bl,01hmov bh,0feh; ;扫描键值,从第一行开始检测,PC0输出低电平next:mov al,bhmov dx,port_cout dx,alnextl:mov dx,port_ain al,dx; 读列值,判断第几列有键按下test al,bl; 判断是否是第1列jz waito ;是则跳转rol bl,1 ;左移一位cmp bl,10h; 当前行状态下没有任何列有键按下,则转为对下一行的测试jz nexthinc l; ;每判断一列,列号加1jmp nextl; 再对下一列进行判断nexth:mov l,0mov bl,01hrol bh,1;cmp bh,0efhjz exitinc hjmp nextwaito:mov dx,port_a ;若有键按下,则等该键松开后再计算键值in al,dx;and al,0fhcmp al,0fhjnz waitocall keyvalue; 调计算键值子程序exit:retkey endp;keyvalue proc ;计算键值子程序,通过行列号计算键值(键值=行号*4+列号)mov dl,h ;键值存放在DL寄存器中mov dh,lxor ax,axmov al,4mul dlmov dl,aladd dl,dhcmp dl,9jng num_call ;小于等于,则转移即按下的是数字键cmp dl,14jl cont_call; ;大于9小于14,即加减乘除的时候,运算键cmp dl,14 ;等于15,即等于键jz 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;clear proc ;一下为清除键处理子程序,按下清除键后,X变量全部清0mov x[3],0mov x[2],0mov x[1],0mov x[0],0call bitpcall dispcall dely ;分析数据位数retclear endp;outp proc ;等号键处理子程序,该子程序负责将第二个运算数据的数值计算出来存入X2变量push ax ;并根据运算符号,调用相应的运算子程序push dxpush bxinc ecall count ;调用运算键处理子程序,计算第二个运算数据cmp s,10jz add_call; ;加号cmp s,11jz sub_call ;减号cmp s,12jz mul_call; ;乘号cmp s,13jz divp_call ;除号add_call:call addpjmp store1sub_call:call subpjmp store1mul_call:call mulpjmp store1divp_call:cmp x2,0 ;判断除数是否为零,为零跳入报错子程序jz disp1call divpjmp store1disp1 proc ;报错显示子程序push bxpush axmov bh,0lea si,discode ;si指向段码表头mov ah,00010000bmov al,ahmov dx,port_cout dx,almov bh,00hmov bl,14mov al,[si+bx]mov dx,port_bout dx,alpop axpop bxkkk1:mov dx,port_ain al,dx ;报错后扫描键盘等待按键跳出and al,0fhcmp al,0fh;jz kkk1jmp kkkretdisp1 endp;store1:call clearmov ax,y ;将各运算子程序返回的运算结果,按位分解,送入X变量cmp ax,0 ;判断是否小于0,是跳转jl ccccmp ax,1000jnz ddd1mov x[0],1mov x[1],0mov x[2],0mov x[3],0jmp jieshuddd1:cmp ax,1000jl ddd2mov bx,1000mov dx,00hdiv bxmov x[0],almov ax,dxmov ah,00hjmp dddccc:mov x[0],10hmov ax,yneg ax ;取反ddd2:cmp ax,100jnz dddmov x[0],0mov x[1],1mov x[2],0中国矿业大学计算机科学与技术学院硬件课程设计报告mov x[3],0jmp jieshuddd:cmp ax,100jl gggmov bl,100div blmov x[1],almov al,ahmov ah,00hcmp ax,10jnz gggmov x[0],0mov x[1],0mov x[2],1mov x[3],0jmp jieshuggg:cmp ax,10jl jjjmov bl,10div blmov x[2],almov al,ahmov ah,00hjjj:mov x[3],aljieshu:pop bxpop dxpop axretoutp endp;count proc ;运算键处理子程序,该程序将第一个运算数据的数值计算出来,并存入X1变量push ax ;或将第二个运算数据计算出来存入X2变量中国矿业大学计算机科学与技术学院硬件课程设计报告push bx ;将预算符存入S变量push dxmov dx,0call bitp ;测试有多少位cmp cc,4jz c4cmp cc,3jz c3cmp cc,2jz c2jmp c1c4: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,1 ;判断是否为等号jnz x1_s ;不是mov 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 endpnumber proc ;数字键处理子程序cmp e,1 ;将输入的数据按位存放在X变量中,并由CC记录数据的位数jnz continuemov e,0call clearcontinue:cmp cc,0 ;目前数据为0位,没有数据则转到SSSjz ssspush ax ;若已有数据,程序将X左移8位,例如先输入1,再输入2,先要将1从各位移到十位,再将2存放到个位push dxmov al,x[3]mov ah,x[2]mov dl,x[1]mov dh,x[0]mov x[3],00hmov x[2],almov x[1],ahmov x[0],dlpop dxpop axsss:mov [di],dl; 将当前键入的数据存放到X的最低位inc cc; 数据位数加1cmp cc,4; 判断数据位数jng exit2mov cc,0 ;超过4位,重新从最低位开始存mov x[2],0mov x[1],0mov x[0],0exit2:call disp; 调用显示子程序,显示输入的数据retnumber endp;addp proc ;加法子程序push ax;mov ax,x1;add ax,x2;mov y,axpop axretaddp endp;subp proc ;减法子程序push axmov ax,x1sub ax,x2mov y,axpop axretsubp endp;mulp proc ;乘法子程序push axpush dxmov ax,x1mov dx,x2mul dxmov y,axpop dxpop axretmulp endp;divp proc ;除法子程序push axpush bxpush dxmov dx,0mov ax,x1mov bx,x2div bxmov y,axpop dxpop bxpop axretdivp endpdisp proc ;显示子程序,将X中的数值按位显示出来push bxpush axmov bh,0lea si,discode ;si指向段码表头begin:call bitp ;测试X的位数cmp cc,4jz qian ;cc等于4跳转cmp cc,3jz bai ;cc等于3跳转cmp cc,2jz shi ;cc等于2跳转cmp cc,1jz g ;cc等于1跳转jmp none ;否则跳转到没有数字qian:mov ah,10000000b;mov al,ahmov dx,port_cout dx,almov bh,00hmov bl,x[0] ;x[0]即千位数字mov al,[si+bx] ;默认是DS数据段首地址,中括号内位段码表的偏移量,将数字所对应的段码送到锁存器mov dx,port_bout dx,almov al,0out dx,albai:mov ah,01000000bmov al,ahmov dx,port_cout dx,almov bh,00hmov bl,x[1]mov al,[si+bx]mov dx,port_bout dx,almov al,0out dx,alshi:mov ah,00100000bmov al,ahmov dx,port_cout dx,almov bh,00hmov bl,x[2]mov al,[si+bx]mov dx,port_bout dx,almov al,0out dx,alg:mov ah,00010000bmov al,ahmov dx,port_cout dx,almov bh,00hmov bl,x[3]mov al,[si+bx]mov dx,port_bout dx,almov al,0out dx,almov al,00hmov dx,port_cout dx,alout dx,almov dx,port_ain al,dx ;读列值,即PA0-PA3的值and al,0fhcmp al,0fh;jnz exit4jmp beginnone:mov ah,00010000bmov al,ahmov dx,port_cout dx,almov al,3fh ;X中没有数据则显示0mov dx,port_bout dx,alexit4:pop axpop bxretdisp endp;bitp proc ;分析数据位数的子程序,判断有多少个位cmp x[0],0jnz fourbit ;如果x[0]不为0,则数据为4位数cmp x[1],0jnz threebit ;如果x[1]不为0,则数据为3位数cmp x[2],0jnz towbit ;如果x[2]不为0,则数据为2位数cmp x[3],0jnz onebit ;如果x[3]不为0,则数据为1位数jmp zerobit ;如果x[3]为0,则没有数据fourbit:mov cc,4jmp exit5threebit:mov cc,3jmp exit5towbit:mov cc,2jmp exit5onebit:mov cc,1jmp exit5zerobit:mov cc,0 ;将数据位数存入cc存放数据位数的地方exit5:retbitp endp; 结束dely proc ;延时子程序push cxmov cx,100loop $ ;$表示当前地址即原地循环pop cx ;入栈目的是保存cx的值防止多次调用的时候cx的值变化!!!!retdely endpcode endsend start4 问题与解决方案1.此次课程设计显示器件本想采用ST7920,结果纠结于显示屏的启动程序和电泳程序,每次显示都控制不好在屏幕的位置,最终采用了LED七段数码管,这个启用很方便只要给S0~S3高电平就能点亮相应的数码管,再通过da~dp给入相应数据显示数字。

相关文档
最新文档