单片机控制LED及蜂鸣器课程设计报告.docx

上传人:b****5 文档编号:7686891 上传时间:2023-01-25 格式:DOCX 页数:8 大小:18.94KB
下载 相关 举报
单片机控制LED及蜂鸣器课程设计报告.docx_第1页
第1页 / 共8页
单片机控制LED及蜂鸣器课程设计报告.docx_第2页
第2页 / 共8页
单片机控制LED及蜂鸣器课程设计报告.docx_第3页
第3页 / 共8页
单片机控制LED及蜂鸣器课程设计报告.docx_第4页
第4页 / 共8页
单片机控制LED及蜂鸣器课程设计报告.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

单片机控制LED及蜂鸣器课程设计报告.docx

《单片机控制LED及蜂鸣器课程设计报告.docx》由会员分享,可在线阅读,更多相关《单片机控制LED及蜂鸣器课程设计报告.docx(8页珍藏版)》请在冰豆网上搜索。

单片机控制LED及蜂鸣器课程设计报告.docx

单片机控制LED及蜂鸣器课程设计报告

武汉**大学

单片机设计报告

课程单片机课程设计

设计题目LED灯及蜂鸣器

年级专业信息与计算科学09级

学号

学生姓名

指导教师

2012年04月170

设计题目:

一、要求

1.了解LED显示流水灯的原理。

2.能够在LED上显示和控制蜂鸣器的工作。

3.熟悉掌握ke订软件的使用。

二、分析

本设汁使用AT89C52RC做为主控制模块,利用简单的外用电路来驱动LED蝴蝶。

设计分为三个模块:

单片机控制模块,输出显示模块和驱动模块,单片机控制模块以单片机为核心,以软件KEIL编程实现信号输出,以驱动LED及蜂鸣器为LI的。

三、设计

1、硬件方面

(1)、LED驱动模块

图文显示有静态和动态两种方案,本设计•中静动态都用到了。

动态扫描的意思简单的说就是轮流点亮。

具体就图案来说,把内部同行的发光管的阳极相连在一起,先送出对应行的发光管亮灭的数据并锁存,然后选通其它行使其燃亮相同的时间,然后熄灭。

反复循环。

蜂鸣器的控制则是加入三极管接在VCC,单片机的笫20引脚和负极上,以此来控制蜂鸣器的工作。

(2)、硬件设计

实验板上设计一个蝴蝶状的LED显示,可用于简单的图形图像。

蝴蝶的图案是由74个LED绿灯、8个红灯、10个黄灯拼接而成。

其中绿灯直接接到正负极上,黃灯和红灯接到单片机的P2口,来控制其闪动。

2、软件编程(包括流程图、完整的汇编源程序及其注释)

1.电路图

Sdefineuintunsignedint

#defineDY_PORTP2〃设置LED连接的I/O组

#defineDY_SPEED100//设置每一个明亮级的停留时间(值域:

0^65535)

structmusic_type

{uchartone;

uchardelay;

};

voiddelay(unsignedinta){//1ms延时程序

unsignedinti;

while(--a!

=0){

for(i=0;i<600;i++);//STC单片机在外部晶振为12MHz时i值上限为

600

}//AT89C51单片机在外部晶

振为12MHz时i值上限为125

//D调7声

}

uintcodetonetab[]={

音阶3个8度

P7

64752,64837,64913,6494&65012,65070,65120,//中音

r?

65144,65186,65225,65242,65274,65303,65328//高音

r?

};

//曲谱,每个音符两项数据:

第1项为音高,第2项为节拍(以1/4拍为单位)

structmusic_typecodenotetab[]={//”三十

里铺”曲谱

1+14,0x02,2+14,0x04,2+14,0x02,5+14,0x02,1+14,0x04,6+7,0x02,

5+7,0x03,6+7,0x01,5+7,0x02,2+7,0x02,5+7,0x08,

1+14,0x02,2+14,0x04,2+14,0x02,5+14,0x02,1+14,0x04,6+7,0x02,

5+7,0x03,6+7,0x01,5+7,0x02,2+7,0x02,5+7,0x08,

1+14,0x02,4+7,0x04,5+7,0x02,1+14,0x02,1+14,0x04,6+7,0x02,

5+7,0x03,6+7,0x01,5+7,0x02,2+7,0x02,5+7,0x08,

4+7,0x03,4+7,0x01,3+7,0x02,2+7,0x02,

1+7,0x03,2+7,0x01,5+7,0x02,2+7,0x02,1+7,0x08,

1+14,0x02,2+14,0x04,2+14,0x02,5+14,0x02,1+14,0x04,6+7,0x02,

5+7,0x03,6+7,0x01,5+7,0x02,2+7,0x02,5+7,0x08,

1+14,0x02,2+14,0x04,2+14,0x02,5+14,0x02,1+14,0x04,6+7,0x02,

5+7,0x03,6+7,0x01,5+7,0x02,2+7,0x02,5+7,0x08,

1+14,0x02,4+7,0x04,5+7,0x02,1+14,0x02,1+14,0x04,6+7,0x02,

5+7,0x03,6+7,0x01,5+7,0x02,2+7,0x02,5+7,0x08,

4+7,0x03,4+7,0x01,3+7,0x02,2+7,0x02,

1+7,0x03,2+7,0x01,5+7,0x02,2+7,0x02,1+7,0x08,

 

0,0x00

};

