C51发光二极管控制,几种类型

#include <reg52.h> //51单片机头文件
#include <LED.h>

void led_on()
{
Led1=0;
}

/课本例2.2.1
//编写程序点亮第一个发光二极管
#include <reg52.h> //51单片机头文件
sbit Led1=P1^0; //Led1为P1^0-IO口
void main() //主函数
{
Led1=0; //点亮第一个发光二极管
}
************************************************/
/课本例2.2.2
//对单片机8个IO口同时进行操作
#include <reg52.h> //51单片机头文件
void main()
{
P1=0xaa; //对8位P1口进行总线操作
}
************************************************/
/用户手册中的程序-3.1闪烁灯
#include<reg52.h>
//初步了解单片机IO口输出高低电平的方法,延时函数的时间估算。
//第一行是一个"文件包含"处理。所谓"文件包含"是指一个文件将另外一个文件的内容全部包含进来.
//点亮与单片机P1.0口相连的发光二极管,延时约0.2S,然后熄灭,再延时约0.2S,再点亮,如此循环下去。
sbit P1_0=P1^0; //定义IO口
void delay02s(void) //延时0.2秒子程序
{
unsigned char i,j,k; //定义3个无符号字符型数据。
for(i=20;i>0;i–) //作循环延时
for(j=20;j>0;j–)
for(k=100;k>0;k–);
}
void main(void) //每一个C语言程序有且只有一个主函数,
{
while(1) //循环条件永远为真,以下程序一直执行下去。
{
P1_0=0; // I/O口P1.0输出低电平,小灯被点亮。
delay02s(); //延时经过0.2秒。
P1_0=1; // I/O口P1.0输出高电平,小灯熄灭。
delay02s(); //延时经过0.2秒。
}
}
************************************************/
/用户手册中的程序-3.2流水灯
//实验目的
//掌握循环移位的工作原理和操作方法,学会使用C51封装好的函数库C51LIB,延时函数的时间估算。
//实验现象:单片机P1口相连的8个发光二极管中的一个循环移位点亮,同时蜂鸣器发出滴滴的响声。
#include <reg51.h>
#include <intrins.h>
//后面要用到它里面的_crol_(k,l)函数这个函数的意思是把
//一个字符变量k 循环左移l 位,关于它的说明请查看安装KEIL
//目录下的\Keil\C51\HLP文件夹里面的c51lib,
//这个文件里面有各种用C语言封装好的函数库,
//我们在以后使用其中某些函数时可以直接使用而自己不必再写。
unsigned char a,b,k,j; //定义四个字符变量
sbit beep=P2^3; // 定义蜂鸣器的接口
void delay10ms() //延时子程序,大约延时10ms
{
for(a=100;a>0;a–)
for(b=225;b>0;b–);
}
void main()
{
k=0xfe; //先给k一个初值11111110等待移位
while(1)
{
delay10ms();
beep=0; //打开蜂鸣器
delay10ms(); //让它响10ms
beep=1; //关闭蜂鸣器
j=crol(k,1); //把k循环左移一位
k=j; //把移完的值再送给k
P1=j; //同时把值送到P1口点亮发光二极管
} //再次循环
}
************************************************/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

培林将军

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值