微机原理与接口技术课程设计交通信号灯控制系统_第1页
微机原理与接口技术课程设计交通信号灯控制系统_第2页
微机原理与接口技术课程设计交通信号灯控制系统_第3页
微机原理与接口技术课程设计交通信号灯控制系统_第4页
微机原理与接口技术课程设计交通信号灯控制系统_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、微机原理与接口技术综合实践说明书课程名称:微机原理与接口技术课程设计设计题目:交通信号灯控制系统设计时间:2013年 7月 1日至2013年7月11日摘要:近年来随着科技的迅猛发展,单片机的种类不断的增多,功能日趋强大,相应的,对他的应用也在正在不断地深入,深入到了我们日常生活的点点滴滴,比如说我们的电子表、热水器、空调等家电,都有单片机控制系统的影子。另外,在对信号的实时检测和机构的各种自动控制系统中,单片机也常被作为一个核心部件来使用。 交通信号灯使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。本系统由单片机系统(89c51)、按键、 led显示、交通灯演示

2、系统组成。在系统中应用了8155接口芯片、74ls14芯片以及8*8点阵,比较完整的对实际的系统进行了模仿,系统除了包括常规交通灯的控制疏导功能外,还具有紧急情况亮红灯、led倒计时显示、某一向道路绿灯常绿,复位等功能。本文比较详细的介绍了该系统的基本原理及接口电路,以及在电路中用到的一些硬件设备。关键词:交通信号灯、单片机、接口电路目录1任务要求31.1应用系统实现功能:31.2关键技术难点:31.3工具:32工作计划安排:33系统设计43.1硬件设计:43.1.1系统总框图:43.1.2 led接口电路43.1.3按键电路:63.1.4单片机系统:63.1.5交通灯演示模块:73.1.6其

3、它硬件元件73.1.7硬件电路原理图83.2软件设计93.2.1交通灯的三种状态93.2.2程序流程图93.2.3源程序清单134设计分工:195参考文献201任务要求1.1应用系统实现功能:1、十字路口常规自动控制,南北方向与东西方向红、黄、绿灯的自动切换,点阵led显示红灯倒计时时间;2、按键实现人工控制,如实现双向红灯,某一向常绿,或人工调节自动控制中的红绿灯时间。1.2关键技术难点:扩展8*8点阵led显示器一块,设计按键4个,两组(红、黄、绿)模拟交通灯的发光二极管。1.3工具:1、电烙铁 2、电烙铁架 3、镊子 4、小螺丝刀 5、偏口钳 6、焊锡 7、电路板2工作计划安排:7月1

4、日上网、请教老师以及通过图书馆查找了一小部分资料。7月2日确定程序的具体实现功能。7月3日上网查找资料,并且进过讨论确定了程序设计思路,画出程序流程图,各自对参考程序先进行理解下。7月4日编写按键程序,针对各个按键的不同功能设计,并综合调试,找出错误地方并标记。7月5日对参考程序进行分析,一起读程序,对如何实现功能进行探讨。7月6日编程,编写主程序并对如何编写按键程序进行了探讨。7月7 日通知领取所需功能元器件,并将电路板缺漏部分焊接完成。7月8 日程序综合,读程序,找错误,然后进行讨论,修改程序,直到运行正常。7月 9 日讨论创新点,确定其功能。7月 10 日对创新部分进行翻译,编程调试,正

5、常运行。7月 11 日总体调试,撰写报告。3系统设计3.1硬件设计:系统的核心部分为89c51和8155芯片,一方面通过接口电路89c51控制交通灯的正常显示,另一方面通过8155芯片控制led倒计时,同时通过k1,k2,k3,k4按键的中断响应再控制交通灯演示模块,按键中断也由89c51控制。led显示单片机系统接口电路交通灯演示模块按键控制电路3.1.1系统总框图:3.1.2 led接口电路连接方式:led点阵由8155芯片控制,8155的a口和b口均选用输出方式,该led为8*8共阳数码显示点阵管,其连接方式如图1:图1 led点阵图北京交通大学微机原理与接口技术综合实践说明书要使点阵上

6、aa二极管点亮,则a为高电平,a为低电平。其余依此类推。因第一排至第八排发光二极管的阳极是连接在一起的,因此,该点阵为共阳点阵。当然我们也可以理解成共阴连接方式。显示方式:扫描字由pa口控制,数据由pb口控制。根据8155与89c51的连接方式可以确定8155的命令状态口以及a、b口的地址。连接电路如图2:图2 8155与led连接电路图 3.1.3按键电路:按键电路原理图如图3:图3 按键电路原理图它由按键k1,k2,k3,k4 组成,如图3,若闭合按键,由于按键系统接地,给0电平,通过反向器后变为高电平1送给系统响应。各个口的响应由89c51的p3口来进行控制。3.1.4单片机系统:由89

