keilc课程设计Word格式.docx
- 文档编号:15392046
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:12
- 大小:117.17KB
keilc课程设计Word格式.docx
《keilc课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《keilc课程设计Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
具有智能原理图设计,完善的电路仿真功能,单片机协同仿真功能,实用的PCB设计平台等功能。
Proteus的资源丰富,Proteus可提供的仿真元器件资源:
仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。
Proteus提供了比较丰富的测试信号用于电路测试这些测试包括模拟信号和测试信号。
在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:
*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。
课程设计、毕业设计是学生走向就业的重要实践环节。
由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台。
广泛应用到教学,技能考评,产品开发等众多领域。
KeilC:
KeiluVision2是KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。
KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。
C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。
C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:
编译器,汇编器,实时操作系统,项目管理器,调试器。
uVision2IDE可为它们提供单一而灵活的开发环境。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,使您能在很短的时间内就能学会使用keilc51来开发您的单片机应用程序。
3.2实验电路图
图1整体电路原理图
图2主体电路单片机
选择89C51单片机作为本次设计的CPU主体电路,如上图2所示;
89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
打片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。
89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图3控制电路
本次设计所采用的控制电路的连接方式如上图3所示,在控制电路中包含8个发光二级管和8个开关,并且都分别连接在89C51单片机的P2.0~P2.7引脚上,目的是通过按不同的按键来实现发出不同的声音,并且通过发光二极管的亮和暗来观察按下的是哪个按键。
前六个开关分别是控制发出Do,Re,Mi,Fa,,So,La六个音节,而后两个开关分别是在按下的时候发出《生日快乐歌》和《我是一只小小鸟》两首不同的音乐。
图4发声电路
如图4所示,播放模块其实就是喇叭,它接到P3.7口上当有按键按下时,它就会发出相对应的声音声音.
4.器件清单
表格1元件清单
元件序号
型号
主要参数
数量
备注
1
AT89C51
12MHZ
2
cap
30pf30pf01uf
3
crystal
4
respack-8
10kX8
5
res
100k,2k
6
button
9
7
pnp
8
led
4V10mA
speaker
500ms
5.器件的识别与检测
单片机:
89C51是单芯片微型计算机。
具备计算机的基本四要素,并且提供了足够的接口,允许硬件上进一步扩展,89C51单片机共有40个引脚,引脚的顺序是从单片机的缺口处逆时针查询;
在其芯片背面有MS89C51字样,在电路中起到控制作用。
晶振:
产生时钟周期,使单片机执行程序代码。
扬声器:
声音的产生是一种音频振动的结果,用正弦波信号驱动喇叭即可产生悦耳的音乐,以脉冲信号或以正弦波信号所产生的音效,对于人类的耳朵很难有所区别,所以在此电路中通过P3.7引脚的高低电平产生不同的频率,以PNP晶体管做扬声器的驱动电路即可产生乐耳的音乐。
6.控制系统的实现
6.1程序流程图
6.2音调与音乐的产生
在音乐中,通常是以Do、Re、Mi、Fa、So、La、Si、Do分别表示频率的一种声音,称之为”音调”,即Tone。
表2为这几个音阶的参数表,每个音阶之间的频率相差一倍,例如:
高音Do的频率(1046HZ)刚好是中音Do的频率(523HZ)的两倍,因此两个半音之间的频率比是,大约是1.059,以中音为例,Do的频率为523HZ,所以Do#的频率为523x1.059,约为554HZ,Re的频率为554x1.059,约为587HZ,以此类推。
表2按钮、音阶,参数对照表
按键
音阶
参数
S1
中音Do
115
S2
中音Re
102
S3
中音Mi
91
S4
中音Fa
86
S5
中音So
77
S6
中音La
68
悦耳的音乐的产生式通过数组及基本的音阶数组(tone[]),采用定时器中断方式产生音阶、延时函数方式产生节拍。
《生日快乐歌》的简谱与节拍如下所示:
unsignedcharcodesong1[]={1,1,2,1,4,3,1,1,2,1,5,4,
1,1,8,6,4,3,9,7,7,6,4,5,4,15};
unsignedcharcodebeat1[]={4,4,8,8,8,16,4,4,8,8,8,16,
4,4,8,8,8,8,8,4,4,8,8,8,16};
《我是一只小小鸟》的简谱与节拍如下所示:
unsignedcharcodesong2[]={1,1,1,3,2,1,3,3,3,5,4,3,5,4,3,2,
2,1,0,1,2,3,4,3,2,3,4,5,5,4,3,2,1,15};
unsignedcharcodebeat2[]={4,4,4,6,2,4,4,4,4,6,2,4,4,4,4,12,
8,2,2,4,4,4,8,2,2,4,4,4,2,2,4,4,12};
6.3程序代码
#include<
reg51.h>
//包含reg51.h头文件
#defineSW_PortP2
sbitbuzzer=P3^7;
unsignedcharkeys,i;
unsignedchartone_H,tone_L;
voidbeat_125(unsignedchar);
/*声明《生日快乐歌》的音谱节拍数组*/
unsignedcharcodesong1[]={1,1,2,1,4,3,1,1,2,1,5,4,
/*声明《我是一只小小鸟》的音谱节拍数组*/
unsignedcharcodesong2[]={1,1,1,3,2,1,3,3,3,5,4,3,5,4,3,2,
/*声明数组Do、Re、Mi、Fa、So、La、Si、Do_H*/
unsignedcharcodetone[]={115,102,91,86,77,68,61,57};
unsignedcharcodetonea[]={1012,956,852,759,716,638,
568,506,478,426,379,531,10};
//音阶定义
voidplay1(void);
voidplay2(void);
voidsound(unsignedchar);
voiddelay8us(unsignedchar);
main()//主程序
{
buzzer=1;
//扬声器初始值
IE=0x82;
//启用Timer0
TMOD=0x01;
while
(1)//while循环
{SW_Port=0xff;
keys=~SW_Port;
switch(keys)//判断哪个键被按下
{case0x01:
sound(0);
break;
case0x02:
sound
(1);
case0x04:
sound
(2);
case0x08:
sound(3);
case0x10:
sound(4);
case0x20:
sound(5);
case0x40:
play1();
case0x80:
play2();
}buzzer=1;
//扬声器不动作
}
}
voidsound(unsignedcharx)//发声函数
unsignedchari;
for(i=0;
i<
60;
i++)
{
buzzer=0;
delay8us(tone[x]);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- keilc 课程设计