文章目录

  • 1 简介
  • 2 绪论
    • 2.1 课题背景与目的
  • 3 系统设计
    • 3.1 系统架构
    • 3.2 硬件部分
    • 3.3 软件部分
      • 主程序流程
      • 录放声音程序设计
      • LCD12864 程序设计
      • DS1302 程序设计
    • 3.4 实现效果
    • 3.5 部分相关代码
  • 4 最后

1 简介

Hi,大家好,这里是丹成学长,今天向大家介绍一个 单片机项目


大家可用于 课程设计 或 毕业设计

单片机-嵌入式毕设选题大全及项目分享:

https://blog.csdn.net/m0_71572576/article/details/125409052

2 绪论

2.1 课题背景与目的

在近代电子工程应用中, 录音系统已经越来越多的以数字信号形式, 并运用数字电路技术来处理信息。 录音系统作为一种音频捕获设备在音频信息获取方面有着广泛的应用。 目前, 市面上的录音系统只能提供录音、 监听、 查询、 回放和管理等基本功能。 传统的录音设备无法满足野生动物保护等特殊场合对录音设备远程可控性的要求, 以及记者、 警察这类特殊人群对取证录音的加密保护需要。信息的安全性、 可控性已成为录音系统的重要研究内容。

实现数字录音技术、 移动通信控制技术和信息加密技术的基础上, 学长设计了一款基于 STM32 的专用数字录音系统, 实现了数字录音、 实时加密以及远程控制功能, 实现信息的安全性和可控性。

3 系统设计

3.1 系统架构

通过 51 单片机与语音功能集成芯片 ISD4004, 以及 LCD12864 液晶芯片进行设计, 由单片机控制 ISD4004 来实现语音的录制存储以及播放清除等功能。 并且通过 LCD12864 来实现良好的人机交互界面。 具体框图如下所示:

学长考虑到采用资源不多的 51 单片机, 这样节省了资源同时单片机运算速度已经足够用于检测按键, 以及控制录音笔进行各种操作, 而且这种设计无需对数字信号进行编码压缩的复杂的操作, 实现简单, 功耗不高, 相对而言成本也不高, 所以本设计采用了此方案

3.2 硬件部分

(略)

3.3 软件部分

主程序流程

系统接通电源后, 主程序初始化后进入开机界面然后进入主循环,首先是按键检测, 提示密码输入, 正确则进入主菜单选择界面, 否则重复输入, 有三次校正密码的机会, 三次输入密码错误则蜂鸣器提示报警系统必须手动重启, 正确进入菜单后, 进行所需的选择然后, 通过 12864显示出设计相关信息。

录放声音程序设计

ISD4004 通过单片机控制, 当检测到按下录音键, 单片机通过 SPI接口发送相应指令将输入的信号进行采样, 经过芯片内部的一系列处理, 保存在芯片的储存器中。 当检测到按下放音键时, 发送放音指令使其处于放音状态。 录放程序流程图如下:

LCD12864 程序设计

设计采用的是 LCD12864 液晶显示, 由于其本身带有驱动模块液晶屏, 所以对于该显示操作程序可以分为开显示, 设置显示初始行, 写数据和清屏等部分。 12864 的写命令程序, 写数据程序, 显示程序都以子程序的形式在 12864 库函数里, 方便程序函数之间调用。

DS1302 程序设计

在 DS1302 的时钟日历或者 RAM 进行数据传送时, DS1302 必须首先发送命令字节。 若进行单字节传送, 8 位命令字节传送结束之后,在下个 2SCLK 周期的上升沿输入数据字节, 或者在下 8 个 SCLK 周期的下降沿输出数据字节。

3.4 实现效果

3.5 部分相关代码


