资源描述
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
湖北省高等教育自学考试毕业论文
论文题目: 智能交通灯管理系统
主考学校: 武汉大学
专 业: 电子信息工程技术
指导教师: 陈小桥
考生姓名: 魏超
准考证号: 0
工作单位: 武汉职业技术学院
08月 31 日
摘 要
介绍一种基于AT89C51单片机的智能交通灯的设计方法, 模拟定周期交通信号灯的工作状态。该系统经过红外接收器接收信号实现特种车辆自动放行; 经过霍尔车辆检测电路采集路况信号, 经单片机处理后, 分配各车道的绿灯时间, 实现车流动态调节; 左拐、 右拐、 直行及行人的通行指示灯采用了发光二极管, 另外, 还添加了盲人提示声音电路, 方便盲人过人行道; 最后利用KEIL软件和TKS仿真器对交通灯控制系统进行编程和仿真。
关键词: 交通灯; 单片机; KEIL软件; TKS仿真
Abstract
one kind based on the AT89C51 single-chip microcomputer intelligent traffic light design method, simulation of periodic traffic signal lamp working state. The system through the infrared receiver for receiving the signal to achieve special vehicle automatic release by Holzer; vehicle detection circuit collect traffic signal, which is processed by the microcontroller, assigning each lane green time, realize the dynamic regulation; turn left, turn right, go straight and pedestrian traffic indicator lamp using light-emitting diodes, in addition, also added the blind prompt sound circuit, facilitate the blind sidewalk; finally using KEIL software and TKS emulator for traffic light control system programming and simulation。
Key words: traffic lights; single chip microcomputer; KEIL software; TKS simulation
目 录
引言 1
第一章 智能交通灯的总体设计 2
1.1 智能交通灯的通行方案论证 6
1.2 智能交通灯灯系统框图 8
1.3 智能交通灯的工作原理 6
第二章 智能交通灯硬件系统设计 6
2.1 单片机说明 6
2.2 各模块电路 15
2.3 74LS373和TC4511BP简介 8
2.4 八段LED数码管显示电路 6
第三章 智能交通灯软件系统设计 7
3.1 软件设计思路 7
3.2 程序设计流程 8
第四章 智能交通灯控制系统软件调制 14
4.1 TKS仿真器 14
4.2 集成开发环境KEIL 15
4.3系统软件调试 15
小结 18
致谢词 18
参考文献 18
引言
由于中国经济的快速发展从而导致了汽车数量的猛增, 大中型城市的城市交通, 正面临着严峻的考验, 从而导致交通问题日益严重, 其主要表现如下: 交通事故频发, 对人类生命安全造成极大威胁; 交通拥堵严重, 导致出行时间增加, 能源消耗加大; 空气污染和噪声污染程度日益加深等。日常的交通堵塞成为人们司空见惯而又不得不忍受的问题, 在这种条件下, 结合中国城市道路交通的实际情况, 开发出真正适合我们自身特点的智能信号灯控制系统已经成为当前的主要任务。随着电子技术的发展, 利用单片机技术对交通灯进行智能化管理, 已成为当前广泛采用的方法。
本文采用了51系列单片机AT89C51为中心器件设计交通灯控制系统。
第一章 智能交通灯的设计原理
1.1 智能交通灯的方案论证
图2.1.1是一个典型的十字路口示意图。从图中可知:
( 1) 东西方向和南北方向信号灯控制是中心对称的, 即无论是主干道还是支干道两侧系统对同方向的信号灯控制是同步的
( 2) 人行道无论哪个方向, 系统对两侧4个信号灯的控制也是同步的, 且人行道的红绿灯变化和行车道的红绿灯变化应是一致的。
( 3) 经过对上面整体思路分析, 能够用单片机P2口和P0口, 锁存芯片和显示译码芯片的配合来实现控制LED灯和数码管。经过锁存芯片实现单片机口的分时复用, 简单易行, 且编程简单, 能实现数据的快速交换以及单片机的资源利用。
图2.1.1 典型十字路口交通灯示意图
1.2 智能交通灯系统框图
该交通灯控制系统有以下几个部分组成: 车辆检测电路、 特种车转换模块、 单片机、 显示时间电路, 信号灯。系统框图如图1.2所示。
车道红黄绿信号灯
74LS373锁存
上电复位
RST
P0
AT89C51
系统处理
INT1
INT0 P2
自动/手动键
TC4511BP
LED数码管显示
霍尔车检电路
特殊车辆转换模块
人行道红黄绿信号灯
图1.2 系统框图
1.3智能交通灯的工作原理
本系统运用单片机对交通灯控制系统实施控制, 经过直接控制信号灯的状态变化, 指挥交通的具体运行, 运用了LED数码管显示倒计时以提醒行驶者, 更添加了盲人提示音电路, 方便视力障碍群体通行, 更具人性化。在此基础上, 加入了特种车辆自动通行控制模块和霍尔车流量检测电路, 经单片机进行具体处理, 及时调整通行方向。经过P0和P2用做输出显示控制口。P0口经过锁存器芯片74LS373和显示译码器芯片TC4511BP分时复用控制LED数码管实现行车道上红绿灯规律变化。P2口当作普通输出口直接控制人行道红绿灯控制规律变。LED数码管经过静态显示方式实现倒计时读秒。
第二章 智能交通灯硬件设计
2.1 单片机说明
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机, 特别适用于控制领域, 故又称为微控制器。AT89C51单片机是美国ATMEL公司生产的低电压、 高性能CMOS 8位单片机, 具有丰富的内部资源: 4KB闪存、 128BRAM、 32根I/O口线、 2个16位定时/计数器、 5个向量两级中断结构、 2个全双工的串行口, 具有4.25~5.50V的电压工作范围和0~24MHz工作频率, 使用AT89C51单片机时无须外扩存储器。因此, 交通灯实际上就是一个带有八个发光二极管的单片机最小应用系统, 即为由发光二极管、 晶振、 复位、 电源等电路和必要的软件组成的单个单片机。
2.1.1 AT89C51单片机硬件结构
AT89C51是8051系列单片机的典型产品, 是一种带4K字节闪存可编程可擦除只读存储器( FPEROM—Flash Programmable and Erasable Read Only Memory) 的单片机芯片, 它采用静态CMOS 工艺制造8位微处理器, 最高工作频率位24MHZ。AT89C51单片机包含中央处理器, 程序存储器( ROM) , 数据存储器( RAM) , 定时/计算器, 并行接口, 串行接口和中断系统等几大单元及数据总线, 地址总线和控制总线等三大总线, 如图2.1.1所示:
图2.1.1 总线结构
现在说明如下:
( 1) 中央处理器( CPU)
中央处理器( CPU) 是单片机芯片中最复杂, 最核心的智能部件, 是8为数据宽度的处理器, 能处理8位二进制数据或代码。CPU负责控制, 指挥和调度整个单元系统协调的工作, 用于完成运算和控制功能。
( 2) 数据存储器( RAM)
AT89C51内部有256B的数据存储器RAM, 其中有128 个8位数据存储单元和128个专用寄存器, 她们是统一编址的, 专用寄存器只能用于存放控制指令数据, 用户只能访问, 不能用于存放用户数据。
( 3) 存储器( ROM)
AT89C51 内部有4KB的制度程序存储器ROM, 用来存放程序或程序运行过程中不会改变的原始数据
( 4) 中断系统
AT89C51共有5个中断源, 其中2个用于外部中断, 2个用于定时/计时器中断, 1个用于串行口中断。全部中断分为高级和低级2个优先级别。
( 5) 定时/计时器
AT89C51内部有两个16位的定时/计时器T0和T1, 以实现定时或计数产生中断用于控制程序转向。
( 6) 串行接口
AT89C51 内部含有1个全双工串行接口, 以实现单片机和其它设备之间的串行数据传送。
( 7) I/O口
AT89C51内部有4个8位并行I/O端口( P0, P1, P2和P3) , 能够实现数据的并行输入和输出。
( 8) 时钟振荡电路
AT89C51内置最高频率达12Hz的时钟电路, 但石英晶体和微调电容需外接。石英电路可为单片机产生时钟脉冲序列。
2.1.2 AT89C51单片机的管脚说明
AT89C51单片机内部总线是单总线结构, 即数据总线和地址总线是公用的。89C51有40条引脚, 这40条引脚可分为I/O接口线, 电源线, 控制线, 外接晶体线4部分。89C51单片机为双列直插式
封装结构, 引脚如图3.1.2所示
图3.1.2 89C51引脚分配图
VCC: 电源电压。
GND: 接地。
RST: 复位输入端, 高电平有效。
P0口: P0口为一个8位双向I/O口, 每脚可吸收8TTL门电流。P0口即可作地址/数据总线使用, 又能够作为通用的I/O口使用。当CPU访问片外存储器时, P0口分时先作低8位地址总线, 后作双向数据总线, 此时, P0口就不能再作I/O口使用了。在访问期间激活要使用上拉电阻。
P1口: P1口是一个带内部上拉电阻的8位双向I/O口, P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后, 被内部上拉为高, 可用作输入, P1口被外部下拉为低电平时, 将输出电流, 这是由于内部上拉的缘故。
P2口: P2口为一个带有内部上拉电阻的8位双向I/O口, P2口缓冲器可接收, 输出4个TTL门电流, , P2即可作为通用的I/O口使用, 也能够作为片外存储器的高8位地址总线, 与P0口配合, 组成16位片外存储器单元地址。
P3口: P3口是一个带有内部上拉电阻的8 位准双向I/0 口, 可接收输出4个TTL门电流。P3 口除了作为通用的I/O口使用之外, 每个引脚还具有第二功能, 具体分配如表1.
表1 具有第二功能的P3口引脚
端口引脚
第二功能:
P3.0
RXD( 串行输入口)
P3.1
TXD( 串行输出口)
P3.2
/INT0( 外中断0)
P3.3
/ INT1( 外中断1)
P3.4
T0( 定时/计数器0外部输入)
P3.5
T1( 定时/计数器1外部输入)
P3.6
/ WR( 外部数据存储器写选通)
P3.7
/ RD外部数据存储器读选通)
ALE/PROG: 当访问外部程序存储器或数据存储器时, ALE( 地址锁存允许) 的输出电平用于锁存地址的低8地位字节。对F1ash存储器编程期间, 该引脚还用于输入编程脉冲( PROG) 。在平时, ALE 以时钟振荡频率的1/6 输出固定的正脉冲信号。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是: 每当用作外部数据存储器时, 将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX, MOVC指令是ALE才起作用。另外, 该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止, 置位无效。
PSEN: 程序储存允许( PSEN) 输出是外部程序存储器的读选通信号, 当AT89C51 由外部程序存储器取指令( 或数据) 时, 每个机器周期两次PSEN有效, 即输出两个脉冲。当访问外部数据存储器, 没有两次有效的PSEN信号。
EA/VPP: 外部访问允许。当EA保持低电平时, 则在此期间外部程序存储器( 0000H-FFFFH) , 不论是否有内部程序存储器。注意加密方式LB1时, EA将内部锁定为RESET; 当EA端保持高电平时, 此间内部程序存储器。
XTAL1和XTAL2: 反向振荡放大器的输入及内部时钟工作电路的输入。
2.2 各模块电路
2.2.1主控制系统
主控制器采用AT89C51的单片机, AT89C51是美国ATMEL公司生产的低电压、 高性能CMOS 8位单片机, 具有丰富的内部资源: 4KB闪存、 128BRAM、 32根I/O口线、 2个16位定时/计数器、 5个向量两级中断结构、 2个全双工的串行口, 具有4.25~5.50V的电压工作范围和0~24MHz工作频率, 使用AT89C51单片机时无须外扩存储器。
其P0口用于控制LED数码管实现车道红绿灯状态规律变化, P2口用于控制人行道红绿灯状态规律变化, 定时器T0中断来控制交通灯的正常工作。定时器T1中断控制特殊车辆的通行时间; 外部中断INT1用于紧急情况, 流量控制和恢复等, 外部中断INT0用于特种车辆通行处理。
图2.2.1 主控制系统
2.2.2车检测电路
车检测电路作为智能交通系统的基本组成部分, 在智能交通系统中占有重要的低位。为了能够根据交通十字路口双车道车流量自动调节绿灯放行时间, 我们能够在每车道等待线的前方都安装一个霍尔车辆检测传感器, 当有一辆车经过时就会产生一个脉冲电路, 霍尔车辆检测电路如图2.2.2所示。
图2.2.2 车检测电路
2.2.3信号灯电路
信号灯用来显示车辆通行状况, 下面以一个十字路口为例, 说明一个交通灯的四种状态见图2.2.3。每个十字路口的信号灯的的转换顺序为: 绿—>黄—>红。绿灯表示允许通行, 黄灯提示人们注意红、 绿灯的状态即将切换, 而且黄灯燃亮时间为东西方向和南北方向公共停车时间,红灯表示禁止通行。
图2.2.3交通信号灯运行状态
2. 2. 4倒计时显示电路
在交通信号灯的正上方安装一倒计时显示时间, 其主要作用是提醒驾驶员灯色发生变化时, 帮助驾驶员在”停止”和”经过”两者间作出合适的选择。然而, 采用数码管显示电路是一种显示倒计时电路的很好方法。由于东往西方向和西往东方向显示的时间相同, 南往北方向和北往南方向显示的时间也相同, 因此只需要考虑数码管显示电路, 数码管连接方法如图1.2.4所示。
图1.2.4 数码管连接方法
2.2.5紧急转换开关电路
一般情况下交通灯按照车流量大小合理分配通行时间, 按一定规律变化, 但考虑紧急车通行车况, 设计紧急通行开关,。当按下紧急开关键是, 经过外部中断INT1感应, 经过P1.7口软件编程控制, 系统实现车道和人行道红灯全部亮, 禁止一切通行, LED数码管显示”8”。下面简述单片机的中断原理。
1、 Mcs—51的中断源
8051有5个中断源, 它们是两个外中断INT0( P3.2) 和INT1( P3.3) 、 两个片内定时/计数器溢出中断TF0和TF1, 一个是片内串行口中断TI或RI, 这几个中断源由TCON和SCON两个特殊功能寄存器进行控制,其中5个中断源的程序入口地址如表2所示:
表2 中断源程序入口
中断源的服务程序入口地址
中断源
入口地址
外中断0
0003H
定时/计数器0
000BH
外中断1
0013H
定时/计数器0
001BH
串行口中断
0023H
2、 中断的处理流程
CPU响应中断请求后, 就立即转入执行中断服务程序。不同的中断源、 不同的中断要求可能有不同的中断处理方法, 但它们的处理流程一般都如下所述:
1) 现场保护和现场恢复:
中断是在执行其它任务的过程中转去执行临时的任务, 为了在执行完中断服务程序后, 回头执行原先的程序时, 知道程序原来在何处打断的, 各有关寄存器的内容如何, 就必须在转入执行中断服务程序前, 将这些内容和状态进行备份——即保护现场。中断开始前需将有关寄存器的内容压入堆栈进行保存, 以便在恢复原来程序时使用。中断服务程序完成后, 继续执行原先的程序, 就需把保存的现场内容从堆栈中弹出, 恢复积存器和存储单元的原有内容, 这就是现场恢复。 如果在执行中断服务时不是按上述方法进行现场保护和恢复现场, 就会是程序运行紊乱, 单片机不能正常工作。
2) 中断打开和中断关闭:
在中断处理进行过程中, 可能又有新的中断请求到来, 这里规定, 现场保护和现场恢复的操作是不允许打扰的, 否则保护和恢复的过程就可能使数据出错, 为此在进行现场保护和现场恢复的过程中, 必须关闭总中断, 屏蔽其它所有的中断, 待这个操作完成后再打开总中断, 以便实现中断嵌套。
3) 中断服务程序:
既然有中断产生, 就必然有其具体的需执行的任务, 中断服务程序就是执行中断处理的具体内容, 一般以子程序的形式出现, 所有的中断都要转去执行中断服务程序, 进行中断服务。
4) 中断返回:
执行完中断服务程序后, 必然要返回, 中断返回就是被程序运行从中断服务程序转回到原工作程序上来。在MCS-51单片机中, 中断返回是经过一条专门的指令实现的, 自然这条指令是中断服务程序的最后一条指令。
5) 交通灯中的中断处理流程:
( 1) 现场保护和现场恢复:
有特殊车辆要经过时就要进行中断, 在中断之前, 先将交通灯中断前情况保护好, 当中断执行后再恢复现场, 包括信号灯和时间显示电路。
( 2) 中断打开和中断关闭:
为了使特殊车辆通行按一下打开中断开关就能够打开中断, 关闭中断开关就关闭中断。
( 3) 中断服务程序:
有中断产生, 就必然有其具体的需执行的任务, 中断服务程序就是执行中断处理的具体内容: 即如果南北方向有特殊车辆要求经过, 南北方向转换为绿灯, 东西方向为红灯; 如果东西方向有特殊车辆要求经过, 东西方向转换为绿灯, 南北方向为红灯。
( 4) 中断返回:
执行完中断服务程序后, 必然要返回, 即回交通灯信号回到中断前状态, 显示时间也和中断前一样。
2.2.6特种车辆自动通行电路
一般情况下交通灯都按车流量大小分配通行时间, 按固有规律变化, 但有特殊车辆( 如119、 120) 急需通行时, 如何控制呢? 本文中设计紧急通行开关, 当特种车辆到来时能自动关闭所有绿灯, 让特种车辆经过。设计中特种车辆可采用红外线发生器为发信器, 用实时中断来响应特种车的通行要求。接收的红外信号经过内部的集成电路来进行放大、 解调, 由输出端的输出编码脉冲信号经过三极管反相放大送至接收器, 解调模块再进行译码。红外接收器采用的是一体化红外接收器, 具有灵敏度高和抗干扰能力强的性质。红外遥控接收电路原理框图如图2.2.6所示。
信号接收
信号放大
电源驱动
单片机控制
红外接收装置
信号解调
图2.2.6 红外接收原理图
2.2.7盲人提示声音电路
为方便盲人经过行人道, 在道口自动控制系统中设计了声音提示电路, 该声音控制电路与人行道控制灯的绿灯是同步的, 当绿灯亮时响一次, 在结束通行前10s绿灯闪烁,期间盲人提示音会间隔响5次, 每次1s。盲人提示音采用的是悦耳、 柔和的低音。盲人提示音电路如图2.2.7所示。
图2.2.7 盲人提示音电路
2.2.8 电源电路
整个系统采用的是+5V电压, 因此采用不可调的3端稳压器件, 用LM7850就能够满足系统电源的要求。LM7850内部是由基准电压回路、 恒流源、 过流保护、 过压保护和短路保护回路等8部分组成的三端集成稳压电源, 且其低功耗, 高效率, 纹波系数小, 输出电压稳定。
2.3 74LS373和 TC4511BP简介
2.3.1 74LS373简介
74LS373是一种带有三态门的8D锁存器, 本设计应用74LS373作为89C51的P0口地址锁存器, 器管脚示意图如图3.6.2所示
图2.3.1 74LS373锁存器
其中: 0D-7D为8个输入端。
0Q-7Q为8个输出端。
LE为数据输入端: 当LE为”1”时, 锁存器输出状态同输入状态; 当LE由”1”变”0”时, 数据输入锁存器。
OE为输出允许端: 当OE为1时, 三态门打开; 当OE为0时, 三态门关闭, 输出高阻态。
2.3.2 TC4511BP简介
TC4511BP是BCD-七段LED锁存/译码/驱动器。其驱动数码管, 当使能端LE为低电平时, 将加在A、 B、 C、 D端的数据译成段驱动信号, 经限流电阻送到数码管的段控制线上。当使能端LE为高电平时, 驱动信号被锁存在TC4511BP的输出端, 实现静态显示。TC4511BP结构如图2.3.2所示。
图2.3.2 TC4511BP结构图
2.4 八段LED数码管显示电路
一般所说的LED显示器由7个发光二极管组成因此也称之为七段LED显示器, 其排列形状如图2.4所示。另外, 显示器中还有一个圆点型发光二极管( 在图中以dp表示) , 用于显示小数点。经过七个发光二极管亮暗的不同组合, 能够显示多种数字、 字母以及其它符号。LED显示器中的发光二极管共有两种连接方法:
(1) 共阳极接法
把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接+5V。这样阴极端输入低电平的段发光二极管就导通点亮, 而输入高电平的则不点亮。
(2) 共阴极接法
把发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地, 这样阳极端输入高电平的段发光二极管就导通点亮, 而输入低电平的则不点亮。
图2.4 LED显示器结构图
使用LED显示器时要注意区分这两种不同的接法。为了显示数字或符号, 要为LED显示器提供代码, 这些代码是为显示字形的, 因此称之为字形代码。七段发光二极管, 再加上一个小数点位, 共计八段。因此提供给LED显示器的字形代码正好一个字节。各代码位的对应关系如表二。
表二 代码对应关系表
代码位
D7
D6
D5
D4
D3
D2
D1
D0
显示段
dp
g
f
e
d
c
b
A
第三章 智能交通灯软件系统设计
3.1 软件设计思路
软件设计应用单片机C语言编程, 以其较好的可读性和可移植性很好的完成了本次设计任务。程序设计上使用定时器0中断来控制交通灯的正常工作。定时器1中断控制特殊车辆的通行时间; 外部中断INT1用于紧急情况, 流量控制和恢复等, 外部中断INT0用于特种车辆通行处理。
3.2 程序设计流程
3.2.1 定时器T0和T1中断程序
定时器T0中断来控制交通灯的正常工作, 定时器T1中断控制特殊车辆的通行时间。定时器T0和T1中断程序如图3.2.1所示。
图3.2.1 定时器T0和T1中断程序
3. 2. 2 特种车辆自动放行中断服务程序
当有特种车辆经过时, 车中就发射红外线信号, 其信号将被道口控制板上的红外信号接收器接收, 并有一个低电平输出触发外中断。特种车辆自动放行的中断流程图如图3.2.2所示。
N
外中断程序
现场保护
关外中断1
开定时器1
送全红灯, 数据缓存
15s倒计时
结束
关定时器T1, 开外中断1
现场恢复, 中断返回
红灯显示
Y
图3.2.2 特种车辆自动放行的中断流程图
3.2. 3 车辆检测中断服务程序
车辆检测电路主要是测量由于红灯而导致的滞留车队的长度, 因此在红灯结束时读入的车队长度才是真正的滞留车队长度。本文选取红灯还剩2s时读入路况信息。车辆检测中断流程图如图3.2.3所示。
Y
N
中断响应
现场保护
关外中断
东西方向红灯还剩2s时读入该方向的路况
南北方向红灯还剩2s时读入该方向的路况
关定时器, 开外中断
开启定时器
相应方向通行时间增加
中断返回
东西方向车数量=南北方向车数量?
图3.2.3 车辆检测中断流程图
3.2.4 主程序流程图
主程序主要是负责总体程序的管理功能, 实现人与机的交互设定。因为设计采用动态扫描方式显示时间, 因此主程序大部分时间要调用扫描显示程序。主程序流程图如图3.2.4所示。
Y
N
显示程序
开始
P3.7=0 ?
键功能程序
初始化
图3.2.4 主程序流程图
第四章 智能交通灯控制系统的软件调试
4.1 TKS仿真器
仿真的概念其实使用非常广, 最终的含义就是使用可控的手段来模仿真实的情况。单片机系统开发中的仿真包括软件仿真和硬件仿真。
软件仿真这种方法主要是使用计算机软件来模拟实际的单片机运行, 因此仿真与硬件无关的系统具有一定的优点。用户不需要搭建硬件电路就能够对程序进行验证, 特别适合于偏重算法的程序。软件仿真的缺点是无法完全仿真与硬件相关的部分, 因此最终还要经过硬件仿真来完成最后的设计;
硬件仿真使用附加的硬件来替代用户系统的单片机并完成单片机全部或大部分的功能。使用了附加硬件后用户就能够对程序的运行进行控制, 例如单步、 全速、 查看资源断点等。
4.2 集成开发环境KEIL
KEIL IDE Vision2集成开发环境主要由以下部分组成:
( 1) u Vision2 IDE。ision2 IDE包括: 一个工程管理器, 一个功能丰富并有交互式错误提示的编辑器选项设置生成工具, 以及在线帮助。使用vision2创立源文件并组成应用工程加以管理。vision2能够自动完成编译汇编链接程序的操作;
( 2) C51编译器和A51汇编器。Vision2 IDE创立的源文件能够被C51编译器或A51汇编器处理生成可重定位的object文件。KEIL C51编译器遵照ANSI C语言标准支持C语言的所有标准特性, 另外还增加了几个能够直接支持80C51结构的特性。KEIL A51宏汇编器支持80C51及其派生系列的所有指令集;
( 3) LIB51库管理器。B51库管理器能够从由汇编器和编译器创立的目标文件建立目标库, 这些库是按规定格式排列的目标模块, 可在以后被链接器所使用当链接器处理一个库时仅仅使用了库中程序使用了的目标模块而不是全部加以引用;
( 4) BL51链接器定位器。L51链接器使用从库中提取出来的目标模块和由编译器汇编器生成的目标模块创立一个绝对地址目标模块, 绝对地址目标文件或模块包括不可重定位的代码和数据所有的代码和数据都被固定在具体的存储器单元中。
利用KEIL开发和调试系统软件流程大致如下:
( 5) 启动Vision2, 进入KEIL软件的集成开发环境;
( 6) 利用KEIL内置的文本编辑器进行程序源文件的编辑, 因为KEIL集成的文本编辑器对中文支持不是很好, 能够选择其它的编辑器(本文使用的文本编辑器是Ultraedit—32), Vision2能够自动识别外部改变了的源文件;
( 7) 建立工程, 指定针对哪种单片机进行开发, 指定对源程序的编译、 链接参数, 指定调试方式, 然后对工程进行相关设置;
( 8) 设置好工程后即可进行编译、 链接。连接仿真器对软件进行调试。也能够生成下载到单片机存储器上的HEX文件。
4.3 系统软件调试
系统的软件调试借助于TKS仿真器, 在进行系统软件的连续调试之前要先进行软件的初调, 就是要使各个子程序模块运行正确, 程序的运行流程正确。软件调试主要分以下几个步骤进行:
( 1) 功能子程序的调试。能子程序的调试包括运算、 采样、 数字滤波以及PID运算等子程序的调试。在调试功能子程序时, 许多参数都是未知的, 要根据其所需的条件, 给出假定的数据, 使其运行, 如果能完成预定的处理功能或与手工计算的结果相符, 就说明该子程序己调试经过。调试时由小到大, 由里到外。例如, 调试PID算法子程序时, 先调通其包含的各个运算子程序和参数处理子程序, 然后将它们连起来进行通调。通调时, 也是假定一些数据、 参数和初始条件, 然后运行程序。当运算结果与手工计算的结果相同时, 该算法子程序则调试完成, 反之, 就要进行相应的修改。其它子程序的调试同理;
( 2) 程序流程的调试。序流程的调试主要是查看程序运行的步骤是否正确, 在某时刻程序运行所处的位置是否正确, 是否能正确运行各个中断服务程序。在调试过程中, 先将PID算法子程序屏蔽, 输出可控硅导通时间用一个固定的常数代替, 在各个中断服务子程序设置断点, 然后运行程序, 查看程序是否能运行到所有的断点, 若所有断点都能运行到, 则程序流程基本正确。去掉所有断点, 再一次运行程序, 查看可控硅状态, 从而判断程序流程正确, 反之, 若程序流程不正确, 做相应的修改后, 重新调试;
( 3) 功能程序与算法程序的通调。完成整个程序流程的调试后, 将PID等算法子程序加入, 在算法子程序前或后设置断点, 运行整个程序。当程序在断点处暂停时, 查看PID计算的控制量与手工计算的值是否相同。多运行几次, 若每次的结果都正确, 则说明程序各个部分互相没有矛盾, 反之, 则说明算法子程序和其它子程序之间有影响, 需要做相应的修改后重新调。
小 结
经过这次交通灯的课程设计, 使我在单片机的基本原理、 单片机应用学习过程中, 以及在常见C语言编程设计思路技巧的掌握方面都能向前迈了一大步, 为日后成为一名合格的应用型人才打下良好的基础。综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识, 对已有知识有了更深层次的理解和认识。在此, 由于自身能力有限, 在课程设计中碰到了很多的问题, 我经过查阅相关书籍、 资料得到解决。
还有交通灯是我们生活中必不可缺的一部分, 对于我们学以致用的这种能力得到了很好锻炼, 能够为我们以后的工作于学习打下基础。
致谢词
经过本次毕业设计, 在陈老师的精心指导下和严格要求下, 获得了丰富的理论知识, 极大地提高了实践能力。单片机领域对我今后学习电子方面的知识有了极大地帮助, 再次衷心的感谢陈老师的指导和帮助。
参考文献
[1] 蔡伟智.自动调光LED交通灯信号灯[J].国际光宇显示, ;
[2] 吴金戌、 沈庆阳、 郭庭吉 《8051单片机实践与应用》[M].北京: 清华大学出版社, ;
[3] 谢自美 《电子线路设计·实验·测试》( 第三版) [M].武汉: 华中科技大学出版社, ;
[4] 谢维成、 杨加国 主编 《单片机原理与应用及C51程序设计》[M].北京: 清华大学出版社, ;
[5] 杨立、 邓振杰、 荆淑霞 《微型计算机原理与接口技术》[M].中国铁道出版社, ;
[6] 黄智伟 《全国大学生电子设计竞赛技能训练》 [M].北京: 北京航空航天大学出版社,
[7] 高峰, 《单片微型计算机与接口技术》[M].北京: 科学出版社, ;
[8] 黄海萍、 陈用昌 编 《微机原理与接口技术实验指导》[M].北京: 国防工业出版社,
展开阅读全文