欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

学习历程--普中51单片机A2--LED实验

时间:2023-06-03

前些天学习了普中的LED实验部分,现将自己的一些学习内容记录一下。

这个是led的电路图,普中的a2系列开发版中led的连接只需设置好管脚就可以了,不需要自己进行杜邦线单独接线,还是很方便的,唯一不足就是有的时候不能同时实现多个功能。

1、点亮第一个led

第一步肯定是点亮led灯,附上代码

#include "reg52.h"sbit LED1=P2^0;//将P2.0管脚定义为LED1,这样可以方便阅读,也方便修改void main(){LED1=0;//LED1端口设置为低电平while(1){}}

代码十分简单,唯一需要注意的就是单片机的管脚为低电平的时候led灯才能亮。led灯本质就是一个发光二极管,有单向导通性,阴极接低电平才能亮。

2、led闪烁

先附上代码

#include "reg52.h"typedef unsigned int u16;typedef unsigned char u8;sbit LED1=P2^0;//将P2.0管脚定义为LED1void delay_10us(u16 ten_us){while(ten_us--);}void main(){while(1){LED1=0;delay_10us(50000); LED1=1;delay_10us(50000); }}

这个是普中给的代码,其实就是多了一个延时函数,主函数里面多了点亮和熄灭的函数,当然也可以根据点亮第一个led的代码进行修改使用。

#include "reg52.h"sbit LED1=P2^0;//将P2.0管脚定义为LED1,这样可以方便阅读,也方便修改unsigned int i = 0;void main(){while(1){LED1=0; //LED1端口设置为低电平 for(i=0;i<50000;i++); LED1=1; //LED1端口设置为高电平 for(i=0;i<50000;i++);}}

 这段代码就省去了延时函数,读起来会简单一些,但是函数比较大的时候就不建议了。

3、led流水灯

附上代码

#include "reg52.h"void main(){ unsigned char a[]={~0x01,~0x02,~0x04,~0x08,~0x10,~0x20,~0x40,~0x80};//直接通过寄存器来控制led unsigned char i; unsigned int j; while(1) { for(i=0;i<8;i++) //led从第一个流动到第八个 { P2 = a[i]; //i的变化,可以定位到第几个led for(j=0;j<30000;j++); //延时作用 } }}

流水灯有很多类型,这个类型是从第一个滚动到第八个led灯,然后重复。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。