PIC单片机实现交通灯控制系统

发布者:dst2015最新更新时间:2012-02-07 来源: 现代电子技术 关键字:单片机  指令系统  MPLAB软件  硬件系统 手机看文章 扫描二维码
随时随地手机看文章

1 引 言

  我国机动车辆发展迅速,而城镇道路建设由于历史等各种原因相对滞后。道路拥挤、阻塞现象及交通事故常有发生。如何利用当今计算机与自动控制技术,有效地疏导交通,提高城镇交通路口的通行能力,提高车辆速度,减少交通事故是值得我们研究的新课题。而目前国内利用单片机实行交通管制这方面应用较少。下面分析用PIC实现交通灯控制设计方法。

2 硬件设计

  本系统选用美国Microchip公司的PIC16F873单片机。配合一些外围电路完成交通灯自动转换系统。PIC单片机有以下优点:

    ①采用哈佛结构(数据总线和指令总线分离)。
    ②指令的“单字节化”。
    ③精简指令集(RISC)技术。
    ④寻址方式简单。
    ⑤代码压缩率的提高。
    ⑥运行速度高。
    ⑦功耗低、驱动能力强。
    ⑧具备I2C和SPI串行总线端口。
    ⑨寻址空间简洁。
    ⑩外围电路简洁。
    ⑪开发方便。
    ⑫ C语言编程。
    ⑬品种丰富[1]。
    ⑬程序保密性强。

  其指令系统除了程序分支指令是单字节双周期指令外,其他指令都是单周期、单字节指令。在这些指令中,没有功能相交叉的指令,使所有的指令具有简洁性,从而执行速度非常快。PIC单片机硬件特点:PIC16F873型单片机是PIC中级单片机中很有特色的一款,其指令字节为14 b[2]。他具有PIC单片机的全部优点,而且片内还带有128×8的E2PROM数据存储器,其程序存储器(4 k×14 b)也与众不同,采用快闪存储器。快闪存储器可以实现在电路板上快速擦除和写入,最适合制作仿真板。借助于PIC16F873制作的仿真板,我们在程序编写和调试过程中,可以方便的烧写程序和修改程序。

  电路完成功能是:车辆放行方向上(A线)绿灯亮25 s,黄灯警告5 s,车辆禁止方向上(B线)红灯亮30 s,然后绿灯开始放行。各方向上计数器从30开个电路由PIC16873所控制,译码电路由CD4056和7段数码管构成,CD4056的功能是将BCD 码转换成十进制数,然后送7段数码管显示输出。6个发光二极管用来模拟双向十字路口的红、黄、绿灯。

[page]


3 软件设计

  Microchip公司为PIC系列单片机配备了功能强大的软件集成开发环境MPLAB,应用MPLAB就能在微机上对PIC系列单片机进行程序的创建、录入、编辑以及汇编,甚至还能实现程序的模拟运行动态调试(Debug)之类的虚拟演练,而且调试可以采用连续运行、单步运行、自动单步运行、设置断点运行等多种运行方式[1]。

3.1 主程序方框图

  主程序框图如图2所示。


  控制过程可分为4个过程:

  ①给PORTA送控制码“0CH”,就是给A口的数据寄存器送“00001100”这样就使A线的绿灯亮,B线的红灯亮。
  ②同样的给PORTA送“0AH”,A线黄灯亮,B线红灯亮。
  ③给PORTA送“21H”,A线红灯亮,B线绿灯亮。
  ④给PORTA送“11H”,A线红灯亮,B线黄灯亮。

  这样就完成了红绿灯的转换。用A口来控制双向路口的红黄绿灯的闪亮,将控制码送入A口的数据寄存器PORTA,送1表示输出高电平、0表示输出为低电平,PORTA内容输出就可控制红黄绿灯的亮暗[3]。

3.2 8位二进制转化成2位BCD码流程图

  二进制到BCD码转变流程图如图3所示。

[page]


  如果直接接7段显示器,就需要2个输出端口(PORTC和PORTB),而接上CD4056后只需要1个输出端口(PORTC),这样就可以省出一个输出端口(PORTB)用于其功能扩展。二进制到BCD码转变子程序就是为了利用CD4056能完成功能而编写的。

3.3 延时子程序流程图

  延时序中,整个指令执行的时间和延时时间。使用4 MHz时钟,每个指令周期需要4个震荡周期,则每条指令周期为1μs所以单指令周期执行时间为1μs,双周期指令为2μs。在这种情况下,秒级的延时需要三重循环。

  延时时间=[(3×255+5)×255+7]×5+6=991 785μs=0.991 785 s
  所以延时子程序整个指令执行时间(延时子程序)约1 s。

