标题:
单片机温度语音播报 ISD1420程序与资料
[打印本页]
作者:
ruler444
时间:
2020-2-24 11:24
标题:
单片机温度语音播报 ISD1420程序与资料
要求:
语音播报温度计以STC12C5A60S2单片机为核心,
采用DS18B20单总线温度传感器,测量水箱的温度,
用语音芯片ISD1420P播报温度,同时用LCD1602显示温度值。
应用所学专业知识,设计硬件电路,C语言编写相应的程序
原理
系统上电,单片机MCU开始运行,首先对lcd1602进行初始化,
之后对温度传感器DS18B20进行初始化,读取温度数据,然后判断按键是否按下,
若是按键按下则开始操作语音芯片ISD1420,根据单片机读取到的温度数据控制ISD1420
语音芯片的地址线播报ISD1420语音的内容,播报完成之后,将温度数据在1602显示,
显示完成后再次读取温度数据,以及循环。
单片机源程序如下:
#include "main.h"
#include "LCD1602.h"
#include "clock.h"
#include "key.h"
#include "DS18B20.h"
#include "temp.h"
#include "BEEP.h"
#include "ISD1420.h"
#include "speakTEMP.h"
#include "UART.h"
//unsigned char code str0[]={"--- : : -----"};
//unsigned char code str1[]={"temp: . oC-----"};
char uart;
/*********延时K*1ms,12.000mhz**********/
void delayMs(unsigned int ms)
{
unsigned char j;
while(ms--)
{
for(j=0; j<=125; j++);
}
}
/***************初始化*******************/
void init()
{
P1=0xff; //初始化p1口,全设为1 语音芯片播放的地址
P3=0xff; //1602控制端 以及温度播报按键
top_temp = 30; //最高温度
bottom_temp = 1; ///最低温度
initLCM( ); //1602初始化
initClock(); //定时器初始化
initTemp(); // 温度传感器初始化
// initSpeakTemp();
BEEP = 1; //蜂鸣器?
}
/***************the main funtion****************/
void main(void)
{
init( ); //lcd1602初始化
Uart1Init(); //串口1初始化
while (1)
{
scan_key(); //按键扫描子函数
ReadTemperature( ); // 读取温度子函数
displayTemp(); //显示温度子函数
}
}
void Uart1() interrupt 4 //串口中断函数
{
if (RI)
{
RI = 0; //清除RI位
}
if (TI)
{
TI = 0; //清除TI位
}
}
复制代码
所有资料51hei提供下载:
温度播报1420.7z
(10.58 MB, 下载次数: 125)
2020-2-24 16:47 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
Hannah999
时间:
2020-5-2 23:31
您好,请问您的文件温度播报1420有原理图文件吗?我下载以后看只有PCB文件,原理图是pdf的
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1