云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 单片机音频发生器程序设计

单片机音频发生器程序设计

  • 62 次阅读
  • 3 次下载
  • 2025/5/2 14:46:51

void timer0() interrupt 1 { TH0=chuzhi[gepu[i]]/256; TL0=chuzhi[gepu[i]]%6; if(flag==1) TR0=0; else laba=~laba; }

void timer1() interrupt 3 { TH1=(65536-50000)/256; TL1=(65536-50000)%6; times--; if(times==0) { flag=1; TR1=0; }

思考题

1、根据实验内容1,说明输出频率与理论有什么差别? 答:频率会比理论大,因为delay(1000); TR0=0; beef=1; i++; if(i==5) i=0; 这些语句也要占用时间。

2、如何产生占空比可调的方波?

答:void keyscan() interrupt 0 //外部中断0 { float TF0,TZ1; EX0=0; //关中断 delay(10); //延时消抖 if(P1 !=0x0f) //判断是否有键按下 { if(KEY1==0) freq+=100; //按键为1号,频率加100 if(KEY2==0) freq+=10; //按键为2号,频率加10 if(freq>500) freq=50; //频率大于500Hz,重新赋50Hz if( KEY3==0) zkb+=10; //按键为3号,占空比加10 if( KEY4==0) zkb++ ; //按键为4号,占空比加1 if(zkb>99) zkb=1; //占空比大于99,重新赋值为1

TF0=(65536-fosc/(12.0*freq)); //频率定时初值 TZ1=(65536-(fosc*zkb)/(12.0*100*freq)); //占空比定时初值

TIMER0_H=(uint)TF0/256; //计算定时器0和定时器1的初值 TIMER0_L=(uint)TF0%6; TIMER1_H=(uint)TZ1/256; TIMER1_L=(uint)TZ1%6; }

P1=0x0f; //给键盘扫描口赋初值 EX0=1; //开中断 }

3、用STC单片机的可编程时钟模块如何实现上述功能,请分析并写出程序。

心得体会:

通过这次实验,认识到单片机功能的强大性,不仅有控制功能,显示功能等,还能控制蜂鸣器的发声。通过本次试验,了解到音调和节拍都可以通过控制频率来实现的,这次实验自己受益匪浅。

搜索更多关于: 单片机音频发生器程序设计 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

void timer0() interrupt 1 { TH0=chuzhi[gepu[i]]/256; TL0=chuzhi[gepu[i]]%6; if(flag==1) TR0=0; else laba=~laba; } void timer1() interrupt 3 { TH1=(65536-50000)/256; TL1=(65536-50000)%6; times--; if(times==0) { flag=1; TR1=0; } 思考题 1、根据实验内容1,说明输出频率与理论有什么差别? 答:频率会比理论大,因为delay(1000); TR0=0; beef=1; i++; if(i==5) i=0; 这些语句也要占用时间。 2、如何产

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com