77范文网 - 专业文章范例文档资料分享平台

基于单片机的电子贺卡设计(4)

来源:网络收集 时间:2018-12-29 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。

电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。

蜂鸣器按其是否带有信号源又分为有源和无源两种类型。有源蜂鸣器只需要在其供电端加上额定直流电压,其内部的震荡器就可以产生固定频率的信号,驱动蜂鸣器发出声音。无源蜂鸣器可以理解成与喇叭一样,需要在其供电端上加上高低不断变化的电信号才可以驱动发出声音。用单片机控制蜂鸣器发出不同频率的声音,最好采用无源的蜂鸣器,如果用有源蜂鸣器,可以会因为二种不同频率声音(有源蜂鸣器本身固有发音频率与单片机驱动频率)互相叠加,造成效果混乱、发音不清。

4.3电路工作原理

当按下按键,P1.0口输出音乐脉冲,脉冲信号首先经过由电容C1和 C2组成的回路输入到单片机XTAL1 XTAL2.输入信号经过晶振处后,从 Vout 输出,送入到P0.0脚。并且串联一个限流电阻R2,用以保护蜂鸣器的正常工作。经过此电路后,单片机发出的不同频率的音频信号就可以通过蜂鸣器发出想要的歌曲。

五、软件设计

软件设计是指在硬件电路的基础上,以程序的形式实现算法,进而实现音乐播放器的功能。软件是整个控制系统设计的核心,采用模块化设计,具有充分的灵活性,在硬件结构不变的情况下,只需要改变软件就能实现一些不同的功能,满足用户多样性需求。

本系统采用模块化的编程思想,把整个软件系统化分为多个功能模块,主程

16

序通过调用各个子程序来完成各个功能的实现。软件的程序主要由主程序、发声模块程序、控制模块程序、LCD1602显示程序组成。

本设计使用Keil μVison3软件完成程序的编写和调试。

5.1软件开发平台

KeilμVison系列是德国Keil Software公司推出的51系列兼容单片机软件开发系统。μVison3是集成的可视化Windows操作界面,其提供了丰富的库函数和各种编译工具,能够对51系列单片机以及和51系列兼容的绝大部分类型的单片机进行设计。KeilμVison系列可以支持单片机C51程序设计语言,也可以直接进行汇编语言的设计与编译。

目前,Keil公司已经被ARM公司收购,成为ARM旗下的产品。KeilμVison系列的集成开发环境最高版本是μVison3,版本号为V8.08。KeilμVison系列是一个非常优秀的编译器,受到广大单片机设计者的广泛使用。

其主要特点如有:支持汇编语言、C51语言等多种单片机设计语言;可视化的文件管理,界面友好;支持丰富的产品线,除了51及其兼容内核的单片机外,还新增加了对ARM内核产品的支持;具有完善的编译连接工具;具备丰富的仿真调试功能,可以仿真串口、并口、A/D、D/A、定时器/计数器以及中断等资源,同时也可以和外部仿真器联合进行在线调试;内嵌RTX-51实时多任务操作系统;支持在一个工作空间中进行多项目的程序设计。支持多级代码优化。

5.2详细的程序设计

详细的程序设计如下: #include #include #define uchar unsigned char #define uint unsigned int

sbit SPEAK=P1^7; //定义蜂鸣器输出端口 sbit Key0=P1^0; //定义独立按键 sbit Key1=P1^1;

17

sbit Key2=P1^2; sbit Key3=P1^3;

sbit RS=P2^0; //定义控制引脚 sbit RW=P2^1; sbit E=P2^2;

ucharbeat,tl,th; //定义节拍和T0初值变量 uchar code TABLE[]={ //音符对应的定时器初值表

0xfb,0x04,0xfb,0x90,0xfc,0x09,0xfc,0x44, 0xfc,0xac,0xfd,0x09,0xfd,0x34,0xfd,0x82, 0xfd,0xc8,0xfe,0x06,0xfe,0x22,0xfe,0x56, 0xfe,0x85,0xfe,0x9a,0xfe,0xc1};

