单片机控制十字路口交通灯概要 下载本文

课程设计报告

额定电流;V:LED灯额定电压)计算出电阻大小。

9KΩ电阻1个:MAX7219的18管脚接高电平时串联电阻。

12MHZ晶振1个、30pf电容2个:根据经验,12M晶振与2个30p电容并联构成外部时钟振荡电路。

10KΩ电阻1个、1KΩ电阻1个、10uf电解电容1个、1个按键:构成单片机复位电路。电容放电时间τ=RC=10K10uf=0.1s>21/12M=s(2个时钟周期),即电容放电时间大于2倍的时钟周期,即可实现复位。

AT89C52简介:

AT89C52是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

主要特性:

与MCS-51 兼容 ;4K字节可编程闪烁存储器 ;寿命:1000写/擦循环;数据保留时间:10年;全静态工作:0Hz-24Hz;;三级程序存储器锁定;128*8位内部RAM;32可编程I/O线;两个16位定时器/计数器;5个中断源;可编程串行通道;低功耗的闲置和掉电模式;片内振荡器和时钟电路。

MAX7219芯片简介: MAX7219 是MAXIM 公司生产的串行输入/输出共阴极数码管显示驱动芯片,一片MAX7219 可驱动8 个7 段(包括小数点共8 段)数字LED、LED 条线图形显示器、或64 个分立的LED 发光二级管。该芯片具有10MHz 传输率的三线串行接口可与任何微处理器相连,只需一个外接电阻即可设置所有LED 的段电流。它的操作很简单,MCU 只需通过模拟SPI 三线接口就可以将相关的指令写入MAX7219 的内部指令和数据寄存器,同时它还允许用户选择多种译码方式和译码位。此外它还支持多片7219 串联方式,这样MCU 就可以通过3根线(即串行数据线、串行时钟线和芯片选通线)控制更多的数码管显示。MAX7219

5

课程设计报告

的外部引脚分配如图1 所示及内部结构如上图所示。 各引脚的功能为: DIN:串行数据输入端

DOUT:串行数据输出端,用于级连扩展

LOAD:装载数据输入 CLK:串行时钟输入

DIG0~DIG7:8 位LED 位选线,从共阴极LED 中吸入电流 SEG A~SEG G DP 7 段驱动和小数点驱动

ISET: 通过一个10k 电阻和Vcc 相连,设置段电流

MAX7219 有下列几组寄存器: 译码控制寄存器、亮度控制寄存器、扫描界限寄存器、关断模式寄存器、测试控制寄存器。编程时只有正确操作这些寄存器,MAX7219 才可工作。

MAX7219读写时序说明:

MAX7129 是SPI 总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。

要想与MAX7129 通信,首先要先了解MAX7129 的控制字。MAX7129 的控制字格式如下图。

如图,工作时,MAX7219 规定一次接收16 位数据,在接收的16 位数据中:D15~D12 可以与操作无关,可以任意写入,D11~D8 决定所选通的内部寄存器地址,D7~D0 为待显示数据或是初始化控制字。在CLK 脉冲作用下,DIN 的数据以串行方式依次移入内部16 位寄存器,然后在一个LOAD 上升沿作用下,锁存到内部的寄存器中。注意在接收时,先接收最高位D16,最后是D0,因此,在程序发送时必须先送高位数据,在循环移位。工作时序图见下图。

6

课程设计报告

由于52 是8 位单片机故需要分两次来送数据。

数据读写时序图

单片机复位电路:

上电自动复位原理:

在电路图中,电容的的大小是10uF,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。

也就是说在启动的0.1S内,电容两端的电压时在0~3.5V增加。这个时候10K电阻两端的电压为从5~1.5V减少(串联电路各处电压之和为总电压)。所以在0.1S内,RST引脚所接收到的电压是5V~1.5V。在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。

按键按下的时候复位原理:

在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之

7

课程设计报告

和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。

数码管简介:

数码管也称LED数码管,数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个(8)可分为1位、2位、3位、4位、5位、6位、7位等数码管。

按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。

驱动方式:分静态显示驱动和动态显示驱动两种方式。

静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划\的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同

8