好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于at89s52单片机的交通信号灯自动控制系统毕业论文.doc

65页
  • 卖家[上传人]:夏**
  • 文档编号:484863201
  • 上传时间:2023-01-02
  • 文档格式:DOC
  • 文档大小:1.27MB
  • / 65 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • AT89S52交通信号灯自动控制系统 摘 要: 现代交通指挥糸统中, 交叉路口信号指挥灯均为无人自动控制本糸统采用AT89S52单片机解决这一问题与一般十字路口信号指挥灯不同,该糸统支干道设有车流传感器, 以保证在支干道无车时, 主干道始终放行 支干道有车时, 则按预定参数轮流放行这一重要的特色,大大提高了道路的通行率该自动控制系统已实际制作完成本文给出了硬件原理图、程序框图以及完整的汇编源程序同时还给出了制作实物的照片 关键词: 单片机,交通信号灯,车流传感器,动态显示随着社会经济的发展,城市交通问题越来越引起人们的关注如何提高路口车辆的通行能力,己成为交通管理部门需要解决的重要课题之一本文给出了采用AT89S52单片机,解决由主干道(纵向)和支干道(横向)组成的十字路口,交通信号指挥灯的自动控制问题该控制糸统的一个重要的特色是,在支干道设有车流传感器, 当支干道无车时, 保证主干道始终处于放行状态而当检测到支干道有车时, 则按预定参数轮流放行从而大大提高了道路的通行能力糸统的制作实物照片见图1.图1.实物照片一.基本控制系统基本控制系统硬件原理图见图2。

      图中IC0为单片机AT89S52,它是美国Atmel 公司的产品AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、 超有效的解决方案另外它还具有掉电后中断可唤醒、看门狗定时器、三级加密程序存储器等功能且8K字节在系统可编程Flash存储器有1000次的擦写周期目前市场售价仅约8元人民币,性价比极高图中IC2为由ULN2803A组成的输出级,ULN2803A的带负载能力为/50V,由它驱动用高亮度发光二极管(D1---D12)图2.基本控制系统硬件原理图模拟的交通信号灯由于AT89S52的P0口只能驱动8个TTL逻辑电平, 而P1~P3口只能驱动4个TTL逻辑电平. 因此有必要考虑在单片机与输出驱动级之间增加中间级否则会造成逻辑混乱,如高电平不高,致使系统抗干扰能力下降,甚至无法正常工作这已被制作实践所证明图中IC1就是由74HC04组成的中间缓冲级。

      电源由IC3三端稳压芯片7805C构成,D13用作防止输入直流电源极性接反时对电路造成的损坏C3、R7构成上电自动复位电路,K0为手动复位按钮D0为电源指示灯控制逻辑功能见功能表功能表序号纵向(南北)横向(东西)P1口输出延时 功能描述红黄绿红黄绿1000000C0H1S自检全亮2110011F3H42S纵向放行311闪011FBH---F3H2S纵绿闪动4101011EBH2S纵黄亮5011110DEH20S横向放行601111闪DFH--FEH2S横绿闪动7011101DDH2S横黄亮8无条件转序号2重复注: P1口输出“0”---亮 , P1口输出“1”---灭 将用作模拟车流传感器输入(见图3)未用 纵红纵黄 纵绿 横红横黄横绿 二. 糸统扩展 扩展糸统是在基本控制系统的基础上,增加纵横放行参数输入、模拟车流传感器输入和放行剩余时间显示电路构成的糸统扩展硬件原理图见图3图中K1为纵向放行参数输 图3.糸统扩展硬件原理图入开关,K2为横向放行参数输入开关,输入参数均为8421BCD码,高四位为十位数,低四位为个位数为方便硬件连接,与K1相连的P2口从左至右为从高位到低位(P2.7 P2.0),而与K2相连的P3口从左至右为从低位到高位(P3.0 P3.7)。

      即横向放行参数输入开关K2出现输入高低位错位现象,见图1实物照片我们将在程序中通过软件进行转换来解决这一问题K3为模拟车流传感器输入开关,输入"1"表示横向无车,"0"表示横向有车实际应用中应由金属探测传感器来产生该信号IC4为BCD七段译码器芯片,其输入是P0.3---P0.0送出的要显示的BCD码数,输出为LED显示的段码 LG3621BH是双联共阳极七段LED数码管,T0、T1构成二个反相器输出位码,位码由单片机的P0.7、P0.6送出R10排电阻是P0口外接的上拉电阻三. 软件设计该糸统是定时顺序自动控制糸统其主程序MAIN由初始化和循环定时顺序输出两部分构成,初始化部分包括全亮自检,输入纵横放行参数,横向放行参数高低位错位转换,输入BCD码参数正确性判定及修正(当输入出现1010B---1111B时,无条件将其修改为1001B),将BCD码参数转换成二进制数并保存备用而循环定时顺序输出部分,按照功能表及输入的放行参数,依次循环输出功能表中序号2---序号7其中在输出功能表中序号2后,开始检测模拟车流传感器输入K3的状态,若其为“1”则表示横向无车,此时输出序号2不变,使纵向主干道始终处于放行状态,只有当模拟车流传感器输入为"0",即横向有车时才顺序输出功能表中的后续数据。

      DELAY为核心定时子程序, 它由定时器T0方式1定时50ms(其计数初值3CB0H), 寄存器R3作为软计数器对T0定时计数10次,DELAY1也为定时子程序,它循环调用DELAY子程序,通过改变循环调用的次数,实现不同的定时时间调用次数由寄存器R2的内容确定而寄存器R2的内容来自纵、横向放行参数输入开关取值乘以2例如;横向放行参数开关K2输入为20,则放行时间为20S,此时需循环调用DELAY核心定时子程序40次,即寄存器R2的内容为K2的输入20乘以2DISP为显示子程序, 由T1定时1ms控制2个共阳七段LED轮流工作, 动态显示实时放行剩余时间,当“0” “1”,T1截止T0饱和,使COM1=“1”,COM0=“0”,十位LED显示个位LED关闭反之则个位LED显示十位LED关闭且每过1S显示时间递减各程序框图和汇编源程序见附录(可向作者免费索取zsh500821@163 )变量与寄存器使用情况说明如下:(00H) 0.5S定时到标志00H)=“0”表示 0.5S定时未到,(00H)=“1”表示 0.5S定时已到01H) 显示数位标志01H)=0表示当前要显示个位,(01H)=1表示当前要显示十位(30H) 存放纵向放行时间二进制参数。

      31H) 存放横向放行时间二进制参数R2 存放纵、横向放行时间二进制参数X 2,作为循环计数器初值 控制调用定时0.5S子程序DELAY的次数R3 软计数器R3赋初值为10,使T0进行10次50ms定时,从而实现子程序DELAY定时0.5SR4 存放纵、横个向放行时间二进制参数, 作为查表偏移量,取要显示的放行时间数据且每过一秒钟R4减一次1,使显示时间递减,当R4减到等于00H,实时放行剩余时间也减到00,R4再减一就等于0FFH此时就关闭当前放行时间显示R4减一在子程序DELAY1中完成 R5 定时1S计数器初值为2调用子程序DELAY两次从而完成定时1S参考文献:1.丁志刚 李刚民编.《单片微型计算机原理与应用》.电子工业出版社.2.李玉峰 倪虹霞编著.《MCS-51糸列单片机原理与接口技术》.人民邮电出版社.3. 王津 周卫华 朱华贵编. 《单片机原理与应用》. 重庆大学出版社.附录:程序框图和汇编源程序ORG 0000H AJMP MAIN ORG 000BH AJMP CTC0 ORG 001BH AJMP CTC1 ORG 0030H MAIN:MOV P0,#0FFH MOV R2,#02 ;灯全亮1S自检.R2存放循环调用DELAY的次数,调用一次延时0.5S MOV P1,#0C0H MOV P1,#0C0H LCALL DELAY1 MOV P1,#0FFH ;自检毕,灯全灭 MOV 30H,P2 ;输入纵向定时BCD码参数 MOV A,30H ;BCD码参数转换成二进制数 ANL A,#0FH MOV R3,A ;个位送R3暂存 CLR C ;判纵向个位BCD码是否在00H---09H. SUBB A,#0AH JC YBCD1 MOV R3,#09H ;个位BCD码大于09H.按09H处理.YBCD1:MOV A,30H SWAP A ANL A,#0FH ;A中低四位为BCD码十位数 MOV R0,A ;判纵向十位BCD码是否在00H---09H. CLR C SUBB A,#0AH JC YBCD2 MOV R0,#09H ;十位BCD码大于09H.按09H处理.YBCD2:MOV A,R0 MOV B,#10 MUL AB ;A为BCD码十位数转换成的二进制数 ADD A,R3 MOV 30H,A ;纵向BCD码参数转换成的二进制数送回30H单元 MOV 31H,P3 ;输入横向定时BCD码参数 MOV A,31H ;低位,高位转换 RRC A MOV 07H,C RRC A MOV 06H,C RRC A MOV 05H,C RRC A MOV 04H,C RRC A MOV 03H,C RRC A MOV 02H,C RRC A MOV 01H,C RRC A MOV 00H,C MOV 31H,20H ;低位,高位转换完毕. MOV A,31H ;BCD码参数转换成二进制数 ANL A,#0FH MOV R3,A ;个位送R3暂存 CLR C ;判横向个位BCD码是否在00H---09H. SUBB A,#0AH JC YBCD3 MOV R3,#09H ;个位BCD码大于09H.按09H处理.YBCD3:MOV A,31H SWAP A ANL A,#0FH ;A中低四位为BCD码十位数 MOV R0,A ;判横向十位BCD码是否在00H---09H. CLR C SUBB A,#0AH JC YBCD4。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.