基于51单片机的交通信号灯模拟控制系统设计.doc

上传人:hw****26 文档编号:4141204 上传时间:2019-09-29 格式:DOC 页数:39 大小:721KB
下载 相关 举报
基于51单片机的交通信号灯模拟控制系统设计.doc_第1页
第1页 / 共39页
基于51单片机的交通信号灯模拟控制系统设计.doc_第2页
第2页 / 共39页
基于51单片机的交通信号灯模拟控制系统设计.doc_第3页
第3页 / 共39页
基于51单片机的交通信号灯模拟控制系统设计.doc_第4页
第4页 / 共39页
基于51单片机的交通信号灯模拟控制系统设计.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、XXXXX 学院毕业设计 XXXX 学院 毕业设计(论文) 课题名称 交通信号灯模拟控制系统 学生姓名 X X X 学 号 XXXXXXXXXXXXX 系 别 自动化工程系 专业班级 机电一体化 X 班 指导教师 X X 技术职务 讲 师 XXXXXX 学院教务处制 XXXXX 学院毕业设计 XXXXX 学院毕业设计(论文)任务书 学生姓名 XXX 学 号 XXXXXXXXXXX 指导教师 XXX 技术职务 讲师 课题名称 基于 51 单片机设计交通信号灯模拟控制系统 课 题 内 容 用 51 单片机设计一个十字路口的红、绿、黄交通信号灯控制系统,要求如 下: 1、用红、绿、黄三色发光二极管作

2、信号灯。只考虑一条道路相对的两个方 向,每个方向有红、绿、黄三个灯。红灯亮禁止通行,绿灯亮允许通行, 每隔 30 秒红绿灯交替变化。在每次由绿灯亮变成红灯亮或者由红灯亮变成 绿灯亮的交替变化转换时要求黄灯闪烁 5 秒,给行驶中的车辆有时间停靠 到禁行线之外; 2、能实现正常的计时显示功能。用倒计时方法显示红灯、绿灯、黄灯还需 亮的时间; 3、能实现控制器总清零功能。 按下某个键后,系统实现总清零,计数器 由初始状态开始计数,对应状态的指示灯亮。 相 关 要 求 1)有完整的硬件检测电路 2)有必要的程序流程图与单片机系统设计 3)上位机程序的编写或规划 4)要求格式正确,模块完整 第五学期 第

3、 2 周 学生完成设计开题报告 第五学期 第 3-5 周 学生完成毕业设计初稿,指导教师给予修改建议。 第五学期 第 6-16 周 学生全部完成毕业设计,并上交给指导教师。 第六学期 第 4 周 指导教师完成毕业设计(论文)评阅,指导教师完成毕业设计评阅, 进 度 安 排 第六学期 7-11 周 各系对毕业设计进行抽答辩和评定成绩。并将最后评定的 成绩登录上网。 指导教师:XXX 2016 年 9 月 5 日 XXXXX 学院毕业设计 XXXXX 学院毕业设计(论文)开题报告 学生姓名 XXX 学 号 XXXXXXXXXXX 系 别 自动化工程系 专业班级 机电一体化技术 X 班 指导教师 X

4、XX 技术职务 讲师 课题名称 基于 51 单片机设计交通信号灯模拟控制系统 阅读中外 文献资料 情况 1 李亚伯等编著,数字电路与系统,北京:电子工业出版社,2001 年 6 月 出版 130-150 2 李双庆等编著,常用半导体器件简明手册,北京:电子工业出版社,1989 年 6 月出版 53-84 3 徐建仁主编,数字集成电路应用与实验,长沙:国防科技大学出版社, 1990 年 2 月出版, 66-123 4 郝鸿安编著,常用数字集成电路应用手册,北京:中国计量出版社,1987 年 10 月出版, 153-197 立题依据 及主要内 容 在当今电子信息发达的时代,在各界领域都能发现各种单

5、片机控制系统的 应用,如:工厂、火车站、医院可想而知单片机控制系统的实用性、广 泛性,单片机控制系统不仅成本低、体积小、应用简便等优点,而且便于更换。 基于 AT89C51 单片机的性能参数和工作原理,应用 Keil 单片机编译软件的 C 语言编程以及使用该软件开发单片机程序,说明设计的交通信号灯模拟控制系 统的工作原理、程序流程和硬件结构等相关技术,指出该系统的特点。 设计方案 或论文提 纲 设计一种基于 AT89C51 超低功耗单片机的交通信号灯模拟控制系统,详细 阐明交通信号灯模拟控制系统的工作原理,实现了一般交通信号灯控制系统的 主要功能及要求,具有实用性。 而以一般情况下的交叉十字路

