【C51】DIY电子音乐贺卡:C51单片机项目设计与实现

莱莱  论坛元老 | 2024-6-10 10:16:38 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1000|帖子 1000|积分 3000

前言:

在当今数字化时代,电子贺卡以其独特的互动性和个性化特点,成为人们表达情绪和庆祝特殊场合的一种流行方式。本文将引导读者如何利用C51单片机设计一款电子音乐贺卡,通过结合LED点阵屏、蜂鸣器和1602液晶表现模块,实现一个具有倒计时表现、文字祝福以及音乐播放功能的创意电子项目。这不但可以或许锻炼电子爱好者的编程和电路设计能力,还能为亲朋好友的生日增添一份特殊的祝福。
1. 要求:

在最小系统电路的根本上添加电路设计电子贺卡,并编写程序,要求如下:

  • 单片机连接 1 个 8*8 LED点阵屏,1 个蜂鸣器, 1个1602液晶表现模块。
  • 开始时,点阵屏倒计时表现 9-0, 每个数字表现 1 秒,到 0 后就不再表现。
  • 然后 1602 液晶从第一行开始表现“Happy birthday to you!”,首行空两格。
  • 接着蜂鸣器循环播放生日音乐。
    提醒: 取数字字符字模的时,发起接纳字体 terminal, 点阵设置16 * 8;
2. 实现效果:

https://live.csdn.net/v/397476?spm=1001.2014.3001.5501

     c51_电子音乐贺卡
  
3. 预备工作:



  • 画电路图

  • 取字模软件



4. 编写代码:

  1. #include <config.h>       
  2. #include <matrix8X8.h>
  3. #include <1602.h>
  4. #include <beep.h>
  5. u8 count_0 = 0;
  6. u8 flag_1s = 0;
  7. void main()
  8. {
  9.         u8 i;
  10.         // 初始化1602
  11.         LCD1602_Init( );//1602初始化函数
  12.         // 计时器初始化
  13.         TMOD = TMOD&0xf0; // 低4位清零
  14.         TMOD = TMOD|0x01; // 设置定时器0位工作方式1
  15.         TH0 = (65535-45872)/256; // 50ms@11.0592Mhz
  16.         TL0 = (65535-45872)%256;
  17.         EA = 1; // 中断总开关
  18.         ET0 = 1; // 开定时器0中断
  19.         TR0 = 1;        // 启动定时器0
  20.        
  21.         // 倒计时
  22.         for (i = 9; i > 0; --i) {
  23.                 flag_1s = 0;
  24.                 while(flag_1s == 0) {
  25.                         matrix8X8(font[i]);//显示8*8点阵font[8]、阴码、低位在前、C51
  26.                 }
  27.         }
  28.        
  29.         //1602 显示字符串
  30.         LCD1602_disstr("Happy birthday to you!",0 ,2);//从指定坐标开始显示英文字符串(长度不超过32),自动换行
  31.        
  32.         // 播放音乐
  33.         while(1) {
  34.                 playmusic(Music2Meter, Music2TONE,Music2Len); //播放歌曲,*Meter指向歌曲的节拍数组,*TONE指向歌曲的音调数组,n为歌曲中音调的个数
  35.         }
  36. }  
  37. void INT_T0() interrupt 1 //中断号1为 T0 定时器中断
  38. {
  39.         TH0 = (65535-45872)/256; // 重装初始值
  40.         TL0 = (65535-45872)%256;
  41.         count_0++;
  42.         if (count_0 == 20) { // 计数器20次为1s
  43.                 flag_1s = 1;
  44.                 count_0 = 0;
  45.         }
  46. }
复制代码
5. 导出bmp格式图片



总结:

通过本文的引导,读者应该可以或许把握如何设计并实现一个电子音乐贺卡的基本框架。从电路设计到代码编写,再到最终的功能实现,每一步都细密相扣,确保了项目标完整性和实用性。倒计时的LED点阵屏表现,配合1602液晶屏上的生日祝福文字,以及蜂鸣器播放的生日音乐,共同构成了这款电子贺卡的核心功能。此外,通过提供的在线视频教程链接,读者可以更直观地相识整个制作过程和实现效果,为电子爱好者提供了一个学习和实践的平台。盼望这款电子音乐贺卡可以或许成为传递心意和祝福的桥梁,为人们的特殊时候增添一抹科技色彩。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莱莱

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表