7、c51和8155两块芯片组成,系统的主控制器,用以控制其他模块协调工作。89c51与交通灯演示模块的接口电路图如图4:图4 89c51与交通灯演示模块的接口电路图3.1.5交通灯演示模块:该模块由12个发光二极管构成,由p1口控制,每位控制相对方向相同颜色的两个灯的亮暗,p1.0控制灯1、2,p1.1控制灯3、4,p1.2控制灯5、6以次类推。由图示看出当p1都给高电平1时,经过反向器变为低电平0,二极管通,灯亮。连接图如图5所示: 图5交通灯演示模块连接图3.1.6其它硬件元件74ls14:六反相器,主要作用就是反向,它的逻辑图如图6所示:引出端符号 :1a6a 输入端 1y6y 输出端图6

8、 74ls14逻辑图三极管:依照极性可分成npn 、pnp 两种类,本实验使用的是pnp型三极管3.1.7硬件电路原理图3.2软件设计3.2.1交通灯的三种状态(1)正常状态下红绿灯的定时切换。切换时间在本组设计为8s初始化后,两个方向通行时间相等。各灯运行及倒计时情况良好。倒计时显示的字为“15 14 13 12 05 04 03 02 01 00”,在倒计时为“03 02 01”时绿灯变黄灯,黄灯闪烁6次。(2)按一下k1键,南北向绿灯常亮,无倒数计时,led显示器显示南北方向的箭头。再按一下k1键,东西向绿灯常亮,无倒数计时,led显示器显示东西方向的箭头。两者交替进行。(k1按键的指令

9、是通过判断p2.1口的高低电平来执行的,期间检测k1与k4按键)(3)按k2键,切换倒计时的显示动画方式。(k2按键的功能带有延续性,即k3,k4口复位后k2口功能不初始化。) (4)按键k3后,出现黄灯闪烁三次,然后出现灯全红状态,led显示字“x”。当再按一下该键,黄灯闪烁,led回到进入黄灯前的状态,继续完成按键k3前的程序。(5)按复位键k4,灯会恢复到初始状态重新循环。(通道由f0标志位决定)示意图如图7所示:图7 交通灯示意图3.2.2程序流程图程序总共有三大部分,分别是主程序(按键服务程序)、按键中断子程序、显示子程序。通过原理图可以看出,判断是否有按键是通过判断89c51的p3

10、口的各个位的电平信号。开始a道放行标志0f0a道通行时间送r3.r7a道亮红灯,b道亮绿灯检查有无按键动作动作y调用中断子程序并调用显示程序 r3/r7-1=0?y亮黄灯检查有无按键动作动作y调用中断子程序并调用显示程序 黄灯亮时间t=5s?y置b道放行标志1f0nnb道通行时间送r3.r7b道亮红灯,a道亮绿灯检查有无按键动作动作y调用中断子程序并调用显示程序 r3/r7-1=0?y亮黄灯检查有无按键动作动作y调用中断子程序并调用显示程序 黄灯亮时间t=5s?ynn开场初始化灯全闪亮调用中断子程序 按下k1按下k4按下k2按下k3nnna道亮红灯,b道亮红灯yp3.3=0?模式二红灯亮的时间

11、加一y返回yna道亮红灯b道亮绿灯p3.1=0?yyny保持原来状态p3.1=0?yna道绿b道红np3.1=0?ya道绿b道红p3.1=0?y模式二红灯亮的时间加一ynp3.1=0?p3.2=0?显示子程序b口地址送dptr字位码送b口对a口地址进行修正查字形码表a口地址送dptr字形码送a口显示扫描前四列显示(31h)+131h=?0延时yn返回扫描后四列显示扫描四列显示r0是否指向低四位ny3.2.3源程序清单 org 0000h ajmp main org 000bhajmp zdorg 0100hmain: mov a , #00111111b mov p1, amov tmod,#

12、01h ;定时器初始化 mov ie,#82h mov th0,#3ch ;设置50ms中断 mov tl0,#0b0h mov r2,#20 mov r3,#30 ;设置红灯时间为30 s mov r6,#20 ;设置红灯时间为20 skpp:mov 50h,r3mov r7,#01hmov a,#11100001b ;点亮路口1红灯与路口2绿灯 mov p1,acycle: acall key ; 调用键盘扫描程序 acall display ; 调用显示程序ajmp cycle ; 循环key: acall key1 ; 键盘扫描子程序 cjne r4,#0ffh,prokey ;有键按

13、下转到prokey执行 ajmp nokey ;无键按下转到nokey执行 prokey: mov dptr,#keytab ;按键表首地址 clr c rlc a ;为查表正确,累加器变量乘2 jmp a+dptr keytab: ajmp k1 ;按键表 ajmp k2 ajmp k3 ajmp k4nokey: ajmp kd ;无按键时返回k1: clr tr0 ; 按键1子程序,关闭中断 mov a,#11001001b ; 点亮双向红灯 mov p1,a mov dptr,#0100h ;关闭led显示 mov a,#03h movx dptr,a mov dptr,#0101h

14、mov a,#0ffh movx dptr,adp1: mov a,p3 ; 判断按键1是否按下 cjne a,#0f1h,dp1 ; 没有则循环判断等待acall del0 ;有按键1延时消抖acall com ;松手检测 ajmp kpp ; 返回初始化 k2: clr tr0 ; 按键2子程序,关闭中断 mov a,#11100001b ; 设置路口1常绿 mov p1,a mov dptr,#0100h ;关闭显示 mov a,#03h movx dptr,a mov dptr,#0101h mov a,#0ffh movx dptr,a dp2: mov a,p3 ; 判断按键2是否

