【软件工程师学硬件】之 点亮LED(at89c51)

本文介绍单片机开发入门教程,通过点亮LED来理解单片机引脚电平变化。文章解释了为何选择LED作为首个实验项目,以及如何通过编程控制AT89C51单片机的引脚电平,实现LED的点亮。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

几乎所有的单片机开发教程的第一个程序都千篇一律的是点亮一个LED。软件工程师可能不太理解为什么要这么做。但是软件工程师很熟悉另一个情形,就是所有软件语言教程的第一个程序都是打印“Hello!World!”,呵呵,实际上,你就将这个“Hello!World!”看作是点亮LED。因为单片机的最小系统为了方便学习,并没有装上显示模块,所以并不是说不可以在屏幕上打印一个字符。对于一个硬件工程师来说,显示方式有很多,比如通过串口显示到PC上,也可以通过I2C显示到LCD上,也可以显示到数码管上,具体看每个人的习惯和项目的要求。
当然,点亮一个LED也可以直观地反映每一个引脚电平的变化,这对于初学者来说非常重要,如果首先就让初学者对照液晶显示屏看每个引脚的数据,实际上并不符合硬件的特点,硬件属于底层的系统,调试过程中更关注的是单片机目标引脚的电平变化规律是否和预期保持一致。所以,软件工程师可能需要暂时改掉那种print的习惯。更好的习惯是关注目标引脚的电平变化,这里可能是一个引脚,也可能是多个引脚,这里的变化是指按照程序的输出结果发生变化。
接下来,我们想想如何点亮一个LED,这里LED就是发光二极管(如果不了解发光二极管可以查看我的系列文章【认识硬件】),因为二极管正极接在单片机的引脚上,负极接地,如果要点亮LED,就必须在引脚上有高电平,然后才会有电流流经LED,这样LED才能发光。
弄清楚LED发光的道理,我们就明白程序应该怎么写了,很显然,将引脚置位,就是赋值为0,对,就这么简单。为什么置位0而不是1呢?因为at89c51低电平驱动能力要强一些。
另外要注意最小系统中的EA脚一定要接高电平。

下面是点亮LED的代码。
/* Main.c file generated by New Project wizard
*
* Created: 我们都是工程师
* Processor: 80C51
* Compiler: Keil for 8051
*/

#include <reg51.h>
#include <stdio.h>
sbit P10=P1^0; //定义P10

void main(void)

while(1) 
{
P10=0; //注意:是低电平点亮led
}
}
后续上面包板视频,请大家关注。多谢了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我们都是工程师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值