c51单片机学习笔记-LED闪烁编程

目的:使LED灯闪烁,需循环让 D1 指示灯先亮一会后熄灭,因此只需编写一个循环函数,专门在那循环运行即可实现延时功能。

编译软件:keil5

过程:

(1)书写延时函数

函数名:delay_10us

函数功能:延时函数,ten_us=1时,大约延时10us

输入:ten_us

输出:无

函数需要通过while循环实现,函数入口有一个形式参数ten_us,如果ten_us=1,则while循环执行一次,调用该函数延时时间大约 10us。

(2)书写main函数代码

LED1=0(低电平点亮);

LED1=1(高电平熄灭);

delay_10us(50000);仿真得知大约延时450ms

(3)编译程序,发现错误

函数形参 ten_us 是 u16 类型的,不是 C语言数据类型关键字

(4)重新定义数据类型

(5)重新编译,最终得到正确的完整编译代码及hex.文件

 

(6)通过CH340驱动烧录hex.文件到单片机开发板 

 

(7)连接P20与D1端口观察实验现象

 

c51单片机学习笔记-LED闪烁实验现象

(8)其他:通过 KEIL 软件仿真查看延时时间

①点击仿真按钮,进入仿真界面

②点击 RST 按钮,重新复位系统参数,此时参数列表中 sec 则为 0,然后设置断点

③点击运行代码,可以看到黄色箭头直接定位到 18 行代码,也是设置的第一个断点位置,此时参数列表中 sec 时间是 0.00039s。

④再点击运行代码,此时黄色箭头指向第 19 行代码,此时 sec 为 0.450601s。 

⑤将现在这个时间减去上一步的 sec 时间就可以得到 delay_10us(50000)运行 的实际时间了为0.450601- 0.00039=0.4502s≈450ms

  • 11
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

GallyDowney

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

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

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

打赏作者

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

抵扣说明:

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

余额充值