上拉电阻,某个引脚被外部信号拉低时会输出一个电流。FLASH编程和程序校验期间,P1接收低8位地址。
P2口:P2是一个带内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序储存器或16位地址的外部数据储存器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据储存器(例如执行MOVX@RI指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。P3口:P3是一个带内部上拉电阻的8位双向I/O口,P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
P3除了作为一般的I/O口线外,更重要的用途是它的第二功能,具体功能说明如表3-1。
P3口还接收一些用于FLASH闪速存储器编程和程序校的控制信号。 RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位
ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
端口引脚 第二功能 P3.0 P3.1 P3.2 RXD(穿行输出口) TXD(穿行输入口) INT0(外部中断0) 8
P3.3 P3.4 P3.5 P3.6 INT1(外部中断1) T0(定时/计数器0) T1(定时/计数器0) WR(外部数据写选通) P3.7 表3-1 P3口的第二功能表
RD(外部数据读选通) 不访问外部存储器,ALE仍以是时钟振荡频率的1/6输出固定的正脉冲信号,因此他可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。
PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT80C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。
EA/VPP:外部访问允许。欲使CPU仅访问外部程序储存器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(Vcc端),CPU则执行内部程序储存器中的指令。
FLASH储存器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12v编程电压。
9
XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端
3.4 I/O接线图
接线图如下图所示:
图3.4:接线图
3.5 元器件选型
3.5.1 三极管选型
三极管选型时,以下几个参数必须考虑:
(1)ICM集电极最大允许电流 < 实际集电极电流,降额70%使用;
10
(2)BVCEO,基极开路时,集电极-发射极反向击穿电压 > 电源电压 * 70%,有感电路 降额使用,并加保护电路; ?
(3) PCM,集电极最大允许耗散功率,降额70%使用。? 基于小功率的考虑,本次设计采用了9012系列的三极管。 具体实物如下图所示:
图1:电路图 图2:实物
3.5.2 自锁开关选型
图3:实物 图4:电路如下所示
4 软件设计
11
4.1 软件设计思想
软件总体设计主要完成各部分的软件控制和协调。本系统主程序模块主要完成的工作是对系统的初始化,发送显示数据,同时对键盘进行扫描,等待外部中断,以及根据所需要的功能进行相应的操作。
交通灯根据其显示情况可以分为四个状态,可以通过定时来控制每个状态的时间;通过定时也可以向LED数码管中每隔1秒送一个数,显示该状态剩余的时间。其流程图如图所示。
开 始 设置定时,显示初始化 南北绿灯亮,东西红灯亮,延时 南北黄灯闪烁,东西红灯亮,延时 南北红灯亮,东西绿灯亮,延时 南北红灯亮,东西黄灯闪烁,延时
图4.1:流程图
12