LED显示及蜂鸣器word精品文档9页.docx
- 文档编号:28106626
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:13
- 大小:19.09KB
LED显示及蜂鸣器word精品文档9页.docx
《LED显示及蜂鸣器word精品文档9页.docx》由会员分享,可在线阅读,更多相关《LED显示及蜂鸣器word精品文档9页.docx(13页珍藏版)》请在冰豆网上搜索。
LED显示及蜂鸣器word精品文档9页
沈阳航空航天大学
课本、报刊杂志中的成语、名言警句等俯首皆是,但学生写作文运用到文章中的甚少,即使运用也很难做到恰如其分。
为什么?
还是没有彻底“记死”的缘故。
要解决这个问题,方法很简单,每天花3-5分钟左右的时间记一条成语、一则名言警句即可。
可以写在后黑板的“积累专栏”上每日一换,可以在每天课前的3分钟让学生轮流讲解,也可让学生个人搜集,每天往笔记本上抄写,教师定期检查等等。
这样,一年就可记300多条成语、300多则名言警句,日积月累,终究会成为一笔不小的财富。
这些成语典故“贮藏”在学生脑中,自然会出口成章,写作时便会随心所欲地“提取”出来,使文章增色添辉。
(单片机课程设计报告)
与当今“教师”一称最接近的“老师”概念,最早也要追溯至宋元时期。
金代元好问《示侄孙伯安》诗云:
“伯安入小学,颖悟非凡貌,属句有夙性,说字惊老师。
”于是看,宋元时期小学教师被称为“老师”有案可稽。
清代称主考官也为“老师”,而一般学堂里的先生则称为“教师”或“教习”。
可见,“教师”一说是比较晚的事了。
如今体会,“教师”的含义比之“老师”一说,具有资历和学识程度上较低一些的差别。
辛亥革命后,教师与其他官员一样依法令任命,故又称“教师”为“教员”。
专业:
这个工作可让学生分组负责收集整理,登在小黑板上,每周一换。
要求学生抽空抄录并且阅读成诵。
其目的在于扩大学生的知识面,引导学生关注社会,热爱生活,所以内容要尽量广泛一些,可以分为人生、价值、理想、学习、成长、责任、友谊、爱心、探索、环保等多方面。
如此下去,除假期外,一年便可以积累40多则材料。
如果学生的脑海里有了众多的鲜活生动的材料,写起文章来还用乱翻参考书吗?
班级:
设计题目:
LED显示及蜂鸣器
学号:
学生姓名:
指导教师:
2019年7月3日
设计题目:
一、要求
1.了解LED点阵显示图案的原理。
2.能够在LED上显示和控制蜂鸣器的工作。
3.熟悉掌握KEIL软件的使用。
二、分析
本设计使用AT89C51做为主控制模块,利用简单的外围电路来驱动LED显示。
设计分为三个模块:
单片机控制模块,输出显示模块和驱动模块,单片机控制模块以单片机为核心,以软件KEIL编程实现信号输出,以驱动LED及蜂鸣器为目的。
三、设计
1、硬件方面
(1)、LED驱动模块、蜂鸣器模块
本模块包括LED点阵显示汉字,数码管显示数字。
蜂鸣器的控制则是利用P1.5口输出电压加在蜂鸣器引脚上,达到驱动蜂鸣器的目的,以此来控制蜂鸣器的工作。
(2)、硬件设计
实验板上设计一个16×16LED点阵显示模块,可用于简单的汉字显示,以及一个简单的数码管。
2、软件编程
1.电路图
本软件要求实现如下要求:
LED点阵显示歌曲名,数码管对数字进行计数,蜂鸣器在显示歌曲名时自动播放歌曲。
图一:
实验原理图
2、调试说明
使用KEIL软件编译调试代码,确保无误后下载到单片机里,硬件电路连接p2口LED的所有跳帽,单片机P1.5接口连接蜂鸣器,下载生成的hex文件,即可看到LED点阵上能够出现歌曲名图案并且可以看到译码管对数字计数,而后有歌曲的伴随。
3、实验结果
能够在LED点阵上清晰显示汉字图案,但是LED点阵没有达到对汉字的完美显示,即蜂鸣器工作时,LED点阵显示汉字时间并没有跟随蜂鸣器工作时单拍所需要的时间同步。
经努力修改程序代码得以实现。
图二:
实验结果图
四、总结
在此次设计中,我得到以下体会:
1.这次图案设计的过程让我进一步熟悉了KEIL软件的使用。
2.通过这次设计,重新复习并进一步学习了51单片机的优点,明确了单片机在显示生活中的应用是十分广泛的。
3.让我明白任何一件事情都必须小心谨慎,稍有差错变不会得出正确的结论。
就像程序代码,错一点,整个程序也就错了。
所以我们应该养成严谨学习习惯。
4.自己以后要更加认真学习单片机相关知识,提高自己的编程能力。
附录:
#include
#include
#defineNOP()_nop_()//定义空指令,这个函数在库
//--重定义函数变量--//
#defineucharunsignedchar
#defineuintunsignedint
#defineulongunsignedlong
voidchang();
voidmain1(unsignedintq);
//--定义SPI要使用的IO--//
sbitMOSIO=P3^4;
sbitR_CLK=P3^5;
sbitS_CLK=P3^6;
//---全局变量声明--//
ulongcolumn;//点阵列
ulongrow;//点阵行
ulongdt;
//点阵显示数组
ucharcodetab0[]={0x00,0x01,0x00,0x02,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x80,
0x01,0x00,0x02,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x80,0x00};
//--八--//
ucharcodetab1[]={0,0,128,0,128,0,64,2,64,2,64,4,64,4,32,4,32,8,16,16,8,32,4,32,2,64,0,0,0,0,0,0};
//--月--//
ucharcodetab2[]={0,0,248,31,8,16,8,16,232,23,8,16,8,16,8,16,232,23,8,16,8,16,12,16,4,16,2,16,1,20,0,24};
//--桂--//
ucharcodetab3[]={0,0,16,0,16,8,16,8,126,127,16,8,16,127,24,8,56,62,84,8,18,8,16,255,16,0,16,0,0,0,0,0};
//--花--//
ucharcodetab4[]={16,4,16,4,252,63,16,4,96,0,48,9,16,5,24,3,148,1,82,1,16,1,16,1,16,1,16,33,16,63,0,0};
//--∩_∩--//
ucharcodetab13[]={0,0,0,0,60,240,102,156,67,130,0,0,0,0,0,0,0,0,0,0,48,24,96,8,192,7,0,0,0,0,0,0};
//函数声明
voidHC595SendData(ucharBT3,ucharBT2,ucharBT1,ucharBT0);
sbitBeep=P1^5;
unsignedcharn=0;//n为节拍常数变量
unsignedcharcodemusic_tab[]={
0x18,0x30,0x1C,0x10,//格式为:
频率常数,节拍常数,频率常数,节拍常数,
0x20,0x40,0x1C,0x10,
0x18,0x10,0x20,0x10,
0x1C,0x10,0x18,0x40,
0x1C,0x20,0x20,0x20,
0x1C,0x20,0x18,0x20,
0x20,0x80,0xFF,0x20,
0x30,0x1C,0x10,0x18,
0x20,0x15,0x20,0x1C,
0x20,0x20,0x20,0x26,
0x40,0x20,0x20,0x2B,
0x20,0x26,0x20,0x20,
0x20,0x30,0x80,0xFF,
0x20,0x20,0x1C,0x10,
0x18,0x10,0x20,0x20,
0x26,0x20,0x2B,0x20,
0x30,0x20,0x2B,0x40,
0x20,0x20,0x1C,0x10,
0x18,0x10,0x20,0x20,
0x26,0x20,0x2B,0x20,
0x30,0x20,0x2B,0x40,
0x20,0x30,0x1C,0x10,
0x18,0x20,0x15,0x20,
0x1C,0x20,0x20,0x20,
0x26,0x40,0x20,0x20,
0x2B,0x20,0x26,0x20,
0x20,0x20,0x30,0x80,
0x20,0x30,0x1C,0x10,
0x20,0x10,0x1C,0x10,
0x20,0x20,0x26,0x20,
0x2B,0x20,0x30,0x20,
0x2B,0x40,0x20,0x15,
0x1F,0x05,0x20,0x10,
0x1C,0x10,0x20,0x20,
0x26,0x20,0x2B,0x20,
0x30,0x20,0x2B,0x40,
0x20,0x30,0x1C,0x10,
0x18,0x20,0x15,0x20,
0x1C,0x20,0x20,0x20,
0x26,0x40,0x20,0x20,
0x2B,0x20,0x26,0x20,
0x20,0x20,0x30,0x30,
0x20,0x30,0x1C,0x10,
0x18,0x40,0x1C,0x20,
0x20,0x20,0x26,0x40,
0x13,0x60,0x18,0x20,
0x15,0x40,0x13,0x40,
0x18,0x80,0x00
voiddelayms(unsignedchara)//毫秒延时子程序
while(--a);
voiddelayms1(unsignedchara)//毫秒延时子程序
while(--a);
voidint0()interrupt1//采用中断0控制节拍
{TH0=0xd8;
TL0=0xef;
n--;
voidHC595SendData(ucharBT3,ucharBT2,ucharBT1,ucharBT0)
uchari;
//--发送第一个字节--//
for(i=0;i<8;i++)
MOSIO=BT3>>7;//从高位到低位
BT3<<=1;
S_CLK=0;
S_CLK=1;
//--发送第一个字节--//
for(i=0;i<8;i++)
MOSIO=BT2>>7;//从高位到低位
BT2<<=1;
S_CLK=0;
S_CLK=1;
//--发送第一个字节--//
for(i=0;i<8;i++)
MOSIO=BT1>>7;//从高位到低位
BT1<<=1;
S_CLK=0;
S_CLK=1;
//--发送第一个字节--//
for(i=0;i<8;i++)
MOSIO=BT0>>7;//从高位到低位
BT0<<=1;
S_CLK=0;
S_CLK=1;
//--输出--//
R_CLK=0;//setdatalinelow
R_CLK=1;//片选
R_CLK=0;//setdatalinelow
delayms1(10000);
voiddelay(unsignedcharm)//控制频率延时
unsignedi=3*m;
while(--i);
voidmain(void)
intk,j,ms;
unsignedcharp,m;//m为频率常数变量
unsignedchari=0;
j=6;
TMOD&=0x0f;
TMOD|=0x01;
TH0=0xd8;TL0=0xef;
IE=0x82;
play:
while
(1)
a:
p=music_tab[i];
if(p==0x00){i=0;
delayms1(1000);
gotoplay;
}//如果碰到结束符,延时1秒,回到开始再来一遍
elseif(p==0xff){i=i+1;delayms(100),TR0=0;gotoa;}//若碰到休止符,延时100ms,继续取下一音符
else{m=music_tab[i++],n=music_tab[i++];}//取频率常数和节拍常数
TR0=1;//开定时器1
while(n!
=0)Beep=~Beep,delay(m);//等待节拍完成,通过P1口输出音频
TR0=0;//关定时器1
main1
(1);
//--显示"八"--//
for(ms=j;ms>0;ms--)
for(k=0;k<16;k++)
HC595SendData(~tab1[2*k+1],~tab1[2*k],tab0[2*k],tab0[2*k+1]);
p=music_tab[i];
if(p==0x00)
{i=0;
delayms1(1000);
gotoplay;
elseif(p==0xff)
{i=i+1;
delayms(100),
TR0=0;
gotoa;
}else
{m=music_tab[i++],
n=music_tab[i++];
TR0=1;
while(n!
=0)Beep=~Beep,delay(m);
TR0=0;
main1
(2);
//--显示“月”--//
for(ms=j;ms>0;ms--)
for(k=0;k<16;k++)
HC595SendData(~tab2[2*k+1],~tab2[2*k],tab0[2*k],tab0[2*k+1]);
p=music_tab[i];
if(p==0x00){i=0;
delayms1(1000);
gotoplay;}
elseif(p==0xff)
i=i+1;
delayms(100),
TR0=0;
gotoa;
else
m=music_tab[i++],
n=music_tab[i++];
TR0=1;
while(n!
=0)Beep=~Beep,delay(m);
TR0=0;
main1(3);
//--显示“桂”--//
for(ms=j;ms>0;ms--)
for(k=0;k<16;k++)
HC595SendData(~tab3[2*k+1],~tab3[2*k],tab0[2*k],tab0[2*k+1]);
p=music_tab[i];
if(p==0x00){i=0;
delayms1(1000);
gotoplay;}
elseif(p==0xff)
i=i+1;
delayms(100),TR0=0;gotoa;}
else
m=music_tab[i++],n=music_tab[i++];
R0=1;
while(n!
=0)Beep=~Beep,delay(m);
TR0=0;
main1(4);
//--显示“花”--//
for(ms=j;ms>0;ms--)
for(k=0;k<16;k++)
HC595SendData(~tab4[2*k+1],~tab4[2*k],tab0[2*k],tab0[2*k+1]);
p=music_tab[i];
if(p==0x00){i=0;
delayms1(1000);
gotoplay;}
elseif(p==0xff)
i=i+1;
delayms(100),
TR0=0;gotoa;}
else
m=music_tab[i++],
n=music_tab[i++];
TR0=1;
while(n!
=0)Beep=~Beep,delay(m);
TR0=0;
//--显示"∩_∩"--//
for(ms=j;ms>0;ms--)
for(k=0;k<16;k++)
HC595SendData(~tab13[2*k+1],~tab13[2*k],tab0[2*k],tab0[2*k+1]);
//--声明全局函数--//
voidDelay10ms(unsignedintc);//延时10ms
voidmain1(unsignedintq)
{if(q==1)
P0=0x79;
Delay10ms
(1);//延时函数
if(q==2)
P0=0x24;
Delay10ms(5);
if(q==3)
P0=0x30;
Delay10ms
(2);
if(q==4)
P0=0x19;
Delay10ms(20);
voidDelay10ms(unsignedintc)//误差0us
unsignedchara,b;
//--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--//
for(;c>0;c--)
for(b=38;b>0;b--)
for(a=80;a>0;a--);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LED 显示 蜂鸣器 word 精品 文档