6、口的交通情况为背景,设计并介绍一种通用性很 强的交通信号灯模拟控制系统,最终完成系统的仿真达到了设计目标。 毕业设计 (论文) 工作计划 2016 年 9 月份确定选题、9 月 20 号完成初稿、9 月 30 号交给指导老师进行考 核修正、10 月下旬再将修改设计交给指导老师评定 指导教师 审核意见 指导教师签字: 年 月 日 XXXXX 学院毕业设计 用 51 单片机设计交通信号灯模拟控制系统 机电一体化 X 班 XXX 指导老师:XXX 摘要:城市交通信号灯模拟控制系统模拟了能够对信号灯进行远程投时的城市十字路口控制系统功能。 借助于单片机开发板上的已有资源,构建了模拟实际系统功能的单片机

7、扩 N82C55 控制 LED 灯模块、8 位七段数码管显示控制模块和板上扩展接线模块。在分析实际系统工作流程的基础上,给出了针对单 片机开发板的模拟系统 C51 控制程序流程。用于实际系统时,只需要将代码移植到现场设备并进行具 体设置和适当修改即可,可以在满足客户需求的前提下最小化系统开发成本。 交通信号灯模拟控制系统模拟了能够对信号灯进行远程授时的城市十字路口控制系统功能。基于 AT89C51 单片机的性能参数和工作原理,应用 Keil 单片机编译软件的 C 语言编程以及使用该软件开发 单片机程序,说明设计的交通信号灯模拟控制系统的工作原理、程序流程和硬件结构等相关技术,指 出该系统的特点

8、。设计一种基于 AT89C51 超低功耗单片机的交通信号灯模拟控制系统,详细阐明了交 通信号灯模拟控制系统的工作原理,实现了一般交通信号灯控制系统的主要功能及要求,具有实用性。 该系统充分利用了 AT89C51 单片机的特点,使用现今单片机广泛采用的 C 语言编制了系统程序,并利 用 Keil uVision3 软件进行编译运行,最终通过 Proteus 完成了模拟控制系统的仿真。 关键词:AT89C51 单片机 Keil 单片机编译软件 仿真软件 Proteus 6 C 语言 交通灯 XXXXX 学院毕业设计 XXXXX 学院毕业设计(论文)指导记录表 学生姓名 XXX 学 号 XXXXXX

9、XXXXX 系 别 自动化工程工程系 专业班级 2014 级机电一体化 X 班 指导教师 XXX 技术职务 讲师 课题名称 基于 51 单片机设计交通信号灯模拟控制系统 第一次 指导情况 指导教师签字: 年 月 日 第二次 指导情况 指导教师签字: 年 月 日 注:指导情况须填明学生在毕业设计(论文)撰写过程中存在的问题,指导教师要求修 改的内容或改进措施。指导情况填写不包括下达任务书和开题报告意见。 XXXXX 学院毕业设计 XXXXX 学院毕业设计(论文)初评成绩表 学生姓名 XXX 学 号 XXXXXXXXXXX 系 别 自动化工程系 专业班级 2014 级机电一体化 X 班 指导教师

10、XXX 技术职务 讲师 课题名称 基于 51 单片机设计交通信号灯模拟控制系统 评 语: 指导教师签字: 年 月 日 指导教 师意见 初评成绩: 指导教师签字: 年 月 日 XXXXX 学院毕业设计 XXXXX 学院毕业设计(论文)成绩评定表 学生姓名 XXX 学 号 XXXXXXXXXXX 系 别 自动化工程系 专业班级 2014 级机电一体化 X 班 指导教师 XXX 技术职务 讲师 课题名称 基于 51 单片机设计交通信号灯模拟控制系统 评阅 教师 意见 评阅评语: 评阅成绩: 评阅教师签字: 年 月 日 答辩 小组 意见 答辩评语: 答辩成绩: 答辩小组成员签字: 年 月 日 系毕业设

11、 计(论文) 评审委员 会意见 评定成绩 系毕业设计(论文)评审委员会主任签字: 年 月 日 XXXXX 学院毕业设计 目 录 引言 1 1AT89C51 单片机的性能参数和工作原理 2 1.1AT89C51 单片机的简要介绍 2 1.1.1 8051 单片机的基本结构 2 1.1.2 51 单片机管脚说明 4 1.1.3 各端口工作原理讲解 6 1.1.4 51 单片机的时钟及复位 .10 1.2定时器、计数器的基本结构及工作原理 .13 2基于 Keil 单片机编译软件的 C 语言编程以及使用该软件开发单片机程序的方法 .14 2.1 基于 Keil 单片机编译软件的 C 语言编程 14

12、2.1.1 Keil 单片机编译软件的简单介绍 .14 2.1.2 Keil 单片机编译软件的使用 .14 3交通信号灯模拟控制系统的工作原理、程序流程和硬件结构介绍 18 3.1交通信号灯模拟控制系统的工作原理的讲解 .18 3.2交通信号灯模拟控制系统的硬件结构介绍 .18 4交通信号灯模拟控制系统的工作测试仿真介绍 20 4.1仿真软件 Proteus 6 简介 .20 4.2交通信号灯模拟控制系统的工作测试仿真 .20 4.2.1 控制系统程序分析 .20 结论 .29 致谢: .30 参考文献: .31 1 引言 2005年最新统计数据表明,在中国每5分钟就有一人丧身车轮,每一分钟都

13、会有一人因 为交通事故儿伤残。每年因交通事故所造成的的经济损失达数百亿元。为了减少交通事故, 如今交通红绿灯已经安装在各个交通路口上,已经成为疏导交通车辆最常见和最有效的手 段。但这一技术在19世纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光 源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。 1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界 上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色 表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。电气启动的红绿灯 出现在美

14、国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街 的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。1918年,又出现了带控制的 红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红 灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变 为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红 外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故 本文以一般情况下的交叉十字路口的交通情况为背景,设计并介绍一种通用性很强的 交通信号灯模拟控制系统,最终完成系统的仿真达到了设计目

15、标。系统的核心是AT89C51超 低功耗单片机,利用Keil软件进行控制程序的开发来对交通信号灯模拟控制系统的模拟及 控制。文中详细阐述了AT89C51单片机的性能参数和工作原理,并介绍了基于Keil单片机编 译软件的C语言编程以及使用该软件开发单片机程序的方法,说明了设计的交通信号灯模拟 控制系统的工作原理、程序流程和硬件结构等相关技术,指出了该系统的特点。另外,文 中还简单介绍了电子仿真软件Proteus 6的特点及使用方法。 2 1 AT89C51 单片机的性能参数和工作原理 1.1 AT89C51 单片机的简要介绍 微控制器是交通信号灯模拟控制系统的核心,它完成对模拟信号的输入接受处理

16、和控 制信号的输出控制外部设备的功能。AT89系列单片机是通用性强、功耗小、使用广泛、性 能优良的微处理芯片。考虑本设计的具体设计要求,选择AT89C51单片机作为控制核心,它 是高性能8位微处理芯片,兼容MCS-51,具有4KB的FLASH存储空间,32个全双工可编程I/O 口,两个16位的定时器/计数器以及6个中断源等特点,大大的简化了系统设计。 1.1.1 8051 单片机的基本结构 在介绍单片机的内部结构之前,我们先了解下我们现在正在使用的计算机五个组成部 分: 运算器:用于实现算术和逻辑运算。计算机的运算和处理都在这里进行; 控制器:是计算机的控制指挥部件,使计算机各部份能自动协调的

17、工作; 存储器:用于存放程序和数据;(又分为内存储器和外存储器,内存储器就如我们电脑的 硬盘,外存储器就如我们的 U 盘) 输入设备:用于将程序和数据输入到计算机(例如我们电脑的键盘、扫描仪); 输出设备:输出设备用于把计算机数据计算或加工的结果以用户需要的形式显示或保存 (例如我们的打印机)。 注:1、通常把运算器和控制器合在一起称为中央处理器(Central Processing Unit),简 称 CPU。 2、通常把外存储器、输入设备和输出设备合在一起称之为计算机的外部设备。 3 典型系列单片机是由下图所示的器件组成的: 1 中央处理器(CPU): 刚刚讲过,需要提醒的是 MCS-51

18、 的 CPU 能处理 8 位二进制数或代码; 2 内部数据存储器(RAM): 8051 芯片共有 256 个 RAM 单元,其中后 128 单元被专用寄存器占用(稍后我们详解),能 作为寄存器供用户使用的只是前 128 单元,用于存放可读写的数据。因此通常所说的内部 数据存储器就是指前 128 单元,简称内部 RAM。地址范围为 00HFFH(256B)。是一个多用 多功能数据存储器,有数据存储、通用工作寄存器、堆栈、位地址等空间。 3 内部程序存储器(ROM): 在前面也已讲过,8051 内部有 4KB 的 ROM,用于存放程序、原始数据或表格。因此称之为 程序存储器,简称内部 RAM。地址

19、范围为 0000HFFFFH(64KB)。 4 定时器/计数器 8051 共有 2 个 16 位的定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对 计算机进行控制。定时时靠内部分频时钟频率计数实现,做计数器时,对 P3.4(T0)或 P3.5(T1)端口的低电平脉冲计数。 5 并行 I/O 口 MCS-51 共有 4 个 8 位的 I/O 口(P0、P1、P2、P3)以实现数据的输入输出。 4 6 串行口 MCS-51 有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口 功能较强,既可作为全双工异步通信收发器使用,也可作为移位器使用。RXD( P3.0)脚 为

20、接收端口,TXD(P3.1)脚为发送端口。 7 中断控制系统 MCS-51 单片机的中断功能较强,以满足不同控制应用的需要。共有 5 个中断源,即外中断 2 个,定时中断 2 个,串行中断 1 个,全部中断分为高级和低级共二个优先级别。 8 时钟电路 MCS-51 芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时 钟脉冲序列。系统允许的晶振频率为 12MHZ。 1.1.2 51 单片机管脚说明 MCS-51 是标准的 40 引脚双列直插式集成电路芯片,引脚分布请参照-单片机引脚图: l P0.0P0.7 P0 口 8 位双向口线(在引脚的 3932 号端子)。 l P1

21、.0P1.7 P1 口 8 位双向口线(在引脚的 18 号端子)。 l P2.0P2.7 P2 口 8 位双向口线(在引脚的 2128 号端子)。 l P3.0P3.7 P2 口 8 位双向口线(在引脚的 1017 号端子)。 这 4 个 I/O 口具有不完全相同的功能,需要不同等待。 P0 口有三个功能: 1、外部扩展存储器时,当做数据总线(如图 1 中的 D0D7 为数据总线接口) 2、外部扩展存储器时,当作地址总线(如图 1 中的 A0A7 为地址总线接口) 3、不扩展时,可做一般的 I/O 使用,但内部无上拉电阻,作为输入或输出时应在外部接上 拉电阻。 5 P1 口只做 I/O 口使用

22、:其内部有上拉电阻。 P2 口有两个功能: 1、扩展外部存储器时,当作地址总线使用 2、做一般 I/O 口使用,其内部有上拉电阻; P3 口有两个功能: 除了作为 I/O 使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置, 具体功能请参考我们后面的引脚说明。 有内部 EPROM 的单片机芯片(例如 8751),为写入程序需提供专门的编程脉冲和编程电源, 这些信号也是由信号引脚的形式提供的, 即:编程脉冲:30 脚(ALE/PROG) 编程电压(25V):31 脚(EA/Vpp)。 ALE 地址锁存控制信号:在系统扩展时,ALE 用于控制把 P0 口的输出低 8 位地址送锁 存器