4 MPLAB-ICD在线调试

  MPLAB-ICD是Microchip公司为其PIC单片机中具有片内Flash程序存储器的PIC16F87X研制的一套廉价的学习和开发工具套件。MPLAB-ICD可以用作实验阶段的评估和辅助调试。他既是一个编程器(即程序烧写器),又是一个实时仿真和程序烧写器。

  用MPLAB-ICD工具套件可以实现以下工作:

  ①电路中实时运行和调试自己的源程序;
  ②硬件调试。用自己编制的程序来调试和检测自制目标板上的电路;
  ③程序固化。利用“在线串行编程技术”将自己设计的目标程序烧写到插在目标板上的PIC16F87X单片机中。

4.1 软件调试

  在应用MPLAB-ICD实现在线调试时首先应用MPLAB-ICD提供的一个范例程序tut877.asm[2],他能完成使PORTC口8个输出口依次高点平,而MPLAB-ICD在PORTC的8个口上都接了发光二极管,那么将程序烧写进去后就能完成8个发光二极管的依次闪动。则程序烧写正确了。

  接下来依次调试子程序。例如在程序调试的后期,程序已经基本能完成任务。因为单部执行时,寄存器内容正确,所以程序正确,只是烧写器有问题。所以在程序调试过程中要细心、耐心,调试时最好能够及时地记录程序调试的进程和已解决的问题,这样有利于调试工作的连续性,调试工作不会有重复。而且及时的记录调试进程有利于错误的缩小,可以更好地完成调试。

4.2 程序烧写

    程序烧写的步骤如下:
    ①建立一个十六进制调试文件;
    ②新“项目”;
    ③项目会话窗口;
    ④设置节点属性;
    ⑤增加节点;
    ⑥完成对“项目”的设置;
    ⑦建立“项目”(Make Project);
    ⑧对PIC16F873进行编程;
    ⑨运行pro.asm软件。
  程序烧写完毕后,就可以将单片机插入实验板中运行了。

4.3 整体电路设计和安装调试

    原理图设计出后,就是进行原理图打印和印刷电路板的设计了。这通常是有Protel完成[3]。成形的电路这里不再赘述。

5 结 语

    实验测试结果证明用本系统PIC单片机能完成交通灯一般控制过程,但功能还不够完善,比如交通灯红、黄、绿时间还不能按交通紧松完成手控调整,软件编写实现功能还不能很好控制硬件人工操作。本系统今后还有待以进一步完善,增加更强大功能,比如手控时间的调节、摄像机交通监控的控制、盲人通过的交通灯的控制等。

参考文献
[1] 施威铬.PIC单片机轻松入门[M].北京:清大学出版社,2001.
[2] 何信龙.PIC16F87x快速上手[M].北京:清 华大学出版社,2001.
[3] 赵晶.Protel99高级应用[M].北京:人民邮电出版社,2001.
[4] 徐霞,谭保成.监控播音系统的研制[J].西安工业学院学报,2001,(3).
关键字:单片机  指令系统  MPLAB软件  硬件系统 引用地址:PIC单片机实现交通灯控制系统

上一篇:基于PIC单片机的小型空气压缩机控制装置
下一篇:基于PIC单片机的机器人灵巧手的控制系统设计

推荐阅读最新更新时间:2024-03-16 12:52

