51单片机程序编写(劳驾写得详细一点)?

51单片机程序编写(劳驾写得详细一点)?,第1张

#include <reg51.h>

void delay(unsigned int n)

{

while(n--)

}

void main()

{

char i

//可以编好想要怎么流水的灯位的状态

unsigned char led[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}

while(1)

{

for(i=0i<8i++)

{

P1=led[i] //LED接在P1口

delay(10000)

}

for(i=0i<8i++)

{

P1=led[8-i]

delay(10000)

}

}

}

这段程序有很多小错误啊,编译不能通过的。我就按我的理解解释一下这段程序吧。

ABSACC.H 提供了前面三个的宏定义,xbyte会将对应的值赋给P0,P2,就是不仅定义PA8155、PB8155、COM8155三个变量对应的外部地址还对应着P0,P2。

unsigned char DispTab[]={0xC0,0xF9,0xA4,0xB0,0X99,0x92,0x82,0xf8,0x80,0x90}//定义字符数组

unsined int i,j//定义for循环的i,j变量

COM8155=0X81//COM8155赋初值

PA8155=0xef//PA8155赋初值

while(1)

{

for(i=0i<10i++)

{

PB8155=DispTab[i]//对应i的值,将DispTab[]数组的值重复赋值给PB8155,对应实现控制P0,P2输出

for(j=0j<10000j++)//做延时的功能,执行for一万次达到延时效果

}

if(i=9)

i=0

}

51单片机蜂鸣器程序为:

#include"reg52.h"

typedef unsigned char u8

typedef unsigned int u16

sbit beep=P1^5

void delay(u16 i)

{

while(i--)

}

void main()

{

while(1)

{

beep=~beep

delay(1000)//控制音调频率

beep=~beep/控制声音大小

delay(10)

}

}

扩展资料:

BUZZER蜂鸣器的分类:

1、按其驱动方式的原理分,可分为:有源蜂鸣器(内含驱动线路,也叫自激式蜂鸣器)和无源蜂鸣器(外部驱动,也叫他激式蜂鸣器)。

2、按构造方式的不同,可分为:电磁式蜂鸣器和压电式蜂鸣器。

3、按封装的不同,可分为:DIP BUZZER(插针蜂鸣器)和SMD BUZZER(贴片式蜂鸣器)。

4、按电流的不同,可分为:直流蜂鸣器和交流蜂鸣器,其中,以直流最为常见压电式蜂鸣器,用的是压电材料,即当受到外力导致压电材料发生形变时压电材料会产生电荷。同样,当通电时压电材料会发生形变。

电磁式蜂鸣器,主要是利用通电导体会产生磁场的特性,用一个固定的永久磁铁与通电导体产生磁力推动固定在线圈上的鼓膜。

由于两种蜂鸣器发音原理不同,压电式结构简单耐用但音调单一音色差,适用于报警器等设备。而电磁式由于音色好,所以多用于语音、音乐等设备。


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

原文地址: http://outofmemory.cn/yw/11510977.html

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

发表评论

登录后才能评论

评论列表(0条)

保存