程序(一)点亮第一个发光二极管
#include
void main()
{
P1=0xfe;
while(1);
}
程序(二)让第一个发光二极管闪烁
#include
sbit led1=P1^0;
void main()
{
unsigned int i;
while(1)
{
i=50000;
led1=0;
while(i--);
i=50000;
led1=1;
while(i--);
}
}
程序(三)
//第一个发光二极管以间隔2000ms闪烁
#include
#define uint unsigned int
#define uchar unsigned char
sbit led1=P1^0;
void delay(uint z) //延时函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
while(1)
{
led1=0;
delay(2000);
led1=1;
delay(2000);
}
}
程序(四)
//8个发光管由上至下间隔1s流动
//每个管亮500ms,灭500ms,亮时蜂鸣器响
//灭时关掉蜂鸣器,一直重复下去
#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit beep=P2^3;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
uchar a;
a=0xfe;
while(1)
{
P1=a;
beep=0;
delay(500);
P1=0xff;
beep=1;
delay(500);
a=_crol_(a,1);
}
}
程序(五)
//8个发光管来回流动
//每个管亮100ms,流动时让蜂鸣器发声
#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit beep=P2^3;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
uchar a,i;
while(1)
{
a=0xfe;
for(i=0;i<8;i++)
{
P1=a;
beep=0;
delay(50);
beep=1;
delay(50);
a=_crol_(a,1);
}
a=0x7f;
for(i=0;i<8;i++)
{
P1=a;
beep=0;
delay(50);
beep=1;
delay(50);
a=_cror_(a,1);
}
}
}
关键字:51单片机 C语言程序 发光二极管
引用地址:
51单片机C语言程序(一)发光二极管
推荐阅读最新更新时间:2024-03-16 14:37
手把手教你学51单片机之十八 RS485通信与Modbus协议
在工业控制、电力通讯、智能仪表等领域,通常情况下是采用串口通信的方式进行数据交换。最初采用的方式是RS232接口,由于工业现场比较复杂,各种电气设备会在环境中产生比较多的电磁干扰,会导致信号传输错误。除此之外,RS232接口只能实现点对点通信,不具备联网功能,最大传输距离也只能达到十几米,不能满足远距离通信要求。而RS485则解决了这些问题,数据信号采用差分传输方式,可以有效的解决共模干扰问题,最大距离可达1200米,并且允许多个收发设备接到同一条总线上。随着工业应用通信越来越多,1979年施耐德电气制定了一个用于工业现场的总线协议Modbus协议,现在工业中使用RS485通信场合很多都采用Modbus协议,本节课我们就
[单片机]
基于51单片机的LED旋转显示器制作
由于刚学51单片机,加上制作电路板软件也是从零开始,的确花了我不少的时间和精力。不过也就是在这艰难的独立制作中,真正学到了不少实在的东西。原理就不多说了。 下面分享一下我的制作过程。这里有关于本制作的更详细的图片展示: 首先是制作效果图: 电路图: 电路采用的是无限供电模块给单片机供电的。采用无限供电。无摩擦,震动小。LED与单片机引脚之间的连接采用的是细小的漆包线。省去了限流电阻。省去复位电路制作起来更简单方便。 准备主要材料:因很多人不知材料哪里买,先将地址链接在材料名称,点击就进去了 1.51单片机1片 2.单片机插槽和万能电路板(洞洞板) 3.贴片LED0603(颜色自定,如果焊接技术不够
[单片机]
51单片机定时器/计数器T0|T1的四种工作方式
• 选择方式0、方式1、方式2时,T0|T1的工作情况相同 • 选择方式3时,T0|T1的工作情况不同 方式0:13位定时器/计数器,TH0的高8位,TL0的低5位 方式1:16位定时器/计数器,TH0的高8位,TL0的低8位 方式2:自动重装的8位计数器,TL0用于计数,TH0用于备份 方式3:被分为TH0和TL0两个独立的8位计数器(只有T0可以在方式3下工作)
[单片机]
51单片机ALE引脚的控制
ALE/PROG: 当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 在FLASH编程期间,此引脚用于输入编程脉冲。 在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 当访问外部存储器时,ALE作为锁存扩展地址的低8位字节的控制信号。当访问外部数据存储器时,ALE以十二分之一振荡频率输出正脉冲,同
[单片机]
51单片机之独立按键
按键介绍 按键种类繁多,功能有简有繁,极大的充斥着我们的生活。但是无论如何,所有的按键其实都有一个原型,来源于同一种原理,所有的按键无论多复杂,多华丽,都是从这样一个原型发展而成的。好比你就算长的再帅,你也是只猩猩变来的,呵呵。我们平日所见到的绝大部分的按键,其实都可以归类为一种,叫“接触式按键”。下图为一个典型的接触式按键(又称轻触开关)。 需要特别说明的是,这里说的“接触”,是指机械层面上的接触,而不是感光或者某些特殊涂层(比如触摸屏)一类的接触。所以,按键的工作特性其实是一种机械特性,下文会详细说明。 如上图,请对照图一想象,1、2、3、4 分别对应按键的四个引脚,其
[单片机]
MCS-51单片机与无线调制器的综合应用
GPS是目前技术上最成熟且已实用的一种定位系统,但是在GPS定位系统中,由于其是一个单向导航系统,他是把星历数据等传给地面接收机,可在许多具体应用时,例如在车辆调度系统中,一般都需要把利用GPS测得的信息数据传到调度中心,由于其系统由一个基准站和多个用户台组成,基准站与用户台之间的联系,即由基准站计算出的各种校正值发送到用户台,上边这一切都需要用到数据链来完成数据的传输。其中,数据链由调制解调器和电台组成。在无线数据传输系统中,调制解调器足一个关键部分,调制解调器(Modem)是将数据进行编码和调制,然后输入到电台发射出去,用户台将其接收下来,并将数据解调后,送入GPS接收机进行改正。本文介绍了单片机控制Modem的原理和方法。
[单片机]
以AT89C51单片机为核心的数显超声波测距仪设计
超声波由于其指向性强、能量消耗缓慢、传播距离较远等优点,而经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。超声波测距主要应用于倒车雷达、建筑施工工地以及一些工业现场。例如:液位、井深、管道长度等场合。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在测控系统的研制上也得到了广泛的应用。本文介绍一种以AT89C51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法。 1 超声波测距原理 1.1 超声波发生器 超声波是一种频率超过20kHz的机械波。为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波
[单片机]
DS2450转换器与51单片机接口设计
在普通方式下其串行通信速率为16.3kbps,而超速工作模式时的速率可达 142kbps,片内16位循环冗余校验码生成器可用于检测通信的正确性。DS2450是DALLAS公司生产的单总线四通道逐次逼近式A/D转换器芯片,它的输入电压范围、转换精度位数和报警门限电压均可编程;每个通道均可用各自的存储器来存储电压范围设置、转换结果和门限电压等参数。DS2450采用8脚SOIC小体积封装。它既可用单5V电源供电,也可采用寄生电源方式供电,芯片正常工作时的功耗仅2.5mW,空闲时的功耗为25μW。多个DS2450或其它功能的具有MicroLAN接口的单总线芯片可以并联,CPU只需一根端口线就能与诸多单总线芯片通信,而且占用微处理器的端
[单片机]