1151.简单计算器硬件课程设计报告_第1页
1151.简单计算器硬件课程设计报告_第2页
1151.简单计算器硬件课程设计报告_第3页
1151.简单计算器硬件课程设计报告_第4页
1151.简单计算器硬件课程设计报告_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、- 21 -计算机科学与技术学院2006级硬件课程设计报告计算机科学与技术学院硬件课程设计报告姓 名: 学 号: 专 业: 计算机科学与技术 班 级: 计算机06-5 设计题目: 电子计算器 成 员: 指导教师: 职 称: 2007年6月30日 课程设计指导教师评阅书指导教师评语:成 绩: 指导教师签字: 年 月 日摘 要本课程设计采用8086cpu、8255a、4*4小键盘和led显示器,实现十以内数的加法,且具有清零功能和简单的报错功能。关键词:8255a;4*4小键盘;十以内数加法;目 录一、 设计任务与要求 4二、 总体方案与说明 41、 硬件部分 52、 软件部分 6三、 电路原理图

2、 8四、 软件主要模块流程图 9五、 问题分析与解决方案13六、 实验体会14参考资料14一、 设计任务与要求我们组选择的课程设计题目是电子计算器。在经过长时间的考虑之后,分析了任务的难易,我们决定只考虑最简易的情况,即只实现个位数的加法运算。为此,我们需要用到以下硬件:8086 cpu8255a4*4小键盘led显示器二、 总体方案与说明本系统功能为实现个位数的加法运算,即在键盘上按下一个数字键,在led上显示其对应的数值,按下+,再按下一个数字键,在led上显示其数值,按下=,则调用软件的运算模块,进行运算,并回显结果,输出到led显示器上。此电子计算器是基于8255a的并行输入输出的工作

3、模式,实现简单的十进制运算功能。8255a工作于方式1,两个数据端口的输入输出数据都能锁存,并能通过一些联络信号的控制完成计算器的输入输出操作。1、 硬件部分硬件电路应分为两个模块,一为键盘接口电路,二为led显示模块。4*4小键盘:键盘应包含数字键0-9,运算符+、=及c(清零)键。通过对键盘的扫描实现对计算器的输入操作,利用8255的输入数据锁存功能实现对键盘的扫描。16个键排成4*4的矩阵,接到8255a的一对端口上,其中端口a做输出,端口b做输入。矩阵的4条行线接到输出端口a的pa3-pa0,用程序能改变着4条行线上的电平。4条列线连到输入端口b的pb3-pb0,4条行线还同时接到输入

4、端口b的pb7-pb4上。这样,用输入指令读取b口状态时,可同时读取键盘的行列信号。在无键压下时,由于接到+5v上的上拉电阻的作用,列线被置成高电平。压下某一键后,该键所在的行线和列线接通。这时,如果向被压下键所在的行线上输出一个低电平信号,则对应的列线也呈现低电平。当从b口读取列线信号时,便能检测到该列线上的低电平。读取b口的状态时,还能读到行线上的低电平信号。这样,根据读入的行和列状态中低电平的位置,便能确定哪个键被压下了。上述键盘扫描包含以下几步:(1) 检测是否所有键都松开了,若没有则反复检测。(2) 当所有键都松开了,再检测是否有键压下,若无键压下则反复检测。(3) 若有键压下,要消

5、除键抖动,确认有键压下。(4) 对压下的键进行编码,将该键的行列信号转换成16进制码,由此确定哪个键被压下了。如果出现多键重按的情况,只有在其他键均释放后,仅剩一个键闭合时,才把此键当作本次压下的键。(5) 该键释放后,再回到(2)。七段led显示器:七段led显示器由七个发光段构成,每段均是一个led二极管。这七个发光段分别称为a,b,c,d,e,f,g,通过控制不同段的点亮和熄灭,以显示所要得到的数字。七段led的输出功能也是通过8255的并行输出实现。首先,通过8255对led对七段led显示器的控制实现8255的参数初始化,再通过输入指令从8255的输入锁存器中取显示数据,传送到数码管

