C51单片机流水灯蜂鸣器程序

C51单片机流水灯蜂鸣器程序,第1张

P2是端液羡口啊,所以P2=_crol_(P2,1)这句中等号左边的P2表袭前示的读取P2端口,这时的值取决于外围电路,而不是原来的赋值。所以需要一个变量来解决这个问题。

由你的代码看,是直流蜂鸣器,它的声音频率是无法改变的。而你也只是要改变鸣叫和不鸣叫的间隔频率(只是纠正闹禅拍一下名词),但这个程序不行。修改如下:

void sp()

{

speak=1

Delay_ms(5)

speak=0

Delay_ms(5)

}

void main(void)

{

uchar j,k,a

a=0xfe

P2=0xfe

Delay_ms(500)

while(1)

{

for(j=0j<7j++)

{

a=_crol_(a,1)

P2=a

sp()

Delay_ms(500)

}

for(k=0k<7k++)

{

a=_cror_(a,1)

P2=a

sp()

Delay_ms(500)

}

}

}

P1 外接 LED,低电平发光。

P3.7 外接 无源蜂鸣器。

    ORG   0 

    MOV   A, #255 

    MOV  陆桐 R2, #9 

LP: 

    MOV   P1, 族哪A

    CALL  DIDI    

    CLR   C 

    RLC   A 

    DJNZ  R2, LP 

    SJMP  0

DIDI:

    DJNZ  R7, $

    CPL   P3.7

    DJNZ  R7, $ 

    CPL   P3.7

    DJNZ  R6, DIDI

    DJNZ  R7, $

    DJNZ  R7, $ 

    DJNZ  早穗坦R6, $ - 4

    RET

END

#include

sbit beep=p0^4

void main()

{

beep=0

while(1)

}试试这个怎样,单片机在执行完程序之后会回到初始山纳状态,然后再重新执行程序,所以蜂鸣器就会脊简反复的开和关,听起来声音逗野没会小很多;加个while(1)死循环,让程序一直保持在beep=0的状态。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存