LED小灯就是一种发光二极管,正向压降是1.6V~2.2V,电流是2~20mA,2~5mA时亮度随电流的增大而增大,超过5mA后亮度不再变化,大于20mA小灯损坏。本实验采用贴片式的LED小灯,通过一个74HC573D芯片(数据手册)控制LED小灯的亮灭。
名称:LED小灯控制
说明:通过实验控制LED小灯产生不同的变化,学习LED小灯的原理和控制方法,用排线将J10与J21连接起来;P2口控制。实验中当给小灯置1时,小灯亮,置0时小灯熄灭。
实验例程如下:
/***********************************************
> File Name: 点亮LED
> Author: pengshp
> Mail: pengshp3@outlook.com
> Date: 2015年 6 月 27 日
*************************************************/
#includesbit LED0=P2^0;
void main()
{
//P2=0x00;
while(1)
{
LED0=1;//灯亮
//LED0=0; 灯熄
}
}
/***********************************************
> File Name: 闪烁的LED
> Author: pengshp
> Mail: pengshp3@outlook.com
> Date: 2015年 6 月 27 日
*************************************************/
#include#define uchar unsigned char
#define uint unsigned int
sbit LED=P1^0;
//延时函数
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
void main()
{
while(1)
{
LED=~LED;
DelayMS(150);
}
}
/***********************************************
> File Name: 流水灯实验
> Author: pengshp
> Mail: pengshp3@outlook.com
> Date: 2015年 7 月 13 日
*************************************************/
#include
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
void main()
{
unsigned char cnt = 0;
unsigned int i=0;
ENLED = 0;
ADDR3 = 1;
ADDR2 = 1;
ADDR1 = 1;
ADDR0 = 0;
while(1)
{
P0 = ~(0x01 < for(i=0; i<30000; i++); //0000 0001 1111 1110 cnt++; //0000 0010 1111 1101
if(cnt>=8)
{
cnt = 0; //共八个流水灯,大于8时赋值为零,循环
}
}
}
/**************************************
> File Name: 左右流水灯
> Author: pengshp
> Mail: pengshp3@outlook.com
> Date: 2015年 7 月 13 日
***************************************/
#include
void delay500ms(void) //延时0.5s,误差 0us
{
unsigned char a,b,c;
for(c=23;c>0;c--)
for(b=152;b>0;b--)
for(a=70;a>0;a--);
}
void main()
{
unsigned char cnt=0;
P2=0x00;
while(1)
{
for(;cnt<8;cnt++)
{
P2=(0x01< delay500ms(); }
cnt=0;
for(;cnt<8;cnt++)
{
P2=(0x80>>cnt);//1000 0000右移
delay500ms();
}
cnt=0;
}
}
关键字:51单片机
引用地址:
51单片机学习笔记【一】——LED灯实验
推荐阅读最新更新时间:2024-11-07 21:09
51单片机学习笔记之中断
(一)寄存器 要想学习中断那么首先就要了解寄存器,在这里我们学习一下什么是寄存器,寄存器怎么用。 1.什么是寄存器 寄存器是特殊的RAM,特殊功能寄存器是控制单片机硬件的开关(例如IE)或者是指示单片机状态的信号(例如PSW),通过特殊寄存器你就可以方便的控制整个MCU,并且知道当前的MCU的工作状态。 2.寄存器怎么用 AT89S51单片机中的特殊功能寄存器(SFR)的单元地址映射在片内RAM区的80H~FFH区域中,它共有26个,离散地分布在该区域中。用到哪个寄存器就相应配置哪个寄存器即可。寄存器太多就不一一写出来了,用到再去找就好。 (二)中断 单片机的中断是由单片机片内的中断系统来实现的。当中断请求源(简称中断
[单片机]
有关51单片机晶振的问题总结
晶振是什么?全称是石英晶体振荡器,是一种高精度和高稳定度的振荡器。通过一定的外接电路来,可以生成频率和峰值稳定的正弦波。而单片机在运行的时候,需要一个脉冲信号,做为自己执行指令的触发信号,可以简单的想象为:单片机收到一个脉冲,就执行一次或多次指令。 在初学51单片机的时候,总是伴随很多有关与晶振的问题,其实晶振就是如同人的心脏,是血液的是脉搏,把单片机的晶振问题搞明白了,51单片机的其他问题迎刃而解。 一,为什么51单片机爱用11.0592MHZ晶振? 其一:因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振
[单片机]
利用51单片机的电子琴设计
利用51单片机的电子琴设计
声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单片机某个口线不断的输出“高”“低”电平,则在该口线上就能产生一定频率的方波,将该方波接上喇叭就能发出一定频率的声音,若再利用程序控制“高”“低”电平的持续时间,就能改变输出波形的频率,从而改变音调。
乐曲中,每一音符对应着确定的频率,表1给出C调时各音符频率。如果单片机某个口线输出“高”“低”电平的频率和某个音符的频率一样,那么将此口线接上喇叭就可以发出此音符的声音。
本系统就是根据此原理设计,对于AT89C2051单片机来说要产生一定频率的方波大致是先将某口线输出高电平然后延时一段时间再输出低电平,如此循环的
[单片机]
AT89C2051单片机在无线门铃报警器的应用
门铃在中国古代较少听说,有钱的大户人家是在大门上装有装饰性的门环,叫门的人可用门环拍击环下的门钉发出较大的响声,有现代"门铃"的作用。 当今,无线门铃与无线 门铃 报警器比比皆是,但同时按照门铃与报警器还是给家庭带来了些许麻烦。而无线门铃报警器就是将门铃与报警器集于一身。它的体积小,性价比高等特点得到了人们的好评。而现在市场上许多产品的遥控器与接收器件的数据传输都是采用非编码式,因而互相的影响较大,一旦一个院子两户人家同时安装时,就很容易出现错误响应。而基于单片机的无线门铃报警器,将发射器发送的数据进行编码,只有收到与接收机相配套的遥控器发射出的信号时,接收机才会做出反应。从而在降低成本的同时达到了方便实用的目的。
[单片机]
基于AT89C51单片机无线收发控制的交通信号灯模型
引言 随着我国经济的高速发展,人们对私家车、公交车的需求越来越大。相应地,我国进入WTO以后,我国经济贸易与世界接轨,汽车业关税大大降低,使很多人都能负担得起,买私家车不再是梦想。但是,私家车、公交车的大增无疑会对我国交通系统带来沉重的压力。放眼现在的中国,如广州、香港、上海等大都市,无不受到交通堵塞的困扰。中国要发展,交通事业决不能停步不前。有及于此,我国交通管制系统应当以人性化、智能化为目的,作出相应的改善。本论文正是以此为出发点,对单片机控制的交通信号灯模型作了较详尽的介绍。 单片机无线收发控制的交通信号灯模型可以分为电源电路、单片机主控电路、无线收发控制电路和显示电路四部分组成,组成电路如图1: 由于
[单片机]
USB接口芯片SL811HS在51单片机系统中应用
1 引言 USB(通用串行总线)是INTEL、DEC、MI-CROSOFT、IBM等公司联合提出的、最近几年逐步在PC领域广为应用的新型接口技术。USB接口通用性好、实时性强、传输方式多样、成本低、支持即插即用、易于扩展且便于使用,这些优点使其得到许多硬件厂商的青睐。目前各种类型的USB产品已大量涌入市场,同时也被广泛地用在PC机及嵌入式系统中。 USB的拓扑结构中居核心地位的是Host(也称为主机),任何一次USB数据传输都必须由主机发起和控制,所有的USB外设都只能和主机建立连接,任何两个外设之间或是两个主机之间无法直接通信。而目前,扮演主机角色的大多是个人电脑PC。而我们买到和使用的USB移动设备都是USB外
[单片机]
几种延时的汇编执行代码对比与总结
拜读了网上《51单片机 Keil C 延时程序的简单研究 》(by: InfiniteSpace Studio/isjfk, 1.21.2004 )一文,借鉴了文中的方法,测试发现有一点点出入,原文作者在计算延时时间的时候是否忘了加上RET指令……下面介绍我的测试结果,欢迎交流探讨—— 一、单独定义变量,for语句 28: delay1(1); C:0x0005 7F01 MOV R7,#0x01 C:0x0007 1121 ACALL delay1(C:0021) 12: void delay1(unsigned char k) 13: { 17: unsigned char i=0; C:0x0021 E4 C
[单片机]
【51单片机STC89C52】LCD1602液晶屏的使用
一、LCD1602模块 1、引脚说明 第 3 脚: VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度 过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度。 第 4 脚: RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第 5 脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS 和 R/W 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 R/W 为高电平时可以读忙信号,当 RS 为高电平 R/W 为低电平时可以写入数据。 第 6 脚:E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。 第 7-14 脚:D
[单片机]