找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2948|回复: 1
收起左侧

单片机温度语音播报 ISD1420程序与资料

[复制链接]
ID:590586 发表于 2020-2-24 11:24 | 显示全部楼层 |阅读模式
要求:
语音播报温度计以STC12C5A60S2单片机为核心,
采用DS18B20单总线温度传感器,测量水箱的温度,
用语音芯片ISD1420P播报温度,同时用LCD1602显示温度值。
应用所学专业知识,设计硬件电路,C语言编写相应的程序
原理
系统上电,单片机MCU开始运行,首先对lcd1602进行初始化,
之后对温度传感器DS18B20进行初始化,读取温度数据,然后判断按键是否按下,
若是按键按下则开始操作语音芯片ISD1420,根据单片机读取到的温度数据控制ISD1420
语音芯片的地址线播报ISD1420语音的内容,播报完成之后,将温度数据在1602显示,
显示完成后再次读取温度数据,以及循环。

单片机源程序如下:
  1. #include "main.h"
  2. #include "LCD1602.h"
  3. #include "clock.h"
  4. #include "key.h"
  5. #include "DS18B20.h"
  6. #include "temp.h"
  7. #include "BEEP.h"
  8. #include "ISD1420.h"
  9. #include "speakTEMP.h"
  10. #include "UART.h"

  11. //unsigned char code str0[]={"---  :  :  -----"};
  12. //unsigned char code str1[]={"temp:  . oC-----"};
  13. char uart;


  14. /*********延时K*1ms,12.000mhz**********/
  15. void delayMs(unsigned int ms)
  16. {
  17.         unsigned char j;
  18.         while(ms--)
  19.         {
  20.                 for(j=0; j<=125; j++);
  21.         }
  22. }


  23. /***************初始化*******************/
  24. void init()
  25. {
  26.         P1=0xff;                                   //初始化p1口,全设为1 语音芯片播放的地址   
  27.         P3=0xff;                                                                                                                                                //1602控制端 以及温度播报按键
  28.         top_temp = 30;                                                                                                                //最高温度
  29.         bottom_temp = 1;                      ///最低温度  
  30.         initLCM( );                                                                                                                                  //1602初始化
  31.         initClock();                                                                                                                                //定时器初始化
  32.         initTemp();                                                                                                                                        // 温度传感器初始化
  33. //        initSpeakTemp();
  34.         BEEP = 1;                                                                                                                                        //蜂鸣器?
  35. }


  36. /***************the main funtion****************/
  37. void main(void)
  38. {
  39.         init( );                                         //lcd1602初始化
  40. Uart1Init();                                                                                        //串口1初始化   
  41.     while (1)
  42.     {
  43.                 scan_key();                                               //按键扫描子函数
  44.                 ReadTemperature( );                           // 读取温度子函数
  45.                         displayTemp();                                  //显示温度子函数               
  46.                        
  47.                
  48.                        
  49.         }
  50. }

  51. void Uart1() interrupt 4  //串口中断函数
  52. {
  53.     if (RI)
  54.     {
  55.       RI = 0;                 //清除RI位
  56.     }
  57.     if (TI)
  58.     {
  59.         TI = 0;                 //清除TI位
  60.     }
  61. }
复制代码

所有资料51hei提供下载:
温度播报1420.7z (10.58 MB, 下载次数: 125)
回复

使用道具 举报

ID:743046 发表于 2020-5-2 23:31 | 显示全部楼层
您好,请问您的文件温度播报1420有原理图文件吗?我下载以后看只有PCB文件,原理图是pdf的
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表