內容:本系統就是充分利用了8051芯片的I/O引腳。系統以采用MCS-51系列單片機89c51為中心器件來設計簡易溫控風扇系統,實現了能根據設置的上下限溫度,來啟動風扇的工作與停止,低于設置的下限溫度,風扇不工作,在上限與下限之間風扇以50%的轉速工作,溫度高于上限,風扇全速工作。 實施方案: (1) 設計電路布局圖 (2) 準備好所需的材料 (3) 按照電路圖焊接好元件 (4) 編寫單片機程序 (5) 對單片機進行調試 預期目標:在每個溫度區間保證風扇按要求運行、
溫控風扇.doc
(1.01 MB, 下載次數: 51)
2019-4-18 20:17 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
溫控風扇控制設計參考.doc
(4.33 MB, 下載次數: 39)
2019-4-18 20:18 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
DS18B20中文手冊.pdf
(878.98 KB, 下載次數: 15)
2019-4-18 20:19 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
PWM脈寬調制.pdf
(508.65 KB, 下載次數: 16)
2019-4-18 20:19 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
PWM脈寬調制原理.doc
(28 KB, 下載次數: 15)
2019-4-18 20:19 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
脈寬調制PWM.doc
(43.5 KB, 下載次數: 21)
2019-4-18 20:19 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
部分程序:
QQ截圖20190418200831.png (52.84 KB, 下載次數: 39)
下載附件
2019-4-18 20:08 上傳
飛線說明.jpg (59.17 KB, 下載次數: 43)
下載附件
2019-4-18 20:10 上傳
#include <reg52.h> #include <intrins.h> #include <absacc.h> #include <math.h> #include "0832.h" #define uchar unsigned char #define uint unsigned int
//定義LCD1602端口 sbit E=P2^6; //1602使能引腳 sbit RS=P2^7; //1602數據/命令選擇引腳 sbit RW=P2^5;
sbit LED_RED=P2^2; sbit LED_YELLOW=P2^1; sbit LED_GREEN=P2^0; sbit SET_KEY=P3^4; sbit ADD_KEY=P3^5; sbit SUB_KEY=P3^6; sbit BUZZ=P3^7; sbit jdq=P2^4; int WARNING=250; uint DA; bit FlagStartRH=0; bit flag_BJ=0; bit set=0; void L1602_string(uchar hang,uchar lie,uchar *p);
//定時器0初始化 void Timer0_Init() { ET0 = 1; //允許定時器0中斷 TMOD = 0x11; //定時器工作方式選擇 TL0 = 0xb0; TH0 = 0x3c; //定時器賦予初值 TR0 = 1; //啟動定時器 TL1 = 0xb0; TH1 = 0x3c; //定時器賦予初值 ET1=1; TR1=1; }
//定時器0中斷 void Timer0_ISR (void) interrupt 1 using 0 { uchar RHCounter; TL0 = 0xb0; TH0 = 0x3c; //定時器賦予初值 RHCounter++; //每2秒鐘啟動一次溫濕度轉換 if (RHCounter >= 20) { FlagStartRH = 1; RHCounter = 0; } } //定時器1中斷 void Timer1_ISR (void) interrupt 3 { uchar RHCounter1; TL1 = 0xb0; TH1 = 0x3c; //定時器賦予初值 RHCounter1++; if(RHCounter1>=10) { RHCounter1=0; if(flag_BJ==1) BUZZ=!BUZZ; else BUZZ=1; } }
/******************************************************************** * 文件名 : 液晶1602顯示.c * 描述 : 該程序實現了對液晶1602的控制。 ***********************************************************************/
/******************************************************************** * 名稱 : delay() * 功能 : 延時,延時時間大概為140US。 * 輸入 : 無 * 輸出 : 無 ***********************************************************************/
void delay() { int i,j; for(i=0; i<=10; i++) for(j=0; j<=2; j++); }
void delay_ms(uint ms) { uint i,j; for(i=0;i<ms;i++) for(j=0;j<110;j++); }
|