LED显示及蜂鸣器

上传人:woxinch****an2018 文档编号:38969390 上传时间:2018-05-10 格式:DOC 页数:12 大小:3.42MB
返回 下载 相关 举报
LED显示及蜂鸣器_第1页
第1页 / 共12页
LED显示及蜂鸣器_第2页
第2页 / 共12页
LED显示及蜂鸣器_第3页
第3页 / 共12页
LED显示及蜂鸣器_第4页
第4页 / 共12页
LED显示及蜂鸣器_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《LED显示及蜂鸣器》由会员分享,可在线阅读,更多相关《LED显示及蜂鸣器(12页珍藏版)》请在金锄头文库上搜索。

1、沈沈阳阳航航空空航航天天大大学学(单单片片机机课课程程设设计计报报告告 )专专 业业 : 班班 级级 : 设计题目设计题目 : LEDLED 显示及蜂鸣器显示及蜂鸣器 学学 号号 : 学生姓名学生姓名 : 指导教师指导教师 : 20152015 年年 7 7 月月 3 3 日日设计题目设计题目: :一、一、 要求要求1.了解LED点阵显示图案的原理。2.能够在LED上显示和控制蜂鸣器的工作。3 3熟悉掌握KEIL软件的使用。二、二、 分析分析本设计使用 AT89C51 做为主控制模块,利用简单的外围电路来驱动 LED 显示。设计分为三个模块:单片机控制模块,输出显示模块和驱动模块,单片机控制模

2、块以单片机为核心,以软件 KEIL 编程实现信号输出,以驱动 LED 及蜂鸣器为目的。三、三、 设计设计1 1、硬件方面、硬件方面(1 1) 、LEDLED 驱动模块、蜂鸣器模块驱动模块、蜂鸣器模块本模块包括 LED 点阵显示汉字,数码管显示数字。蜂鸣器的控制则是利用 P1.5 口输出电压加在蜂鸣器引脚上,达到驱动蜂鸣器的目的,以此来控制蜂鸣器的工作。(2 2) 、硬件设计、硬件设计实验板上设计一个 1616 LED 点阵显示模块,可用于简单的汉字显示,以及一个简单的数码管。 2 2、软件编程、软件编程1.电路图本软件要求实现如下要求:LED 点阵显示歌曲名,数码管对数字进行计数,蜂鸣器在显示

3、歌曲名时自动播放歌曲。图一:实验原理图2 2、调试说明、调试说明使用 KEIL 软件编译调试代码,确保无误后下载到单片机里,硬件电路连接 p2 口 LED 的所有跳帽,单片机 P1.5 接口连接蜂鸣器,下载生成的 hex 文件,即可看到 LED 点阵上能够出现歌曲名图案并且可以看到译码管对数字计数,而后有歌曲的伴随。3 3、实验结果、实验结果能够在 LED 点阵上清晰显示汉字图案,但是 LED 点阵没有达到对汉字的完美显示,即蜂鸣器工作时,LED 点阵显示汉字时间并没有跟随蜂鸣器工作时单拍所需要的时间同步。经努力修改程序代码得以实现。图二:实验结果图四、四、 总结总结在此次设计中,我得到以下体

4、会:1. 这次图案设计的过程让我进一步熟悉了 KEIL 软件的使用。2. 通过这次设计,重新复习并进一步学习了 51 单片机的优点,明确了单片机在显示生活中的应用是十分广泛的。3. 让我明白任何一件事情都必须小心谨慎,稍有差错变不会得出正确的结论。就像程序代码,错一点,整个程序也就错了。所以我们应该养成严谨学习习惯。4. 自己以后要更加认真学习单片机相关知识,提高自己的编程能力。附录:附录:#include #include #define NOP() _nop_() / 定义空指令定义空指令 ,这个函数在库,这个函数在库 中中/-/-重定义函数变量重定义函数变量-/-/#define uch

5、ar unsigned char #define uint unsigned int #define ulong unsigned long void chang(); void main1(unsigned int q); /-/-定义定义 SPISPI 要使用的要使用的 IO-/IO-/sbit MOSIO = P34; sbit R_CLK = P35; sbit S_CLK = P36;/-/-全局变量声明全局变量声明-/-/ ulong column; /点阵列点阵列 ulong row; /点阵行点阵行ulong dt;/点阵显示数组点阵显示数组uchar code tab0 =

6、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; /-/-八八-/-/uchar code tab1 = 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;

7、/-/-月月-/-/uchar code tab2 = 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,1 6,1,20,0,24; /-/-桂桂-/-/uchar code tab3 = 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 ; /-/-花花-/-/uchar code tab4 = 16,4,16,4,252,63,16,4,96,0,48,9,16,5,24,

8、3,148,1,82,1,16,1,16,1,16,1,16,33, 16,63,0,0 ;/-_-/-_-/ uchar code tab13 = 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;/函数声明函数声明void HC595SendData( uchar BT3, uchar BT2,uchar BT1,uchar BT0); sbit Beep = P15 ; unsigned char n=0; /n/n 为节拍常数变量为节拍常数变量 unsigned char co

9、de music_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,

10、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,

11、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,

12、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,

13、0x13, 0x60, 0x18 , 0x20, 0x15, 0x40, 0x13 , 0x40, 0x18, 0x80, 0x00 ;void delayms(unsigned char a) /毫秒延时子程序毫秒延时子程序 while(-a); void delayms1(unsigned char a) /毫秒延时子程序毫秒延时子程序 while(-a); void int0() interrupt 1 /采用中断采用中断 0 0 控制节拍控制节拍 TH0=0xd8; TL0=0xef; n-; void HC595SendData( uchar BT3, uchar BT2,uchar BT1,uchar BT0) uchar i; /-/-发送第一个字节发送第一个字节-/-/for(i=0;i 7 ; /从高位到低位从高位到低位BT3 7;/;/从高位到低位从高位到低位BT2 7;/;/从高位到低位从高位到低位BT1 7;/从高位到低位从高位到低位BT0 0; ms-) for(k = 0; k 0; ms-) for(k = 0; k 0; ms-) for(k = 0; k 0; ms-) for(k = 0; k 0; ms-) for(k = 0; k 0;c-) for (b=38;b0;b-) f

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号