喜歡的看看吧
原理圖+工程
制作出來的實物圖如下:
20081209058.jpg (722.29 KB, 下載次數: 30)
下載附件
2019-1-4 19:33 上傳
0.png (37.53 KB, 下載次數: 27)
下載附件
2019-1-5 01:16 上傳
單片機源程序如下:
- #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"
- //unsigned char code str0[]={"--- : : -----"};
- //unsigned char code str1[]={"temp: . oC-----"};
- /*********延時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;
- top_temp = 30;
- bottom_temp = 1;
- delayMs(500);
- initLCM( );
- initClock();
- initTemp();
- // initSpeakTemp();
- BEEP = 1;
- }
- /***************the main funtion****************/
- void main(void)
- {
- init( ); //初始化
- while (1)
- {
- scan_key();
- delayMs(10);
- ReadTemperature( );
- if(temp > top_temp || temp < (char)bottom_temp) beep();
- displayTemp();
- if(DisplayTimeFlag)
- displayClock();
- else
- displayTempLim();
- delayMs(10);
- }
- }
復制代碼- #include "speakTEMP.h"
- /*********初始化語音播報溫度子程序**********/
- /*void initSpeakTemp()
- {
- TCON = 0x01 ; //觸發方式為脈沖負邊沿觸發
- EA=1;
- EX0=1;
- }
- */
- /*********語音播報溫度子程序**********/
- void speak_temp(unsigned int temp_t){
- int digit1,digit0;
- digit1 = temp_t / 10; //十位
- digit0 = temp_t % 10; //個位
- if(digit1==0){
-
- speak_isd1420(speak_world[digit0]);
- speak_isd1420(speak_world[11]);
-
- }
- else{
- speak_isd1420(speak_world[digit1]);
- speak_isd1420(speak_world[10]); //播十
- if(digit0!=0)
- speak_isd1420(speak_world[digit0]);
- speak_isd1420(speak_world[11]); //播度
- }
- }
- /***************語音播報(外部中斷0)*******************/
- /*void sp_temp_control() interrupt 0 using 1
- {
- EA = 0;
- speak_temp(temp);
- EA = 1;
- }*/
復制代碼
所有資料51hei提供下載:
new.rar
(803.17 KB, 下載次數: 66)
2019-1-4 19:33 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|