1、序 言随着科学技术迅速发展,理工科大学生不仅需要掌握计算机方面的基本理论知识,而且还需要掌握基本的实验技能及一定的科学研究能力。微机原理和接口技术是一门实践性强的学科,不但要求有较高的理论水平,而且还要求有实际的动手能力,其中很多的原量、规则、现象等仅仅靠学习教科书是无法完全掌握的,必须通过实践才能比较直观和深刻的理解。本课程设计的主要目的是提高实践能力,包括提高汇编等语言的编程能力及对接口等硬件的理解分析能力和设计接口电路的能力,在进行课程设计的过程中,可以让学生体验分析问题、提出解决方案、通过编程等手段实现解决方案、不断调试最终达到设计要求的全过程,从而帮助学生系统地掌握微机原理的接口技术
2、的相关知识,达到将知识融会贯通的目的。本次课程设计是培养和锻炼在校学生综合应用所学理论知识解决实际问题能力、进行实际锻炼能力的重要环节,它具有动手、动脑,理论联系实际的特点,是培养在大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。通过课程设计,使学生巩固和加深微型计算机原理理论知识,通过实践进一步加强学生独立分析问题和解决问题的能力、综合设计及创新能力的培养,同时注意培养学生实事求是、严肃认真的科学作风和良好的实验习惯,为今后工作打下良好的基础。通过设计实践,培养我们查阅专业资料、工具书或参考书,掌握现代设计手段和软件工具,并能以图纸和说明书表达
3、设计思想和结果的能力。通过设计,不但要培养和提高我们分析解决具体问题、动脑动手的技术工作能力,培养良好的设计习惯。在此次课程设计之前老师大概就讲了一下课程设计一些内容和基本要求,要求我们可以做软件实验也可做硬件实验。在课程的第一节课我们先练习做了一些里的硬件实验。之后我们就开始自己选择计的内容,在综合考虑之下我选择了交通灯设计。本次交通灯课程设计采用定时查询控制的方式进行,对两个方向车辆的通行时间分别计时,可随意进行更改双向的通行时间。一、 设计目的1、了解交通灯管理的基本工作原理2、熟悉8255A并行接口的各种工作方式和应用3、学习单板方式下扩展简单I/O接口的方法以双色灯的使用。4、进一步
4、学习微处理器的编程技术。 5、学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。6、通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。二、 设计任务及要求1、设计任务: 这次课程设计的题目是交通灯控制的设计与实现,主要是模拟十字路口的红绿灯。按照时间控制原则,利用并行接口和定时器,采用时间中断方式设计一套十字路口的交通灯管理系统,通行时间(或禁止时间)30秒,准备时间3秒,在准备时间里黄灯闪烁3次,闪烁频率为0.5秒
5、,周而复始。可利用8255、8253、8259等接口电路。 2、设计内容:城市十字交叉路口红绿灯控制系统主要负责控制东西走向和南北走向的红绿灯的状态和转换顺序,关键是各个状态之间的转换和进行适当的时间延时,正是基于以上考虑,采用如下设计,通过设计实现以下功能: 1东西方向车辆放行30秒钟。即东西方向的红灯和南北方向的绿灯同时点亮30秒钟;230秒钟后,南北方向的黄灯闪烁3秒钟,以警示车辆将切换红绿灯。此时南北方向仍维持红灯点亮。3南北方向的黄灯闪烁3秒钟后,转为东西方向放行30秒钟。即南北方向的红灯和东西方向的绿灯同时点亮30秒钟; 4东西方向放行30秒钟后,转为东西方向的黄灯闪烁3秒钟,以警
6、示将切换红绿灯。此时南北方向仍维持红灯点亮。5东西方向的黄灯闪烁3秒钟后,再转为南北方向车辆放行30秒钟。如此循环重复。3、 设计器材:超想HK3000TC综合实验/仿真系统 导线若干 微机原理及接口技术试验箱三、 设计原理1 设计方案:本次课程设计要求设计实现交通灯的功能,刚开始选择这个课题的时候曾认真思考研究过,要实现交通的功能首先要用芯片控制灯的亮灭、颜色控制;其次由于交通灯有计时,就必须要有计时或定时控制,还要有时间的倒计时时显示,这样才能符合交通灯的基本功能,经过认真的思考设计,根据自己所学到的知识制定了以下方案。将8255A控制字设置为全输出,利用端口A输出控制交通灯东西、南北方向
7、红绿灯的变换,利用延时程序控制各种状态显示的时间。 2 系统原理本次课程设计使用到得芯片有8255,8253和8279,使用这些芯片首先应该明白了解这些芯片的功能、工作方式以及初始化方式等。2.1、8255的工作原理2.1.1、8255的内部结构: 8255的内部结构及引脚1) 数据总线缓冲器:这是一个双向三态的8位数据缓冲器,它是8255与微机系统数据总线的接口。输入输出的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。2) 三个端口A,B和C:A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位
8、数据输入缓冲器。C端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。3) A组和B组控制电路:这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。方式控制字的高5位决定A组的工作方式,低3位决定B组的工作方式。对C口按位复位命令字可对C口的每一位实现置位或复位。A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。4) 读写控制逻辑:用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到C
9、PU。2.1.2、8255A的 工作方式:方式0-基本输入输出方式;方式1-选通输入输出方式;方式2-双向选通输入输出方式。 8255工作方式控制字和C口按位置位/复位控制字格式2.1.3、引脚信号8255A的引脚如图1所示,分为数据线、地址线、读/写控制线、输入/输出端口线和电源线。D7D0(data bus):三态、双向数据线,与CPU数据总线连接,用来传送数据。CS(chip select):片选信号线,低电平有效时,芯片被选中。A1, A0(port address):地址线,用来选择内部端口。RD(read):读出信号线,低电平有效时,允许数据读出。WR(write):写入信号线,低
10、电平有效时,允许数据写入。RESET(reset):复位信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。PA7PA0(port A):A口输入/输出信号线。PB7PB0(port B):B口输入/输出信号线。PC7PC0(port C):C口输入/输出信号线。VCC:5V电源。 GND:电源地线。 2.2 发光二极管显示原理:发光二极管显示模块由8255的A口输的出来控制发光二极管的亮灭。在实验设计中A口已经与发光二级管连接好了,根据双色灯实的结果可以知道,在A口中PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0与发光二极管链接,各口控制的二极管以及各二极管的亮灭及
11、颜色控制如下表所示:东南西北PA7 PA3状态PA6 PA2状态PA5 PA1状态PA4 PA0状态00黄00黄00黄00黄01绿01绿01绿01绿10红10红10红10红11灭11灭11灭11灭设计时在向PA口输出时一定要根据上表所示的状态来写入各端口的值,如要想PA口输出灯的状态为东西红南北绿,则应向PA口写入10100101则可。四、总体设计根据设计任务的要求,要实现交通灯的功能。1、初始状态0为东西红灯,南北红灯。2、然后转状态1南北绿灯通车,东西红灯。3、过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。4、再转状态,东西绿灯通车,南北灯灯。5、过一段时间转状态4,
12、东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。6、最后循环至状态1。在设计过程中,交通灯会有一闪一灭的情况,亮灭的状态之间有一定时间的延时,调用延时程序,可以体现出交通灯的亮灭的效果。整体实验设计思想如下图所示: 开始清LED芯片8255初始化交通灯状态:全红计数初值为30东西方向绿灯亮,南北方向红灯亮30秒东西方向黄灯闪烁,南北方向红灯亮3秒东西方向红灯亮,南北方向绿灯亮30秒东西方向红灯亮,南北方向黄灯闪烁3秒结束五、详细设计1、电路设计本课题的设计可通过实验平台上的一些功能模块电路组成,由于各模块电路内部已经连接,因此在使用时只要设计模块间电路的连接,因此,硬件电路的设计及实现相对简单
13、。完整系统的硬件连接如下图所示。硬件电路由定时模块、发光二极管模块、数码管显示模块组成。 发光二极管双色灯 总的实验连线图2、延时模块设计在设计任务时,由于期间交通灯闪烁的情况,设计时先让交通灯亮,在采用软件延时的方法来让其亮一段时间,在设置让其灭,再延时后让其亮,这样交通灯就会出现一闪一闪的情况了。在设计软件延时,利用执行一条指令所需要的指令周期来达到延长时间的目的。其程序设计如下:DLY PROC NEAR ;延时 PUSH CXDDD: MOV CX,2FFFHCCC: LOOP CCC DEC BX CMP BX,0 JNE DDD POP CX RET DLY ENDP3、交通灯主程
14、序设计 8255的初始化设置:A口输出,C口输入,为工作方式0,8255的地址引脚为:200H208H。接着向PA口写入初值将发光二极管全部变为红色,软件延时一段时间,向BX写入时间数值。判断BX是否为0。将8255A控制字设置为全输出,利用端口A输出控制交通灯东西、南北方向红绿灯的变换,利用延时程序控制各种状态显示的时间。D1 EQU 10HD2 EQU 200HDATA SEGMENT;数据段PB DB ?DATA ENDSSTACK SEGMENT STACK;堆栈段STA DW 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENT;代码段A
15、SSUME CS:CODE,DS:DATASTART:PUSH CSPOP DS;8255初始化MOV DX,203H ;设置为全输出MOV AL,80HOUT DX,ALMOV DX,200HMOV AL,00;清LEDOUT DX,AL MOV DX,200HMOV AL,0F0H;全红OUT DX,ALMOV BX,7FHCALL DLYBG:MOV AL,01011010B;南北绿,东西红OUT DX,ALMOV BX,D2CALL DLYMOV CX,03HXH1:AND AL,0F5H;绿灭OUT DX,ALMOV BX,D1CALL DLYOR AL,0AH;绿亮OUT DX,A
16、LMOV BX,D1CALL DLYLOOP XH1OR AL,0A0H;南北黄,东西红OUT DX,ALMOV BX,D1CALL DLYMOV BX,D1CALL DLYMOV AL,10100101B;南北红,东西绿OUT DX,ALMOV BX ,D2CALL DLYMOV CX,03XH2:AND AL,0FAH;绿灭OUT DX,ALMOV BX,D1CALL DLYOR AL,05H;绿亮OUT DX,ALMOV BX,D1CALL DLYLOOP XH2OR AL,50H;南北红,东西黄OUT DX,ALMOV BX, D1CALL DLYMOV BX ,D1CALL DLYJ
17、MP BGDLY PROC NEAR;延时程序PUSH CXDDD:MOV CX,2FFFHCCC:LOOP CCCDEC BXCMP BX ,0JNE DDDPOP CXRETDLY ENDPCODE ENDSEND START D1 EQU 2H程序的设计流程图与总体设计基本一样,这里将不再画出。六、调试记录与分析在调试中,刚开始由于对一些芯片不是很了解以及汇编语言用的不是很熟练,所以起初错误比较多,要么灯都不显示,要么灯显示不全,再要么红灯绿灯时间分配不合理。刚开始都一头雾水,通过从网上找资料以及通过老师的指导,总算调试成功。像灯不显示或显示不全,一方面可能由于电路连接出错或者可能程序没
18、写正确都会导致这些错误。而黄灯闪烁频率不合理,比方说黄灯时间很久而绿灯时间很短,这都是时间设置问题,这些都要通过代码更改才能实现。七、运行结果及说明 初始状态为东西红灯,南北红灯。过一段时间后,南北方向交通灯变绿,东西仍然红灯。一段时间后,南北绿灯闪,闪三次后变成黄灯,东西仍为红灯。一段时间,南北红灯亮,同时东西方向变成绿灯。同样,一段时间后,东西绿灯闪,闪三次后变黄灯,南北为红灯。一段时间又回到南北绿灯,东西红灯,如此往复循环。 八、课程设计总结及改进本次课程设计,要求自制交通信号灯自动控制系统,首先对于设计任务进行了比较完整全面的分析,设计出了两设计方案,将两种方案进行全方位比较与取舍,比
19、如软件定时与硬件定时,查询方式与中断方式。选择了简便且容易实现的方案,对其进行了模块化的编程设计。在设计过程中,由于延时是通过编写程序实现的,而程序里面是通过执行指令的次数以达到延时,切执行一条指令的时间有很难计算,所以本次设计只是大概地估计了一下延时的时间,这是一点不足之处,若采用硬件延时(比如用8253定时器)的话,也许会使延时的时间相对的准确些。比如在设计交通灯黄灯闪烁的时候,其使用了软件延时来控制灯亮灭的时间实现闪烁的效果,这样的话就会使软件延时和硬件计时同时存在调用,这样就会产生时间差,比实际的时间稍有延迟,虽在在不影响闪烁效果前提下计过程中延时次说已经很短,但偏差还是存在。之后我又
20、重新设计了以下程序,采用硬件延时的方法来实现闪烁的效果:此程序是在老师检查之后自己改写的,还没有进行调试运行,不知道结果是否正确,以后有机会的话会将改写后的程序完整的调整运行一遍。由于时间的关系,原本打算在程序设计时添加紧急处理情况,使设计更加接近现实中交通灯的情况,但时间短,设计较为复杂,因此就没有设计此功能,比较遗憾,今后设计一定会注意的,力求让程序完美。九、设计体会两个星期的课程设计结束了,从中我学到了很多东西且感悟良多,体会到了课本联系实际,学以至用,设计思想,实际动手能力都有所提高。初学接口时觉得它深奥难懂,枯燥无味,通过课程设计我体会到了编程的灵活性并对它产生了浓厚的兴趣。我做的是
21、交通灯控制,虽然是在功能实现上比较简单,但对我一个初学者来说却是一个很大的困难。刚开始设计的时候真是一头雾水不知从何开始,在机房弄了一个下午都没弄出什么结果,后来想想课程设计第一节课时所做的硬件实验,就仔细的研究了一下,参考了一下他们的变成思想并运用以前所学过的知识,这样准备工作就做的差不多了。所以一下一步就是开始正式的编程序了。从课程设计从设计电路到调试结束,我失败很多次也修改很多次,可谓是屡败屡战,可我并未气馁,我坚持到了最后,总算看到我的成果了,总算可以激动,高兴一番了。此次实习可以说是获益匪浅。通过查阅了很多资料,了解了许多汇编程序的思想,扩展了自己的视野,不再仅仅局限于书本中几条简短
22、的程序,而且更重要的是明白写程序的态度:仔细谨慎,精益求精。在程序中添加了黄灯闪烁,更加醒目。另外加入能够实现各路口绿灯显示时间不同,适应在主干道和支线路口中使用。在系统加电调试中,针对一些问题,熟练掌握了根据原理分步测试,将错误之处缩小的最小范围内。通过该课程设计,掌握了什么是编译程序,编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解,课本上的知识是机械的、表面的。通过把该算法的内容,算法的执行顺序在计算机上实现,把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解。而且在设计中,把死
23、板的课本知识变得生动有趣,激发了学习的积极性。把学过的计算机编译原理的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。以前对与计算机操作系统的认识是模糊的,概念上的,现在通过自己动手做实验,从实践上认识了操作系统是如何处理命令的,如何协调计算机内部各个部件运行,对计算机编译原理的认识更加深刻。课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意转移指令,将不必要的命令去除。通过本次课程设计我学到了很多新的东西,极大地拓宽了我的知识面,锻炼了能力,综合素质得到较大提高,我感到收获不小。通过这次课程设计也使我懂得了理论与实际相结合是很重要的,只有理论知识是
24、远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。有些在设计过程中已经解决,有些还要待今后慢慢学习,只要学习就会有更多的问题,有更多的难点,但也会有更多的收获。在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。因此在以后的生活
25、和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前!十、 程序原代码D1 EQU 10HD2 EQU 200HDATA SEGMENT;数据段PB DB ?DATA ENDSSTACK SEGMENT STACK;堆栈段STA DW 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENT;代码段ASSUME CS:CODE,DS:DATASTART:PUSH CSPOP DS;8255初始化MOV DX,203H ;设置为全输出MOV AL,80HOUT DX,ALMOV DX,200HMOV AL,00;清LEDOUT DX,A
26、L MOV DX,200HMOV AL,0F0H;全红OUT DX,ALMOV BX,7FHCALL DLYBG:MOV AL,01011010B;南北绿,东西红OUT DX,ALMOV BX,D2CALL DLYMOV CX,03HXH1:AND AL,0F5H;绿灭OUT DX,ALMOV BX,D1CALL DLYOR AL,0AH;绿亮OUT DX,ALMOV BX,D1CALL DLYLOOP XH1OR AL,0A0H;南北黄,东西红OUT DX,ALMOV BX,D1CALL DLYMOV BX,D1CALL DLYMOV AL,10100101B;南北红,东西绿OUT DX,A
27、LMOV BX ,D2CALL DLYMOV CX,03XH2:AND AL,0FAH;绿灭OUT DX,ALMOV BX,D1CALL DLYOR AL,05H;绿亮OUT DX,ALMOV BX,D1CALL DLYLOOP XH2OR AL,50H;南北红,东西黄OUT DX,ALMOV BX, D1CALL DLYMOV BX ,D1CALL DLYJMP BGDLY PROC NEAR;延时程序PUSH CXDDD:MOV CX,2FFFHCCC:LOOP CCCDEC BXCMP BX ,0JNE DDDPOP CXRETDLY ENDPCODE ENDSEND START D1 EQU 2H本文来自网络,版权归原作者所有,请下载后,尽快删除。- 18 -
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922