微机原理与接口技术课程设计报告_第1页
微机原理与接口技术课程设计报告_第2页
微机原理与接口技术课程设计报告_第3页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、微机原理与接口技术课程设计报告/项目名称:十进制数计算器的设计与实现名称f:计算机科学与技术(交通信息工程)学生 :俊(201324020311) 教师:马荣贵2016年1月1日一、项目名称及要求 31项目名称 32项目要求 3二、项目背景及设计目的 31项目背景 32项目目的 3三、设计思路31总体设计思路 32设计流程图 4四、项目方案及原理图 51项目方案 52并行接口 8255A 53键盘输入模块 64 LED数码管输岀模块 75原理图设计 8五、结果与分析81实现现象 82现象分析 8六、总结及体会 9七、附录91参考文献 92源代码 9、项目名称及要求1项目名称十进制数计算器的设计

2、与实现2项目要求运用学过的微机原理与接口技术课程以及本学期的上机实验操作经验, 根据题目设计要求进行软硬件系统的设计和实现,从而加深对本课程知识 点的理解。通过具体项目的实践,来提高学生的动手能力以及实时解决问 题的能力,使学生综合能力得到显著提升。本课题要求学生熟练运用并行接口 8255A芯片、4*4键盘输入模块以及LED 数码管输出模块的工作原理以及相应元件驱动程序的编写。要求通过4*4键盘输入,LED数码管显示来完成简单计算器的功能(加减 乘除操作)、项目背景及设计目的1项目背景大学课程设计是为了辅助学生加深对本课程的理论知识的理解和提高。通 过动手完成实际的项目设计及实现,减小理论与实

3、践的距离,让同学对实 际项目实现的流程有个大体的感受。通过合作完成项目,提高同学的合作 意识,以及模块化设计理念。2项目目的通过十进制数计算器的设计与实现,了解proteus软件使用;熟练掌握原理图的设计方法知道各硬件的功能以及电路实现三、设计思路1总体设计思路4*4键盘输入模块:键盘“ 09”对应数字09键盘“ A”对应符号“ +”键盘“ B”对应符号“-”键盘“C”对应符号“* ”键盘“ D”对应符号“ / ”键盘“ E”对应符号“ CE键盘“ F”对应符号“=”并行接口 8255AA 口用于LED数码管的段码输出 B 口用于LED数码管的位码输出C 口用于4*4键盘的输入LED数码管输出

4、模块:8255A中A 口中的段码显示采用动态显示的方式,将并行接口2设计流程图开始初始化四、项目方案及原理图1项目方案先设计原理图,然后用PCB布线仿真,最后去实验室用实验器材实现设计2并行接口 8255A并行接口 8255A8255A是通用可编程并行接口芯片,是有40个引脚的双列直插式组件, 其基本功能为:8255A接口芯片有3个8位并行输入/输出端口,可利用编程 方法设置3个端口是作为输入端口还是输出端口;8255A能适应CPU与 I/O接口之间的多种数据传送方式的要求,如无条件传送、查询方式传送、中 断方式传送。与此相对应,8255A设置了方式0、方式1以及方式2;8255A的C 口比较

