第一章 LED小灯的闪烁程序

第一章 LED小灯的闪烁程序
STC89C52RC,晶振用的是11.0592MHz。
实验内容如下:
1.电路图,电路板实操。
2.程序源码,附加程序代码解释,重点解释:for延时代码计算时间。
3.实物图,led灯闪烁。
链接:工程源码,内置文档每句带有详细解释写的电路与程序详解文档
一、电路图
单片机STC89C52RC引脚使用的是P0.0,连接LED灯L0.0的负极。
LED的灯正极连接排阻2.2K,JPP0连接5V。
P0.0=0,LED灯亮;P0.0=1,LED灯灭。
在这里插入图片描述
在这里插入图片描述

二、程序代码解释
名称:闪烁的LED说明:LED按设定的时间间隔闪烁,源代码展示

#include<reg51.h>//头文件,每个程序都必须有。
#define uchar unsigned char//定义8位无符号数据的宏定义,可以缩短程序,可读性好。
#define uint unsigned int//定义16位无符号数据的宏定义,可以缩短程序,可读性好。
sbit LED=P0^0;//单片机的引脚定义,LED可以代替P0.0引脚。
//延时程序。
void DelayMS(uint x)//X=1,就是延时1ms。
{
uchar i;//定义一个局部参数i。
while(x–)//循环X–,直到0为止跳出while循环。
{
for(i=0;i<120;i++);//for循环,循环120次,当i>120时跳出for循环。
}
}
//主程序。
void main()//主程序。
{
while(1)//while循环。
{
LED=LED;//P0.0取反,是取反符号。
DelayMS(500);//延时500ms。
}
}
在这里插入图片描述

重点解释:for延时代码计算时间
51单片机的机器周期是12个时钟周期,12M晶振就是一个时钟周期是1/12US,1/12M12=1US,即51的机器周期是1US。
而程序中的正文是一个for语句是8个机器周期,大概算一下就是120
8*1us=960us,约等于1毫秒。
三、实物图,led灯闪烁
在这里插入图片描述

照片拍不出闪烁,见谅,下面是烧写,用的串口烧写。
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

pjspsy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值