微机原理课程设计用8088设计一个能实现09整数加法运算的计算器,和用2位led数码显示_第1页
微机原理课程设计用8088设计一个能实现09整数加法运算的计算器,和用2位led数码显示_第2页
微机原理课程设计用8088设计一个能实现09整数加法运算的计算器,和用2位led数码显示_第3页
微机原理课程设计用8088设计一个能实现09整数加法运算的计算器,和用2位led数码显示_第4页
微机原理课程设计用8088设计一个能实现09整数加法运算的计算器,和用2位led数码显示_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

二○一一~二○一二学年第一学期信息科学与工程学院课程设计报告书课程名称:微机原理及应用课程设计班级:学号:姓名:指导教师:2021年12月程序设计目的综合运用本课程知识,利用集成电路设计实现一些中小规模电子电路或者完成一定功能的程序,以复习稳固课堂所学的理论知识,提高程序设计实现系统、绘制系统电路图的能力,为实际应用奠定一定的根底。实验内容及具体要求用8088设计一个能实现0-9整数加法运算的计算器,和用2位LED数码显示。键盘包括0-9“+〞和“=〞12个按键。具体要求:1.画出连接线路图或功能模块引脚连接图。2.采用8088CPU作主控制器,8255作为并行接口电路实现按键的扫描以及数码管的显示。3.采用2个共阴极型LED,只需显示0—255范围内的值。三、设计分析8255A写方式控制字8255A各端口结构流程图开始开始写方式控制字,初始化8255A写方式控制字,初始化8255A键盘扫描开始键盘扫描开始否是否有键按下?否是否有键按下?是延时延时两次结果是否相同?两次结果是否相同?否检测值是否大于9?是否为10?是检测值是否大于9?是否为10?否P指针是否大于0X300?调用ADD程序是是P指针是否大于0X300?调用ADD程序存贮并指针加1存贮并指针加1结果放在store中否结果放在store中存贮数据存贮数据LED显示LED显示结束结束五、程序清单CODESEGMENTASSUMECS:CODE,DS:CODEBEGIN:JMPBEGINBUFFDB1,2,3,4,5,6TABLE1DW3E07H,3E0BH,3D0BH,3B0BH,3E0DH,3D0DH,3B0DH,3E0EH,3D0EH,3B0EH;对应0~9的键盘值DW370EH,370DH,370BH,3707H,3B07H,3D07H,2F07H,2F0BH,2F0DH,2F0EH,1F07H,1F0BH,1F0DH;对应其他的键盘值TABLEDB3FH,6,5BH,4FH,66H,6DH,7DH,7,7FH,6FH,46H,40H,48H,00;0~9上的字型码XDW0YDW0FDB0NDB0CDB0ADDFDB0SHIDB0GEDB0BEGIN:MOVAX,CSMOVDS,AXCALLCLEARAGAIN:MOVDX,203HMOVAL,8255ACALLLED;调用子程序CALLKEYCMPF,1JNEAGAINCMPBL,9;比照数字键盘JLED_PROCECMPBL,10JETO_ADD;转到加法子程序CMPBL,11JMPAGAIN;返回继续循环CLEAR1:CALLCLEARCALLCLBUFJMPAGAIND_PROCE:CMPN,1JED_P_YMOVCL,4SHLX,CLMOVBH,0ADDX,BXCALLBSHIFTMOVBUFF+5,BLJMPAGAIND_P_Y:MOVCL,4SHLY,CLMOVBH,0ADDY,BXCALLBSHIFTMOVBUFF+5,BLJMPAGAINTO_ADDCALLBSHIFT;加法子程序的具体实现MOVBUFF+5,BLMOVF,0MOVN,1MOVADDF,1JMPAGAINKEYPROC;键盘扫描程序的实现MOVDX,203HMOVAL,10001001BOUTDX,AL;写控制字MOVF,0MOVDX,201HMOVAL,0OUTDX,ALMOVDX,202HINAL,DXANDAL,0FHCMPAL,0FHJEK_EXITMOVCX,3000LOOP$;延时INAL,DXANDAL,0FHPUSHAXMOVDX,203HMOVAL,10000010B;B_IN,C_OUTOUTDX,ALPOPAXMOVBL,ALMOVDX,202HOUTDX,ALMOVDX,201HINAL,DXANDAL,00111111HMOVBH,ALLEASI,TABLE1MOVCX,23MOVAH,0NK:CMPBX,[SI]JEFOUNDINCAHADDSI,2LOOPNKFOUND:MOVAL,0;不断扫描,等待输入MOVDX,202HOUTDX,ALMOVDX,201HINAL,DXANDAL,3FHCMPAL,3FHJNEFOUND;如果无输入继续扫描MOVCX,3000LOOP$MOVF,1MOVBL,AHK_EXIT:RETKEYENDPSTOREPROC;存储程序MOVWORDPTRBUFF,1414HLEASI,BUFF;赋给偏移地址MOVCH,4DISPLAY:MOVDL,0MOVAL,BUFF[DL];取数MOVAH,0 MOVCL,10DIVCLMOVSHI,AH;求和的十位MOVGE,AL;和的个位MOVDX,383H;PA口输出方式选择控制字MOVAL,80HOUTDX,ALMOVDX,380H;PA口代码输出十位显示MOVAL,TABLE[SHI]OUTDX,ALMOVDX,383H;PB口方式选择控制字MOVAL,10000000HOUTDX,ALMOVDX,381H;PB口代码输出个位显示MOVAL,TABLE[GE]OUTDX,ALINCDLJMPDISPLAYS_REL:MOVCL,4ROLBX,CL;循环左移四位MOVAL,BLANDAL,0FH;取低四位MOV[SI+2],ALINCSIDECCHJNZS_RELCALLCLEARRETSTOREENDPCODEENDSENDSTART六、硬件局部七、设计小结本次课程设计花费了我很多时间和精力,但是也锻炼了我很多方面的能力。老师在实验要求中指明了要采用8088CPU作主控制器,8255作为并行接口电路实现按键的扫描以及数码管的显示,因此在设计该简易计算器时在芯片的选择上就更加明确了。但是由于理论学习的知识掌握不太牢固,导致对8255芯片的应用不熟悉,在做课程设计的时候,通过使用8255芯片,我对8255芯片的几种工作方式、如何设置输入输出以及如何写方式控制字等有了更好的掌握。LED的使用对我来说是非常生疏的,通过查找资料我了解了LED的显示原理。8255A的初始化和8088的接线也是十分简单,但是等到编成的时候发现有很多不懂得地方,觉得很容易的算法在编程中很难实现。在写完程序后,编译过程中出现了很多错误,通过查找资料我逐步的排解错误。在绘制PROTEL图形时,出现了很多问题,特别是不清楚一些芯片的封装,找了很久才找到,而8255A的芯片那么完全是自己在PROTEL软件中按课本知识绘制出来再运用于硬件图中,但是也锻炼了我绘图的能力。本次课程设计,不仅使我加深了对接口程序设计的认识,对接口各部件的工作原理也有了进一步的了解,也增强了分析故障的能力,更重要的是培养了我们面对问题、解决问题的能力。从理论知识上我对8086和8255的作用、功能以及初始化更加熟悉,并且有了客观上的理解,对键盘的使用和数码管显示问题也有了一定的了解。在做课程设计的时候,我发现准备好设计思路和画流程图是非常重要的,它让我有针对性的编写程序,可以有效的防止和及时发现错误。同时,我也认识到,对任何实际

温馨提示

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

评论

0/150

提交评论