求一个关于单片机的蜂鸣器的C语言程序,如果好,可行的话有追加分~

求一个关于单片机的蜂鸣器的C语言程序,如果好,可行的话有追加分~,第1张

6. 报警产生器

1. 实验任务

用P10输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P17接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序

2. 电路原理图

图461

3. 系统板上硬件连线

(1. 把“单片机系统”区域中的P10端口用导线连接到“音频放大模块”区域中的SPK IN端口上;

(2. 在“音频放大模块”区域中的SPK OUT端口上接上一个8欧的或者是16欧的喇叭;

(3. 把“单片机系统”区域中的P17/RD端口用导线连接到“四路拨动开关”区域中的K1端口上;

4. 程序设计内容

(1. 信号产生的方法

500Hz信号周期为2ms,信号电平为每1ms变反1次,1KHz的信号周期为1ms,信号电平每500us变反1次;

5. 程序框图

图462

6. 汇编源程序

FLAG BIT 00H

ORG 00H

START: JB P17,START

JNB FLAG,NEXT

MOV R2,#200

DV: CPL P10

LCALL DELY500

LCALL DELY500

DJNZ R2,DV

CPL FLAG

NEXT: MOV R2,#200

DV1: CPL P10

LCALL DELY500

DJNZ R2,DV1

CPL FLAG

SJMP START

DELY500: MOV R7,#250

LOOP: NOP

DJNZ R7,LOOP

RET

END

7. C语言源程序

#include <AT89X51H>

#include <INTRINSH>

bit flag;

unsigned char count;

void dely500(void)

{

unsigned char i;

for(i=250;i>0;i--)

{

_nop_();

}

}

void main(void)

{

while(1)

{

if(P1_7==0)

{

for(count=200;count>0;count--)

{

P1_0=~P1_0;

dely500();

}

for(count=200;count>0;count--)

{

P1_0=~P1_0;

dely500();

dely500();

}

}

}

}

你定义字符

char

a=7;//这个输出就可以发声。。这是系统的发生。。

#include

#include

#include

#include

#define N 10

void fun()

{

printf("OK,now fun() start!!");

printf("%c",7);//这里发声

}

void main()

{

clock_t start,end;

int i=0;

Sleep(1000); //这里定时

fun();

}

我写的一个简单的C程序

Just for you information!^_^^_^^_^

#include <reg51H>

#include <INTRINSH>

bit flag;

sbit P1_7=P1^7;

sbit P1_0=P1^0;

unsigned char count;

void dely500(void)

{

unsigned char i;

for(i=250;i>0;i--)

{

_nop_();

}

}

void main(void)

{

while(1)

{

if(P1_7==0)

{

for(count=200;count>0;count--)

{

P1_0=~P1_0;

dely500();

}

for(count=200;count>0;count--)

{

P1_0=~P1_0;

dely500();

dely500();

}

}

}

}

1、写入头文件。

2、加入宏定义。

3、位定义 给出蜂鸣器变量 beep,接口是P2^3。sbit beep = P2^3;。

4、设计延迟函数:void delay(uint z){uint x,y;for(x = z; x > 0; x--)for(y = 60; y > 0 ; y--);} 。

5、设计主函数。

6、加入循环效果,蜂鸣器。beep = ~beep中: ~按位取反。

程序名: MCS51U实验板配套程序-歌曲:兰花草

;电路介绍:蜂鸣器接P20;实验前要连接J12

;

OUT BIT P20

ORG 0

AJMP START

ORG 0BH

AJMP TIM0

START: MOV TMOD,#1

MOV IE,#10000010B

START0: MOV 30H,#0

NEXT: MOV A,30H

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV R2,A

JZ END0

ANL A,#0FH

MOV R5,A

MOV A,R2

SWAP A

ANL A,#0FH

JNZ SING

CLR TR0

AJMP D1

SING: DEC A

MOV 22H,A

RL A

MOV DPTR,#TABLE1

MOVC A,@A+DPTR

MOV TH0,A

MOV 21H,A

MOV A,22H

RL A

INC A

MOVC A,@A+DPTR

MOV TL0,A

MOV 20H,A

SETB TR0

D1: CALL DELAY

INC 30H

AJMP NEXT

END0: CLR TR0

AJMP START0

TIM0: PUSH ACC

PUSH PSW

MOV TL0,20H

MOV TH0,21H

CPL OUT

POP PSW

POP ACC

RETI

DELAY: MOV R7,#2

D2: MOV R4,#125

D3: MOV R3,#248

DJNZ R3,$

DJNZ R4,D3

DJNZ R7,D2

DJNZ R5,DELAY

RET

;====================================

TABLE1: DW 64021,64103,64260,64400

DW 64524,64580,64684,64777

DW 64820,64898,64968,65030

DW 64934

TABLE: ;1

DB 42H,82H,82H,82H,84H,02H,72H

DB 62H,72H,62H,52H,48H

DB 0B2H,0B2H,0B2H,0B2H,0B4H,02H,0A2H

;2

DB 12H,0A2H,0D2H,92H,88H

DB 82H,0B2H,0B2H,0A2H,84H,02H,72H

DB 62H,72H,62H,52H,44H,02H,12H

;3

DB 12H,62H,62H,52H,44H,02H,82H

DB 72H,62H,52H,32H,48H

DB 00H

END

以上就是关于求一个关于单片机的蜂鸣器的C语言程序,如果好,可行的话有追加分~全部的内容,包括:求一个关于单片机的蜂鸣器的C语言程序,如果好,可行的话有追加分~、我用C语言程序实现了仿真,但是还要再加个蜂鸣器,请问怎么编程、单片机 蜂鸣器 滴滴声音c程序怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9872120.html

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

发表评论

登录后才能评论

评论列表(0条)

保存