sbitPIO二P「0;

蜂鸣器

/*

sbitSDAT二P3"4;

数码的移位寄存器

sbitSCLK二P3"5;*/

volatileuchartil,thl;

定时器1定时参数

//连接无源

〃连接显示

//存控制

 

uintled二0x0001;

LED初始显示

数据

bitdir二0;

控制标志

voidTl_sev()interrupt3中断:

控制蜂鸣器发声频率

{TL1二til;

TH1二thl;

P10二!

P10;

}

voidINTl_serv()interrupt2

1,改变LED流水方向标志

{dir二!

dir;

标志改变

}

voidinit()_task_0始化,激活任务广3

{TM0D二Ox10;

初始化

//LED流水方向

//定时器T1

//重装定时数据

〃蜂鸣器驱动倒相

//外中断

//流水方向控制

//任务0:

//系统硬件

ET1二1;

 

//启动任务

m二1;

EXl二1;

os^create_task

(1);

 

/*os_create_task

(2);*/

os_create_task(3);

〃自身撤退

os_delete_task(0);

}

〃任务

voiddisledO_task_1

1:

16个LED流水显示

{unsignedinttemp;

unsignedinti;

while

(1)

{temp=0xA0;

for(i=0;i<8;i++){//8个流水灯逐个闪动

DY_P0RT二'temp;

temp<<=l;

}

temp=0xA7;

for(i=0;i<8;i++){//8个流水灯反向逐个闪动

DY_PORT="temp;

delay(DY_SPEED);//调用延时函数

temp>>=l;

}

temp=OxAO;

for(i=0;i<8;i++){//8个流水灯依次全部点壳

DY_PORT二temp;

delay(DY.SPEED);//调用延时函数

temp<<=l;

}

temp=0xA7;

for(i=0;i<8;i++){//8个流水灯依次反向全部点亮

DY_PORT二temp;

delay(DY.SPEED);//调用延时函数

temp>>=l;

}

//控制LED流

os_wait2(K_IVL,10);

水显示的节奏

}

}

//任务3:

voidmusicplay()_task_3

鸣器演奏”三十里铺”

{uchari,j;

while

(1)

{i二0;

while(notetab[i]・delay)

//音高数据为0

//音高数据不为0

//用定时

{if(!

notetab[i].tone)TRI二0;

else

{thl=THl=tonetab[notetab[i].toneT]/256;

参数控制T1的振荡频率(音高)

tll=TLl=tonetab[notetab[i].toneT]%256;

〃控制音符的

//拟换下个音符

//停奏

//奏完1遍后的等

}

for(j=0;j

os_wait2(K_IVL,20);

i++;

}

TR1=O;

os_wait2(K_IVL,100);

}

}

3、调试说明

使用LEIL软件编译调试代码,确保无误后下载到单片机里,硬件电路连接p2口LED的所有跳帽,下载生成的hex文件,即可看到LED屏幕上能够出现明亮的蝴蝶图案并且有歌曲的伴随。

4、设讣结果及错误分析

能够在LED屏上清晰显示蝴蝶图案,但是没有达到流水灯和歌曲同时实现的

口的,经努力修改程序代码还是没能实现。

直到主动找老师询问后,才知道是因为

应该用10中断来控制程序的并发进行,以后会吸取教训,认真落实老师给的任务,不懂即问。

四、总结

在此次设计•中,我得到以下体会:

1.这次图案设计的过程让我进一步熟悉了KEIL软件的使用。

2.通过这次设计,重新复习并进一步学习了51单片机的优点,明确了单片机在显示生活中的应用是十分广泛的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 成考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1