基于NRF24L01的DS18B20温度无线传输单片机源码
单片机型号为stc12c5a60s2 温度传感器为DS18B20 无线传输为NRF24L01 温度显示LCD1602 单片机源程序如下: #include STC12C5A60S2.H #include stdio.h #include DELAY.h #include NRF24L01.h #include LCD1602.h #include DS18B20.h void main(void) { int temp,intt,dect; unsigned char temp_buf ={0}; EA=1; LCD_Init(); //LCD160
[单片机]
单片机内部定时器T0工作方式下输出方波脉冲信号编程
应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为2ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。 请 (1)计算时间常数X,应用公式X=216-t(f/12) (2)写出程序清单 解:X=216-t(F/12) =216-1*10-3*6*106/12 =OFEOCH ORG 3000H START:MOV TMOD,#01H MOV TL0,#OCH MOV THO,#OFEH SETB TR0 LOOP: JBC TFO,DONE SJMP LOOP DONE: MOV TL0,#OCH MOV THO,#OFEH CPL P1.0 SJMP LOOP
[单片机]
PIC16F690单片机初学者C语音编程参考
下面是其中一个单片机源程序如下: /* * File: newmain.c * Author: YF006 * * Created on 2018年7月11日, 上午8:20 */ #include hardware.h // CONFIG #pragma config FOSC = INTRCIO // Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN) #pragma config WDTE = OFF // Watchdo
[单片机]
基于AVR单片机的负荷缸多路遥控开关编解码实现
负荷缸是船舶电力核心发电机性能的负荷试验必备的重要工装设备,通过负荷试验,可以检验发电机长期工作的性能稳定的情况(静态特性)和对突加突卸负荷的应变能力(动态特性)。AVR单片机具有高性能低价格的优点,在本文中利用AVR单片机对发电机负荷缸的多路远程遥控开关量进行采集监控并进行数字信号编解码,用2芯的电缆取代原来40芯的粗电缆传输控制信号,有效地解决了工作中遇到的问题。 1 问题的提出 我们通过把由发电机供电的通电极板放到负荷缸水电阻中,用充气升降极板和补给水调节水电阻大小的方法控制试验发电机所带负荷的大小,对发电机的性能进行试验。体积庞大的负荷缸一般放置在码头,在船舶发电机的负荷试验中需要在船舶配电板处控制负荷缸的各个部件,所
[单片机]
MCS-51单片机的结构和工作原理
3.1 概述: MCS-51单片机芯片有许多种: 如8051、8031、8751、80C51、80C31等。 它由8个部件组成: 1、中央处理器(CPU)核心 2、时钟电路 12MHz 3、程序存储器(ROM/EPROM)4KB 4、数据存储器(RAM)128B+128B SFR 5、并行I/O口(P0~P3)P0和P2兼作外总线 6、串行口 全双工串行口 7、定时器/计数器 2个16位 8、中断系统 5个中断源,高级和低级两级优先级别 它们都是通过总线连接,并被集成在一块半导体芯片上,为单片微型计算机。 3.1.1 MCS
[单片机]
MCS-51<font color='red'>单片机</font>的结构和工作原理
采用MSP430的烟雾报警器优化设计
引 言 传统的烟雾报警器一般由烟雾传感器和烟雾探测芯片构成,探测芯片接收传感器信号并进行处理,从而判断是否有火灾发生。这种烟雾探测器结构简单、成本低,但存在误报率高和环境适应能力差的缺点。为了解决这一问题,单片机被嵌入到报警器中,以识别传感器因环境影响而产生的干扰信号。但是这样做又带来了其它方面的问题:(1)采用一般的单片机,比如51单片机,会大大增加报警器的功耗,这对于长时间需要电池供电的烟雾报警器而言是不能接受的;(2)传感器产生的是微弱的模拟信号,这一信号要经过放大、模数转换之后才能被单片机处理。采用独立的A/D转化电路不仅增加了系统的功耗,还降低了系统的可靠性;(3)单片机软件设计不合理,致使报警器误报率较高,操作控制
[单片机]
采用MSP430的烟雾报警器优化设计
松翰单片机外部中断
chip sn8f27e65 //{{SONIX_CODE_OPTION //完整源码下载: http://www.51hei.com/f/shwbzd.rar .Code_Option WDT_CLK Flosc/4 .Code_Option Reset_Pin P04 .Code_Option LVD LVD_Max ; 3.3V Reset .Code_Option Watch_Dog Disable ;关闭看门狗 .Code_Option Low_Fcpu Flosc/1 .Code_Option High_Clk IHRC_16M ; Internal 16M RC Oscillator .Code_Op
[单片机]
单片机8051F的数字音频信号源的幅度控制及系统结构图
音频模拟信号电路常需要在很大范围内调节电平,而高精度电路的调节范同达100 dB以上.相当于二进制线性数字18位,同时也要求具有较高的调节步进值。使用数字信号源直接改变幅值,一般只有几dB的分辨率。市面上很多音频衰减器的衰减量、衰减量步进值、特性阻抗都是特定的。但在实际应用中,需要音频衰减器具有不同的参数;而且在一些应用中还希望衰减量能够按照需要随意设计,并且可以随时调整。针对这些需求,介绍了一种基于单片机由电阻衰减器和模拟开关组成的音频控制系统。该系统可通过单片机及上位PC机设置音频信号的衰减量,控制衰减量的增减。该系统具有适用广泛,使用方便,移植性高等特点。 系统总体设计 基于805lF330的音频控制系统结构如图l所
[单片机]
<font color='red'>单片机</font>8051F的数字音频信号源的幅度控制及系统结构图
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved