




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、xxxxxxxx 学院学院 学生学生毕业设计毕业设计( (论论文)文) 题 目: 单片机交通灯控制器设计制作 姓 名: xxx 学 号: 200xxxxxxxx 系 部: 电子信息工程系 专 业: 通信工程 指导老师: xxx 开题时间: 2011.11.28 完成时间: 2011.12.28 xxxx 学院教务处制 目录目录 摘要摘要 .3 3 1 1 概述概述.4 4 1.1 单片机的定义.4 1.2 单片机介绍.4 2.3.2 mcs-51 单片机的逻辑结构.5 2.3.3 mcs-51 的信号引脚.6 1.3.4 8255 芯片简介.9 1.3.5 串口电平转换芯片 max232.9
2、3 3 方案比较、设计与论证方案比较、设计与论证.1010 3.1 电源提供方案.11 3.2 显示界面方案.11 3.3 输入方案:.11 2.1 总体设计.13 2.2 各功能模块硬件设计及实现.13 2.2.1 交通灯四种通行模式及行车方向指示.13 4.2.2 键盘与状态显示及其实现.16 4.2.3 数码管显示电路.17 4.2.4 交通灯系统硬件电路图.19 3 3 系统软件设计系统软件设计.2020 5.1 软件总体流程图.20 3.2 软件主要程序流程.21 5.2.1 每秒钟的设定.21 5.2.2 按键中断程序.21 5.2.3 数码管显示程序.22 5.3 程序源代码.2
3、3 6 6 系统调试与测试结果系统调试与测试结果.3030 6.1 软件调试.30 6.2 硬件调试.30 6.3 软硬联调.30 参考文献参考文献 .3131 致致 谢谢 .3232 摘要摘要 当今时代是一个自动化时代,交通灯控制等很多行业的设备都与计算机密切相关。因此,一个 好的交通灯控制系统,将给道路拥挤、违章控制等方面给予技术革新。随着大规模集成电路及计算 机技术的迅速发展,以及人工智能在控制技术方面的广泛运用,智能设备有了很大的发展,是现代 科技发展的主流方向。本文介绍了一个智能交通灯系统的设计。该智能交通灯控制系统可以实现的 功能有:对某市区的四个主要交通路口进行监控;各路口有固定
4、的工作周期,并且在道路拥挤时中 控中心能改变其周期。 交通事业蓬勃发展,交通流量年年增长,大、中、小城市的汽车、摩托车等各种车辆与日俱增, 道路交通繁忙,经常有严重堵车现象,特别是在交叉口,机动车、非机动车、行人来往非常混乱, 为了在叉口的各条干道实现合理的科学分流。本人根据单片机具有物美价廉、功能强、使用方便灵 活、可靠性高等特点,提出了一种用 stc89c51 单片机自动控制交通信号灯及时间显示的方法,同 时给出了软硬件的实现方法,为交通指挥自动化提供了一种新的廉价手段,具有一定的推广意义。 本文介绍了控制基本原理以及控制的表现,同时也介绍了城市交通信息系统的设计目标, 开发途径 及其系统
5、结构与功能和数据地理编码、建库, 同时, 论述了系统中交通现状、交通管理、交通规划 及背景信息查询模块的建造及应用。介绍了用于城市交叉路口的三色程控交通信号时间显示器的研 制方案,对其电源供电、发光二极管构成的负载结构、灯色时间检测都给出了精巧合理的优化结构, 大幅度地提高了产品可靠性并降低了制造成本。 关键词:8051 单片机;交通灯;自动控制;时间显示器 1 概述 1.1 单片机的定义 单片机是指一个集成在一块 芯片上的完整计算机 系统。尽管它的 大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的 大部分部件: cpu、内存、内部和外部 总线系统,目前大部分还会具有 外存。同时
6、集成诸如通讯接口、 定时器,实时时钟等外围设备。而现在 最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系 统集成在一块芯片上。 1.2 单片机介绍 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一 个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应 用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。89c51 单 片机的结构及信号引脚如图 1.1 所示。 频率基准源 振荡器及 定时电路 4kb 程序 储存器 128b 数 据储存器 2 个 16 位定时 器/事件计数据 计数器 cp
7、u 64kb 总 线扩展控 制 可编程 i/o可编程串行口 中断 中断 串行输入串行输出 口i/o并行控制 图 1.1 89c51 单片机的结构及信号引脚 2.3.2 mcs-51 单片机的逻辑结构 (1)中央处理器(cpu) 中央处理器简称 cpu,是单片机的核心,完成运算和控制操作。按其功能,中央处理器包括运 算器和控制器两部分电路。 (2)运算器电路 功能:单片机的运算部件,用于实现算术和逻辑运算。 (3)控制器电路 功能:单片机的指挥控制部件,保证单片机各部分能自动而协调地工作。 (4)内部数据存储器 组成:ram(1288)和 ram 地址寄存器等。 功能:用于存放可读写的数据。 (
8、5)内部程序存储器 组成:rom(4k8))和程序地址寄存器等。 功能:用于存放程序和原始数据。 (6)定时器计数器 80c51 共有两个 16 位的定时器计数器。 功能:实现定时或计数功能,并以其定时或计数结果对单片机进行控制,以满足控制应用的需 要。 (7)并行 i/o 口 mcs-51 共有 4 个 8 位的 i/o 口(p0、p1、p2、p3) 功能:实现数据的并行输入输出。 (8)串行口 mcs- 51 单片机有一个全双工的串行口。 功能;以实现单片机和其它数据设备之间的串行数据传送。 (9)中断控制系统 80c51 共有 5 个中断源,即外中断 2 个,定时计数中断 2 个,串行中
9、断 1 个。全部中断分为 高级和低级共两个优先级别。 (10)时钟电路 mcs- 51 芯片的内部有时钟电路,但石英晶体和微调电容需外接。 功能:时钟电路为单片机产生时钟脉冲序列。 典型的晶振频率:6mhz、11.0592mhz、12mhz。 (11)位处理器 位处理器称为布尔处理器。 功能:以状态寄存器中的进位标志位 c 为累加位,可进行各种位操作。 (12)总线 总线:连接计算机各部件的一组公共信号线。 分类:地址总线、数据总线和控制总线。 作用:减少了单片机的连线和引脚,提高了集成度和可靠性。 2.3.3 mcs-51 的信号引脚 80c51 是标准的 40 引脚双列直插式集成电路芯片,
10、引脚排列如图所示。 (1)信号引脚介绍 1 p1.0 2 p1.1 3 p1.2 4 p1.3 5 p1.4 6 p1.5 7 p1.6 8 p1.7 9 rst/vpd 10 rxd/p3.0 11 txd/p3.1 12 int0/p3.2 13 int1/p3.3 14 t0/p3.4 15 t1/p3.5 16 wr/p3.6 17 rd/p3.7 18 xtal2 19 xtal1 20 vss 21 p2.0 22 p2.1 23 p2.2 24 p2.3 25 p2.4 26 p2.5 27 p2.6 28 p2.7 29 psen 30 ale/prog 31 ea/vpp 3
11、2 p0.7 33 p0.6 34 p0.5 35 p0.4 36 p0.3 37 p0.2 38 p0.1 39 p0.0 40 vcc 80c51 (a)三三三三 ea/vpp psen ale/prog vcc vss rst/vpd 12 xtal1 xtal2 p3三 三三三三 p2三p1三 p0三 三三三三三三三 三三三三 80c51 三b三三三三三 图 1.2 80c51 芯片引脚排列图 输入输出口线 p0.0p0.7 p0 口 8 位双向口线 p1.0p1.7 p1 口 8 位双向口线 p2.0p2.7 p2 口 8 位双向口线 p3.0p3.7 p3 口 8 位双向口线 al
12、e 地址锁存控制信号 功能:a)在系统扩展时,ale 用于控制把 p0 口输出的低 8 位地址送入锁存器锁存起来,以实 现低位地址和数据的分时传送。如图所示。 74ls373 g p2.3 p2.2 p2.1 p2.0 p0.7p0.0 ale -psen 80c51 -ce a10 a9 a8 a7a0 o7o0 -oe 2716 图 1.3 单片机程序存储器扩展连接图 b)ale 是以六分之一晶振频率的固定频率输出的正脉冲,可作为外部时钟或外部定时脉冲使 用。 /psen 外部程序存储器读选通信号 在读外部 rom 时/psen 有效(低电平) ,以实观外部 rom 单元的读操作。 /ea
13、 访问程序存储器控制信号 当/ea 信号为低电平时,对 rom 的读操作限定在外部程序存储器; 当/ea 信号为高电平时,对 rom 的读操作是从内部程序存储器开始,并可延续至外部程序存储 器。 rst 复位信号 当输入的复位信号延续 2 个机器周期以上高电平时即为有效,用以完成单片机的复位操作。 xtal1 和 xtal2 外接晶体引线端 当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容; 当使用外部时钟时,用于接外部时钟脉冲信号。 vss地线 vcc5v 电源 (2)信号引脚的第二功能 “复用”即给一些信号引脚赋予双重功能。第二功能信号定义主要集中在 p3 口线中,另外再 加上几
14、个其它信号线。 常见的第二功能信号 p3 口线的第二功能 p3 口 8 条口线都定义有第二功能,如表所示。 口线第二功能信号名称 p3.0rxd串行数据接收 p3.1txd串行数据发送 p3.2int0外部中断 0 申请 p3.3int1外部中断 1 申请 p3.4t0定时器/计数器 0 计数输入 p3.5t1定时器/计数器 1 计数输入 p3.6wr外部 ram 写选通 p3.7rd外部 ram 读选通 表 1.1 p3 口的第二功能 eprom 存储器程序固化所需要的信号 编程脉冲:30 脚(ale/prog) 编程电压(25v):31 脚(/ea/vpp) 备用电源引入 备用电源是通过
15、9 脚(rst/vpd)引入的。当电源发生故障,电压降低到下限值时,备用电源 经此端向内部 ram 提供电压,以保护内部 ram 中的信息不丢失。 说明: a)第一功能信号与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的 矛盾。 b)p3 口线先按需要优先选用它的第二功能,剩下不用的才作为 i/o 口线使用。 (3)89c51 的复位电路 8051 的复位方式可以是自动复位,也可以是手动复位,见下图 4。此外,reset/vpd还是一复 用脚,vcc掉电其间,此脚可接上备用电源,以保证单片机内部 ram 的数据不丢失。 图 1.4 复位电路 1.3.4 8255 芯片简介 8
16、255 可编程并行接口芯片简介: 8255 可编程并行接口芯片有三个输入输出端口,即 a 口、b 口和 c 口,对应于引脚 pa7pa0、pb7pb0 和 pc7pc0。其内部还有一个控制寄存器,即控制口。通常 a 口、b 口作为 输入输出的数据端口。c 口作为控制或状态信息的端口,它在方式字的控制下,可以分成 4 位的端 口,每个端口包含一个 4 位锁存器。它们分别与端口 a配合使用,可以用作控制信号输出或作 为状态信号输入。 8255 可编程并行接口芯片方式控制字格式说明: 8255 有两种控制命令字;一个是方式选择控制字;另一个是 c 口按位置位复位控制字。其 中 c 口按位置位复位控制
17、字方式使用较为繁难,说明也较冗长,故在此不作叙述,需要时用户可 自行查找有关资料方式控制字格式说明如表 1.2 所示。 图 1.2 d7:设定工作方式标志,1 有效。 d6、d5:a 口方式选择 0 0 方式 0 0 1 方式 1 1 方式 2 d4:a 口功能 (1=输入,0=输出) d3:c 口高 4 位功能 (1=输入,0=输出) d2:b 口方式选择 (0=方式 0,1=方式 1) d1:b 口功能 (1=输入,0=输出) d0:c 口低 4 位功能 (1=输入,0=输出) 8255 可编程并行接口芯片工作方式说明: 方式 0:基本输入输出方式。适用于三个端口中的任何一个。每一个端口都
18、可以用作输入或 输出。输出可被锁存,输入不能锁存。 方式 1:选通输入输出方式。这时 a 口或 b 口的 8 位外设线用作输入或输出,c 口的 4 条线 中三条用作数据传输的联络信号和中断请求信号。 方式 2 :双向总线方式。只有 a 口具备双向总线方式,8 位外设线用作输入或输出,此时 c 口的 5 条线用作通讯联络信号和中断请求信号。 1.3.5 串口电平转换芯片 max232 max232 芯片是美信公司专门为电脑的 rs-232 标准串口设计的接口电路,使用+5v 单电源供电。 d7d6d5d4d3d2d1d0 内部结构基本可分三个部分: 第一部分是电荷泵电路。由 1、2、3、4、5、
19、6 脚和 4 只电容构成。功能是产生+12v 和-12v 两 个电源,提供给 rs-232 串口电平的需要。 第二部分是数据转换通道。由 7、8、9、10、11、12、13、14 脚构成两个数据通道。 其中 13 脚(r1in)、12 脚(r1out)、11 脚(t1in)、14 脚(t1out)为第一数据通道。 8 脚(r2in)、9 脚(r2out)、10 脚(t2in)、7 脚(t2out)为第二数据通道。 ttl/cmos 数据从 t1in、t2in 输入转换成 rs-232 数据从 t1out、t2out 送到电脑 dp9 插头;dp9 插 头的 rs-232 数据从 r1in、r2
20、in 输入转换成 ttl/cmos 数据后从 r1out、r2out 输出。 第三部分是供电。15 脚 dng、16 脚 vcc(+5v)。 图 1.5 max232 芯片各管脚解法图 3 方案比较、设计与论证 此交通灯方案实现了基本的交通工作原理,并且加入了禁左行车时间,有两种工作模式,白 天的时候车流量比较大启动模式 1,当到了晚上车流量相对少了启动模式 2,这样就避免了晚上没 车时候等候时间过长的因素。 3.1 电源提供方案 为使模块稳定工作,须有可靠电源。我们考虑了两种电源方案 方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点 是各模块都采用独立电源,
21、会使系统复杂,且可能影响电路电平。 方案二:采用单片机控制模块提供电源。改方案的优点是系统简明扼要,节约成本;缺点是输 出功率不高。 综上所述,我们选择第二种方案。 3.2 显示界面方案 该系统要求完成倒计时、状态灯等功能。基于上述原因,我们考虑了三种方案: 方案一:完全采用数码管显示。这种方案只显示有限的符号和数码字苻,无法胜任题目要求。 方案二:完全采用点阵式 led 显示。这种方案实现复杂,且须完成大量的软件工作;但功能 强大,可方便的显示各种英文字符,汉字,图形等。 方案三:采用数码管与点阵 led 相结合的方法因为设计既要求倒计时数字输出,又要求有状 态灯输出等,为方便观看并考虑到现
22、实情况,用数码管与 led 灯分别显示时间与提示信息。这种方 案既满足系统功能要求,又减少了系统实现的复杂度。权衡利弊,第三种方案可互补一二方案的优 缺,我们决定采用方案三以实现系统的显示功能。 3.3 输入方案: 题目要求系统能手动设灯亮时间、夜间模式处理,我们讨论了两种方案: 方案一:采用 8155 扩展 i/o 口及键盘,显示等。该方案的优点是: 使用灵活可编程,并且有 ram,及计数器。若用该方案,可提供较多 i/o 口,但操作起来稍显复 杂。 方案二:直接在 io 口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的口资源 还比较多,我们使用两个按键,分别是 k1、k2 由于该
23、系统对于交通灯及数码管的控制,只用单片机本身的 i/o 口就可实现,且本身的计数器 及 ram 已经够用,故选择方案二。 2 系统硬件设计 硬件设计是整个设计的基础,要考虑的方方面面很多,除了实现交通灯的基本功能外,主要 还要考虑如下几个因素:系统稳定度;器件的通用性或易选购性;软件编程的易实现性;系统其他 功能及性能指标;因此硬件设计至关重要。先从各功能模块的实现之歌进行分析探讨。 2.1 总体设计 本设计一单片机为控制核心,采用单 mcu 结构,模块化设计,共分为以下几个功能模块:单片 机控制系统、键盘及状态显示、行车方向显示、和倒计时模块等。 单片机作为整个硬件系统的核心,他既是谐调整机
24、工作的控制器,又是数据处理器。它由单片 机、时钟电路、复位电路等组成。 行车方向指示灯采用三种颜色的 led 发光管,分别为红、黄、绿,红和绿指示禁止与放行,形 象直观。 键盘采用按键。分别控制模式 1 和模式 2。 系统采用单数码管倒计时功能,最大显示数字为 99。 有好的人机界面、灵活的控制方式、优化的物理结构以及丰富的功能是本设计的亮点。 主 单 片 基 行车方向指示 键盘与状态显示 倒计时 图 2.1 系统总体设计框图 2.2 各功能模块硬件设计及实现 2.2.1 交通灯四种通行模式及行车方向指示 按交通灯控制规则,每个街口有左拐、直行、等待、三种指示灯。 交道口模型图: 图 8 交道
25、口模型图 4 个 led 灯按照设置的通行时间变化,led 显示南北、和东西方向的等待时间开始南北方向 为 60 秒,而东西方向为 40 秒就行倒计时,共有四种通行方式,分别为 图 9a 通行方式一 图 9b 通行方式二 图 9c 通行方式三 图 9d 通行方式四 图 10a 模式一下的通行方式一 图 10b 模式一下的通行方式二 图 10c 模式一下的通行方式三 图 10d 模式一下的通行方式四 当处于模式 1 时: 通行方式一:倒计时时间为 60 秒(等待时间) ,红绿灯状态:只限东西方向左拐,所以南北方 向为红,东西方向左拐 led 灯亮,持续 10 秒钟。如图 9b 和图 10b。 通
26、行方式二:倒计时时间为 50 秒(等待时间) ,红绿灯状态:东西方向直行,南北方向禁行, 所以南北方向为红灯,东西方向直行 led 灯亮,持续 50 秒。如图 9a 和 10a。 通行方式三:倒计时时间为 40 秒(等待时间) ,红绿灯状态:只限南北方向左拐,所以东西方 向为红灯,南北方向左拐 led 灯亮,持续 10 秒钟。如图 9d 和图 10d。 通行方式四:倒计时时间为 30 秒(等待时间) ,红绿灯状态:南北方限制性,东西方向禁行, 所以东西方向为红灯,南北方向直行 led 灯亮,持续 30 秒。如图 9c 和 10c。 通行方式二和四,在通行还剩五秒的时候,这是黄灯开始工作,绿灯在
27、倒计时还剩 5 秒的时候 灭,然后黄灯开始闪烁,提醒司机快红灯了。 当处于模式 2 时: 通行方式五:倒计时时间为 40 秒(等待时间) ,红绿灯状态:只限东西方向左拐,所以南北方 向为红,东西方向左拐 led 灯亮,持续 10 秒钟。如图 9b。 通行方式六:倒计时时间为 30 秒(等待时间) ,红绿灯状态:东西方向直行,南北方向禁行, 所以南北方向为红灯,东西方向直行 led 灯亮,持续 50 秒。如图 9a。 通行方式七:倒计时时间为 20 秒(等待时间) ,红绿灯状态:只限南北方向左拐,所以东西方 向为红灯,南北方向左拐 led 灯亮,持续 10 秒钟。如图 9d。 通行方式八:倒计时
28、时间为 10 秒(等待时间) ,红绿灯状态:南北方限制性,东西方向禁行, 所以东西方向为红灯,南北方向直行 led 灯亮,持续 30 秒。如图 9c。 通行方式六和八,在通行还剩五秒的时候,这是黄灯开始工作,绿灯在倒计时还剩 5 秒的时候 灭,然后黄灯开始闪烁,提醒司机快红灯了。 4.2.2 键盘与状态显示及其实现 键盘在本设计中用于更换红绿灯工作模式的手动控制装置,以及复位时间,起到了不可或缺的 重要作用。我们选用两个按钮来作为控制装置,分别为 k1,k2,当按下 k1 启动模式 1,当按下 k2 启动模式 2。 独立式是一组相互独立的按健,这些按健可直接与单片机的 1/o 口连接,即每个按
29、健独占一条 口线,接口简单。独立式键盘因占用单片机的硬件资源较多,只适合按键较少的场合。 图 11 键盘 4.2.3 数码管显示电路 数码管在其中要加相应大小的上拉电阻,上拉电阻的作用就是增大电流,是数码管更亮,在此 设计中,由于 i/o 接口数量足够,所以采用数码管静态显示方法,这样虽然浪费 i/o 接口,但是本 设计条件允许,并且使软件设计更简单,更容易。采用的数码管为共阴极,所用公共端接地。 数码管是一种半导体发光器件,其基本单元是发光二极管。 数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元 (多一个小数点显示) ;按能显示多少个“8”可分为 1 位、
30、2 位、4 位等等数码管;按发光二极管单 元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起 形成公共阳极(com)的数码管。共阳数码管在应用时应将公共极 com 接到+5v,当某一字段发光 二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。 。 共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(com)的数码管。共阴数码管在应 用时应将公共极 com 接到地线 gnd 上,当某一字段发光二极管的阳极为高电平时,相应字段就 点亮。当某一字段的阳极为低电平时,相应字段就不亮。 图 12 数码管显示电路 图中的电阻为上拉
31、电阻。 led 显示器中的发光二极管共有两种连接方法: 共阳极接法 把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接5v。阴极端输入低电平的 段发光二极管导通点亮,输入高电平的则不点亮。 共阴极接法 把发光二极管的阴极连在一起构成公共阴极。使用时会共阴极接地,阳极端输入高电平的段 发光二极管导通点亮,输入低电平的则不点亮。 图 13 led 显示器 用 led 显示器显示十六进制数的字型代码如下表所示: 显示数值dp g f e d c b a 驱动代码(16 进制) 00 0 1 1 1 1 1 1 3fh 1 0 0 0 0 0 1 1 006h 2 0 1 0 1 1 0 1 1
32、5bh 3 0 1 0 0 1 1 1 14fh 4 0 1 1 0 0 1 1 066h 5 0 1 1 0 1 1 0 06dh 6 0 1 1 1 1 1 0 07dh 7 0 0 0 0 0 1 1 107h 8 0 1 1 1 1 1 1 17fh 表 2 数码管驱动代码表 4.2.4 交通灯系统硬件电路图 b 1 qb 2 qa 3 cten 4 u/d 5 qc 6 qd 7 gnd 8 d 9 c 10 load 11 max/min 12 rco 13 clk 14 a 15 vcc 16 74191 10m r gnd tri out res vcc dis thr con
33、 555 2 3 1 dq -q +vcc 三三三三 三三三三三 10uf 100pf c? cap 10uf c 6m r +vcc +vcc vcc 三三三三三 三三三三三 三三三三 三三三三 图 14 交通灯看着系统逻辑电路图 3 系统软件设计 硬件平台结构一旦确定,大的功能框架即形成。软件在硬件平台上构筑,完成各部分硬件的控 制和协调。系统功能是由软硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱, 差别可能很大。因此,如那件事本系统的灵魂。软件采用 c 语言,不仅易于编程和调试,也可减少 软件故障率和提高软件的可靠性。同时,对软件进行全面测试也是检验错误排除故障的重要手
34、段。 由于变成多涉及到数值运算,比较复杂,这里我们选择移植性好、结构清晰、能进行复杂运算的 c 语言来实现编程。 5.1 软件总体流程图 软件总体设计及流程图见图 14,主要完成各部分的软件控制和协调。本系统主程序模块主要 完成的工作是对系统的初始化,包括发送显示数据,led 的初始值设定,等待外部中断,以及根据 所需要的功能进行相应的操作。其流程图如图 15 所示。 初 始 化 取 键 值 判断当前状态 倒 计 时led 颜色工作模式 图 15 系统流程图 主程序比较简单,初始化完成后,调用按键子程序,取得键值,并根据当前系统状态调用相应 的子程序。 开 始 3.23.2 软件主要程序流程软
35、件主要程序流程 5.2.1 每秒钟的设定 延时方法可以有两种一中是利用 mcs-51 内部定时器才生溢出中断来确定 1 秒的时间,另一种 是采用软延时的方法。mcs-51 的工作频率为 2-12mhz,我们选用的 8031 单片机的工作频率为 6mhz。机器周期与主频有关,机器周期是主频的 12 倍,所以一个机器周期的时间为 12*(1/6m) =2us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定 1 秒的时 间。我们采用的是软延迟的方法。 void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);
36、其中给定 z=1000 为时间 1 秒。 5.2.2 按键中断程序 它包含倒计时调整和模式切换两个状态。主程序中放了一个按键的判断指令,当有按键按下的 时候,程序就自动的跳转到按键子程序处理。当检测到 k1 键按下的时候就自动返回到主程序,运 行 k1 模式 1,当检测刀 k2 按下时自动返回主程序,运行 k2 模式。 k1 模式子程序: if(h=1|aa=1) i=9; j=4; p2=table3; g1=0; r2=0; g2=1; r1=1; y1=1; y2=1; h=1; if(h=1) i=9; j=6; p2=table5; g2=0; r1=0; r2=1; g1=1; y
37、1=1; y2=1; h=1; k2 模式子程序: if(h=0|aa=0) i=9; j=6; p2=table5; g1=0; r2=0; g2=1; r1=1; y1=1; y2=1; h=0; if(h=0) i=9; j=8; p2=table7; g2=0; r1=0; r2=1; g1=1; y1=1; y2=1; h=0; 5.2.3 数码管显示程序 参照表 2,数码管显示与 16 位进制时之间的关系建立数组 table=0 x6f,0 x7f,0 x07,0 x7d,0 x6d,0 x66,0 x4f,0 x5b,0 x06,0 x3f;采用循环,将数组中的值按 每秒键 1
38、的方法显示在数码管上,这就是冲 9-0 的倒计时。 循环显示程序: for(;j11;j+) for(;i10;i+) p3=tablei; delay(500); z+; p2=tablej; i=0; 其中 p3 位十位数码显示管显示数字,p2 为个位数码管显示数字。 5.3 程序源代码 #include #include #define uint unsigned int /宏定义 #define uchar unsigned char uchar i,j,z,h,tt,ii,jj,aa,bb; uchar code table=0 x6f,0 x7f,0 x07,0 x7d,0 x6d
39、,0 x66,0 x4f,0 x5b,0 x06,0 x3f; sbit gg1=p00; sbit gg2=p01; sbit y1=p12; sbit r1=p13; sbit g1=p14; sbit y2=p17; sbit r2=p16; sbit g2=p15; sbit key1=p10; sbit key2=p11; void delay(uint); void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); void main() gg1=1; gg2=1; aa=1; h=1; key1=1; key2=1;
40、 z=0; p3=0; p2=0; while(1) if(h=1|aa=1) i=9; j=4; p2=table3; g1=0; r2=0; g2=1; r1=1; y1=1; y2=1; h=1; if(h=0|aa=0) i=9; j=6; p2=table5; g1=0; r2=0; g2=1; r1=1; y1=1; y2=1; h=0; for(;j11;j+) for(;i=5) gg1=0; g1=1; if(h=0) if(p3=0 x3f) g1=1; if(key1=0) aa=1; if(key1=0) aa=1; if(key2=0) aa=0; if(key2=0
41、) aa=0; if ( p2=0 x3f ) gg1=1; if(z=0) y1=0; if(z=1) y1=1; z+; p2=tablej; i=0; if(h=1) i=9; j=6; p2=table5; g2=0; r1=0; r2=1; g1=1; y1=1; y2=1; h=1; if(h=0) i=9; j=8; p2=table7; g2=0; r1=0; r2=1; g1=1; y1=1; y2=1; h=0; for(;j11;j+) for(;i=7) gg2=0; g2=1; if(h=0) if(p3=0 x3f) g2=1; if(key1=0) aa=1; i
42、f(key1=0) aa=1; if(key2=0) aa=0; if(key2=0) aa=0; if ( p2=0 x3f ) gg2=1; if(z=0) y2=0; if(z=1) y2=1; z+; p2=tablej; i=0; gg2=1; 6 系统调试与测试结果 因本设计本身要求稳定性高、免维护、抗干扰力强等功能,系统调试扯了验证数据处理的精度, 确保判断的准确性外,同时必须确认各项的功能的正常运行。 6.1 软件调试 本系统的软件系统比较大,全部用 c51 来编写,选用一般的 keil7 对 c51 进行调试。除了语法 错误外,当确定没问题后生产 hex 文件,首先在 protues 上进行仿真实验,然后逐步调试每一个模 板,然后在连成一个完整的系统,最后完成呢过一个完整的系统调试。主要是数码管和 led 的调试。 6.2 硬件调试 城市交通灯控制系统的 pcb 电路板焊接,本设计采用三层板子: 第一层板
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 42025年餐饮企业预制菜产品创新与市场竞争力研究报告
- 路灯合同协议书
- 车辆代办过户协议合同
- 车位买卖协议书范本
- 吊顶修补合同协议书
- 民间分房协议书
- 连锁加盟合同补充协议
- 配电房转让合同协议
- 轨道观光车合同协议
- 没给培训协议书
- 完整,沪教版小学四年级英语上册单词表
- 初中常见化合价、化学式及化学方程式
- 医院18项核心制度(2023年)
- 2023年广东省初中生物地理学业考试真题集合试卷及答案高清版
- 静脉输液输液反应课件
- GB/T 8685-2008纺织品维护标签规范符号法
- GB/T 18601-2009天然花岗石建筑板材
- 《野蜂飞舞》阅读测试题及答案
- 广东省广州市天河区2023年中考二模化学试题(含解析)
- 《动物王国开大会》说课-优质课件
- 病媒生物监测记录表
评论
0/150
提交评论