单片机如何看电路图编程,这道例题里为啥要延时
2个回答
展开全部
1.延时问题
延时是因为单片机每运行一步是毫秒级的,若不加延时,led灯的亮灭肉眼难以分辨,蜂鸣器亦是如此。延时函数根据单片机晶振频率来计算时间。
2.根据电路原理图编程
首先要知道元器件状态的改变取决于高低电平的变化,当有电压流过(即有高电平时 逻辑上的“1”)则相应的灯亮或蜂鸣器响 或者其他外设发生变化。 所以当接单片机的IO引脚设置为输入/输出引脚时 根据流入或流出 的电压 元器件状态会发生改变
延时是因为单片机每运行一步是毫秒级的,若不加延时,led灯的亮灭肉眼难以分辨,蜂鸣器亦是如此。延时函数根据单片机晶振频率来计算时间。
2.根据电路原理图编程
首先要知道元器件状态的改变取决于高低电平的变化,当有电压流过(即有高电平时 逻辑上的“1”)则相应的灯亮或蜂鸣器响 或者其他外设发生变化。 所以当接单片机的IO引脚设置为输入/输出引脚时 根据流入或流出 的电压 元器件状态会发生改变
追问
最后的取反是啥作用呢
追答
首先看 " while(1) {} " 这是一个死循环,接着beep = ~beep ,delay(100) 。。。
即使 : 假如上一个状态蜂鸣器响,延时100毫秒 ,while循环蜂鸣器不叫了,
然后接着延时100ms,蜂鸣器响,延时,不响,延时,响,延时,不响。。。。。。。
取反意思 就是让外设元器件 的状态发生改变。即如果不加取反 则蜂鸣器一直是一个状态(一直响或者一直不响)。。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询