求大神用verilog HDL编写程序 :

求大神用verilog HDL编写程序 :,第1张

module canlender(a,b,option1,option2,option3,option4,led_result)

inpput [9:0] a

input [9:0] b//以1023以内的加减乘除举例

input option1,option2,option3,option4//四个按键,低电有效

//数字也不是这么表达的,而是每个按键对应一个数字,后一个按下前一个还要个位变十位

//为了简化,这么写的。你自己要想明白。可综合计算器程序也不是几十行就能描述的

output led_result//显示屏上的led显示数字,只显示结果

//每一步按下数字按理也要显示,这里不赘述了

reg[19:0] result

reg a_r,b_r//锁存两个 *** 作数

reg option1_r,option2_r,option3_r,option4_r//锁存 *** 作运算,防止手指抬起时复位”1“

always

begin

a_r=a

b_r=b

end

always @(a or b or option) //如果任何一个键值按下。

begin

if(!option1_r) ///如果加法运算

result=a_r+b_r

。。。

。。。

assign led_result=result//这句是错的。只是为了直观表达连续赋值语句在led那里显示

....

endmodule

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

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

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

#include<reg51.h>

sbit buzzer = P1^0   声明区

void delay(int)  

void pulse_BZ(int,int,int)声明函数void main(void)

{

while(1)

{

pulse_BZ(500,1,1)  调用发声

delay(1000)        延时1000 X 0.5ms

pulse_BZ(500,1,1)

delay(1000)

pulse_BZ(500,1,1)

delay(1000)

pulse_BZ(200,1,1)

delay(1000)

pulse_BZ(200,1,1)

delay(1000)

}

}void delay(int x)

{

int i,j

for(i=0i<xi++)

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

}void pulse_BZ(int countint THint TL)

{

int i

for(i=oi<counti++)    //循环count次,时间count x 1ms

{

buzzer=1               //此程序段产生1HZ 信号

delay(TH)

buzzer=0

delay(TL)

}

}

51单片机蜂鸣器

开关C语言程序:

sbit P2^0=KEY

sbit P2^1=BEEP

unsigned char KEYNUM=0

void main()

{

while(1)

{

if(KEY==0)//开关按下;

{

KEYNUM++

}

if(KEYNUM==1)//第一次按下;

{

BEEP=1//蜂鸣器响

}

if(KEYNUM==2)/第二次按下;

{

BEEP=0//蜂鸣器不响

KEYNUM=0

}

}

}

51单片机,编写延时程序,控制蜂鸣器发声:

很简单的

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

sbit fengmingqi=P0^0//声明IO口

void delay(uint x)//延时子函数

{

uint i,j

for(i=xi>0i--)

for(j=50j>0j--)

}

void main(void)

{

while(1) //循环

{

fengmingqi=1//p0.0口高电平,蜂鸣器发声

delay(500)//延时

fengmingqi=0//p0.0口低电平,蜂鸣器不发声

delay(500)//延时

}

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存