资源描述
一、 容与要求
容:设计制作一个51最小系统,用最小系统控制8个发光2极管。
要求:全部点亮,依次点亮,交换点亮;用最小系统控制蜂鸣器;用最小系统控制电机。
二、 设计思路
使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
判断有无按键按下
Y
N
开始
当Key1-Key5有键按下时
调用延时程序
调用彩灯循环程序
当Key6按下时
设定相应的延时参数R5的值
图2-1 主程序流程图
八个发光二极管D1-D8分别接在单片机的P2.0-P2.7接口上,当给P2.0口输出“0”时,发光二极管点亮,当输出“1”时,发光二极管熄灭。可以运用输出端口指令MOV P0,A或MOV P0,#DATA,只要给累加器值或常数值,同理,接在P2.1~P2.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的成流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以与单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到闪烁效果。
程序启动时跳转到键盘判断模块程序中,此程序里面包含Key1~Key5的按键情况判断,循环检测直到有按键按下的时候,程序转去相对应按键的彩灯显示的花型模块,与此同时,当按键Key6有闭合时,程序中调用延时程序程序时,给延时参数赋值上另一个值,是延时程序延时时间发生改变,以达到不同快慢节奏闪烁的彩灯。具体程序流程图2-1所示。
三、 硬件设计
3.1 直流稳压电源电路
对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源电路的稳定可靠是系统平稳运行的前提和基础。电子设备除用电池供电外,还采用市电(交流电网)供电。通过变压、整流、滤波和稳压后,得到稳定的直流电。直流稳压电源是电子设备的重要组成部分!本项目直流稳压电源为+5V。如下图所示:
直流稳压电源的制作一般有3种制作形式,分别是分立元件构成的稳压电源、线性集成稳压电源和开关稳压电源。下图稳压电源采用的是三端集成稳压器7805构成的正5V直流电源。
图3-1 三端固定式集成稳压电源电路图
AT89C51单片机的工作电压围:4.0V—5.5V,所以通常给单片机外接5V直流电源。由于时间关系,此处用3节1.5V的干电池供电,在此不在赘述此稳压电源电路图原理。
3.2 单片机最小系统
要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成。单片机最小系统如下图3-2所示。
时钟电路:本系统采用单片机部方式产生时钟信号,用于外接一个12MHz石英晶体振荡器和2个30pF微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入部的时钟电路。
复位电路:确定单片机工作的起始状态,完成单片机的启动过程。单片机系统的复位方式有上电自动复位和手动按键复位。本设计采用手动按键复位,该复位方式同样具有上电自动复位功能。电路如下图所示。
图3-2 单片机最小系统
3.3 LED彩灯显示电路
LED彩灯显示电路(如图所示)实际上是由8个发光二极管和8个电阻构成的电路。发光二极管与电阻对应串联,然后接在与之相对应的P2口上。通过软件编程对P2口输出高低电平来实现不同的闪烁花型。由于发光二极管的导通电压一般为1.7V以上,另外,它的工作电流根据型号不同一般为1mA到30mA,电阻选择围100欧姆~3千欧姆,这里选用560欧姆的电阻。
图3-3 LED彩灯显示电路
3.4 按键控制电路
按键控制电路(如图3-4所示)是由6个按键开关构成的。他们分别接在单片机AT89C51的P1接口和P3.0口,Key1﹍Key5接在P1.0﹍P1.4,Key6接在P3.7上。为了一对一的控制LED灯的闪烁方式。当按下开关Key1时, LED彩灯系统闪烁第一种彩灯花型。当按下开关Key2时, LED灯系统闪烁第二种闪烁方式……
当闭合Key6时,彩灯闪烁节拍变慢。
图3-4 键盘控制电路
3.5 串口电路
串口电路为单片提供与PC机连接端口,为单片机提供下载程序到单片机程序存储器中。串口原理图如图3-5所示。
串口也称串行通信接口,RS-232是目前最常用的一种串行通讯接口,由于其形状和针脚数量的原因,其接头又被称为DB9接头。RS-232针脚定义: 2 RXD ← Receive Data 接收数据 、3 TXD → Transmit Data 发送数据 、5 GND — System Ground 系统接地,一般就用到这几个引脚。
图3-5 串口原理图
MAX232芯片是专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。
MAX23部结构基本可分三个部分:
第一部分是电荷泵电路:由1、2、3、4、5、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、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出
第三部分是供电:15脚DNG、16脚VCC(+5v)。
四、 仿真电路图
仿真电路图如图4-1所示:
图4-1 仿真电路图
五、 程序代码
ORG0000H
LJMPMAIN
ORG0040H
MAIN:MOVP1,#0FFH
MOVA,P1
CJNEA,#11111110b,S1
LCALLK1
S1:CJNEA,#11111101b,S2
LCALLK2
S2: CJNEA,#11111011b,S3
LCALLK3
S3: CJNEA,#11110111b,S4
LCALLK4
S4: CJNEA,#11101111b,MAIN
LCALLK5
LJMPMAIN
K1: MOVA,#01111111b
C1: RLA
MOVP2,A
LCALLDelay
JNBP1.1,K2
JNBP1.2,K3
JNBP1.3,K4
JNBP1.4,Z
LJMPC1
K2: MOVP2,#0FEH
LCALLDelay
MOVP2,#0FCH
LCALLDelay
MOVP2,#0F8H
LCALLDelay
MOVP2,#0F0H
LCALLDelay
MOVP2,#0E0H
LCALLDelay
MOVP2,#0C0H
LCALLDelay
MOVP2,#80H
LCALLDelay
MOVP2,#00H
LCALLDelay
MOVP2,#80H
LCALLDelay
MOVP2,#0C0H
LCALLDelay
MOVP2,#0E0H
LCALLDelay
MOVP2,#0F0H
LCALLDelay
MOVP2,#0F8H
LCALLDelay
MOVP2,#0FCH
LCALLDelay
MOVP2,#0FEH
LCALLDelay
MOVP2,#0FFH
LCALLDelay
LJMPMAIN
Z:LJMPK5
K3: MOVP2,#55H
LCALLDelay
MOVP2,#0AAH
LCALLDelay
MOVP2,#0FFH
LJMPMAIN
K4: MOVP2,#01111110B
LCALLDelay
MOVP2,#00111100B
LCALLDelay
MOVP2,#00011000B
LCALLDelay
MOVP2,#00000000B
LCALLDelay
MOVP2,#10000001B
LCALLDelay
MOVP2,#11000011B
LCALLDelay
MOVP2,#11100111B
LCALLDelay
MOVP2,#11111111B
LCALLDelay
LJMPMAIN
K5: MOVP2,#01111110B
LCALLDelay
MOVP2,#10111111B
LCALLDelay
MOVP2,#01111110B
LCALLDelay
MOVP2,#10011111B
LCALLDelay
MOVP2,#01111110B
LCALLDelay
MOVP2,#10001111B
LCALLDelay
MOVP2,#01111110B
LCALLDelay
MOVP2,#10000111B
LCALLDelay
MOVP2,#01111110B
LCALLDelay
MOVP2,#10000011B
LCALLDelay
MOVP2,#01111110B
LCALLDelay
MOVP2,#10000001B
LCALLDelay
MOVP2,#00H
LCALLDelay
MOVP2,#0FFH
LCALLDelay
MOVP2,#00H
LCALLDelay
MOVP2,#0FFH
LCALLDelay
LJMPMAIN
Delay: JNBP3.0,D1
MOVR5,#01H
LJMPD5
D1: MOVR5,#04H
D5:MOV R6,#0FFH
D6:MOV R7,#0FFH
D7:NOP
DJNZ R7,D7
DJNZ R6,D6
DJNZ R5,D5
RET
END
13 / 13
展开阅读全文