void ISD_SPI_Send8( uchar addr_8 ); //spi 串行发送, 8 位数据
void ISD_SPI_Send16( uint addr_16 ); //spi 串行发送, 16 位数据
uint ISD_SPI_Rowadd(void); //读取 16 位行地址
void ISD_Stop(void); //发送 stop 指令
void ISD_PowerUp(void); // 上电 0X20
void ISD_PowerDown(void);  //掉电 0X10
void ISD_Play(void); //发送当前地址放音指令
void ISD_SetPlay(uint add); //发送指定地址放音指令
void ISD_Rec(void); //发送当前地址录音指令
void ISD_SetRec(uint add); //发送指定地址录音指令
void PLAY_now(uchar add_set); //按指定地址段开始播放
void REC_now(uchar add_set); // 按指定地址段开始录音
void isd_voice_year(uchar i1,uchar i2,uchar i3,uchar i4,uchar i5,uchar
i6); //播报年月日
void isd_voice_hour(uchar i1,uchar i2,uchar i3,uchar i4,uchar i5,uchar
i6); //播报时分秒
void isd_voice_baoshi(void);  //播报"报时"
void isd_rec_play(void); //录音放音一体化
void addr_display(uint addr,uchar flag); //录放音地址显示void main_menu(void);//主菜单
void main_menu1(void);
void main_menu2(void);
void start(void);//开始界面
void start1(void);
void initialize(void); //初始化
void write_com(uchar com);  //写指令
void write_dat(uchar dat);  //写数据
void CGRAM(void); // CGRAM 自定义显示字符
void init_photo(void);  //图片初始化
void photo(uchar *address);//图片显示
void photo2(void);
void display1(void);  //登陆界面
void display2(void);  //欢迎界面
void display3(void);
void display_design(void);void write_ds1302_byte(uchar dat); //写操作写入一个字节
void write_ds1302(uchar address,uchar dat);//DS1302 写入数据
uchar read_ds1302_byte(uchar address);  //单字节读数据操作
void set_rtc(void);  //校对时间
void read_ds1302(void);  //读 ds1302 所有数据
void time_deal(void); //处理数据, bcd 转换成十进制
void ds1302_display(void); //显示界面
void ds1302_display_data(void);  //显示年星期月日时秒分数据
void ds1302_main(void); //时间主函数void write_ds1302_byte(uchar dat); //写操作写入一个字节
void write_ds1302(uchar address,uchar dat);//DS1302 写入数据
uchar read_ds1302_byte(uchar address);  //单字节读数据操作
void set_rtc(void);  //校对时间
void read_ds1302(void);  //读 ds1302 所有数据
void time_deal(void); //处理数据, bcd 转换成十进制
void ds1302_display(void); //显示界面
void ds1302_display_data(void);  //显示年星期月日时秒分数据
void ds1302_main(void); //时间主函数void init_ds18b20(void); //初始化
void delay(uint t);//延时
void write_byte(uchar dat);//  DS18B20 写 1 个字节函数
uchar read_byte(void);//  DS18B20 读 1 个字节函数
uchar read_temperature(void);//读温度
uint read_temperature1(void);  //读温度, 两位小数处理
void display(uchar temp,uint temp1);//温度显示
void ds18b20_tem(void); //温度显示
void ds18b20_1302(void);  //ds1302 里的温度显示
void voice_temperature(uchar i1,uchar i2);//播报温度

4 最后