15、按下 cjne a,#0f2h ,dp2 ; 没有则循环判断等待acall del0 ; 有按键2延时消抖 acall com ;松手检测 mov a,#11001100b ; 设置路口2常绿 mov p1,adp3: mov a,p3 ; 判断按键2是否按下 cjne a,#0f2h ,dp3 ; 没有则循环判断等待 acall del0 ; 有按键2延时消抖 acall com ;松手检测 mov a,#11100001b mov p1,a ajmp kpp ; 返回初始化 k3: inc r3 ; 按键3子程序 红灯时间加1 cjne r3,#99,hp ; 若增加至99则从0重新开始

16、mov r3,#00hhp: ajmp kpp ; 返回红灯倒计时k4: inc r6 ; 按键3子程序 红灯时间加1 cjne r6,#99,hp1 ; 若增加至99则从0重新开始 mov r6,#00hhp1: ajmp kpp1 ; 返回绿灯倒计时kd: ret ; 子程序返回key1: mov a,p3 ;按键扫描子程序 xrl a,#0f0h ;各位取反 jz return ;无键按下,转到return执行 acall del0 ;有键按下,延时消抖 mov a,p3 ;再读入各按键状态 mov r5,a xrl a,#0f0h jz return ;无键按下,转到return执行

17、cjne r5,#0f1h,next1 ;不是按键1转到next1执行 mov r4,#0 ;将对应按键表中偏移量送入r4 sjmp com ;执行松手检测 next1: cjne r5,#0f2h,next2 ;不是按键2转到next2执行 mov r4,#1 sjmp comnext2: cjne r5,#0f4h,next3 ;不是按键3转到next3执行 mov r4,#2 sjmp comnext3: cjne r5,#0f8h,return ;不是按键4转到return执行 mov r4,#3com: mov a,p3 ;松手检测 xrl a,#0f0h jnz com ;等待,直

18、到按键释放 mov a,r4 sjmp return1 return: mov r4,#0ffh ;无键按下,给r4赋ffh return1:ret ; 返回del0: mov 40h,#18h ; 延时12ms del2: mov 41h,#0ffhdel3: djnz 41h,del3 djnz 40h,del2 ret display: setb tr0 ; 显示子程序 开启中断disp: mov r1,#53h mov r0,#50h ; 显示的数放在50h中 mov a,r0 mov b,#0ah div ab mov r1,a ; 显示的数十位放在53h中 inc r1 mov r

19、1,b ; 显示的数个位放在54h中 mov r0,#53h mov r4,#0feh ; 列扫描初值 acall dis inc r0 acall dis mov a,50h cjne a,#00h,kp mov a,r7 cjne a,#04h,kp7 ;判断是否为状态4 ajmp kpp ; 是则返回状态1 kp7: mov a,r7 cjne a,#01h,kp2 ; 不是则判断是否为状态1mov a,#11010001b ; 是则调整为状态2 mov p1,amov 50h,#5 ; 黄灯时间5 s mov r7,#02h ajmp kp kp2: mov a,r7 cjne a,#

20、02h,kp3 ; 不是则判断是否为状态2 kpp1: mov a,#11001100b ; 是则调整为状态3 mov p1,a mov 50h,r6 mov r7,#03h ajmp kp kp3: mov a,#11001010b ; 不是则调整为状态4 mov p1,a mov 50h,#5 mov r7,#04hkp: ret dis: mov 31h,#4 ;4列扫描显示子程序 mov a,r0 ;取显示数字 rl a rl a ;为查表正确,累加器变量乘4 mov r5,alp: mov dptr,#0100h ;关显示 mov a,#03h movx dptr,a mov a,#

21、0ffh mov dptr,#0101h movx dptr,a mov a,r5 ;查表变量送入acc inc r5 mov dptr,#dtab ;字形表首地址 movc a,a+dptr ;查表 mov r1,a mov dptr,#0100h mov a,#03h movx dptr,a mov dptr,#0102h mov a,r1 movx dptr,a ;字形码输出 mov dptr,#0100h mov a,#03h movx dptr,a mov a,r4 mov dptr,#0101h movx dptr,a ;列扫描字输出 rl a ;下一列 mov r4,a acal

22、l del1 ;延时 djnz 31h,lp retdel1: mov 30h,#02h ; 延时子程序 dl0: mov 32h,#0ffhdl6: djnz 32h,dl6 djnz 30h,dl0 ret dtab: db 83h,7dh,7dh,83h ;0 行字型码表db 0ffh,0bdh,01h,0fdh ;1 db 0b1h,6dh,6dh,9dh ;2 db 0bbh,6dh,6dh,93h ;3 db 0e7h,0d7h,01h,0f7h ;4 db 0dh,6dh,6dh,73h ;5 db 83h,6dh,6dh,0b3h ;6 db 3fh,7fh,41h,3fh ;7 db 93h,6dh,6dh,93h ;8 db

温馨提示

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

评论

0/150

提交评论