单片机无源蜂鸣器的程序,请求解释下这个程序从第一个for开始的意思!

单片机无源蜂鸣器的程序,请求解释下这个程序从第一个for开始的意思!,第1张

#include//包含51的头文件

sbit BEEP=P1^5//sbit是位定义的意思,即使用beep来代表单片P1端口的第5个IO口

void beep()//蜂鸣器子函数,方便调用,

{

unsigned char i , j//设置无符号字符型变量i;和J

for (i=0i<100i++)//定义一个for循环,每次完整地执行for里面的所有语句,i就自增1,直到i=10

{ //当i=100是,for循环就结束

BEEP=!BEEP//BEEP取反//蜂鸣器发生原理,进行电平取反,原来为高电平,下一次执行就变成低电平

for (j = 0 j<200 j++)//需要产生方波这个是延时程序

}

BEEP=1//关闭蜂鸣器蜂鸣器电平不发生变化的时候,蜂鸣器无法发声。

}

蜂鸣器一直响很容易实现,无源蜂鸣器给电平就可以控制发声了,程序如下:

FMQ EQU P3.2

ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:

    MOV A,#0FEH

    CLR FMQ

LOOP:

    MOV P1,A

    RL A

    LCALL DELAY

    SJMP LOOP

DELAY:

    MOV R2,#200

DLY:

    MOV R3,#250

    DJNZ R3,$

    DJNZ R2,DLY

    RET

    END


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11149442.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存