【毕业设计】基于单片机的录音器设计与实现 - 物联网 嵌入式 stm32相关推荐

  1. 毕业设计 单片机智能录音器设计与实现 - 物联网 嵌入式

    文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 系统设计 3.1 系统架构 3.2 硬件部分 3.3 软件部分 主程序流程 录放声音程序设计 LCD12864 程序设计 DS1302 程序设 ...

  2. 【毕业设计】基于单片机无线充电的4轴飞行器 -物联网 嵌入式 stm32

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 设计原理 4.1 硬件说明 5 部分核心代码 5 最后 0 前言

  3. 毕业设计 单片机智能按摩仪设计与实现 - 物联网 嵌入式 stm32

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 硬件设计 **AB32VG1主控MCU** NTC温度采集:adc7 PE5 其他器件引脚 5 软件说明 5 最后 0 前言

  4. 单片机6路抢答器c语言程序设计,基于单片机的抢答器设计(最终版)最新版

    <基于单片机的抢答器设计.doc>由会员分享,可免费在线阅读全文,更多与<基于单片机的抢答器设计(最终版)>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里 ...

  5. 【毕业设计】基于单片机的智能感应垃圾桶设计与实现 - 物联网 stm32 嵌入式

    文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 系统设计 3.1 系统架构 3.2 硬件部分 3.2.1 传感器模块 3.2.2 语音模块 3.2.3 电机及其驱动模块 3.2.4 稳压模块 ...

  6. 【毕业设计】 基于单片机的移动共享充电宝设计与实现 - 物联网嵌入式 stm32 c51

    文章目录 1 简介 2 主要器件 3 实现效果 4 设计原理 5 关键代码 6 最后 1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍一个学长做的单片机项目 基于单片机的移动充电宝设计与实现 大 ...

  7. 【毕业设计项目】基于单片机的手势识别设计与实现 - 物联网 嵌入式 stm32 c51

    文章目录 1 简介 2 实现效果 3 使用场景 4 参数说明 5 注意事项 6 最后 1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍一个学长做的单片机项目 基于单片机得手势识别系统 大家可用于 ...

  8. 单片机毕业设计 智能MP3音乐播放器设计与实现 - 物联网

    文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 系统设计 3.1 系统架构 3.2 软件部分设计 3.3 实现效果 3.4 部分相关代码 4 最后 1 简介 Hi,大家好,学长今天向大家介绍 ...

  9. 【毕业设计】 基于单片机的放松按摩仪设计与实现 - 物联网 嵌入式 stm32

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 硬件设计 **AB32VG1主控MCU** NTC温度采集:adc7 PE5 其他器件引脚 5 软件说明 5 最后 0 前言

最新文章

  1. 使用autoconf完成编译配置
  2. Nexus安装及配置
  3. 从旁观者到贡献者:经历 OpenYurt 的“开源之夏”,我们想让更多人体验社区的魅力
  4. sparkstreaming监听hdfs目录_flume kafka和sparkstreaming整合
  5. mysql分组查询和分组过滤
  6. char *与char []
  7. c++循环执行一个函数_循环
  8. 并发编程:进程,线程,协程,异步
  9. Linux(debian7)操作基础(十四)之文本搜索命令grep使用方法
  10. C# 对话框隐藏 标题栏
  11. submit与button区别提交区别
  12. 大乱斗ps4好玩吗_飞刀剑影乱作战:飞刀大乱斗ol游戏小程序,点开既玩
  13. 设置谷歌浏览器深色黑色背景
  14. 数据库的基本结构三个层次
  15. 计算机flops测试,谁知道哪个软件可以测试CPU是多少GFLOPS?
  16. 手机图形计算器matlab,图形计算器Mathlab
  17. python乒乓球比赛规则介绍_乒乓球比赛详细规则
  18. Android签名工具 AndroidMultitool使用方法
  19. keras之父《python深度学习》笔记 第六章
  20. 2023最近很火的抖音解封技术教程分析+价值1000+

热门文章

  1. 【洛谷】P2676 [USACO07DEC]Bookshelf B (c++)
  2. 如何用js检测浏览器类型
  3. underscore随机数
  4. safari如何降低版本?mac上的safari版本回退方法!
  5. 《idea 骚操作》
  6. vue 显示更多,收起功能
  7. 蓝牙室内定位之高精度AOA定位技术未来发展趋势-新导智能
  8. 玩大神的抖音小姐姐机器人遇到的问题
  9. 使用USB方式给沁恒ch573F评估板烧写代码
  10. jqq找到HTML父标签,qq_SeanJ_03864085