23、锁存起来,以实现低位地址和数据的隔离。参见图 2(8051 扩展 2KB EEPROM 电路,在 图中 ALE 与 4LS373 锁存器的 G 相连接,当 CPU 对外部进行存取时,用以锁住地址的低位地 址,即 P0 口输出。 由于 ALE 是以晶振六分之一的固定频率输出的正脉冲,当系统中未使用外部存储器时,ALE 脚也会有六分之一的固定频率输出,因此可作为外部时钟或外部定时脉冲使用 PSEN 外部程序存储器读选通信号:在读外部 ROM 时 PSEN 低电平有效,以实现外部 ROM 单元的读操作。 1、内部 ROM 读取时,PSEN 不动作; 2、外部 ROM 读取时,在每个机器周期会动作两次

24、; 3、外部 RAM 读取时,两个 PSEN 脉冲被跳过不会输出; 6 4、外接 ROM 时,与 ROM 的 OE 脚相接。 EA/VPP 访问和序存储器控制信号 1、接高电平时: CPU 读取内部程序存储器(ROM) 扩展外部 ROM:当读取内部程序存储器超过 0FFFH(8051)1FFFH(8052)时自动读取外部 ROM。 2、接低电平时:CPU 读取外部程序存储器(ROM)。 3、8751 烧写内部 EPROM 时,利用此脚输入 21V 的烧写电压。 RST 复位信号:当输入的信号连续 2 个机器周期以上高电平时即为有效,用以完成单片机 的复位初始化操作。 XTAL1 和 XTAL2

25、 外接晶振引脚。当使用芯片内部时钟时,此二引脚用于外接石英晶体和微 调电容;当使用外部时钟时,用于接外部时钟脉冲信号。 VCC:电源+5V 输入 VSS:GND 接地。 1.1.3 各端口工作原理讲解 P0 端口: 总线 IO 端口,双向,三态,数据地址分时复用,该端口除用于数据的输入输出外,在 8031 单片机外接程序存储器时,还分时地输出输入地址指令。由 Po 端口输出的信号 无锁存,输入的信息有读端口引脚和读端口锁存器之分。P0 端口 8 位中的一位结构图见下 图: 7 由上图可见,P0 端口由锁存器、输入缓冲器、切换开关与相应控制电路、场效应管驱动电 路构成。 在输出状态下,当切换开关

26、 MUX 向下时,从内部总线来的数据经锁存器反相和场效应管 T2 反相,输出到端口引脚线上。此时,场效应管 T1 关断,因而这种输出方式应为外接上拉电 阻的漏极开路式。当切换开关 MUX 向上时,一位地址数据信号分时地输出到端口线上。 此外,由 T1、T2 的通断组合,形成高电平、低电平与高阻浮动三态的输出。 在输入状态下,从锁存器和从引脚上读来的信号一般是一致的,但也有例外。例如,当从 内部总线输出低电平后,锁存器 Q0,Q1,场效应管 T2 开通,端口线呈低电平状态。 此时无论端口线上外接的信号是低电乎还是高电平,从引脚读入单片机的信号都是低电平, 因而不能正确地读入端口引脚上的信号。又如

27、,当从内部总线输出高电平后,锁存器 Q1,Q0,场效应管 T2 截止。如外接引脚信号为低电平,从引脚上读入的信号就与从锁 存器读入的信号不同。为此,8031 单片机在对端口 P0 一 P3 的输入操作上,有如下约定: 为此,8051 单片机在对端口 P0 一 P3 的输入操作上,有如下约定:凡属于读-修改-写方式 的指令,从锁存器读入信号,其它指令则从端口引脚线上读入信号。 P1 端口: 通用 I0 端口,准双向静态口。输出的信息有锁存,输入有读引脚和读锁存器之分。P1 端口的一位结构见下图. 由图可见,P1 端口与 P0 端口的主要差别在于,P1 端口用内部上 拉电阻 R 代替了 P0 端口

28、的场效应管 T1,并且输出的信息仅来自内部总线。由内部总线输 出的数据经锁存器反相和场效应管反相后,锁存在端口线上,所以,P1 端口是具有输出锁 存的静态口。 由下图可见,要正确地从引脚上读入外部信息,必须先使场效应管关断,以便由外部输入 PO 口的结构及工作原理 8 的信息确定引脚的状态。为此,在作引脚读入前,必须先对该端口写入 l。具有这种操作 特点的输入输出端口,称为准双向 IO 口。8031 单片机的 P1、P2、P3 都是准双向口。 P0 端口由于输出有三态功能,输入前,端口线已处于高阻态,无需先写入 l 后再作读操作。 单片机复位后,各个端口已自动地被写入了 1,此时,可直接作输入

29、操作。如果在应用端 口的过程中,已向 P1 一 P3 端口线输出过 0,则再要输入时,必须先写 1 后再读引脚,才 能得到正确的信息。此外,随输入指令的不同,H 端口也有读锁存器与读引脚之分。 Pl 端口是 803l 单片机中唯一仅有的单功能 IO 端口,并且没有特定的专用功能,输出信 号锁存在引脚上,故又称为通用静态口。 P2 端口: P2 端口的一位结构见下图: 由图可见,P2 端口在片内既有上拉电阻,又有切换开关 MUX,所以 P2 端口在功能上兼有 P0 端口和 P1 端口的特点。这主要表现在输出功能上,当切换开关 MUX 向左时,从内部总 P1 口功能结构图 P2 端口功能结构图 9

30、 线输出的一位数据经反相器和场效应管反相后,输出在端口引脚线上;当 MUX 向右时,输 出的一位地址信号也经反相器和场效应管反相后,输出在端口引脚线上。由于 8031 单片机 必须外接程序存储器才能构成应用电路,而 P2 端口就是用来周期性地输出从外存中取指令 的地址(高 8 位地址),因此,P2 端口的切换开关 MUX 总是在进行切换,分时地输出从内部 总线来的数据和从地址信号线上来的地址。因此 P2 端口是动态的 IO 端口。输出数据虽 被锁存,但不是稳定地出现在端口线上。其实,这里输出的数据往往也是一种地址,只不 过是外部 RAM 的高 8 位址。在输入功能方面,P2 端口与 P0 和

31、H 端口相同,有读引脚和读 锁存器之分,并 P2 端口也是准双向口。 P3 端口: 双功能静态 IO 口 P3 端口的一位结构见下图: 由上图可见,P3 端口和 Pl 端口的结构相似,区别仅在于 P3 端口的各端口线有两种功能选 择。当处于第一功能时,第二输出功能线为 1,此时,内部总线信号经锁存器和场效应管 输入输出,其作用与 P1 端口作用相同,也是静态准双向 IO 端口。当处于第二功能时, 锁存器输出 1,通过第二输出功能线输出特定的内含信号,在输入方面,即可以通过缓冲 器读入引脚信号,还可以通过替代输入功能读入片内的特定第二功能信号。由于输出信号 锁存并且有双重功能,故 P3 端口为静

32、态双功能端口。 P3 口的特殊功能(即第二功能): 口线 第二功能 信号名称 P3.0 RXD 串行数据接收 P3 口功能结构图 10 P3.1 TXD 串行数据发送 P3.2 INT0 外部中断 0 申请 P3.3 INT1 外部中断 1 申请 P3.4 T0 定时器/计数器 0 计数输入 P3.5 T1 定时器/计数器 1 计数输入 P3.6 WR 外部 RAM 写选通 P3.7 RD 外部 RAM 读选通 使 P3 端品各线处于第二功能的条件是: 1串行 I/O 处于运行状态(RXD,TXD); 2打开了处部中断(INT0,INT1); 3定时器/计数器处于外部计数状态(T0,T1) 4

33、执行读写外部 RAM 的指令(RD,WR) 在应用中,如不设定 P3 端口各位的第二功能(WR,RD 信叼的产生不用设置),则 P3 端口线自 动处于第一功能状态,也就是静态 IO 端口的工作状态。在更多的场合是根据应用的需要, 把几条端口线设置为第二功能,而另外几条端口线处于第一功能运行状态。在这种情况下, 不宜对 P3 端口作字节操作,需采用位操作的形式。 1.1.4 51 单片机的时钟及复位 单片机的时钟信号用来提供单片机片内各种微操作的时间基准,复位操作则使单片机的片 内电路初始化,使单片机从一种确定的初态开始运行。 时钟电路: 8051 单片机的时钟信号通常用两种电路形式得到:内部振

34、荡方式和外部振荡方式。 在引脚 XTAL1 和 XTAL2 外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。 由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振 荡时钟脉冲。内部振荡方式的外部电路如下图所示。 11 图中,电容器 Col,C02 起稳定振荡频率、快速起振的作用,其电容值一般在 5-30pF。晶 振频率的典型值为 12MH2,采用 6MHz 的情况也比较多。内部振荡方式所得的时钟情号比较 稳定,实用电路中使用较多。 外部振荡方式是把外部已有的时钟信号引入单片机内。这种方式适宜用来使单片机的时钟 与外部信号保持同步。外部振荡方式的外部电路如

35、下图所示。 由上图可见,外部振荡信号由 XTAL2 引入,XTAL1 接地。为了提高输入电路的驱劝能力, 通常使外部信号经过一个带有上拉电阻的 TTL 反相门后接入 XTAL2。 基本时序单位: 单片机以晶体振荡器的振荡周期(或外部引入的时钟周期)为最小的时序单位,片内的各种 微操作都以此周期为时序基准。 振荡频率二分频后形成状态周期或称 s 周期,所以,1 个状态周期包含有 2 个振荡周期。 振荡频率 foscl2 分频后形成机器周期 MC。所以,1 个机器周期包含有 6 个状态周期或 12 个振荡周期。1 个到 4 个机器周期确定一条指令的执行时间,这个时间就是指令周期。 8031 单片机

36、指令系统中,各条指令的执行时间都在 1 个到 4 个机器周期之间。 4 种时序单位中,振荡周期和机器周期是单片机内计算其它时间值(例如,波特率、定时器 的定时时间等)的基本时序单位。下面是单片机外接晶振频率 12MHZ 时的各种时序单位的大 小: 振荡周期1/fosc=1/12MHZ=0.0833us 内部振荡方式 外部振荡方式 12 复位电路: 当 MCS-5l 系列单片机的复位引脚 RST(全称 RESET)出现 2 个机器周期以上的高电平时, 单片机就执行复位操作。如果 RST 持续为高电平,单片机就处于循环复位状态。 根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位

37、。 上电复位要求接通电源后,自动实现复位操作。常用的上电复位电路如下图 A 中左图所 示。图中电容 C1 和电阻 R1 对电源十 5V 来说构成微分电路。上电后,保持 RST 一段高电平 时间,由于单片机内的等效电阻的作用,不用图中电阻 R1,也能达到上电复位的操作功能, 如下图(A)中右图所示。 上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关 操作也能使单片机复位。常用的上电或开关复位电路如上图(B)所示。上电后,由于电容 C3 的充电和反相门的作用,使 RST 持续一段时间的高电平。当单片机已在运行当中时,按 下复位键 K 后松开,也能使 RST 为一段时间的高

38、电平,从而实现上电或开关复位的操作。 根据实际操作的经验,下面给出这两种复位电路的电容、电阻参考值。 上图(A)中:Cl10-30uF,R11kO 上图 127(B)中:C:1uF,RllkO,R210kO 单片机的复位电路 A:上电复位 B:上电或开关复位电路 13 单片机复位后的状态: 单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器 PC0000H,这 表明程序从 0000H 地址单元开始执行。单片机冷启动后,片内 RAM 为随机值,运行中的复 位操作不改变片内 RAM 区中的内容,21 个特殊功能寄存器复位后的状态为确定值。 1.2 定时器、计数器的基本结构及工作原理 本设

39、计中应用了定时器 0(T0)用于计时,因此这里有必要介绍一下定时器、计数器 的基本结构及工作原理。 定时器、计数器 定时器计数器简称定时器,其作用主要包括产生各种时标间隔、记录外部事件的数 量等,是微机中最常用、最基本的部件之一。803l 单片机有 2 个 16 位的定时器计数器: 定时器 0(T0)和定时器 1(T1)。 T0 由 2 个定时寄存器 TH0 和 TL0 构成,T1 则由 TH1 和 TL1 构成,它们都分别映射在特殊功 能寄存器中,从而可以通过对特殊功能寄存器中这些寄存器的读写来实现对这两个定时器 的操作。作定时器时,每一个机器周期定时寄存器自动加 l,所以定时器也可看作是计

40、量 机器周期的计数器。由于每个机器周期为 12 个时钟振荡周期,所以定时的分辨率是时钟振 荡频率的 112。作计数器时,只要在单片机外部引脚 T0(或 T1)有从 1 到 0 电平的负跳变, 计数器就自动加 1。计数的最高频率一般为振荡频率的 l24。 14 2 基于 Keil 单片机编译软件的 C 语言编程以及使用该软件 开发单片机程序的方法 2.1 基于 Keil 单片机编译软件的 C 语言编程 2.1.1 Keil 单片机编译软件的简单介绍 基于8051的编程语言通常有两种:一种是汇编语言,另一种就是C语言了。汇编语言生 成的机器代码效率很高但是可读性不强,复杂一点的程序更是难读,而C语

41、言在大多数情况 下其机器代码效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C语言 还允许嵌入汇编语言代码来解决少数的高时效性代码编写问题。因此,本设计中采用C语言 来进行系统控制程序代码的编写。 使用C语言肯定要使用到C语言编译器了,以便把写好的C程序编译生成为可执行的机器 码。本设计所采用的Keil uVision3是众多单片机应用开发软件当中的优秀软件之一,在国 内外有广泛的使用范围,它支持众多不同公司的MCS51架构芯片,集编辑、编译和仿真等于 一体,同时还支持PLM、汇编和C语言的程序设计,它的界面友好,易学易用,在调试仿真 各方面都拥有强大的功能。 2.1.2 Kei

42、l 单片机编译软件的使用 按以下步骤可以建立基于 89C51 的 C 语言程序项目: 第一步:打开运行 Keil uVision3 软件,点击 Project 菜单,选择 New Project,接着 弹出创建新项目对话框,输入项目名称后点击保存即可,如下图所示: 15 第二步:选取芯片。在弹出对话框中选取所要的芯片,这里选择 Ateml 公司的 AT89C51 单片机。如下图所示: 第三步:在项目中加入程序文件,这里是加入 C 语言(.c)文件,如果没有现有的文 件则可以选择新建。如下图所示: 16 第四步:现在在项目中如果已经是写好的程序就可以开始编译了,编译之前还要配置 一下输出文件的格

43、式(.hex)。如下图所示: 17 第五步:最终生成的 HEX 文件就可以烧写到芯片内用做控制使用了。 18 3 交通信号灯模拟控制系统的工作原理、程序流程和硬件 结构介绍 3.1 交通信号灯模拟控制系统的工作原理的讲解 现今的社会快速发展,随着我国改革开放的不断深入,我国的经济迅猛发展,人民的 生活水平持续提高,现代的交通工具越来越多尤其是机动车辆的数量急剧增长,由此带来 了我国城市交通情况恶化,大一点的城市交通堵塞、交通事故频有发生,因此, 改善城市 交通情况是我们面临的一项严峻而由紧迫的问题。 采用现代的交通信号指示系统对于改善交通问题有很大的帮助,这套系统由于长期的 使用而不断得到完善

44、技术方面已经相当成熟了,它在各国的道路交通系统上都有着广泛的 应用。我国建立起现代的交通系统较晚,在有的方面还是不够完善和成熟,所以,对于交 通信号指示系统的试验和改进是有一定的必要性的,这将对我国的城市交通情况持续改善 有极大裨益。 本设计要求使用8051单片机设计一交通信号灯模拟控制系统,通过建立模拟系统可以 在低廉的成本、直接的观测性和极大的灵活性基础上对交通系统进行持续的模拟试验和改 进,使实际的道路交通指示系统不断完善。本文中,笔者是按最常见的A、B道交叉组成十 字路口(A是主道,B是支道)红黄绿指示灯系统来建立模型的,并且根据实际情况对该模 型赋予如下的特点: (1)正常情况下A、

45、B道(A、B道交叉组成十字路口,A是主道,B是支道)轮流放行, A道放行1分钟(其中5秒用于警告),B道放行30秒(其中5秒用于警告)。 (2)一道有车而另一道无车(用按键开关 K1、K2 模拟)时,使有车车道放行。 (3)有紧急车辆通过(用按键开关 K0 模拟)时,A、B 道均为红灯。 以上也可认为是该设计的设计要求,所设计的模拟系统就必须严格按照这些要求来工 作运行。 3.2 交通信号灯模拟控制系统的硬件结构介绍 本设计采用AT89C51作为系统控制核心,外接12M的晶振电路,使用3组按键开关K0、K1 和K2分别模拟作为紧急车辆通过指示开关、主道状态指示开关和支道状态指示开关,具体 19

46、 硬件结构图如下图所示。 在本设计中,由P1.0、P1.1和P1.2来分别接3组按键开关K0、K1和K2用来检测模拟信号 的输入,使用P3.0、P3.1和P3.2分别来输出控制信号控制主道信号的各组指示灯,用 P2.0、P2.1和P2.2分别来输出控制信号控制支道信号的各组指示灯。在结构图中,还另外 接入了时间指示表来用来计时。 20 4 交通信号灯模拟控制系统的工作测试仿真介绍 4.1 仿真软件 Proteus 6 简介 PROTEUS系统包括ISIS.EXE(电路原理图设计、电路原理仿真),ARES.EXE(印刷电路 板设计)两大主要程序三大基本功能。其中最令人称赞的是电路原理仿真功能,除

47、了普通 分离器件、小规模集成器件的仿真功能以外,还具有多种带有CPU的可编程序器件的仿真功 能,如51系列、68系列、PIC系列等;具有多种总线、储存器、RS232终端仿真功能;具有 电动机、液晶显示器等特殊器件的仿真功能;对可编程序器件可以灵活地外挂各种编译、 编辑工具,使用非常方便。具有多种虚拟仪器帮助完成实时仿真调试;具有传输特性、频 率特性、电压波动分析、噪声分析等多种图形分析工具、可以完成电路参数和可靠性分析。 可以完成: 电路原理实验(电阻、电容、电感、开关、继电器、电机、指示灯等) 模拟电子技术实验(二极管、三极管、场效应管、晶闸管、光电管、运算放大器等) 数字电子技术实验(40

48、00系列、74系列、ECL10000系列逻辑器件、PLD器件等) 单片机与接口实验(51系列、68系列、PIC系列、储存器、ADC、DAC器件等) 本文中设计是采用PROTEUS系统对已经设计的交通信号灯模拟控制系统进行仿真和调试 来得到所要求的结果,采用这种方式的优点是显而易见的。 4.2 交通信号灯模拟控制系统的工作测试仿真 4.2.1 控制系统程序分析 按照上一节的程序流程图可以编写出控制系统的 C 程序,具体程序如下: #include sbit main_red=P30; /定义两组交通灯(主、支道) sbit main_yel=P31; sbit main_gre=P32; sbi

49、t sub_red=P20; sbit sub_yel=P21; 21 sbit sub_gre=P22; sbit button1=P10; /K0 紧急车辆通过指示开关 sbit button2=P11; /K1 支道状态指示开关 sbit button3=P12; /K2 主道状态指示开关 unsigned int num0; void time0_int(unsigned int time0_num); void ini() P3=0xff; P1=0xff; P2=0xff; main_yel=0; main_gre=0; main_red=1; sub_yel=0; sub_gre=0; sub_red=1; void main() ini(); while(1) while(button1!=0) /主道顺序 main_gre=0; main_red=0; time0_int(50

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。