微机原理及其接口技术课程设计基于pc机的打字计时练习器(含原理图).docx
打字计时原理图,ddbDDB文件1,572 KB课程设计说明书E打字计时程序文本文档7KB片基于PC机的打字计时练习器LBLlqIMicrosoftWord文裆三1,151KB程序及DDB原理图,加153893706设计题目:基于PC机的打字计时练习器专业:电气工程及其自动化班级:设计人:山东科技大学2007年7月20日课程设计任务书学院信息与电气工程学院专业电气工程及其自动化班级2004级3班姓名柴龙庆一、课程设计题目:基于PC机的打字计时练习器二、课程设计主要参考资料:1 .微机接口课程设计指导书,孙秀娟,2007.72 .80x86/Pentium微型计算机原理及应用教材,吴宁,2006.63 .80X86微机原理及其接口技术实脸指导书,薛琳,吕英俊,2006.3三、 课程设计应解决主要问题:a)系统具有不同难易等级的练习字符(如A、B、C三个等级),由用户自行选择。b)用户根据提示输入与练习字符相同的字符,同时计时开始,按回车键计时结束。c)输入正确的字符由屏幕显示,不正确的字母不显示,等待继续输入,等待时间也计入练习时间。d)计时结束由LED数码管显示练习等级及打字时间(单位:秒)。e)人机对话及显示格式自行设定。四、 课程设计相关附件(如:图纸、软件等a)系统电路原理图b)使用说明书c)五、任务发出日期:五0779课程设计完成日期:2007.7.20指导教师签字:系主任签字:指导教师对课程设计的评语.摘要本报告是设计一基于PC机的打字计时器。从字面意思可以看出,该仪器主要分两大功能:一、打字。即,通过调用DOS功能,将键盘输入的正确字符通过屏幕显示出来。这要用到PC机内部的8259。二、实现计时的功能。亦即,记录用户从输入第一字符开始到打字结束所用的时间,并通过LED将所用的时间显示出来。这部分将用到定时器件8254、中断控制器8259(外部)和扩展芯片8255o其中的整个过程都由PC机内部的8086作为主控器进行总的协调控制。关键字:打字计时器、LED显示、中断控制器第1章绪论611发展前景61.2本设计构思61.2.1 本设计的特点61.2.2 本设计的意义6第2章方案论证72.1 方案一72.1.1 工作原理72.1.2 原理框图72.1.3 经济几应用论证72.2 方案二72.2.1工作原理72.2.2原理框图82.1.3经济及应用论证82.3方案三82.3.1工作原理82.3.2原理框图82.3.3经济及应用论证92. 4方案确定9第3章硬件模块设计93. 1系统原理总图94. 2硬件芯片功能简介93.2.1微处理器芯片8086简介93.2.2三态输出锁存器8282功能简介IO3.2.3时钟发生器8284功能简介103.2.4可编程定时器件8254功能简介113.2.18259芯片介绍123.3.18255功能简介123.3.1LED显示功能简介12第4章软件模块设计134.1主程序模块设计134.2选择难易等级程序模块134.3打字计时程序模块154.4计时、中断程序模块174.5显示程序设计模块19总结21参考文献22附录一(系统原理总图)22附录二(使用说明书)22第1章绪论1.1 发展前景计算机及其应用已经成为现代生活必不可少的一部分,因此,计算机的熟练掌握应该是人们必备的基本技能。通过键盘打字是与计算机交流的主要途径,也是利用计算机功能的基本方法,所以要求具备基本的打字能力已经成为人们的基本需求。打字计时器应时而生并且迅速“走红”,成为初学者最需要的软件之一。利用打字计时器,用户可以根据屏幕显示的字符一一键入相应的正确字符,通过这一过程熟练掌握键盘上各字母的分布,并锻炼出正确的打字姿势。通过更高级的打字计时器,用户还可以学习英语单词或其它语言,这样既提高了打字能力,也学习到了更多知识,并且使学习过程不再枯燥无味。1.2 本设计构思1.2.1 本设计的特点本设计具有良好的人机交互功能,能够及时提示用户要进行的下一步操作。打字计时与其它同类别的设计没什么特别之处。1.2.2 本设计的意义1. 加深对微型计算机硬/软件的工作原理整体的认识,将所学的理论知识和实践有机结合,初步掌握计算机应用系统设计的步骤和接口技术的方法,提高分析和解决实际问题的能力,锻炼和提高实践动手能力。2. 探索设计一种更人性化的打字计时练习器,以便使初学者摆脱枯燥的单纯打字练习。第2章方案论证2.1 方案一2.1.1 工作原理8086作为主控器,控制扫描键盘,同时开始计时,屏幕显示输入字符,LED数码管显示输入字符所用时间和字符串的等级难易程度。键盘扫描和屏幕显示完全采用DOS调用,CPU对8254定时扫描。芯片分别用8254(定时)、8255(扩展口)、以及辅助芯片:8284(时钟发生器)、8282(8位三态输出锁存器)。2.1.2 1.2原理框图原理框图如下所示:键盘8259( Pe机内部)显示8254图2.1方案一框图2.1.3 经济几应用论证方案未用到外部的8259芯片,节约了产品的成本。但8086要定时的扫描8254的OUTO的电平变化,降低了CPU利用率。2.2方案二2.2.1工作原理8086仍作为主控器,与方案一的区别:定时到由8259产生中断,请求CPlJ响应中断,进行定时的相应处理。所以芯片比方案一多用了一个8259(中断控制器)芯片。原理框图如下所示:图2.2方案二框图2.1.3经济及应用论证用到了外部的中断控制器8259芯片,提高了CPU的利用效率。但多用了一个芯片,产品费用有所增加。2.3方案三2.3.1工作原理在方案二的基础上,用82555的PCO控制定时器的开始和关断。其它和方案二一样。图2.3方案三框图2.3.3经济及应用论证费用与方案二一样,并且使得定时器件控制更加随便;但在调试的时候比较的困难。2. 4方案确定鉴于以上三种方案,由于本设计要用到实验箱,有现成的芯片,不用考虑到各方案费用的限制,如此以来:方案三既提高了CPU的利用效率,又使得硬件易于控制,为最佳的设计方案。但为了好调试,本设计采用方案二。第3章硬件模块设计3.1系统原理总图见附录一3. 2硬件芯片功能简介3.2.1微处理器芯片8086简介作为主控制器件,连接其它器件,协同各器件之间的相互工作。具体主要包括:各编程器件的初始化、中断的处理、键盘扫描和屏幕显示、LED数码管时间显示等功能。U?16ADORDADlLOC/WRAD2QSOALEAD3QSlINAAD4d321514Q251324122611AD5S0,DENAD6S11)TRAD7S2M110-AD810279288317AD9RQTGTOADlORQglADll8086AD12AD13NMIAD14INTRAD15MNMXA16ZS3TESTA17/S4READYA18S5A19S6CLK<BHEZS7RESET63051743218393338O2337Q223619353421图3.1系统原理图3.2.2三态输出锁存器8282功能简介将地址和数据线分开。此功能由CPU产生的地址锁存器ALE的下降沿将地址信息锁存入82821锁存器中。8086内部没有时钟发生器,而8284时钟发生器是Intel公司专门为8086系统设计配套的时钟发生器。它为CPU提供时钟、准备就绪、复位信号,还可向外提供晶体振荡信号(OSC)、外围芯片时钟PCLK等其他信号。3. 2.4可编程定时器件8254功能简介1. 利用可编程定时器件(8254)实现定时1S,定时到触发可编程中断控制器件(8259)产生中断,向CPU传送中断向量号,申请计时中断处理。2. 8254与系统的连接示意图:I ADO-AD7 >9840-9843HIOY2 )XloRD >-XIOWR>-A0-A7)DOOUTODlGATEOD2CLKeND3D4D5D6OUTlD78254GATElCLKlCSRDWROUT2AOGATE2AlCLK2193. 2. 1 8259芯片介绍8259与系统的连接示意图U?01234567Dddddddd9<J 2 8ROR1R2R3R4R5RJ6R7I I I I I I I IINTINTASP/ENCSRDCASOWRCASlAOCAS21879202?22232425图3.58259与系统的连接示意图3. 3.18255功能简介8255用来扩展I/O口,扩展后的PB(PBOPB3)口用做位选,PA(PA0>7)口用做数据显码输出,如此以来可实现动态显示的功能。3. 3.1LED显示功能简介图3.6LED显示电路图LED显示器的显示方法有两种"一一静态显示法和动态扫描显示法。静态显示就是每一个显示器各笔画段都要独占具有所存功能的输出口线,CPU把要显示的字符代码送到输出口上,就可以是显示器显示所需的数字后符号。但由于它站用的I/O线较多,硬件成本高。所以我们选用了动态扫描显示法。其显示接口电路如上图所示第4章软件模块设计4.1主程序模块设计为使程序看起来条理清晰,本程序采用模块化、调用子程序的方式进行设计。具体流程图如下:开始8255、8259初始化,中断向量设置。调用选择难易等级子程序调用打字计时子程序,I、结束IJ图4.1主程序流程图4. 2选择难易等级程序模块实现等级难易程度1、2的选择,先扫描键盘输入的字符是1还是2,是1则显示等级1的规定字符,是2则显示等级为2的规定字符。如果既不是1也不是2则显示出错提示信息"Pleaseinputtherightchoose:,具体的流程图如下:图4.2选择难易等级程序模块程序:CHOOSEPROCNEARMOVDL,OFFHMOVAH,06HAGAINO:INT2IHCMPAL,0JEAGAINOPUSHAXMOVDL,ALMOVAH,06HINT2IHMOVDL,OFFHMOVAH,06HAGAINl:INT2IHCMPAL,ODHJNEAGAINlPOPAXCMPAL,1,JEeasytrCMPAL/2,JNEERRORTR;转存键盘输入的字符;显示选择的序号;是否有回车键(确定)按下?;=1则跳转至easytr显示esay字符串;/=2则跳转至而error显示出错信息MOVDX,OFFSETHARDMOVAH,09HINT2IHJMPOVEREASYTR:MOVDX,OFFSETEASY;显示选择的字符串MOVH,09HINT21HJMPOVERERRORTR:MOVDX,OFFSETERRORMOVH,09HINT21HCALLCHOOSE;递归调用RETOVER:RETCHOOSEENDP4.3打字计时程序模块为实现友好的人机交互,开始先显示一提示信息“Now,youcaninput:”,然后扫描键盘,当扫描到第一个字符时,开始计时(即:调用8254初始化字程序)。随后进行输入字符的校对,若校对正确则将输入的字符输出,否则继续扫描键盘咒重复上述过程。具体流程图如下:图4.3打字计时程序程序:DazijishiPROCnearPUSHDXMOVDX,OFFSETMESGlMOVH,09HINT2IHA2:MOVDL,OFFHMOVAH,06H;显示'Now,youcaninput:'信息;扫描键盘INT2IHCMPAL,OJEA2CMPAL,ODHJEAl;CALLP_8254POPDXMOVSI,DXAO:CALLDISPLAYCMPAL,SIJNEA4MOVDL,ALMOVAH,02HINT2IHINCSIA3:MOVDL,OFFHMOVAH,06HINT21HCMPAL,OJEA3CMPAL,ODHJEAlJMPAOA4:MOVDL,OFFHMOVAH,06HINT21HCMPAL,OJEA4CMPAL,ODHJNEAOAl:RETDazijishiendp;初次回车键说明是输入的字符;调用时间显示子程序;对输入的字符进行校对;修改指针;循环中的回车键判断4.4计时、中断程序模块设定计时时间为1S,计时时间到,8254的OUTO输出信号发生上升沿跳变,此时8259产生中断,8086随即响应中断,处理中断服务子程序,进行计时加IS的功能。具体过程如下流程图所示:图4.4中断服务子程序图4.58254初始化子程序程序:P8254PROCNEARMOVDX,P8254,CRMOVAL,001101IOB;计数器0工作于方式3,二进制计数OUTDX,ALMOVDX,P82540MOVAL,OCCHOUTDX,ALOUTDX,ALRET;赋初值OCCCCHP_8254ENDP-中断服务子程序一P8259,INTPROCNEARINCSECONDCMPSECOND,9JLEEXITMOVSECOND,0INCTENSCMPTENS,6JLEXITMOVTENS,OINCMINUTEEXIT:IRETP8259_INTENDP4.5显示程序设计模块通过提前建立好的显码表,利用要显示的数字进行查表,获得相应的显码,然后利用扩展口,向相应的位送对应的显码,即可获得要显示”的结果。具体的流程图如下:图4.6显示子程序程序:DISPLAYPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXLEABX,DIS_LEDMOVal,Dengjiaho;等级号XLATMOVDIS_DENGJIHAOMOVAL,MINUTE;分钟个位XLATANDAL,01111111BMOVDIS.MINUTE,ALMOVAL,TENS;秒十位XLATMOVDIS_TENS,ALMOVAL,SECOND;秒个位XLATMOVDIS_SECOND,ALMOVDX,P8255_BMOVAL,08HOUTDX,AL;秒个位显示选择MOVDX,P8255_AMOVAL,DIS_SECONDOUTDX,AL;显示秒个位的ASCII码MOVCX,OLOOP$MOVDX,P8255_BMOVAL,04H;秒十位选择OUTDX,ALMOVDX,P8255_AMOVAL,DIS_TENSOUTDX,AL;显示字段MOVex,OLOOP$MOVDX,P8255_BMOVAL,02H;分个位位选择OUTDX,ALMOVDX,P8255_AMOVAL,DISJ11NUTEOUTDX,AL;显示字段MOVex,OLOOP$MOVDX,P8255_BMOVAL,OlHOUTDX,ALMOVDX,P8255_AMOVAL,DIS_DENGJIHAOOUTDX,ALMOVCX,OLOOP$POPDXPOPCXPOPBXPOPAXRETDISPLAYENDP总结通过本设计,深感收获颇丰。具体如下:1、熟练了计算机的使用。掌握了一些操作的技巧。写报告的过程中,要绘制流程图,要进行格式的设置和排版,如此繁重的操作,练就了我比较熟练的计算机操作技能。2、深刻了对微机原理的认识,熟悉了对芯片的使用。从编程到调式,再到硬件的连接,使得对芯片有了更全面的认识和理解。3、使理论和实践得到了更进一步的结合。通过设计,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。将课本纯理论的知识运用到实际的课程设计,使抽象理论知识更形象化,把死板的课本知识变得生动有趣,激发了学习的积极性。把学过的计算机编译原理的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,对知识的理解更加深刻。4、学会了更好合作。设计要分为好几个模块来做,每人分别负责几个模块,最后再将各模块整合。大家分工合作,共同讨论,分开构思,完成了该设计。在这一过程中大大促进同学之间的合作默契,也增加了合作意识,也让我们充分认识到了合作的重要性和高效性。电子工业出版社山东科技大学山东科技大学西安电子科技大学出版社 南京大学出版社= = aMV MIi黑 Mk窑累累C<IR;附录二(使用说明书)1 PC机屏幕显示练习等级的提示信息,如:Please choose: 1 .Easy 2.Hard;参考文献180X86Pentium微型计算机原理及应用吴宁2微机原理及其接口技术实验报告薛琳3微型计算机原理及应用课件孙秀娟4实用网络编程技术刘彦明5微型计算机系统及接口应用技术朱庆保练习等级使 用 时 间附录一(系统原理总图)同时PC机屏幕显示相应等级的练习字符,如:"fewsfd)SeW+)dasa”,并提示练习开始:Nowyoucaninput:3、用户一旦开始输入字符,计时开始,正确的字符由屏幕显示,不正确的字符不显示,等待继续输入,等待时间也计入练习时间,按回车键则计时结束。4、计时结束由LED数码管显示打字时间(单位:秒)。