5、特殊,除作为数据口之外,在工作方式1和方式2下, 它的部分信号线被分配作为专用的联络应答信号。8255A引脚图:DO皿0 D1PPID2PA2D3DTD5臥躲D63RAWRD-&2.S 5AP班WRPB1ADPB2*1AlPB-1E5CTPB4CSPBSPB6-GNDPB”PC4PSPC&PClPC6PC2PPC7P08255A的工作原理:方式0基本输入输出方式;方式1选通式输入/输出方式;方式2:双向选通输入/输出方式。8255的控制字:工作方式选择控制字,D7D0空制位的含义见下图:本实验中使8255端口 C高四位(PC7-PC4与键盘扫描行连接,低四位 (PC0-PC3与键盘扫描列连接,

6、B 口低四位(PB0-PB3用于控制数码管 位码,端口 A输出段码信号用于控制数码管对键盘数值的显示。3键盘输入模块4*4键盘:矩阵键盘又称为行列式键盘,它是用 4条I/O线作为行线,4条I/O线作 为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这 样键盘中按键的个数是4X 4个。这种行列式键盘结构能够有效地提高单片 机系统中I/O 口的利用率。4*4键盘的电路实现:4 LED数码管输出模块LED数码管:8段数码显示管用于一般的状态或数字的显示 共阴极对应字符的段码表:显示字形dpgfedcba段码0001111113fh10000011006h201011o115bh3010

7、011114fh40110011066h5011011016dh6011111017dh70000011107h8011111117fh9011011116fh.1000000080hV001111103eh5原理图设计五、结果与分析1实现现象2现象分析由于LED显示是动态的,就没有以图片的方式展示,不过在电子版的报告 中,现象视频在附录文件中。上述现象包含加减乘除以及混合运算的演示 其中已经演示了包含高于两位十进制数、负数的运算。六、总结及体会这次实验真是一波三折,刚开始我的选题是8259的级联,我和我的小组成 员已经将实验的流程以及具体实施方案规划好了。但是由于临时的变动了 选题,我们开始

8、重新设计,利用课余时间陆陆续续的完成了整个设计流程。 至般设的第一天,我们开始连线,以及将驱动程序写入,但是测试的时候 出现各种问题,比如说显示不正常,屏幕闪烁太频繁。我们晚上回去思考, 第二天重新调试,得到了预期的结果。由于课设的时间还没有结束,我们 又将其功能进行了扩展:可以实现多位计算器,可实现负数运算,可实现 连续运算。不足的地方在于,没有实现对不同级别运算的先后顺序的判断。七、附录1参考文献微机原理与接口技术,郭兰英等编著,清华大学,2006年 C+语言程序设计(第四版),丽等编著,清华大学,2010年 TPC-ZK产品说明,清华大学器材部编写,清华大学,2008年2源代码实验名称:

9、云算著器 */实验容:实现加减乘除运算*/ 作: 俊 丰予翔 */时间:2015-11-21* */#in clude#in clude#i nclude ApiExusb.h#pragma comme nt(lib,ApiExusb.lib)char Ied18=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40;/* 0F 无字符 负号 */void toshu(byte *a,int &shu1)/*将数组a中的字符转化为一个数*/if(a3=16)shu 1=

10、0;else if(a2=16)shu1=a3;else if(a1=16)shu1=a3+10*a2;else if(a0=16)shu1=a3+10*a2+100*a1;else shu1=a 3+10*a2+100*a1+1000*a0;void shuto(byte* a,int shu1)/*将一个数的各个位转化到数组a中*/int fuhaol;if(shu10)fuhao1=-1;shu1=-shu1;a0=shu1/1000%10;/*保证溢出的时候仍能正常显示低位*/a1=shu1/100%10;a2=shu1/10%10;a3=shu1%10;if(a0=0&a1=0&a2

11、=0&a3=0)a0=16;a1=16;a2=16;a3=0;else if(a0=0&a1=0&a2=0)a0=16;a1=16;a2=16;if(fuhao10)a2=17;else if(a0=0&a1=0)a0=16;a1=16;if(fuhao10)a1=17;else if(a0=0)a0=16;if(fuhao1=0&i!=OxOf)/*只有四个led数码管,通过查看a 口来判断是否有键按下*/i=data;Sleep(50);PortWriteByte(0x28b,0x88);PortWriteByte(0x28a,0xf0);PortReadByte(0x28a,&data)

12、;Sleep(20);i=i|data;if(ll=1 &k=3)a0=16;a1=16;a2=16;a3=0;if (i=0x77)ak=0;pri ntf(0);Sleep(1000);/*键和对应的功能*/else if(i=0x7b)l=1;pri ntf(1);ll=0;else if(i=0x7d)l=2;pri ntf(2);ll=0;else if(i=0x7e)l=3;pri ntf(3);ll=0;else if(i=0xb7)l=4;pri ntf(4);ll=0;else if(i=0xbb)l=5;pri ntf(5);ll=0;else if(i=0xbd)l=6;

13、pri ntf(6);ll=0;else if(i=0xbe)l=7;pri ntf(7);ll=0;else if(i=0xd7)l=8;pri ntf(8);ll=0;else if(i=0xdb)l=9;pri ntf(9);ll=0;else if(i=0xdd)prin tf(+);toshu(a,shu1);jisua n( shu1,shu2,fuhao);shu2=shu1;shuto(a,shu2);fuhao=+;k=4;ll=1;else if(i=0xde)prin tf(-);toshu(a,shu1);jisua n( shu1,shu2,fuhao);shu2=s

14、hu1;shuto(a,shu2);fuhao二-;k=4;11=1;else if(i=0xe7) prin tf(*);toshu(a,shu1);jisua n( shu1,shu2,fuhao); shu2=shu1;shuto(a,shu2); fuhao=*;k=4;ll=1;else if(i=0xeb) prin tf(/);toshu(a,shu1);jisua n( shu1,shu2,fuhao); shu2=shu1;shuto(a,shu2); fuhao=/;k=4;ll=1;else if(i=0xed)shu1=0;shu2=0; fuhao=+;shuto(a,shu2);k=

温馨提示

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

评论

0/150

提交评论