单片机计算机项目程序,单片机作业项目(设计).doc

这篇内容详细介绍了学生团队如何基于单片机AT89S52设计一个音频发生器,通过I/O口输出音频脉冲驱动扬声器发声。项目涉及了音频脉冲的计算、定时器的使用、节拍的设定以及音乐节奏的实现。学生们通过建立T值表和音符节拍码,实现了不同音符和节拍的音乐播放。电路设计包括了单片机、晶振、电容、电阻、蜂鸣器和LED等元件,且提供了详细的元器件参数和功能特性。
摘要由CSDN通过智能技术生成

单片机作业项目(设计)

任 务 书

学生姓名: 王锫锟, 曾秋辉, 林毅铭,

张泽标, 颜明瑶

班 级: 1班

专 业: 计算机通信

系 别: 电子系

指导教师: 张召强

时 间: 2010年12月

项目要求:

掌握单片机音频发声原理,掌握扬声器的驱动电路

使用I/O口输出音频脉冲,脉冲经放大滤波后,驱动扬声器发声。

要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用定时器定时这个半周期时间,每当定时到后就将输出脉冲的I/O口反相,然后重复定时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。

利用内部定时器使其工作在计数器模式,改变计数值TH0及TL0以产生不同的频率。

例如;频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计956μs/1μs=956,在每计数956次时将I/O反相,就可得到中音“哆”(523Hz)。

计数脉冲值与频率的关系公式如下:

N=Fi÷2÷Fr

N:计数值;Fi:内部计时一次为1μs,故其频率为1MHz;Fr:要产生的频率;

其计数值的求法:T=65536-N=65536-Fi÷2÷Fr

每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,表2.1为节拍与节拍码的对照。如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可以求得节拍的时间。假设1/4拍为1DELAY,则1拍应为4DELAY,依此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如表2为1/4和1/8节拍的时间设定。

表1节拍与节拍码对照:

节拍码节拍数节拍码节拍数11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍41/2拍51又1/4拍55/8拍61又1/2拍63/4拍82拍81拍A2又1/2拍A1又1/4拍C3拍C1又1/2拍F3又3/4拍

表2 各调1/4节拍的时间设定 各调1/8节拍的时间设定:

曲调值DELAY曲调值DELAY调4/4125毫秒调4/462毫秒调3/4187毫秒调3/494毫秒调2/4250毫秒调2/4125毫秒

建立音乐的步骤:

a. 先将乐谱的音符找出,然后由表3建立T值表的顺序。

b. 将T值表建立在TABLE1,构成发音符的计数值放在“TABLE”。简谱码

(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的“TABLE”处。

表3 简谱对应的简谱码、T值、节拍数

简 谱发 音简谱码T 值节拍码节拍数5低音SO16426011/4拍6低音LA26446022/4拍7低音TI36452433/4拍1中音DO46458041拍2中音RE56468451又1/4拍3中音MI66477761又1/2拍4中间FA76482082拍5中音SO864898A2又1/2拍6中音LA964968C3拍7中音TIA65030F3又3/4拍1高音DOB650582高音REC651103高音MID651574高音FAE651785高音SOF65217不发音0

电路原理图

元器件清单:

单片机:AT89S52(1个)晶振:12MHZ(1个)电容:33PF(2个),104nf(1个),10uf(1个)电阻:10k,100Ω 5.1k 若干个 蜂鸣器:一个 LED:8个 三极管:8550(1个)

器件详参:

AT89S52

主要性能:

与MCS-51单片机产品兼容 、8K字节在系统可编程Flash存储器、 1000次擦写周期、 全静态操作:0Hz~33MHz 、 三级加密程序存储器 、 32个可编程I/O口线 、三个16位定时器/计数器 八个中断源 、全双工UART串行通道、 低功耗空闲和掉电模式 、掉电后中断可唤醒 、看门狗定时器 、双数据指针 、掉电标识符 。

功能特性描述

A89S52 是一种低功耗、高性能CMOS8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值