uchar code GRACE[]={ //《奇异恩典》音符码表

0x14,0x48,0x62,0x42,0x68,0x54,0x48,0x24,0x18, 0x14,0x48,0x62,0x42,0x68,0x54,0x8c,0x88,

0x64,0x86,0x62,0x82,0x62,0x48,0x14,0x26,0x42,0x42,0x22,0x18, 0x14,0x48,0x62,0x42,0x68,0x54,0x4c,0x48,0x00};

//《欢乐颂》音符码表

uchar code JOY[]={

0x64,0x64,0x74,0x84,0x84,0x74,0x64,0x54,0x44,0x44,0x54,0x64,0x66,

0x52,0x58,

0x64,0x64,0x74,0x84,0x84,0x74,0x64,0x54,0x44,0x44,0x54,0x64,0x56,

0x42,0x48,

0x54,0x54,0x64,0x44,0x54,0x62,0x72,0x64,0x44,0x54,0x62,0x72,0x64,

0x54,0x44,0x54,0x18,

0x64,0x64,0x74,0x84,0x84,0x74,0x64,0x54,0x44,0x44,0x54,0x64,0x56,

0x42,0x48,0x00};

uchar code HAPPY[]={ //《生日快乐》音符码表

0x82,0x01,0x81,0x94,0x84,0xB4,0xA4,0x04, 0x82,0x01,0x81,0x94,0x84,0xC4,0xB4,0x04, 0x82,0x01,0x81,0xF4,0xD4,0xB4,0xA4,0x94,

18

0xE2,0x01,0xE1,0xD4,0xB4,0xC4,0xB4,0x04, 0x82,0x01,0x81,0x94,0x84,0xB4,0xA4,0x04, 0x82,0x01,0x81,0x94,0x84,0xC4,0xB4,0x04, 0x82,0x01,0x81,0xF4,0xD4,0xB4,0xA4,0x94, 0xE2,0x01,0xE1,0xD4,0xB4,0xC4,0xB4,0x04,

0x00};

uchar code GRACE_Name[]=%uchar code JOY_Name[]=%uchar code HAPPY_Name[]=\void Timer0_Initialize(); void Delay_1ms(ucharms); void Delay(uchar);

voidKey_Scan(char *numz,uchar *kz); ucharBusy_Check();

voidLCD_Write_Command(ucharcmd); voidLCD_Initialize();

voidShow_String(ucharx,uchary,uchar *str); void main() { uchar m,m1,k=0; //定义临时变量 charnum=0; char *numz; uchar *kz; uchar *p[3]; uchar *q[3]; numz=# kz=&k;

p[0]=GRACE;p[1]=JOY;p[2]=HAPPY;

q[0]=GRACE_Name;q[1]=JOY_Name;q[2]=HAPPY_Name;

19

Timer0_Initialize(); LCD_Initialize(); while(Key1); Delay_1ms(5); while(Key1);

while(1) { while(*(p[num]+k)!=0) //判断取得的音符码是否为结束码 { beat=*(p[num]+k)&0x0f; //取节拍码 m=_crol_(*(p[num]+k),4)&0x0f; //取音调码 if(m!=0) //判断取得的音调码是否为0

{

//不是,根据取得的音调码计算T0初值 m1=--m*2+1; m=m*2;

tl=TL0=TABLE[m1]; th=TH0=TABLE[m]; TR0=1;

//启动T0

} else

//取得的音符码为0,则停止T0

TR0=0;

Delay(beat); k++;

Show_String(0,0,q[num]); Show_String(0,1,q[num]+16); Key_Scan(numz,kz);

} num++;

if(num>2)

20

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的电子贺卡设计(4)在线全文阅读。

基于单片机的电子贺卡设计(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/395305.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: