一、内容及要求内容:设计制作一个51最小系统,用最小系统控制8个发光2极管。
要求:全部点亮,依次点亮,交换点亮;用最小系统控制蜂鸣器;用最小系统控制电机。
二、设计思路使用AT89C51单片机时无须外扩存储器。
因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
八个发光二极管D1-D8分别接在单片机的P2.0-P2.7接口上,当给P2.0口输出“0”时,发光二极管点亮,当输出“1”时,发光二极管熄灭。
可以运用输出端口指令MOV P0,A或MOV P0,#DATA,只要给累加器值或常数值,同理,接在P2.1~P2.7口的其他7个LED的点亮和熄灭的方法同LED1。
因此,要实现图2-1 主程序流程图流水灯功能,我们只要将发光二极管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.3LED彩灯显示电路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 仿真电路图五、程序代码ORG 0000HLJMP MAINORG 0040HMAIN: MOV P1,#0FFHMOV A,P1CJNE A,#11111110b,S1LCALL K1S1: CJNE A,#11111101b,S2LCALL K2S2: CJNE A,#11111011b,S3S3: CJNE A,#11110111b,S4LCALL K4S4: CJNE A,#11101111b,MAIN LCALL K5LJMP MAINK1: MOV A,#01111111bC1: RL AMOV P2,ALCALL DelayJNB P1.1,K2JNB P1.2,K3JNB P1.3,K4JNB P1.4,ZLJMP C1K2: MOV P2,#0FEHLCALL DelayMOV P2,#0FCHLCALL DelayMOV P2,#0F8HLCALL DelayMOV P2,#0F0HLCALL DelayMOV P2,#0E0HLCALL DelayMOV P2,#0C0HLCALL DelayMOV P2,#80HLCALL DelayMOV P2,#00HLCALL DelayMOV P2,#80HLCALL DelayMOV P2,#0C0HLCALL DelayMOV P2,#0E0HLCALL DelayMOV P2,#0F0HLCALL DelayMOV P2,#0F8HLCALL DelayMOV P2,#0FCHLCALL DelayMOV P2,#0FEHMOV P2,#0FFHLCALL DelayLJMP MAINZ: LJMP K5K3: MOV P2,#55HLCALL DelayMOV P2,#0AAHLCALL DelayMOV P2,#0FFHLJMP MAINK4: MOV P2,#01111110BLCALL DelayMOV P2,#00111100BLCALL DelayMOV P2,#00011000BLCALL DelayMOV P2,#00000000BLCALL DelayMOV P2,#10000001BLCALL DelayMOV P2,#11000011BLCALL DelayMOV P2,#11100111BLCALL DelayMOV P2,#11111111BLCALL DelayLJMP MAINK5: MOV P2,#01111110BLCALL DelayMOV P2,#10111111BLCALL DelayMOV P2,#01111110BLCALL DelayMOV P2,#10011111BLCALL DelayMOV P2,#01111110BLCALL DelayMOV P2,#10001111BLCALL DelayMOV P2,#01111110BLCALL DelayMOV P2,#10000111BLCALL DelayMOV P2,#01111110BLCALL DelayMOV P2,#10000011BLCALL DelayMOV P2,#01111110BLCALL DelayMOV P2,#10000001BLCALL DelayMOV P2,#00HLCALL DelayMOV P2,#0FFHLCALL DelayMOV P2,#00HLCALL DelayMOV P2,#0FFHLCALL DelayLJMP MAIN Delay: JNB P3.0,D1MOV R5,#01HLJMP D5D1: MOV R5,#04HD5: MOV R6,#0FFHD6: MOV R7,#0FFHD7: NOPDJNZ R7,D7DJNZ R6,D6DJNZ R5,D5RETEND。