8255实现计算器

上传人:第*** 文档编号:34238070 上传时间:2018-02-22 格式:DOC 页数:13 大小:1.44MB
返回 下载 相关 举报
8255实现计算器_第1页
第1页 / 共13页
8255实现计算器_第2页
第2页 / 共13页
8255实现计算器_第3页
第3页 / 共13页
8255实现计算器_第4页
第4页 / 共13页
8255实现计算器_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《8255实现计算器》由会员分享,可在线阅读,更多相关《8255实现计算器(13页珍藏版)》请在金锄头文库上搜索。

1、 1一、设计目的本次课程设计的实验目的是通过该实验掌握较复杂程序的设计。能够独立完成用程序对 8255 控制键盘和 LED 显示的控制,完成计算器加减法的应用。独立编写程序,明白和掌握程序的原理和实现方式。为以后的设计提供经验。学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。微机原理课程设计的意义是为了使学生加深对所学的微机原理知识的理解,培养学生的专业素质,提高其

2、利用微机原理知识处理问题的能力,为今后专业课程的学习、毕业设计和工作打下良好的基础。使学生能比较扎实地掌握微机原理的基础知识和基本理论,掌握控制系统及有关设备的分析、开发等基本技能,受到必要工程训练、初步的科学研究方法训练和实践锻练,增强分析问题和解决问题的能力,了解微机原理和接口技术的新发展。 二、设计内容设计一计算器,要求至少能完成 2 位数的加减运算。独立完成用程序对 8255 控制键盘和 LED 显示的控制,完成计算器加减法的应用。 2三、设计要求在课程设计时,1 人 1 题,同批次同学中选择同一题的人数不超过 3 人。在教师指导下,可以相互讨论,但设计报告由学生独立完成,不得互相抄袭

3、。教师的主导作用主要在于指明设计思路,启发学生独立设计的思路,解答疑难问题和按设计进度进行阶段审查。学生必须发挥自身学习的主动性和能动性,主动思考问题、分析问题和解决问题,而不应处处被动地依赖指导老师。同学应积极主动的提出问题、解决问题、讨论问题,互相帮助和启发。学生在设计中可以引用所需的参考资料,避免重复工作,加快设计进程,但必须和题目的要求相符合,保证设计的正确。指导教师要引导学生学会掌握和使用各种已有的技术资料,不能盲目地、机械地抄袭资料,必须具体分析,使设计质量和设计能力都获得提高。学生要在老师的指导下制定好自己各环节的详细设计进程计划,按给定的时间计划保质保量的完成个阶段的设计任务。

4、设计中可边设计,边修改,软件设计与硬件设计可交替进行,问题答疑与调试和方案修改相结合,提高设计的效率,保证按时完成设计工作并交出合格的设计报告。四、设计原理与硬件电路设计的思路是:首先利用程序不断扫描键盘是不是有输入,如果没有就一直扫描,如果有就停止扫描,完成输入,利用汇编的程序核对输入键的数值,通过调用子程序完成数据的储存或者是加减的运算。运算完成后将运算的结果储存并显示到 LED 显示器上。可编程并行通信接口芯片 8255A8255A 内部结构 31. 并行输入/输出端口 A,B, C 48255A 内部包括三个 8 位的输入输出端口,分别是端口 A、端口 B、端口 C,相应信号线是 PA

5、7PA0 、PB7PB0、PC7PC0。端口都是 8 位,都可以作为输入或输出。通常将端口 A 和端口 B 定义为输入/输出的数据端口,而端口 C 则既可以作数据端口,又可以作为端口 A 和端口 B 的状态和控制信息的传送端口。2.A 组和 B 组控制部件端口 A 和端口 C 的高 4 位(PC7PC4)构成 A 组;由 A 组控制部件实现控制功能。 端口 B 和端口 C 的低 4 位(PC3PC0)构成 B 组;由 B 组控制部件实现控制功能。 A 组和 B 组利用各自的控制单元来接收读写控制部件的命令和 CPU 通过数据总线(D0D7)送来的控制字,并根据他们来定义各个端口的操作方式。3.

6、 数据总线缓冲存储器三态双向 8 位缓冲器,是 8255A 与 8086CPU 之间的数据接口。与 I/O 操作有关的数据、控制字和状态信息都是通过该缓冲器进行传送。4. 读/写控制部件8255A 完成读/写控制功能的部件。能接收 CPU 的控制命令,并根据控制命令向各个功能部件发出操作指令。CS 片选信号:由 CPU 输入,有效时表示该 8255A 被选中。 RD, WR 读、写控制信号:由 CPU 输入。 RD 有效表示 CPU 读 8255A,WR 有效表示 CPU 写8255A。RESET 复位信号:由 CPU 输入。RESET 信号有效,清除 8255A 中所有控制字寄存器内容,并将

