52单片机IO口输出点亮你的LED

52单片机IO口输出点亮你的LED[入门\详解]

欢迎你的到来!这里是我的单片机学习笔记,希望我的笔记可以在你学习的道路上对你有所帮助!

特殊功能寄存器SFR声明

我们想要使用单片机的IO口就要先定义它的地址,我们可以从芯片资料上找到IO口对应的地址(也可以直接网上搜)
STC89C52

单片机C语言SFR声明:

sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;//定义P0~P3

定义好以后,通过控制P0~P1,我们可以同时控制他们对应的8个IO口,当然这次我们只需要点亮一两个LED,只需要用到一两个IO口,所以可以用下面的方法单独定义一个IO口。

sbit LED0 = P1 ^ 0;
sbit LED1 = P1 ^ 1;
sbit LED2 = P1 ^ 2;
sbit LED3 = P1 ^ 3;
sbit LED4 = P1 ^ 4;
sbit LED5 = P1 ^ 5;
sbit LED6 = P1 ^ 6;
sbit LED7 = P1 ^ 7;//分别定义P1的8个IO口

注意:定义IO口要大写

头文件

前面我们使用sfr来定义IO口,如果每次都要一条一条的输入sfr来定义会非常麻烦,这时我们可以用头文件的方法来代替刚才的方法,52单片机C语言的头文件是 <reg52.h>
这个头文件里就包含了大部分定义,方便快捷。那为什么还要讲sfr声明呢?其实就是为了更好的理解头文件的核心内容。

代码参考

给led0赋值0可以让其对应的IO口发出低电平的信号,从而点亮led。

#include<reg52.h>

//sfr P1 = 0x90;//定义P1寄存器地址

sbit led0 = P1^0;//led0 第1个led
sbit led7 = P1^7;//led7 第8个led

void main()
{
//	led0 = 0;//低电平 点亮led0
//	while(1);//使程序停在这(死循环)
	while(1)
	{
		led0 = 0;
		led7 = 0;
	}
}

下面就是最终成果图,黑色框框里就是我们点亮的第1个和第8个led。成果

参考内容链接: https://www.bilibili.com/video/BV1Kt411Q7aV?p=4.

嘿~我亲爱的伙计!我想慷慨大方的你一定不会吝啬给我这个快要秃头的博主点赞的。


欢迎大家关注博主的公众号:小黄的阁楼,里面的学习笔记会和CSDN同步,欢迎前来一起学习!!
在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值