基于单片机的跑马灯系统的设计与实现
单片机原理与应用课程设计-基于单片机的音乐跑马灯设计

单片机原理与应用课程设计设计课题:音乐跑马灯班级:小组成员:时间:2013年1月6日音乐跑马灯的设计一、实验内容:1.使用8个发光管作跑马灯,其中有3种亮灭模式。
2.有专门的开关K1~K3用来切换跑马灯的模式。
3.每一种跑马灯模式用LED数码管进行显示1、2、3。
4.当跑马灯处于某种模式时,有对应的音乐响起。
有三首曲子可以选着。
提示:亮灭模式自己设计,可以从速度或者点亮方法上设计。
响音乐的程序可以参考实验手册上《电子音响》部分。
二、实验原理:用三个开关控制音乐跑马灯的三种模式,每一种模式都是在LED数码管显示模式的号码的同时先响音乐后闪灯。
跑马灯采用P3口作为输入口,外接三个开关用来控制跑马灯的亮灭模式。
P1口做输出口,P1口接的8个发光二极管L1~L8按16进制方式点亮发光二极管,即8个发光管相当于8位的二进制位。
当数值为1时,L1点亮;数值为2=00000010B时,L2点亮;数值为4=00000100时,L3点亮,依次类推。
不同的音符对应不同的频率,所以只要用不同频率的信号驱动喇叭,就能发出不同的音符了,所以转换为使用定时器在P1.7引脚输出某一频率的方波脉冲即可。
单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,因此单片机奏乐只需弄清楚两个概念,也就是“音调”和“节拍”。
音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间,乐谱中每一个音符都与某一个特定的频率相对应,所以只需要产生不同频率的方波信号(产生不同音调),并且延时不同的时间(产生不同节拍),即可完成音乐的播放。
三、硬件原理:1.跑马灯亮灭模式原理图,如图(1)所示。
图(1) 跑马灯亮灭模式原理图2.让喇叭响音乐的原理图,如图(2)所示。
图(2) 电子音响原理图3.使第三个LED数码管显示1、2、3、4、5,如图(3)和(4)所示。
图(3) LED共阳极连接原理图图(4) LED数据显示示意图用三个开关(K1~K3)控制音乐跑马灯的三种模式,每一种模式都是在LED 数码管显示模式的号码的同时先响音乐后闪灯。
单片机跑马灯(流水灯)控制实验报告

单片机跑马灯(流水灯)控制实验报告实验目的:本实验旨在通过使用单片机对LED灯进行控制,实现跑马灯(流水灯)的效果,同时熟悉单片机编程和IO口的使用。
实验器材:1)STC89C52单片机2)最基本的LED灯3)面包板4)若干跳线实验过程:1.硬件连接:将单片机的P2口与面包板上的相应位置连接,再将LED灯接入面包板中。
2.编写程序:按照题目要求编写所需程序。
3.单片机烧录:将程序烧录进单片机中,即可实现跑马灯效果。
程序详解:1. 由于LED灯是呈现亮灭效果,我们要编写程序来控制LED的亮灭状态。
2. 在程序中,我们通过P2口控制LED灯的亮灭状态。
例如,若要让LED1亮,我们就将P2口的第一个引脚设置为低电平(0),此时LED1就会发光。
同样地,若要LED2,LED3等依次点亮,则需要将P2口的第二个、第三个引脚设置为低电平,依此类推即可。
3. 接下来,我们要实现每个LED灯的亮灭时间间隔,并实现跑马灯的效果。
4. 在本实验中,我们采用了计时器中断的方式来实现灯光的控制,即在定时器中断函数中对P2口进行控制,这样可以方便地控制灯亮灭时间和亮度。
通过改变定时器中断的时间,可以改变LED灯的亮灭时间;通过改变P2口的控制顺序,可以实现跑马灯效果。
5. 整个程序比较简单,具体的代码实现可以参考以下程序:#include <REG52.H>#include <intrins.h>#define uint unsigned int #define uchar unsigned char void Delay1ms(uchar _ms); void InitTimer0();sbit led1=P2^0;sbit led2=P2^1;sbit led3=P2^3;sbit led4=P2^4;sbit led5=P2^5;sbit led6=P2^6;sbit led7=P2^7;void InitTimer0(){TMOD=0x01;TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;TR0=1;}void Timer0() interrupt 1 {static uint i;TH0=(65536-50000)/256; TL0=(65536-50000)%256;i++;if(i%2==0){led1=~led1;}if(i%4==0){led2=~led2;}if(i%6==0){led3=~led3;}if(i%8==0){led4=~led4;}if(i%10==0){led5=~led5;}if(i%12==0){led6=~led6;}if(i%14==0){led7=~led7;}}void Delay1ms(uchar _ms){uchar i;while(_ms--){i=130;while(i--);}}实验总结:通过本次实验,我们掌握了单片机控制跑马灯(流水灯)的方法,对单片机编程和IO 口的使用有了更深入的了解。
单片机闪烁灯跑马灯控制课程设计

