微机原理课程设计交通灯

上传人:y****n 文档编号:103458191 上传时间:2022-06-08 格式:DOC 页数:12 大小:175.01KB
返回 下载 相关 举报
微机原理课程设计交通灯_第1页
第1页 / 共12页
微机原理课程设计交通灯_第2页
第2页 / 共12页
微机原理课程设计交通灯_第3页
第3页 / 共12页
点击查看更多>>
资源描述
二一 一 二一二学年第 二 学期信息科学与工程学院课程设计报告书课程名称: 微机原理课程设计 班 级: 电子信息工程2009级 6 班 学 号: 200904135150 姓 名: 张 强 指导教师: 徐 守 明 二一二年 二 月 二十 日十字路口交通灯控制系统设计一、 摘要随着现代科学技术的进步,自动化控制技术越来越多地被运用到生产生活当中。现代交通的发展,对自动化控制技术也提出了较高的要求,如何科学有效对交通流量进行管理,已成为一项社会课题。在课程设计的背景下,本系统运用了8255和8253芯片,基于8086CPU实现了通过B口控制南北东西方向的红绿灯的循环点亮,实现了对交通流量的模拟协调调度。另外,本系统还有手动测试功能。关键词:交通灯;8255;8253;LED;模拟控制Keywords:traffic light;8253;8255;LED;analog control二、 设计任务及要求 利用“微机实验系统”的8255可编程接口的A口(PA7-PA0)、B口(PB7-PB0)、C口(PC7-PC0)控制发光二级管(红、绿灯)的L1-L8和开关KK1- KK2,使发光二级管按照十字路口交通灯的规律交替发光,模拟交通信号灯的工作。l 发光二级管(LED) 显示电路8个LED L1-L8,4个红灯、4个绿灯L=0 LED亮; L= LED灭 l 开关对交通灯的控制开关KK2=0 红灯皆亮;开关KK2=1 绿灯皆亮开关KK1=0 启动交通灯的亮灭;开关KK1=1停止交通灯的亮灭(所有发光二级管皆灭)l 交通灯亮灭规律参考 北方向绿灯亮、东西方向红灯亮20秒南北方向红灯亮、东西方向绿灯亮20秒l 适当地加一些额外功能重复上述过程注:20秒定时由8253控制 三、 总体设计思路北(红绿灯) 东(红绿灯) 西(红绿灯) 南(红绿灯) 接口8255CPU外设L1-L8发光二机管外设KK1-KK3开关825374LS273数显管(PA PB PC) L+5V说明:其中KK3用于管理开关KK1、KK2; 分析题意,红绿灯可直接接在8255的A、B、C任意一个口上,灯的亮灭可直接由8086输出0,1控制;开关用于控制红绿灯的工作状态,可以从A、B、C任意一个口进行读进判断;八段数码管的倒计时显示部分的位码有74LS273进行输入,段码则是经过8255端口输出。(一) 定时方案选择评估方案一:可利用8253定时计数器的工作方式0,使用查询方式,当计数(0.1S)到了的时候,从而产生0.1S的延时子程序,通过循环调用产生20S的延时。这种方法理论上是可行的,不过在实际操作过程中,由于只是单次变化,难以观察测试;方案二:利用8253的定时计数器的方式3输出方波,通过级联的方式,产生周期为2S的方波,通过查询的方式,使在每个电平期间,使每10个周期的方波红绿灯工作在一种状态,实现了红绿灯的20秒延时。这种方式延时较长,易于观察,而且相对稳定。通过比较,我最终选择了方式2,使用了8253定时计数器产生周期为2S的方波,用于20S延时。(二) 开关控制设计思路开关控制思路如下框图:开始K3为低K1为低启动交通灯关闭交通灯K2为低交通灯全红交通灯全绿是否否是否是是是 是启动相应的开关后,开关控制相应的工作状态;(三) 数码管20秒倒数显示实验过程中用到的八段数码显示器实际上是接口芯片8279的一部分,这次实验也只用到了八段数码管,因此无须对8279进行初始化方式选择。显示的原理如下:段码位码8段数码管74LS273CPU8255(四) 系统原理通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。红灯(RLED)、绿灯(GLED)分别接在8255的B口的8位端口。 8086工作在最小模式,8255片选端接到CPU的选片段CS0,A、B口作为输出口,C口作为输入口,8255的C口的第一二、四位接到开关K1、K2、K3,第三位接到C口第三位,用于检测电平;8253片选端接到CPU的选片段CS1,通过级联的方式输出需要的方波信号;74LS273片选端接到CPU的选片段CS2,用于锁存位码。红绿灯的转换由软件编程实现。四、 硬件设计以下为硬件电路图,其中8255片选端接到CS0,PA口接到数显管的段码输出端口LED-A至LED-G,B口接到LED灯的电平输入口,C口的PC0、PC1和PC3接到K1、K2、K3;8253接到CS1,GATE0和GATE1接到+5V电平,8253clk0接到375KHZ的CLK4,out0接clk1,out1接到PC2;74LS273的片选端接到CS2,D0至D5接到八段数显管的位码输入端LED1至LED6。 软件设计开关控制的流程框图在开关控制设计思路已做介绍,下面着重介绍交通灯正常工作的延时流程图:初始显示状态为0显示状态为0?20次到了?显示状态位置1延时一秒并显示EW20次到了?显示状态位置0延时一秒并显示SN该程序要实现的功能可分为外接芯片初始化部分、开关判断部分、延时部分、电平以及数码管显示部分。(一)芯片初始化:mov dx,04a6h;8255初始化mov al,10001001bout dx,almov dx,04a0hmov al,0ffhout dx,almov dx,04b6h ;初始化8253,产生2S的方波mov al,00110110bout dx,almov ax,37500mov dx,04b0hout dx,almov al,ahout dx,almov dx,04b6hmov al,01110110bout dx,almov dx,04b2hmov ax,20out dx,almov al,ahout dx,almov dx,04a2h;熄灭所有led灯mov al,0ffhout dx,al(二)开关判断部分:D1:mov dx,04a4hin al,dxtest al,08hjz KK1;若开关3有变化,跳回KK1KK2:mov dx,04a4h;KK2控制开关全红或者全绿in al,dxtest al,08h;判断是否开关3有没有变化jz KK1mov dx,04a4hin al,dxtest al,02hjz Z1jnz Z2Z2:mov al,01010101b;使开关全绿mov dx,04a2hout dx,aljmp KK2Z1:mov al,10101010b;使开关全红mov dx,04a2hout dx,aljmp KK2KK1:;启动控制交通灯的控制开关mov dx,04a4h;判断开关KK3是否又有变化in al,dxtest al,08h;jnz KK2mov dx,04a4hin al,dxtest al,01hjz STmov dx,04a4hmov al,0ffhout dx,aljmp KK1(三)、1S延时子程序;检测电平变化,判断是否秒加一DECT:pushsi;堆栈保护进行地址保护DECTread:callDISPLAY;调用显示子程序leasi,dianpingmovah,siandah,1movdx,04a4h;判断电平,若有跳变则si+1inal,dxroral,1roral,1andah,1cmpal,ahjzDECTreadmovsi,alpopsiret(四)交通灯正常工作电平控制部分ST:P:mov dx,04a4h;再次判断开关KK3是否改变in al,dxtest al,08hjnz KK2mov dx,04a4h;读取启动开关的电平,若开关为低,则启动交通灯in al,dxtest al,01hjnz donepush silea si,WOSmov al,sitest al,01hjz EWjmp SNdone:mov dx,04a2h;若KK1为1,则全部熄灭mov al,0ffhout dx,aljmp PSN:mov dx,04a2h;南北方向的红灯亮mov al,01011010bout dx,alcall DECTpush silea si,LTmov al,sicmp al,0jz OSN;20秒计数到了dec almov si,alpush bxmov bl,10div bllea si,DATmov si+1,almov al,ahmov si,alpop bxpop sijmp POSN:push si;判断跳到东西南北的标志位lea si,WOSmov al,0mov si,alpop sipush silea si,LTmov al,20mov si,allea si,DATpush bxmov bl,10div blmov si+1,almov si,ahpop bxpop siK2:jmp P;跳的步数太多,分多次跳EW:mov dx,04a2h;东西方向的红灯亮mov al,10100101bout dx,alcall DECTpush silea si,LTmov al,sicmp al,0jz OEW ;20秒倒记时间到了没?dec almov si,alpush bxmov bl,10div bllea si,DATmov si+1,almov al,ahmov si,alpop bxpop sijmp K2OEW:push si;判断跳到东西南北的标志位lea si,WOSmov al,1mov si,alpop sipush silea si,LTmov al,20mov si,20lea si,DATpush bxmov bl,10div blmov si+1,almov si,ahpop bxpop sijmp K2(五)数码管显示部分DISPLAY:pushsipushbxmoval,0fehmov cx,2again:push cxleasi,DATmovcx,3desploop:movdx,04c0houtdx,al;273输出位码rolal,1pushaxmoval,siincsileabx,BUFFERXLATmovdx,04a0houtdx,al;8255A口 输出段码calldelay;延时popaxloopdesplooppopcxloopagainpopbxpopsiretdelay:push cxmov cx,5fhdelayloop:loop delaylooppop cxret源程序代码可参见附录(交通灯_吴汉强.asm)五、 调试记录及结果分析由于在学微机原理的同时还学习单片机,所以在做这个课程设计的时候,对软硬件的理解比一般的同学深刻,调试过程中遇到的问题可以很快地得到解决。在满足基本要求的过程中,我还加入了八段数码管的20秒倒数计数功能。此次设计由于时间相对较紧张,因此没有实现计时到达的LED闪烁的效果。在上机调试中发现,由于此软件延时的时间均为估算时间,不是特别准确,对于交通要求特别高的地方不宜采用。如果是放到一个大的交通灯系统中,会影响到各个交通灯的运行时间,可能整个系统对交通的指挥调度会大大偏离理论计算,不能有效地防止和消除交通堵塞现象。不过这个模拟交通灯的程序具有很强的经典性,稍加修改可以运用于实际生产中。六、 设计总结我不得不说,每次进行课程设计我都充满了期待,这次也不例外。它既考验了一个人对于专业知识的掌握程度,更是对一个人毅力耐力的一次检阅。一个星期的时间固然很短,但是当你认真对待每一分每一秒,认真的做每个实验。在学习单片机的过程中,每当上微机的实验课的时候觉得很熟悉,因为单片机更趋近于硬件。现在到了微机原理的课程设计,就有一种天翻地覆的感觉了,微机课上虽然讲指令多一点,但是接触了更多的硬件,就需要转换思维方式,思考解决用软件语言解决硬件问题。几天的时间一直呆在实验室里,晚上也是到很晚才回去。有人问,“你的程序不是已经做好了吗?干嘛还在这里做?”引用一句同学的话,“当你生活好了的时候,你就想着更好的生活”,当你做出来一个功能时,你就会想着做第二个功能。这就是一种追求。经过几天的反复实验调试,我对于8053、8255芯片的功能用途的理解更加到位,对于八段数码管的显示原理的理解更加透彻,对于接口的运用更加娴熟,几天的时间,软硬件的结合能力得到进一步的提升。我深刻地体会到一个道理,代码是一个一个指令组成的,一个一个指令则是由键盘一个一个敲出来的。敲代码的过程其实就是你的思考过程。七、 参考资料微型计算机原理与接口技术(第二版),李伯成,清华大学出版社;新版汇编语言程序设计,钱哓捷,电子工业出版社参考链接:
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 机械制造 > 电气技术


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!