从无到有,学习单片机的第4天

这篇博客介绍了单片机学习的第四天内容,包括使用总线操作法来同时控制多个发光二极管,详细解析了while和for循环语句的运用,以及如何在Keil中进行软件仿真和延时语句的精确计算。通过实例展示了如何设置和理解这些基本概念。

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

点亮第一个发光二极管2

昨天因为STC-ISP的问题,折腾了一个晚上,所以昨天没有更新,今天多写一点

接上一篇笔记

按照之前的代码,如果我们要点亮多个发光二极管的时候,我们需要定义多个I/O口,那么显得及其麻烦,今天介绍一种总线操作法。

我们在原有的工程里面在新建一个文件,然后删掉原来的文件,因为一个工程中只能有一个主函数

输入新的语句

#include <reg52.h>       //52系列单片机头文件
void main()
{
   
   
    P1=0xaa;
}

这里的P1=0xaa是对单片机的8个I/O口同时进行操作。在前面的笔记中我们了解到,对于单片机来说,1和0代表着高电平和低电平,当某个I/O口为0,即低电平的状态下,对应的发光二极管就会发亮,这个原因是发光二极管一端连着单片机色I/O口,一端连着电阻,电阻的另一端连着Vcc,即电源,5V,为了让电流通过发光二极管,肯定要I/O口是低电平,即0。0xaa,是个十六进制数,转换成二进制数位10101010,这个二进制数从最小位开始对应P1^0口,所以这时候是1、3、5、7管亮,2、4、6、8管灭。如果想单单第一个发光二极管发亮,我们就应该输入P1=0xfe,转换成二进制数就是,11111110,这时候,P1口为低电平,第一个二极管点亮。

总线操作法适用于同时控制多个端口的情况,但是要注意对每个口的控制是要在十六进制那个数中体现出来。

2.3 while语句

针对while语句,在C语言中已经大致了解了,这里就在强调几点

  1. C语言中一般把“0”视为“假”,“非0”视为“真”,while的判断条件即“()”里面如果最后的结果是0或者判断为假,则不再执行while中的语句。

  2. while的内部语句可以为空,就是“{}”里面的东西,有时候甚至这个花括号都可以省略。但是要注意,如果花括号省略了,必须要在“()”后面加一个分号,例如while(1);,否则系统会自动把紧跟着while的第一行代码当成while中的内容。

  3. 如果while的判断语句中只有一个1,那么单片机将一直执行while的内部语句

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值