单片机闪烁灯跑马灯控制课程设计单片机闪烁灯跑马灯控制课程设计报告一、引言本课程设计旨在通过学习和实践单片机(MCU)编程,实现闪烁灯和跑马灯的控制。
我们将使用嵌入式C语言编程,通过了解单片机的内部结构、电路设计和编程流程,深入理解单片机的工作原理和应用。
二、系统硬件设计本课程设计选用51单片机作为主控芯片,外接8个LED灯和1个按键。
硬件电路设计如下:1.单片机:采用AT89C51,该芯片具有32K字节的Flash存储器,256字节的RAM,以及两个16位定时器/计数器。
2.LED灯:采用普通LED灯珠,与单片机引脚相连,通过编程控制LED灯的亮灭状态。
3.按键:采用机械按键,与单片机的外部中断0(EX0)相连,用于触发闪烁灯和跑马灯的切换。
三、系统软件设计1.闪烁灯模式:在此模式下,8个LED灯将按照一定的频率交替闪烁。
我们可以通过计时器和GPIO口控制LED灯的亮灭状态。
void blink_LED(void) {int i;while(1) {for(i = 0; i < 8; i++) {P1_0 = ~P1_0; // 翻转LED状态delay(500); // 延时,控制闪烁频率}}}2.跑马灯模式:在此模式下,8个LED灯将按照一定的顺序依次点亮。
我们可以通过计时器和GPIO口控制LED灯的亮灭状态。
void marquee_LED(void) {int i;int led_state[8] = {0, 1, 0, 1, 0, 1, 0, 1}; // LED状态数组,初始为交替亮灭while(1) {for(i = 0; i < 8; i++) {P1_0 = led_state[i]; // 设置LED状态delay(50); // 延时,控制跑马灯速度}}}四、按键处理程序我们通过外部中断0(EX0)接收按键信号,当按键按下时,将切换闪烁灯和跑马灯模式。
按键处理程序如下:void EX0_ISR(void) interrupt 0 { // EX0中断服务程序if (key_flag) { // 如果按键已经被按下过if (key_value == 0) { // 如果按键状态为低电平marquee_LED(); // 切换到跑马灯模式key_flag = 0; // 标记按键状态已经改变} else { // 如果按键状态为高电平blink_LED(); // 切换到闪烁灯模式key_flag = 0; // 标记按键状态已经改变}key_value = ~key_value; // 翻转按键状态值} else { // 如果按键还没有被按下过key_value = ~key_value; // 翻转按键状态值if (key_value == 0) { // 如果按键状态为低电平blink_LED(); // 切换到闪烁灯模式key_flag = 1; // 标记按键状态已经改变} else { // 如果按键状态为高电平marquee_LED(); // 切换到跑马灯模式key_flag = 1; // 标记按键状态已经改变}}}。
单片机课程设计报告跑马灯

单片机课程设计报告跑马灯武汉纺织大学单片机课程设计报告设计课题:跑马灯指导教师:刘丰姓名:颜珊曹坤班级:应电092一、设计任务利用单片机制作让LED灯依次闪烁时间间隔为0.5S二次后时间加快为0.2S并循环闪烁的跑马灯.二、设计要求(1)采用单片机STC89C52来控制,下载器由芯片MAX232来对程序的下载。
(2)LED灯的闪烁间隔时间为0.5S-0.25S-1S,每循环两圈更改闪烁速度。
(3)供电采用USB方口的方式。
三、方案设计与论证跑马灯电路的组成方框图为:四,主要元件介绍(1)单片机STC89C52引脚介绍stc89c52的内核和AT51系列单片机一样,故引脚也相同:1~8:I/OP1口(P1.0~P1.7);9:复位脚(RST/Vpd);10~17:I/OP3口(P3.0=RXD,P3.1=TXD,P3.2=-INT0,P3.3=-INT1,P3.4=T0,P3.5=T1,P3.6=-WR,P3.7=-RD)主要是此引脚;18、19:晶振(18=XTAL2,19=XTAL1);20:地(Vss);21~28:I/OP2口(P2.0~P2.7);29:-PSEN;30:ALE/-PROG;31:-EA/Vpp32~39:I/OP0口(P0.7~P0.0);40:+5V电源。
注:引脚功能前加“-”,说明其是低电平有效。
如P3.2=-INT0。
(2)MAX232介绍MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电。
内部结构基本可分三个部分:第一部分是电荷泵电路。
由1、2、3、4、5、6脚和4只电容构成。
功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。
由7、8、9、10、11、12、1 3、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、1 4脚(T1OUT)为第一数据通道8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2 OUT)为第二数据通道。
基于msp430g2553单片机跑马灯设计(DOC)

单片机的出现时计算机发展史上的一个重要里程碑,它开辟了计算机技术的另一个领域——嵌入式(Embedded)计算机领域。
所谓单片机就是把中央处理器、存储器、定时器、I/0接口电路等一些计算机的主要功能部件集成在一块集成电路芯片上的微型计算机。
单片机把微型计算机的各主要部分集成在一块芯片上,大大缩短了系统内信号传送距离,从而提高了系统的可靠性及运行速度。
所以单片机是典型的嵌入式系统,是嵌入式系统低端应用的最佳选择。
自20世纪70年代以来,单片机在工业测控、仪器仪表、航空航天、军事武器、家用电器等领域的应用越来越广泛,功能也越来越完善。
由单片机及各种微处理器、DSP所构成的嵌入式系统设计已成为电子技术产业发展的一项重要内容。
单片机技术也成为电子技术及自动化专业必须掌握的技术之一。
近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
本设计主要以msp430g2553单片机为基础应用I/O口,复位电路,晶振电路并写好底层程序,做出能应用于跑马灯的最小系统。
关键词:最小系统,嵌入式,msp430g2553,跑马灯1. 绪论 (3)2. 设计方案及分析 (5)2.1 设计目的 (5)2.2 设计要求 (5)2.3 LED灯管 (5)2.3.1 LED灯简介 (5)2.3.2 LED原理 (6)2.4 系统框图 (7)2.5 系统的软件设计 (7)2.5.1 程序编写部分 (7)2.5.2 延时的计算 (8)2.5.3 程序流程图 (8)2.5.4 跑马灯的效果描述 (9)2.6 系统调试及结果分析 (10)3. 总结和体会及遇到的问题 (12)4. 致谢 (13)附录 (14)参考文献 (20)1.绪论由于单片机技术在各个领域正得到越来越广泛的应用,世界上许多集成电路生产厂家相继推出了各种类型的单片机,在单片机家族的众多成员中MSP430系列单片机是一个16位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7种源操作数寻址、4种目的操作数寻址)、简洁的27条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令。
基于单片机的跑马灯系统的设计与实现

《单片机及控制系统设计》课程设计报告题目:基于单片机的跑马灯系统的设计与实现院(系):机电与自动化学院专业班级:电气自动化技术0901学生姓名:***学号:***********指导教师:**2011年12月26日至2012年1月10日华中科技大学武昌分校目录1设计题目及要求 (1)1.1设计题目 (1)1.2设计目的 (1)1.3控制要求 (1)2硬件设计 (2)2.1单片机简介 (2)2.1.1 单片机的引脚 (2)2.1.2单片机的内部结构 (3)2.2电源电路 (4)2.3时钟电路 (4)2.4复位电路 (5)2.5 EA/VPP(31脚)的功能和接法 (6)2.6 P0 口外接上拉电阻 (6)2.7 发光二级管 (7)2.8 显示电路部分 (8)2.9 AT89C51单片机最小系统 (9)3 软件设计 (10)3.1源程序与注释 (10)3.2软件编译、调试与烧入 (11)总结 (16)附录实物图 (17)参考文献 (18)1.设计题目及要求1.1设计题目单片机小系统版控制LED灯1.2设计目的1.单片机最小应用系统的硬件设计技能训练;2.ASM语言或C51语言软件编程与调试技能训练;3.“下载及烧录(固化)程序”开发技能训练;4.Protell软件应用技能训练;1.3控制要求按键及外部中断控制二级管灯(自右向左)1.按键控制8个LED灯循环自右向左依次点亮2.间隔时间可以自行设计3.单号灯亮双号灯灭7→ 5→ 3→ 1→ 7→ 5→ 3→ 1……1.外部中断控制8个LED灯循环自右向左依次点亮2.间隔时间可以自行设计3.双号灯亮单号灯灭8→ 6→ 4→ 2→ 8→ 6→ 4→ 2……2.硬件设计2.1单片机简介2.1.1单片机的引脚(1)电源:40号引脚VCC是芯片电源,接+5V。
20号引脚VSS为电源接地端。
(2)时钟引脚:XTAL2(18号脚)采用内部时钟电路时,外接晶体振荡器;采用外部时钟电路时,此引脚接地。
51单片机8个跑马灯程序设计思路

51单片机8个跑马灯程序设计思路单片机是一种集成电路,内部包含了计算机的主要组件,如中央处理单元(CPU)、存储器等。
通过编程,可以实现各种不同的功能。
在这里,我将以设计一个8个跑马灯的程序为例,来讲解单片机程序的设计思路。
1.硬件准备首先,我们需要准备一个适用于单片机的开发板,例如STC89C52,以及8个LED灯。
将LED灯连接到开发板的GPIO引脚上,并通过电阻进行限流。
使用跳线将GPIO引脚与LED灯的正极连接。
2.程序结构设计在单片机程序中,我们通常会使用循环结构。
因此,在设计跑马灯程序时,我们可以使用一个无限循环,来实现LED灯的闪烁效果。
具体的程序结构如下所示:```c#include <reg52.h>sbit led0 = P0 ^ 0; //第1个LED灯sbit led1 = P0 ^ 1; //第2个LED灯sbit led2 = P0 ^ 2; //第3个LED灯//...sbit led7 = P0 ^ 7; //第8个LED灯void mainwhile (1)//跑马灯代码}}```在这段代码中,我们首先引入头文件`reg52.h`,它包含了STC89C52的寄存器定义和常用函数的声明。
然后,我们定义了8个宏,用于表示8个LED灯所连接的引脚号。
接下来,在`main(`函数中,我们使用一个无限循环`while(1)`,来实现LED灯的闪烁效果。
3.跑马灯实现思路在无限循环中,我们需要通过对GPIO的控制来实现8个LED灯的闪烁。
具体的实现思路如下:- 首先,我们可以定义一个变量`index`,用于表示当前亮起的LED灯的索引值。
初始时,`index`的值为0,表示第一个LED灯亮起。
- 然后,我们可以使用`switch...case`语句来判断当前的`index`值,从而控制不同的LED灯亮起。
- 在每次循环中,我们可以通过对`index`的递增来实现灯的滚动效果。
基于AT89S52单片机的多模式带音乐跑马灯设计实训报告

基于AT89S52单片机的多模式带音乐跑马灯设计实训报告一、实训目的和要求本次实训的目的是通过设计一个基于AT89S52单片机的多模式带音乐跑马灯,加深对单片机、音乐、跑马灯等知识的理解,提高实际动手能力和创新能力。
要求通过实训设计实现以下功能:1.实现多种跑马灯效果,包括顺序、逆序、左移、右移等;2.实现音乐播放功能,增加趣味性;3.设计合理的电路布局和编程结构,提高系统的稳定性和可靠性。
二、实训内容和方案设计1.系统硬件设计:(1)主控单板:采用AT89S52单片机作为主控制器;(2)驱动器:使用ULN2003芯片驱动数码管和LED灯;(3)时钟电路:使用晶振频率为11.0592MHz的电路;(4)音频输出电路:使用LM386音频放大器作为音频输出电路。
2.程序设计:(1)主程序框架设计:主程序采用无限循环方式,根据按键输入选择跑马灯模式;(2)跑马灯模式设计:根据不同模式选择,使用对应的跑马灯效果函数进行控制;(3)音乐播放设计:通过PWM脉冲宽度调制方式,实现音乐播放功能。
三、实训步骤和实施过程1.硬件部分:(1)按照设计方案进行电路布线和焊接;(3)连接数码管、LED灯和音频输出电路,进行功能测试。
2.软件部分:(1) 在Keil C中建立项目并编写主程序的框架;(2)编写跑马灯效果函数,实现不同的跑马灯模式;(3)编写音乐播放函数,通过PWM方式产生不同频率的方波实现音乐播放;(4)完善主程序框架,添加按键输入和模式选择功能。
四、实训结果和实验分析经过实际测试,多模式带音乐跑马灯设计实现了预期的功能,能够根据用户的选择进行不同的跑马灯模式和音乐播放。
实训过程中,需要注意以下问题:1.硬件部分需要精确连接,尤其是音频输出电路的设计,需要注意电路布线,以防止杂音和干扰。
2.在软件编程过程中,需要合理利用中断和定时器等功能,确保跑马灯的流畅切换和音乐的正常播放。
3.在调试过程中,可以逐步调试并测试每个模块的功能,确保整个系统的稳定性和可靠性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《单片机及控制系统设计》课程设计报告题目:基于单片机的跑马灯系统的设计与实现院(系):机电与自动化学院专业班级:电气自动化技术0901学生姓名:詹志鹏学号:20092822006指导教师:汪媛2011年12月26日至2012年1月10日华中科技大学武昌分校目录1设计题目及要求 (1)1.1设计题目 (1)1.2设计目的 (1)1.3控制要求 (1)2硬件设计 (2)2.1单片机简介 (2)2.1.1 单片机的引脚 (2)2.1.2单片机的内部结构 (3)2.2电源电路 (4)2.3时钟电路 (4)2.4复位电路 (5)2.5 EA/VPP(31脚)的功能和接法 (6)2.6 P0 口外接上拉电阻 (6)2.7 发光二级管 (7)2.8 显示电路部分 (8)2.9 AT89C51单片机最小系统 (9)3 软件设计 (10)3.1源程序与注释 (10)3.2软件编译、调试与烧入 (11)总结 (16)附录实物图 (17)参考文献 (18)1.设计题目及要求1.1设计题目单片机小系统版控制LED灯1.2设计目的1.单片机最小应用系统的硬件设计技能训练;2.ASM语言或C51语言软件编程与调试技能训练;3.“下载及烧录(固化)程序”开发技能训练;4.Protell软件应用技能训练;1.3控制要求按键及外部中断控制二级管灯(自右向左)1.按键控制8个LED灯循环自右向左依次点亮2.间隔时间可以自行设计3.单号灯亮双号灯灭7→ 5→ 3→ 1→ 7→ 5→ 3→ 1……1.外部中断控制8个LED灯循环自右向左依次点亮2.间隔时间可以自行设计3.双号灯亮单号灯灭8→ 6→ 4→ 2→ 8→ 6→ 4→ 2……2.硬件设计2.1单片机简介2.1.1单片机的引脚(1)电源:40号引脚VCC是芯片电源,接+5V。
20号引脚VSS为电源接地端。
(2)时钟引脚:XTAL2(18号脚)采用内部时钟电路时,外接晶体振荡器;采用外部时钟电路时,此引脚接地。
XTAL1(19号脚)采用内部时钟电路时,外接晶体振荡器;采用外部时钟电路时,此引脚接外部时钟源。
(3)控制引脚:ALE/为地址锁存允许信号,用来把低8位地址锁存到外部地址锁存器。
ALE引脚以不变的1/6振荡频率周期性地发出正脉冲信号,可用做对外输出的时钟信号。
(4)I/O口线:P0口(32~39号脚)为双向输入/输出端口。
P1口(1~8号脚)为准双向输入/输出端口。
P2口(21~28号脚)为准双向输入/输出端口。
P3口(10~17号脚)为准双向输入/输出端口。
2.1.2单片机的内部结构51系列单片机主要包括CPU、程序存储器、数据存储器以及接口电路等各组成部分。
单片机内部结构框图单片机的内部结构:① 1个8位的CPU。
②时钟电路。
③程序存储器。
④数据存储器。
⑤定时器/计数器。
⑥ 4个并行口。
⑦ 1个全双工串行口。
⑧ 5个中断源。
2.2电源电路电源模块通过7805稳压之后稳定的输出5v电压,以供整个系统工作。
7805 系列为三端正稳压电路,TO-220 封装,能提供多种固定的输出电压,应用范围广。
内含过流、过热和过载保护电路。
带散热片时,输出电流可达 1A。
虽然是固定稳压电路,但使用外接元件,可获得不同的电压和电流。
主要特点:输出电流可达 1A,输出电压有:5V,过热保护,短路保护,输出晶体管 SOA 保护。
2.3时钟电路在设计时钟电路之前,让我们先了解下51 单片机上的时钟管脚:XTAL1(19 脚):芯片内部振荡电路输入端。
XTAL2(18 脚):芯片内部振荡电路输出端。
XTAL1 和XTAL2 是独立的输入和输出反相放大器,它们可以被配置为使用石英晶振的片内振荡器,或者是器件直接由外部时钟驱动。
图中采用的是内时钟模式,即采用利用芯片内部的振荡电路,在XTAL1、XTAL2 的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。
一般来说晶振可以在1.2 ~ 12MHz 之间任选,甚至可以达到24MHz 或者更高,但是频率越高功耗也就越大。
在本实验套件中采用的11.0592M 的石英晶振。
和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。
当采用石英晶振时,电容可以在20 ~ 40pF 之间选择(本实验套件使用30pF);当采用陶瓷谐振器件时,电容要适当地增大一些,在30 ~ 50pF 之间。
通常选取33pF 的陶瓷电容就可以了。
2.4复位电路在单片机系统中,复位电路是非常关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就需要进行复位。
MCS-5l 系列单片机的复位引脚RST(第9 管脚)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST 持续为高电平,单片机就处于循环复位状态。
复位操作通常有两种基本形式:上电自动复位和开关复位。
图中所示的复位电路就包括了这两种复位方式。
上电瞬间,电容两端电压不能突变,此时电容的负极和RESET 相连,电压全部加在了电阻上,RESET 的输入为高,芯片被复位。
随之+5V电源给电容充电,电阻上的电压逐渐减小,最后约等于0,芯片正常工作。
并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后,通过按下按键使RST管脚出现高电平达到手动复位的效果。
一般来说,只要RST 管脚上保持10ms 以上的高电平,就能使单片机有效的复位。
图中所示的复位电阻和电容为经典值,实际制作是可以用同一数量级的电阻和电容代替,也可自行计算RC 充电时间或在工作环境实际测量,以确保单片机的复位电路可靠。
2.5 EA/VPP(31脚)的功能和接法51 单片机的EA/VPP(31 脚)是内部和外部程序存储器的选择管脚。
当EA 保持高电平时,单片机访问内部程序存储器;当EA 保持低电平时,则不管是否有内部程序存储器,只访问外部存储器。
对于现今的绝大部分单片机来说,其内部的程序存储器(一般为flash)容量都很大,因此基本上不需要外接程序存储器,而是直接使用内部的存储器。
在本实验套件中,EA 管脚接到了VCC 上,只使用内部的程序存储器。
2.6 P0 口外接上拉电阻51 单片机的P0 端口为开漏输出,内部无上拉电阻。
所以在当做普通I/O 输出数据时,由于V2 截止,输出级是漏极开路电路,要使“1”信号(即高电平)正常输出,必须外接上拉电阻。
P0端口的1位结构另外,避免输入时读取数据出错,也需外接上拉电阻。
在这里简要的说下其原因:在输入状态下,从锁存器和从引脚上读来的信号一般是一致的,但也有例外。
例如,当从内部总线输出低电平后,锁存器Q = 0, Q = 1,场效应管V1 开通,端口线呈低电平状态。
此时无论端口线上外接的信号是低电平还是高电平,从引脚读入单片机的信号都是低电平,因而不能正确地读入端口引脚上的信号。
又如,当从内部总线输出高电平后,锁存器Q = 1, Q = 0,场效应管V1 截止。
如外接引脚信号为低电平,从引脚上读入的信号就与从锁存器读入的信号不同。
所以当P0 口作为通用I/O 接口输入使用时,在输入数据前,应先向P0 口写“1”,此时锁存器的Q 端为“0”,使输出级的两个场效应管V1、V2 均截止,引脚处于悬浮状态,才可作高阻输入。
总结来说:为了能使P0 口在输出时能驱动NMOS 电路和避免输入时读取数据出错,需外接上拉电阻。
在本实验套件中采用的是外加一个10K 排阻。
此外,51 单片机在对端口P0—P3 的输入操作上,为避免读错,应先向电路中的锁存器写入“1”,使场效应管截止,以避免锁存器为“0”状态时对引脚读入的干扰。
2.7发光二极管发光二级管是由III-IV族化合物半导体制成的,其核心是PN结。
因此它具有一般P-N结的I-N特性,即正向导通,反向截止、击穿特性。
此外,在一定条件下,它还具有发光特性。
在正向电压下,电子由N区注入P区,空穴由P区注入N区。
进入对方区域的少数载流子一部分与多数载流子复合而发光。
如图所示:假设发光是在P区中发生的,那么注入的电子与价带空穴直接复合而发光,或者先被发光中心捕获后,在与空穴复合发光。
除了这种复合发光外,还有些电子被非发光中心捕获,而后在与空穴复合。
每次释放的能量不大,不可能形成可见光。
发光的复合量相对于非发光的复合量的比例越大,光量子效率越高。
由于复合是在少子扩散去内发光的,所以光线仅在靠近PN结面数um以内产生。
发光二极管的特性有极限参数的意义、电参数的意义。
极限参数的意义有允许功耗、最大正向直流电流、最大反向电压和工作环境。
电参数的意义有光谱分布和峰值波长、发光强度、光谱半宽度、半直角和视角、正向工作电流、正向工作电压和V-I特性。
发光二极管的应用:由于发光二极管的颜色、尺寸、形状、发光强度及透明情况等不同,所以使用发光二极管时应根据实际需要进行恰当选择。
由于发光二极管具有最大正向电流、最大反向电压的限制,使用时,应保证不超过此值。
发光二极管被广泛应用于各种电子仪器和电子设备中,可作为电源指示灯、电平指示或微光源之用。
红外发光二极管被常用于电视机、录象机等的遥控中。
2.8 显示电路部分显示部分主要是由八个LED和两个七段数码管组成,八个LED由限流电阻限流后接入p1口,p0口接入上拉电阻,并接限流电阻和数码管DYP-7-1的七段LED,数码管DYP-7-2的七段LED和限流电阻接入p2口,两个数码管的公共端并接限流电阻后接VCC。
2.9 AT89C51单片机最小系统3.软件设计3.1源程序与注释ORG 0000H ;下一条语句的地址为0000HLJMP KS ;长跳转到KS标号执行程序ORG 0003H ;下一条语句的地址为0003HLJMP MAIN ;长跳转到MAIN标号执行程序KS: SETB IT0 ;设置IT0(interrupt type)=1,意思是int0下降沿触发 SETB EX0 ;设置EX0(externel extended)=1,意思是打开外部中断int0允许位SETB EA ;设置EA(enable all)=1,意思是打开总中断开关(即开中断) MOV A,#0BFH ;将0BFH立即数送至A寄存器L: MOV P1,A ;将A寄存器的值送到P1口ACALL DAY ;调用DAY函数RR A ;Rotate right,将A寄存器向右循环1次RR A ;同上SJMP L ;短跳转到L标号处执行程序MAIN: MOV A,#7FH ;将7FH立即数送至A寄存器MOV P1,A ;将A寄存器的值送至P1口ACALL DAY ;调用函数DAYRR A ;Rotate right,将A寄存器向右循环1次RR A ;同上MOV P1,A ;将A寄存器的值送至P1口RETI ;中断函数返回DAY: MOV R0,#0FFH ;将0FFH立即数送至R0工作寄存器组DL2: MOV R1,#0FFH ;将0FFH立即数送至R1工作寄存器组DL1: NOP ;空机器周期,什么都不做,亦即等待12个时钟周期NOP ;同上DJNZ R1,DL1 ;将R1的内容-1,测试是否为0,如果不等于0,则跳至DL1标号执行程序DJNZ R0,DL2 ;将R0的内容-1,测试是否为0,如果不等于0,则跳至DL2标号执行程序RET ;DAY函数返回END KS ;程序结束3.2软件编译、调试与烧入1.启动VisionVision2是一个标准的Windows应用程序,双击Keil Vision2图标即可启动,也可以选择“开始”→“程序”Keil Vision2”命令来启动运行。