广工微机课设计算器
- 格式:doc
- 大小:72.00 KB
- 文档页数:8
微机原理课件设计简易计算器(总14页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--二○一一~二○一二学年第一学期信息科学与工程学院自动化系课程设计计划书课程名称:微机原理及应用课程设计班级:自动化 0901 姓名:王立学号: 4032指导教师:孟志华二○一一年十二月六日2一、课题名称简易计算器设计二、课题目的利用8088和8255设计一个简易计算器,并将其结果显示在LED数码管上。
熟悉系统设计的基本步骤,掌握8088与8255的接口设计,掌握通过8255设计键盘扫描技术,掌握通过8255显示七段共阴极数码管设计。
加强对8088数据总线,地址总线及接口寻址的理解,加深对8255的端口控制的理解。
三、需求分析(1)能够实现99以内的加减乘法运算,并显示在2位LED上。
(2)对于减法运算产生的负数,可在LED上显示“-”号,若负量超过9,则显示“E0”。
四、方案选择方案一:该方案将LED显示电路直接接在8088的DB上,而键盘则采用8255进行扫描。
3方案二:该方案则是将LED显示电路和键盘扫描电路分别接在两个不同的8255上,扫描和显示时,选中不同的8255。
方案三:该方案则只用一片8255驱动LED显示和键盘扫描电路。
方案评估:方案一:LED显示驱动电路实现起来较简单,但是很浪费系统总线资源,舍弃!方案二:释放了系统数据总线,但是方案缺乏经济性,因为采用了两片8255,与建设资源节约型社会初衷冲突!舍弃!方案三:此种方案较为经济,方便,具有模块化的特点(因为将计算和显示电路全部集成在了8255上,应用时,直接挂接8255即可实现要求!)综上所述:采用方案三!4五、程序流程图程序总流程图:5判断输入流程图:6六、系统原理图7注:1、复位电路单独画在旁边,其参数设置符合6MHZ。
2、74HC04反相器由于位置不够,本人自己画了一个小型的74HC04。
3、IOW,IOR信号线由于采用了最大系统组态,故由8288的IORC和AIOWC代替。
《接口技术》大型综合(课程设计)作业【目的】(1)掌握8086cpu微机接口电路的I/O系统的设计(2)掌握8086cpu微机接口电路的初始化汇编编程和具体项目功能的软件汇编语言代码编写(3)要求学生根据接口电路的硬件要求进行计算机的汇编语言程序设计,使学生的软件编程能力得到加强,对接口电路的综合应用能力有较大提高。
【要求】(1)每三个同学组成一个小组,选一位组长,负责与教师联系(2007年10月8日前选定题目及确定小组成员以电子版形式发至oucljp@);每一组选择一个题目,完成系统的软硬件部分设计。
(2)自学、查找所选择I/O接口芯片和内存芯片的相关的资料。
使用接口技术知识实现能完成相应功能的硬件系统。
(3)要求写出系统(包括各个子系统)的设计方案及论证,画出系统原理图(硬件连线图)以及系统工作流程。
(4)画出程序流程、编写系统初始化程序和功能程序清单。
【设计报告书内容要求】1.每一小组要上交一份完整的设计方案(放假前以电子版形式发至邮箱oucljp@),内容包括:(1)报告封面(设计题目、小组成员)(2)设计题目(3)小组成员分工及成果(4)设计方案以及论证(5)硬件原理图(包括芯片的选型介绍)(6)程序流程图(包括各个子系统和子过程的程序流程)(7)程序清单,要有适当的注释(8)程序运行结果分析与预测(9)系统改进(升级)建议或者方案等。
2.每一个同学需要上交一份设计报告,简单介绍在课程设计过程中所做的工作,碰到的问题以及解决方法,阐述综合作业的收获等等。
【设计成绩评定】本次设计的成绩占《接口技术》课程期末总评成绩的15%,具体评定方法如下:(1)报告内容的完整性占20%的比例。
(2)硬件原理图占20%的比例。
(3)程序流程图占20%的比例。
(4)程序清单占10%的比例。
(5)程序运行结果分析与预测占20%的比例。
(6)系统改进(升级)建议或者方案占10%的比例。
【系统要求】1.交通灯控制(1)要求:十字路口1) 正常情况下,两路口轮流放行,且以一位8段数码管显示剩余时间;2) 夜间,两路口均为黄灯闪烁,均可放行。
学号:课程设计题目简易计算器的设计学院自动化专业电气工程及其自动化班级姓名指导教师2014 年1月9日课程设计任务书学生姓名:专业班级:指导教师:工作单位:自动化学院题目: 简易计算器的设计初始条件:用8086CPU、8255A并行通信接口、七段LED数码管接口、小键盘控制电路接口、外围电路芯片及元器件实现一个简易计算器,完成相应的程序编写。
要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)可进行2位十进制的加减乘除法运算。
(2)键盘输入数据,同时LED数码管显示,模拟计算器的工作。
(3)键盘上要求有0~9数字键,+、-、×、÷、=功能键,清除键C。
(4)撰写课程设计说明书。
内容包括:摘要、目录、正文、参考文献、附录(程序清单)。
正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。
时间安排:12月26日----- 12月 28 日查阅资料及方案设计12月29日----- 1 月 2 日编程1 月 3日----- 1 月 7日调试程序1 月 8日----- 1 月 9日撰写课程设计报告指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (1)1设计的任务及要求 (2)2方案的设计 (3)2.1方案设计论证 (3)2.2方案概述与原理硬件电路图 (3)3系统模块与功能 (5)3.18086CPU芯片 (5)3.2 8255A 并行通信接口芯片 (5)3.3 译码电路 (6)3.4 小键盘电路 (6)3.5 四位七段 LED 数码管显示电路 (7)4软件设计框图与程序 (8)4.1计算器系统程序总体流程图 (8)4.2 模块程序流程图与程序 (8)4.2.1流程图 (8)4.2.2键盘扫描流程图 (9)4.3输入运算 (10)4.3.1输入运算的流程图 (10)4.3.2输入运算程序 (10)4.4显示部分 (11)4.4.1显示部分流程图 (11)4.4.2显示部分程序 (12)5系统仿真 (14)6小结与体会 (15)参考文献 (16)附录:设计源程序 (17)本科生课程设计成绩评定表摘要这次微机原理的课程设计的题目是简易计算器的设计,设计一个可以实现2位十进制加减乘除运算功能的电路,并用LED显示出来。
学生用计算器说明书一、前言亲爱的同学们,欢迎使用这款专为学生设计的计算器。
它将成为您学习数学、科学等学科的得力助手。
为了让您能更好地使用它,发挥其最大的功能,我们为您提供了这份详细的说明书,请仔细阅读。
二、外观与按键介绍1、显示屏计算器的显示屏是您获取计算结果的重要窗口。
它能够清晰地显示数字、运算符号和计算结果。
2、数字按键从 0 到 9 的数字按键,用于输入您要计算的数值。
3、四则运算按键包括加法(+)、减法()、乘法(×)、除法(÷),用于进行基本的四则运算。
4、小数点按键()用于输入小数。
5、清除按键清除键(AC)用于清除所有输入和计算结果,重新开始计算。
6、等于按键(=)按下此键可得出计算结果。
7、括号按键(())在复杂运算中用于明确计算顺序。
8、功能按键如平方根(√)、幂运算(^)、倒数(1/x)等,用于进行更复杂的数学运算。
三、基本操作1、输入数字直接按下相应的数字按键即可输入数字。
2、进行四则运算先输入第一个数字,再按下相应的运算符号,接着输入第二个数字,最后按下等于键(=)得出结果。
例如:计算 2 + 3,依次按下 2 、+、 3 、=,显示屏将显示 5 。
3、小数的输入在输入数字时,按下小数点按键()输入小数点及小数部分的数字。
4、清除操作如果输入错误,可按下清除键(AC)重新输入。
四、功能介绍1、平方根计算按下平方根按键(√),输入要计算平方根的数字,然后按下等于键(=),即可得到该数字的平方根。
例如:计算√9 ,按下√ 、 9 、=,显示屏将显示 3 。
2、幂运算按下幂运算按键(^),先输入底数,再按下^,然后输入指数,最后按下等于键(=),得到幂运算的结果。
例如:计算 2 ^ 3 ,依次按下 2 、^、 3 、=,显示屏将显示 8 。
3、倒数计算按下倒数按键(1/x),输入要计算倒数的数字,按下等于键(=),得到该数字的倒数。
例如:计算 4 的倒数,按下 4 、 1/x 、=,显示屏将显示 025 。
计算器(教案)一、教学目标:1. 了解计算器的基本功能和使用方法。
2. 练习加减乘除的口算和计算器计算。
二、教学重点:1. 计算器的功能和使用方法。
2. 计算器的加减乘除功能。
三、教学难点:1. 计算器加减乘除的运算规则。
2. 练习口算和计算器计算结合起来。
四、教学步骤:1. 导入新知识T:同学们,你们平时都使用过计算器吗?那么计算器是用来做什么的?(回答:计算数字的运算。
)T:那么今天我们就来学习一下计算器的使用方法和加减乘除的计算方法。
同学们准备好了吗?2. 计算器的基本功能和使用方法T:计算器有很多种,我们现在使用的是电子计算器,它有很多按钮,大家看看下面这个图,里面的按钮有什么作用?(让学生一一回答)T:非常好!那么现在我们来学习一下计算器的基本使用方法。
首先,我们需要打开计算器的电源,这里有一个ON/OFF按钮,按下去就可以开启计算器。
其次,我们需要了解一下计算器的屏幕,这里显示我们的运算结果,当我们输入数字和运算符号时,它也会在屏幕上显示出来。
同学们可以试着输入一些数字,看看计算器屏幕上显示的是什么。
最后,我们需要知道计算器上加减乘除的按钮,分别是:+、-、*、/。
当我们需要进行加减乘除运算时,就需要按下相应的按钮。
3. 练习加减乘除T:现在我们来做一些加减乘除的练习吧。
首先我们会做一些口算题,然后再用计算器来进行计算。
以上海为例,口算计算以下问题:(可将以下口算题目展示在黑板上)1、30 + 20 = ?2、50 - 30 = ?3、40 * 2 = ?4、60 / 2 = ?(鼓励学生自己回答)T:很好,现在我们可以用计算器来检验一下结果。
(现场操作计算器,让同学们观察屏幕变化。
)T:以上四道计算题,我们用口算和计算器两种方式进行了计算。
同学们觉得哪种方式更加方便呢?五、巩固练习:以下为练习题。
同学们可以互相分享一下自己的计算方法和答案。
1. 25 + 33 =2. 56 - 27 =3. 78 * 2 =4. 72 / 6 =5. (9 + 6) *2 =6. (45 - 18) / 3 =7. 25 * 5 + 55 / 5 =6. 课堂小结:T:今天我们学习了计算器的基本功能和使用方法,还练习了加减乘除的计算。
汇编课程设计计算器一、课程目标知识目标:1. 学生能理解汇编语言的基本概念,掌握计算器程序的基本结构。
2. 学生能运用汇编语言实现加、减、乘、除等基本运算。
3. 学生了解计算机内部运算的原理,理解寄存器、内存等硬件资源在程序执行过程中的作用。
技能目标:1. 学生能运用汇编语言编写简单的计算器程序,具备基本的编程能力。
2. 学生能通过调试和优化程序,提高计算器程序的执行效率。
3. 学生能运用所学知识解决实际计算问题,具备一定的实际问题分析解决能力。
情感态度价值观目标:1. 学生培养对计算机编程的兴趣和热情,增强学习动力。
2. 学生养成严谨、细致的学习态度,提高团队协作能力。
3. 学生认识到编程在日常生活和未来发展中的重要性,培养创新精神和实践能力。
分析课程性质、学生特点和教学要求,本课程将目标分解为以下具体学习成果:1. 学生能自主阅读汇编语言教材,理解计算器程序的基本结构。
2. 学生能独立编写简单的计算器程序,并通过调试和优化提高程序性能。
3. 学生能以小组形式合作完成复杂计算器程序的设计与实现,提高团队协作能力。
4. 学生在课程学习过程中,主动探索新知识,培养解决问题的能力和创新思维。
二、教学内容本课程教学内容主要包括以下几部分:1. 汇编语言基础知识:- 认识汇编语言,了解其发展历程和特点。
- 学习汇编语言的语法和基本指令。
- 了解计算机内部结构,理解寄存器、内存等硬件资源的作用。
2. 计算器程序设计:- 分析计算器程序的需求,明确功能模块。
- 学习汇编语言编写程序的基本方法,设计计算器程序框架。
- 掌握加、减、乘、除等基本运算的汇编实现。
3. 调试与优化:- 学习使用汇编语言调试工具,掌握调试技巧。
- 分析程序性能,提出优化方案。
- 实践优化过程,提高计算器程序执行效率。
4. 教学案例与实战:- 选取典型计算器案例,进行讲解和分析。
- 学生分组合作,完成复杂计算器程序的设计与实现。
- 组织课堂讨论,分享编程心得和经验。
STACK SEGMENT STACKDW 32 DUP (?)STACK ENDSDATA SEGMENTTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH, 39H,5EH,79H,71HVAL DB 05H,06H,07H,0AH,0BH,0CHDATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXMOV DX,0606HMOV AL,80HOUT DX,ALA1:LEA SI,VALMOV CX,0006HMOV BL,0FBHA2:MOV DX,0602HMOV AL,BLOUT DX,ALROL BL,1PUSH BXMOV AL,[SI]MOV BX,OFFSET TABXLAT TABMOV DX,0604HOUT DX,ALINC SIPOP BXPUSH CXMOV CX,05FFHB1:LOOP B1POP CXLOOP A2JMP A1RETCODE ENDSEND STARTSTACK SEGMENTDB 64 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATADATA SEGMENTVA1 DB 07FH,0BFH,0DFH,0EFH,0F7H,0FBHVA2 DB 3FH,3FH,3FH,3FH,3FH,3FHVA3 DB 00H,00H,00H,00H,00H,00HTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H DATA ENDSSTART:MOV AX,DATAMOV DS,AXMOV DX,0606HMOV AL,90HOUT DX,ALMOV BX,0000H;-----判断有无按键按下-----STT:MOV AL,00HMOV DX,0602HOUT DX,ALMOV DX,0600HIN AL,DXAND AL,0CHCMP AL,0CHJNZ KEYABC ;有按键按下,就跳到KEYABCCALL DISPJMP STT;-----判断键值-----KEYABC:CALL TIME ;按键去抖MOV DX,0600HIN AL,DXAND AL,0CHCMP AL,0CH ;再次确定是否有按键按下JNZ KEY ;有按键按下,就做KEYJMP STT;-----是否按键“A”-----KEY:MOV DX,0602HMOV AL,0FBH OUT DX,ALMOV DX,0600HIN AL,DXTEST AL,08HJNZ KEY_7CALL KEY0JMP STTK;-----是否按键“4”-----KEY_7:TEST AL,04HJNZ KEY_2CALL KEY4JMP STTK;-----是否按键“B”-----KEY_2:MOV DX,0602HMOV AL,0F7HOUT DX,ALMOV DX,0600HIN AL,DXTEST AL,08HJNZ KEY_6CALL KEY1JMP STTK;-----是否按键“6”-----KEY_6:TEST AL,04HJNZ KEY_1CALL KEY5JMP STTK;-----是否按键“9”-----KEY_1:MOV DX,0602HMOV AL,0EFHOUT DX,ALMOV DX,0600HIN AL,DXTEST AL,08HJNZ KEY_5CALL KEY2JMP STTK;-----是否按键“F”-----KEY_5:TEST AL,04HJNZ KEY_0CALL KEY6JMP STTK;-----是否按键“3”-----KEY_0:MOV DX,0602HMOV AL,0DFHOUT DX,ALMOV DX,0600HIN AL,DXTEST AL,08HJNZ KEY_4CALL KEY3JMP STTK;-----是否按键“C”-----KEY_4:TEST AL,04HJNZ KEY_C1CALL KEY7KEY_C1:JMP STTK;-----按键“A”-----KEY0:CALL LP1MOV AL,77HMOV [SI+5],ALMOV AL,0AHMOV [DI+5],ALCALL DISPRET;-----按键“B”-----KEY1:CALL LP1 MOV AL,7CHMOV [SI+5],ALMOV AL,0BHMOV [DI+5],ALCALL DISPRET;-----按键“9”-----KEY2:CALL LP1MOV AL,6FHMOV [SI+5],ALMOV AL,09HMOV [DI+4],ALCALL DISPRET;-----按键“3”-----KEY3:CALL LP1MOV AL,4FHMOV [SI+5],ALMOV AL,03HMOV [DI+5],ALCALL DISPRET;-----按键“4”-----KEY4:CALL LP1MOV AL,66HMOV [SI+5],ALMOV AL,04HMOV [DI+5],ALCALL DISPRET;-----按键“6”-----KEY5:CALL LP1MOV AL,7DHMOV [SI+5],ALMOV AL,06HMOV [DI+5],ALCALL DISPRET;-----按键“F”-----KEY6:CALL LP1MOV AL,71HMOV [SI+5],ALMOV AL,0FHMOV [DI+5],ALCALL DISPRET;-----按键“C”-----KEY7:CALL LP1 MOV AL,39HMOV [SI+5],ALMOV AL,0CHMOV [DI+5],ALCALL DISPRET;-----保存并移位-----LP1:MOV CX,0005H MOV SI,OFFSET VA2MOV DI,OFFSET VA3LP2:MOV AL,[SI+4]MOV [SI+5],ALMOV AL,[DI+4]MOV [DI+5],ALDEC SIDEC SILOOP LP2RET;-----显示-----DISP:MOV SI,OFFSET VA1MOV DI,OFFSET VA2MOV DL,[DI+5]CMP 77HJNZ DIR5MOV DL,[DI+4]CMP 77HJNZ DIR4MOV DL,[DI+3]CMP 77HJNZ DIR3MOV DL,[DI+2]CMP 77HJNZ DIR2MOV DL,[DI+1]CMP 77HJNZ DIR1JMP DIR0DIR5:MOV CX,0006HJMP DIRDIR4:MOV CX,0005HJMP DIRDIR3:MOV CX,0004HJMP DIRDIR2:MOV CX,0003HJMP DIRDIR1:MOV CX,0002HJMP DIRDIR0:MOV CX,0001HDIR:MOV DX,0602HMOV AL,[SI]OUT DX,ALMOV DX,0604HMOV AL,[DI]OUT DX,ALCALL TIMEINC SIINC DILOOP DIRRET;-----延时-----TIME:PUSH AX PUSH CXMOV CX,0005HTIME1:MOV AX,00F0HTIME2:DEC AXJNZ TIME2LOOP TIME1POP CXPOP AXRETSTTK:CALL DISP MOV AL,00HMOV DX,0602HOUT DX,ALMOV DX,0600HIN AL,DXAND AL,0CHCMP AL,0CHJNZ STTKJMP STTCODE ENDSEND START。