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

文章目录

  • 前言:
  • [1. 要求:](#1. 要求:)
  • [2. 实现效果:](#2. 实现效果:)
  • [3. 准备工作:](#3. 准备工作:)
  • [4. 编写代码:](#4. 编写代码:)
  • [5. 导出bmp格式图片](#5. 导出bmp格式图片)
  • 总结:

前言:

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

1. 要求:

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

  1. 单片机连接 1 个 8*8 LED点阵屏,1 个蜂鸣器, 1个1602液晶显示模块。
  2. 开始时,点阵屏倒计时显示 9-0, 每个数字显示 1 秒,到 0 后就不再显示。
  3. 然后 1602 液晶从第一行开始显示"Happy birthday to you!",首行空两格。
  4. 接着蜂鸣器循环播放生日音乐。
    提醒: 取数字字符字模的时,建议采用字体 terminal, 点阵设置16 * 8;

2. 实现效果:

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

c51_电子音乐贺卡

3. 准备工作:

  • 画电路图 :

  • 取字模软件

4. 编写代码:

c 复制代码
#include <config.h>	
#include <matrix8X8.h>
#include <1602.h>
#include <beep.h>


u8 count_0 = 0;
u8 flag_1s = 0;

void main()
{
	u8 i;
	// 初始化1602
	LCD1602_Init( );//1602初始化函数
	// 计时器初始化
	TMOD = TMOD&0xf0; // 低4位清零
	TMOD = TMOD|0x01; // 设置定时器0位工作方式1
	TH0 = (65535-45872)/256; // 50ms@11.0592Mhz
	TL0 = (65535-45872)%256;
	EA = 1; // 中断总开关
	ET0 = 1; // 开定时器0中断
	TR0 = 1;	// 启动定时器0
	
	// 倒计时
	for (i = 9; i > 0; --i) {
		flag_1s = 0;
		while(flag_1s == 0) {
			matrix8X8(font[i]);//显示8*8点阵font[8]、阴码、低位在前、C51 
		}
	}

	
	//1602 显示字符串
	LCD1602_disstr("Happy birthday to you!",0 ,2);//从指定坐标开始显示英文字符串(长度不超过32),自动换行
	
	// 播放音乐
	while(1) {
		playmusic(Music2Meter, Music2TONE,Music2Len); //播放歌曲,*Meter指向歌曲的节拍数组,*TONE指向歌曲的音调数组,n为歌曲中音调的个数
	}
}  


void INT_T0() interrupt 1 //中断号1为 T0 定时器中断
{
	TH0 = (65535-45872)/256; // 重装初始值
	TL0 = (65535-45872)%256;
	count_0++;
	if (count_0 == 20) { // 计数器20次为1s
		flag_1s = 1; 
		count_0 = 0;
	}
}

5. 导出bmp格式图片


总结:

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

相关推荐
iCxhust11 小时前
51单片机电力载波应用开发(4)单片机发PC端接收
单片机·嵌入式硬件·51单片机
国科安芯14 小时前
断电也隔离、听得真:ASL3159S 单通道 SPDT 模拟开关的“断电保护 + 音频保真“账
单片机·嵌入式硬件·安全·商业航天·抗辐射
自小吃多14 小时前
【Verilog/FPGA】存储器(数组)
嵌入式硬件·fpga开发
szxinmai主板定制专家14 小时前
RK3588+FPGA异构架构|高速数据采集+边缘AI落地应用全解析
人工智能·嵌入式硬件·fpga开发·架构·zynq
jianqiang.xue14 小时前
【CStackGUI 实战】深色主题终端:app.dark 默认深色 + 顶层命名样式表 + 运行时切换
单片机·嵌入式·cstackgui·c语言gui·可视化拖拽
M78佐菲14 小时前
ARM学习笔记(11)
linux·arm开发·笔记·嵌入式硬件·学习
M78佐菲14 小时前
ARM学习笔记(10)
linux·arm开发·笔记·嵌入式硬件·学习
小程序设计14 小时前
基于STM32的智慧厨房多参数安全监测与预警系统设计
stm32·嵌入式硬件·安全
新晨单片机设计15 小时前
S008C-基于STM32单片机无线抢答器【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus·无线抢答器
小诗懂技术15 小时前
【裸机lcd】framebuffer的配置与小型图像库的移植
arm开发·单片机·嵌入式硬件·裸机