7、各个端口置成输入方式。定义工作方式控制字:工作方式 0:8255A 中各端口的基本输入 /输出方式。 5键盘输入模块键盘是常用信息输入元件,其实键盘也是由一个个按钮组成,如果是独立按钮的话必须要需要一个 I/O 口对它进行检测,而键盘往往这需要键盘按钮数一半的 I/O 口数对它进行检测,也许对一个比较简单的系统 I/O 口数一般不是问题,但对于一个大型、复杂的系统来说 I/O 资源就显得非常珍贵了,尽量减少 I/O 使用是非常利于降低成本,另外一方面键盘比用独立按键要美观,这也是键盘能够长期得到人们青睐的原因,可是硬件上的节省必然导致软件上编程的复杂,那就来看看键盘到底使软件编程有多复杂?下图

8、是一个 3*3 键盘的结构图,因为 3*4 键盘有 7 个管脚,于是将键盘接8255A 的 PC 口,至于为什么选择 PC 是有原因的,进行键盘扫描一般要求有一部分的 I/O 口的工作方式是输入,另一部分 I/O 是输出,具体到 3*3 键盘则要求 3 个I/O 口输入,另外 3 个输出,这一点 PC 口刚好符合,而 PA、PB 口要么全部输入或输出,所以只能是 PC 口接键盘。 6硬件电路如下图所示:AD01AD23AD45AD67AD89AD10AD123AD145A01A23A45A67A89A10A123A145AD167AD189 A198A176A910AA01A23A45A678

9、A123A145D0314D2738D41354D61778CLK1MRQ0215Q2639Q41255Q61679U174273D0314D2738D45D67718CLK1MRQ0215Q2639Q41255Q61679U274273U3NOTAD0.15 A0.19AD16.19AD16.19 D0314D2738D41354D61778CLK1MRQ0215Q2639Q41255Q61679U474273BHEAD0.15READY2INTR18NMI17ST1CLK19 /X3HOLD/GT13 A/00 16.9M/IO/S028ALE/QS025DT/R/S127I /QS14T

10、EST23 BHE34EN/26RD32WR/LCK9U5806PROGRAM=T1.EXLAD_SEG0x80A23BC21D0E118290112233445566778899101013124315146517U674154IO0I1IO2I3IO4I5IO6I7IO8I9IO10IIO12I3IO14I5U7OR_8M/IOWRD U8OR_4D0341D23231D430529D68727RD5W36A0918REST35CS6PA0413PA2231PA440539PA68737PB01819PB22031PB4253PB62475PC01415PC21637PC41352PC61

11、70U2825A0 1 2 34 6 758 9 + -R1PULUP R2PULUP R3PULUP R4PULUPR5PULUPR6PULUPR7PULUPD0.7RDWA12CS 7五、设计流程图 8六、程序代码编程也可以主要分为三部分;键盘扫描、数据处理、数码管显示,另外还有译码电路,8255 各口的地址所使用的是 200H-207H。8255A 采用的是方式 0,A 组输入,B组输出。code segmentassume cs:code,ds:codestart: jmp start1buffdb 1,2,3,4,5,6tablek dw 3e07h,3e0bh,3d0bh,3b0b

12、h,3e0dh,3d0dh,3b0dh,3e0eh,3d0eh,3b0eh ;09 键盘值dw 370eh,370dh,370bh,3707h,3b07h,3d07h,2f07h,2f0bh,2f0dh,2f0eh,1f07h,1f0bh,1f0dh;其他键值table db 3fh,6,5bh,4fh,66h,6dh,7dh,7,7fh,6fh,46h,40h,48h,00;09 的字型码x dw 0y dw 0f db 0n db 0c db 0addf db 0subfdb 0start1: mov ax,cs mov ds,axcall clearagain: mov dx,203hm

13、ov al,10001001bout dx,al;8255A 初始化call led ;调用子程序call keycmp f,1jne againcmp bl,9;对比数字键盘jle d_procecmp bl,10je to_add;转到加法 9cmp bl,11je to_sub;转到减法cmp bl,12jmp again;返回clear1: call clearcall clbufjmp againd_proce:cmp n,1je d_p_ymov cl,4shl x,clmov bh,0add x,bxcall bshiftmov buff+5,bljmp againd_p_y:

14、mov cl,4shl y,clmov bh,0add y,bxcall bshiftmov buff+5,bljmp againto_add: call bshift;加法程序mov buff+5,blmov f,0mov n,1mov addf,1jmp againto_sub: call bshift;减法程序mov buff+5,blmov f,0mov n,1mov subf,1jmp againto_s: mov bx,y;sub al,bldasmov bl,al 10mov al,ahsbb al,bhdasmov bh,almov x,0mov y,0mov subf,0call storejmp againkey proc;键盘的扫描程序mov dx,203hmov al,10001001bout dx,al;初始化 8255,写控制字mov f,0mov dx,201hmov al,0out dx,al;初始化 8255mov dx,202hin al,dx;初始化 8255and al,0fhcmp al,0fhje k_exitmov cx,3000loop $ ;10msin al,dxand al,0fhpush axmov dx,203hmo

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号