以AT89C51单片机为核心,起到控制作用。 该系统包括数码管显示电路、复位电路、时钟电路、发光二极管电路和按钮电路。 设计思路分为六个模块:复位电路、晶振电路模块、AT89C51、数码管显示电路、发光二极管电路和按钮电路。
1.2 硬件设计分析
1.2.1 电源设计
系统电源采用5伏直流电。
电源由计算机USB接口提供。
USB是通用串行总线接口的缩写。 它是目前使用最广泛的计算机接口之一。 主要有三个版本:1.0、1.1和最新的2.0。 根据USB总线行业标准,可以提供额定功率为5V/500mA的电源,供USB设备使用。
1.2.2 最小微控制器系统
51单片机是目前所有兼容Intel 8031指令系统的单片机的统称。 该系列微控制器的始祖是Intel的8031微控制器。 后来随着技术的发展,成为目前广泛使用的8位单片机之一。 单片机是一种大规模集成电路,将CPU、RAM、ROM、定时器/计数器和多功能I/O口等计算机所需的基本功能部件集成在一块芯片上。 它也被称为MCU。 51系列微控制器包含以下组件:
8位CPU; 片上振荡器和时钟电路;
4KB ROM程序存储器;
128B RAM数据存储器;
用于寻址64KB外部数据存储器和64KB外部程序存储空间的控制电路;
32条可编程I/O线;
两个16位定时器/计数器;
一个可编程全双工串口;
5个中断源,两个优先级嵌套中断结构。
图1-2-1所示为AT89C51单片机的基本结构。 其基本性能介绍如下:
AT89C51本身包含40个引脚,32个外部双向输入/输出(I/O)端口,2个外部和内部端口,3个16位可编程定时计数器,以及2个全双工串行通信端口,STC89C51RC可以根据常规方法进行编程,但不能在线编程。 它结合了通用微处理器和Flash存储器,特别是可重复擦除的Flash存储器,可以有效降低开发成本。
AT89C51的主要特点如下表所示:
AT89C51是一款40引脚双列直插式封装的8位通用微处理器。 它采用行业标准的C51内核。 其内部功能和引脚布局与通用8xc52相同。 主要用于收敛调整时的功能控制。 功能包括汇聚主IC内部寄存器、数据RAM和外部接口等功能部件的初始化、汇聚调整控制、汇聚测试模式控制、红外遥控信号IR的接收和解码以及与主板CPU的通信等。主要引脚为:XTAL1(引脚19)和XTAL2(引脚18)为振荡器输入输出端口,可外接12MHz晶振。 RST/Vpd(引脚9)为复位输入端口,连接外部电阻和电容组成的复位电路。 VCC(40脚)和VSS(20脚)为电源端口,分别连接+5V电源的正端和负端。 P0~P3为可编程通用I/O引脚,其功能由软件定义。 本设计中,P0 端口(引脚 32~39)定义为 N1 功能控制端口,连接到 N1 对应的功能引脚。 其中,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12、27脚28定义为握手信号功能端口,连接主板CPU相应功能端子,用于当前格式的检测和进入收敛调整状态的控制功能。
P0端口:P0端口是一组8位开漏双向I/O端口,是地址/数据总线复用端口。 作为输出口时,每一位可通过吸收电流驱动8个TTL逻辑门电路。 当向P0口写“1”时,可作为高阻输入端。 当访问外部数据存储器或程序存储器时,这组端口线分时共享地址(低8位)和数据总线复用,并在访问过程中激活内部上拉电阻。 Flash编程时,P0口接收指令字节,程序验证时,输出指令字节。 验证时,需要外接上拉电阻。
P1 端口:P1 是一个 8 位双向 I/O 端口,内部带有上拉电阻。 P1的输出缓冲级可以驱动(灌电流或输出电流)4个TTL逻辑门电路。 向端口写入“1”,并通过内部上拉电阻将端口拉至高电平。 此时可以作为输入口使用。 当用作输入端口时,由于内部有上拉电阻,当某个引脚被外部信号拉低时,会输出电流(IIL)。 与AT89C51不同的是,P1.0和P1.1还可以分别作为定时器/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。 在Flash编程和程序验证期间,P1接收低8位地址。
P2 端口:P2 是一个 8 位双向 I/O 端口,内部带有上拉电阻。 P2的输出缓冲级可以驱动(灌电流或输出电流)4个TTL逻辑门电路。 向P2端口写入“1”,并通过内部上拉电阻将端口拉至高电平。 此时可以作为输入口使用。 当用作输入口时,由于内部有上拉电阻,某个引脚会被外部信号上拉。 当为低电平时,将输出电流(IIL)。 当访问具有 16 位地址的外部程序存储器或外部数据存储器时(如执行 MOVX @DPTR 指令),端口 P2 发送高 8 位地址数据。 当访问8位地址的外部数据存储器时(如执行MOVX @RI指令),P2端口输出P2锁存器的内容。 在Flash编程或验证过程中,P2还接收高位地址和一些控制信号。
端口 P3:端口 P3 是一组 8 位双向 I/O 端口,内部有上拉电阻。 P3端口输出缓冲级可以驱动(灌电流或输出电流)4个TTL逻辑门电路。 当向P3端口写入“1”时,它们被内部上拉电阻拉高,可以用作输入端口。 此时,被外部拉低的P3口将使用上拉电阻输出电流(IIL)。 P3口除了作为通用I/O口线外,更重要的用途是它的第二个功能。 P3端口还接收一些用于Flash存储器编程和程序验证的控制信号。
RST:复位输入。 当振荡器工作时,RST引脚上的高电平持续两个机器周期以上将使单片机复位。
ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存使能)输出脉冲用于锁存地址的低8位字节。 正常情况下,ALE仍以时钟振荡频率的1/6输出固定脉冲信号,因此可以对外输出时钟或用于计时目的。 请注意,每当访问外部数据存储器时,都会跳过 AL 脉冲。 在Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。 如有必要,可以通过设置特殊功能寄存器 (SFR) 区域中位置 8EH 中的 D0 位来禁用 ALE 操作。 当该位置位时,只有 MOVX 和 MOVC 指令可以激活 ALE。 此外,该引脚将被弱拉高。 当微控制器执行外部程序时,ALE禁用位应设置为无效。
PSEN:程序存储使能(PSEN)输出是外部程序存储器的读选通信号。 当AT89C51从外部程序存储器取指令(或数据)时,每个机器周期PSEN有效两次,即输出两个脉冲。 在此期间,当访问外部数据存储器时,PSEN信号将被跳过两次。
EA/VPP:允许外部访问。 为了使CPU只能访问外部程序存储器(地址0000H-FFFFH),EA端子必须保持低电平(接地)。 需要注意的是,如果加密位LB1被编程,则EA端子状态将在复位期间被内部锁存。 如果EA端为高电平(连接到Vcc端),则CPU执行内部程序存储器中的指令。 当对Flash存储器进行编程时,+12V编程允许电源Vpp加到该引脚上。 当然,这必须是器件使用12V编程电压Vpp。
XTAL1:振荡器反相放大器和内部时钟发生器的输入。
XTAL2:振荡器反相放大器的输出。
单片机的最小原理图如图1-2-2所示。
单片机最小系统说明:
时钟信号的产生:MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。 在芯片外部,XTAL1和XTAL2跨接晶振和微调电容,构成稳定的自激振荡器,这就是单片机的时钟振荡电路。
时钟电路产生的振荡脉冲经触发器二分频后成为单片机的时钟脉冲信号。
一般电容C2、C3取30pF左右,晶振振荡频率范围为1.2-12MHz。 如果晶振频率高,则系统的时钟频率也高,单片机运行速度快。
单片机复位使CPU和系统中的其他功能部件处于某种初始状态,并从该状态开始工作。 MCU复位条件:引脚9必须加高电平,持续两个机器周期(即24个振荡周期)。
1.2.3 显示系统
数码管是一种半导体发光器件,其基本单元是发光二极管。
数码管按段数分为七段数码管和八段数码管。 八段数码管比七段数码管多了一个发光二极管单元(多了一位小数点显示); 根据能显示多少个“8”可以分为1位。 、2位、4位等数码管; 根据发光二极管单元的连接方式分为共阳极数码管和共阴极数码管。 共阳极数码管是指所有发光二极管的阳极连接在一起形成共阳极(COM)的数码管。 使用共阳极数码管时,共极COM应接+5V。 当某一场发光二极管的阴极处于低电平时,相应场就会点亮。 当某个场的阴极为高电平时,对应的场不会发光。 。 共阴极数码管是指所有发光二极管的阴极连接在一起形成共阴极(COM)的数码管。 使用共阴极数码管时,公共极COM应连接地线GND。 当某一场发光二极管的阳极处于高电平时,相应场就会点亮。 当某个场的阳极为低电平时,对应的场不会点亮。
为了让数码管正常显示,必须用驱动电路来驱动数码管的每一段显示我们想要的数字。 因此,根据数码管驱动方式的不同,可分为静态型和动态型两大类。
1)静态显示驱动器:静态驱动器也称为DC驱动器。 静态驱动是指每个数码管的各段码由单片机的I/O口驱动,或者采用BCD码二进一十进制译码器译码驱动。 静态驱动器的优点是编程简单、显示亮度高。 缺点是占用大量I/O端口。 比如驱动5个数码管进行静态显示,需要5×8=40个I/O口来驱动(要知道一块89C51单片机只能有32个I/O口)。 实际应用中,必须增加解码驱动程序进行驱动,增加了硬件电路的复杂度。
2)动态显示驱动:数码管动态显示接口是单片机中应用最广泛的显示方式之一。 动态驱动器是将所有同名数码管“a、b、c、d、e、f、g、dp”端子的8个显示笔画连接在一起,并在其上增加了位选通控制电路。各数码管的公共极COM。 位选通由独立的 I/O 线控制。 当单片机输出字形码时,所有数码管都接收到相同的字形码,但哪一个数码管显示字形取决于单片机对位选通COM端电路的控制,所以我们只需要打开需要显示的数码管。 就会显示字体,不频闪的数码管不会亮。 通过分时的方式依次控制各个数码管的COM端,可以实现对各个数码管的轮流控制和显示。 这就是动态驾驶。
本设计中数码管采用动态驱动方式。
数码管的外观如图1-2-3所示,数码管的电路结构如图1-2-4所示。
1.2.4 发光二极管电路
1.2.5 按键电路
第二章软件设计与分析
2.1 软件设计的组成部分
系统由延时子功能、数码管显示子功能、定时器0中断子功能、主功能和数据定义组成。
//———————————————— ———————–//
上传过程显得比较麻烦,而且可能有一些不准确的地方,还请大家见谅。 以下是达到的目的及电路原理图
**本设计的主要目的是设计城市十字路口的交通灯控制系统。 设计中,交通灯控制系统分为东西向(主干道)和南北向(次干道)两个方向。 四个路口各设有红、绿、黄三个红绿灯(用发光二极管模拟)和一个两位数的LED数码管。 设计要求是规定每个时段内只能通过东西、南北方向中的一个方向,其他方向禁止通行。 然后一段时间后,禁止方向和通行方向互换。 原来可以通过的状态变成禁止状态,原来禁止状态变成可以通过状态,如此循环下去。 详细流程如图2-1所示:
状态① 状态②
图1 图2-1 红绿灯状态图
状态①:东西向交通信号灯黄灯闪烁3秒后,红灯熄灭,绿灯亮起(允许车辆和行人沿东西方向通行)。 同时,南北方向绿灯灭,红灯亮(南北方向禁止车辆、行人通行)。 ),LED数码管显示倒计时40秒,倒计时3秒时进入状态②。
状态②:南北方向黄灯闪烁3秒后,红灯熄灭,绿灯亮起(南北方向允许车辆和行人通行); 同时,东西方向绿灯熄灭,红灯亮起。
(东西方向禁止车辆、行人通行),LED数码管显示倒计时40秒,倒计时3秒时进入状态①。
接下来,循环将如上所述继续,无需人工干预。 该设计还包括 6 个外部按钮来控制交通灯控制系统。
电子技术控制
我们来谈谈电子技术、金钱和事业吧!