单片机控制一盏灯的亮与灭程序解释

这篇具有很好参考价值的文章主要介绍了单片机控制一盏灯的亮与灭程序解释。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.这部分代码定义了两个新的数据类型,uchar和uint,分别表示无符号字符型和无符号整型。这里使用了#define预处理指令,将uchar和uint分别定义为unsigned char和unsigned int的别名,方便在代码中使用。

另外,还声明了两个变量i和j,i是一个无符号整型变量,j是一个无符号字符型变量。这些变量在程序中用于计数、循环等操作。这里使用了unsigned关键字,将变量定义为无符号类型,即只能表示非负数,可以增加程序的稳定性和可移植性。同时P1.0引脚对应的LED灯。

 #include <reg52.h>
 #define  uchar unsigned char
 #define  uint unsigned int

 uint i	;
 uchar j ;

 sbit led=P1^0;

2.延时部分
uint k中的变量k是表示延时的时间,单位是毫秒(ms)。在函数delay()中,循环次数的计算是通过一个嵌套的for循环来实现的。内层的for循环用来控制延时的时间,外层的for循环则用来重复执行内层的循环,以实现总的延时时间。
具体来说,内层的for循环中的变量j用来计数,每循环一次就增加1,当j的值达到230时,for循环结束,就意味着已经延时了一定的时间(因为在运行单片机程序时,每个循环的时间是一定的,因此可以通过控制循环次数来实现精确的延时)。而外层的for循环则用来重复内层的延时操作,即执行多次内层的循环以实现总的延时时间。内层循环的次数由参数k来控制,每执行一次外层的循环,变量i就增加1,直到i的值达到k为止,整个延时过程就结束了。因此,函数delay()的参数k实际上是用来控制延时时间的。在main()函数中调用delay()时,传入的参数值就是控制LED灯闪烁间隔的时间,也就是1秒,即delay(1000)。内层循环中的空语句{ ; }不做任何操作,只是用来占用一定的CPU时间,产生一个粗略的延时效果。

 void delay(uint k)
 {
 for (i=0;i<k;i++)
 {
  for (j=0;j<230;j++)
  {
  ;
  }
 }
 }

3.主函数
进入while循环,开始执行主程序。
将LED灯的引脚P1.0置为低电平,即点亮LED灯。调用延时函数delay(1000),延时1秒钟。将LED灯的引脚P1.0置为高电平,即关闭LED灯。再次调用延时函数delay(1000),延时1秒钟。回到while循环的开始处,继续亮灯灭灯操作,使LED灯每隔一秒钟闪烁一次。
其中while(1)是一个死循环,它的意思是在程序运行过程中一直执行循环内的语句,因为条件表达式的值始终为真(非零),所以这个循环将无限执行下去,直到单片机复位或程序被手动停止文章来源地址https://www.toymoban.com/news/detail-724916.html

   void main ()
 {
   while(1)
   	{
	led=0;
   delay(1000);
   led=1;
   delay(1000);
	}
 }

到了这里,关于单片机控制一盏灯的亮与灭程序解释的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 51单片机点亮LED灯以及实现2盏LED灯的交替闪烁

    点亮LED灯,根据单片机原理图 将LED灯1和LED灯2介入单片机的口设为低电平即可 代码如下: #include “reg52.h” sbit led1= P3^7; void main() { led1 = 0;//给led1一个低电平,点亮 } 结果图: 图中有一盏LED灯为我这个51单片机自带的电源接通灯,被代码点亮的只有一盏 实现2盏LED灯的交替闪烁

    2024年02月07日
    浏览(41)
  • 串口通信(stm32F4)——通过串口助手发送led on或者led off控制LED灯的亮灭

    通过串口助手发送led on来点亮LED灯,发送led off来关闭LED灯(这里是LED1,其端口是GPIOF,引脚是PIN10,串口是USART1,其端口是GPIOA,引脚是PIN9、PIN10,一个用来收数据,一个用来发收据) 初始化LED; 初始化串口; 编写接收数据中断函数; 编写空闲中断函数。 2.1 初始化LED 2.2 初

    2024年02月16日
    浏览(57)
  • STM32G0x0系列-点亮一盏灯(寄存器)

    目录 输入功能 浮空输入:通俗讲就是让管脚什么都不接,悬空着。 上拉输入 下拉输入 模拟输入 输出功能 开漏输出 推挽输出 相关寄存器 GPIOx_MODER 端口模式寄存器 GPIOx_OTYPER 端口输出类型寄存器 GPIOx_ OSPEEDR 端口输出速度寄存器 GPIOx_PUPDR 上拉/下拉寄存器 GPIOx_IDR 端口输入数据

    2024年02月06日
    浏览(52)
  • 【单片机】温控系统参数辨识及单片机PID控制

    半导体制冷片正向通电制冷,反向通电制热。系统采用半导体制冷片(帕尔贴)作为执行单元,帕尔贴下端连接水冷系统进行散热,上端为导热铜片,铜片上贴有热敏电阻用于测量系统的温度。 控制系统采用4个MOS管组成的H桥驱动电路,通过PWM进行加热制冷温度控制。 一般的

    2024年02月03日
    浏览(44)
  • 单片机设计基于单片机的交通灯控制系统的设计

      针对我国城市路况复杂的特点,在交通灯控制系统硬件设计方面以最小系统模块、电源模块、时间显示模块以及车流量检测模块为主要模块,不仅可以完成交通灯的顺序点亮,还可以实现倒计时、车流量检测等相关功能;软件设计方面通过检测程序的设定,来检测是否达

    2024年02月04日
    浏览(46)
  • 如何使用单片机点亮LED灯,并使用按键控制[51单片机]

    首先先看一下我的板子,如果我们板子不相同,可能操作也不太相同 我们就不讲底层原理了,直接看,我们可以看到板子上有 8个LED灯   那这个8个LED用什么来控制呢,我们先看底层的线路图,所有的LEDD都连接到了P2带后缀的接口上, 那么只需要操作这几个接口的高低电频,

    2024年02月05日
    浏览(46)
  • 51单片机控制键盘

    键盘是电子系统中人机对话的重要组成部分,是人向机器发出指令、输入信息的必须设备 键盘在单片机应用系统中是使用最广泛的一种数据 输入设备 。键盘是由多个 按键 组成的。 按键通常是一种常开型开关,常态下按键的两个触点处于 断开 状态,按下按键时它们才闭合

    2024年02月02日
    浏览(71)
  • 单片机设计基于51单片机的智能风扇控制系统设计与实现

      我们常见的电风扇一般只有四、五个风速档,用的是人工开关,而且并不是每个人家里都会有空调,或者在一些小型的工厂或者一些小型加工厂,这些地方都可能没有配备大型的中央空调系统这些东西,所以这些东西往往都会采用风扇这种小成本的东西来代替,但是不清楚

    2024年02月03日
    浏览(69)
  • 单片机PWM舵机控制

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档   文章目录 一、PWM是什么? 二、如何控制舵机?     PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进 行调制,等效出所需要的波形(包含形状以及幅值),对模拟

    2023年04月25日
    浏览(55)
  • 单片机课设———基于51单片机的智能风扇控制器(汇编语言)

    说明:单片机芯片为AT89C52,使用普中开发板,用汇编语言编程。 系统实现了对风扇的控制: (1)控制器面板包括:启/停键、模式选择键、风速键和类型选择键。 (2)模式分为:手动模式和自动温控模式。在温控模式下,风速键和类型选择键无效。 (3)风速分为:强、中

    2024年02月11日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包