6、进行输出操作。其次,通过指令输出选通信号,延时一段时间后,再对位选通信号移位并指向下一个需要显示的数据。最后,通过取符号指令实现数字的简单运算。2、 软件部分计算器实现的运算功能如下:首先,通过8255对参数的初始化并送到led显示后,继续检查是否有键码输入,并通过比较指令判断键码是哪个键,若是数字键和清零键,则执行相应的操作(输入数值和状态清零)后将其送入显示缓冲器中。若是功能键,则根据上次功能键和输入的数据计算结果,如果功能键为=,送显示缓冲等待数值输入后送到led显示。如果是其他键,则保存上次运算结果和功能键送到显示缓冲,并由led显示数值。利用xlat指令进行查表,区分按下的是数字还是

7、操作符,如果是数字,则用专用变量纪录该数字,如果是“+”符号,则用变量记录该操作符,如果是“=”,则从上两个变量中读取数据进行计算,如果是复位键,则将所有数据清空。另外,当运算数据超出显示范围,或不符合数学计算规律时,报错。三、 电路原理图四、 软件主要模块流程图1、 led数码管显示程序框图2、 读键输入子程序框图3、 键盘扫描主程序框图4、 数值送显示器缓冲子程序框图5、 主程序框图五、 问题分析与解决方案本次硬件设计主要实现计算器加法运算的功能。硬件电路应分为两个模块,一为键盘接口电路,二为led显示模块。通过程序对键盘的扫描和对led的初始化后实现加法运算,本次实验主要由8255和计算

8、机来控制计算器的实现。8255是可并行输入输出芯片,8255主要由数据端口a、b、c三个端口,a组和b组控制逻辑,数据总路线缓冲器和读写控制逻辑组成。8255具有三种基本的工作方式:方式0:基本输入输出方式方式1:选通输入输出方式方式3:双向总线i/o方式本次实验主要是基于8255工作在方式0的方式下实现的加法运算。键盘的设计如下:键盘为44的小键盘,其中设09共10各数字键,其他为命令键,具体命令为加、等于和清零。led显示器的设计如下:显示为7段led数码管。由键盘读入数据和命令,在数码管正确显示结果及格式,同时刷新显示数据。六、 实验体会通过此次实验,我们对实验的设计有了初步的了解,知道

9、了怎么样把自己在大学所学的知识运用到实际中来,也知道了电子计算器是的实现主要是在并行的输入输出的方式下实现的。此实验也加深了我们对8255的工作原理和实际运用的了解,还对我们经常接触到的键盘的工作原理和led的初始化有了更加充分的了解。了解其工作原理使我们对所做的实验更加容易地顺利完成,只要我们在实验之前把工作原理掌握好,实验就会顺利完成。参考资料微型计算机原理与接口技术中国科学技术大学出版社 周荷琴 吴秀清编著附录:源程序porta equ 0ff9hportb equ 0ffbhportctl equ 0fffhcount equ axdata segmenttable1 db 77h,7

10、bh,7dh,7eh,0b7h,0bbh,0bdh,0beh db 0d7h,0dbh,0ddh,0deh,0e7h,0ebh,0edh,0eehtable2 db 40h,79h,24h,30h,19h,12h,02h,78h db 00h,18h,08h,03h,46h,21h,06h,0ehdata endsstack segment stack dw 50 dup (0)topstack label wordstack endscode segment assume cs:code,ds:data,ss:stackmain proc farstart:mov ax,stack mov

11、ss,ax lea sp,topstack mov ax,data mov ds,ax mov dx,portctl mov al,10001011b out dx,al mov dx,porta mov al,00h out dx,alloop1:call scan cmp ah,00h jnz loop1 cmp al,0ah jl output cmp al,0ah je resetoutput:push ax call dispy jmp loop1reset:mov al,00h call dispy jmp loop1 cmp al,0ch je sumsum:pop ax mov

12、 bx,ss add ax,bx call dispy ret main endpscan proc mov dx,porta mov al,00h out dx,al mov dx,portbwaitopen:in al,dx and al,0fh cmp al,0fh jnz waitopenwaitpres:in al,dx and al,0fh cmp al,0fh je waitpres mov cx,16eahdelay:loop delay in al,dx and al,0fh cmp al,0fh je waitpres mov al,0feh mov cl,alnextrow:mov dx,portaout dx,al mov dx,portb in al,dx and al,0fh cmp al,0fh jne encode rol cl,01 mov al,cl jmp nextrowencode:mov bx,000fh in al,dxnexttry:cmp al,table1bx j

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论