⑴ 跪求基於單片機的溫濕度監控系統代碼
#include <reg51.h>
#include <intrins.h> //Keil library (is used for _nop()_ operation)
#include <math.h> //Keil library
#include <stdio.h> //Keil library
unsigned char Tem,Hum;
unsigned char Set_Tem,Set_Hum;
sbit SS = P1^0; //片選
sbit SCLK = P1^1; //ISD4003 時鍾
sbit MOSI = P1^2; //數據輸入
sbit MISO = P1^3; //數據輸出
sbit LED = P1^7; //指示燈
sbit ISD_INT = P3^2; //中斷
sbit AN = P1^6; //執行
sbit STOP = P1^5; //復位
sbit PR = P1^4; //PR=1 錄音 PR=0 放音
sbit DATA=P2^0;
sbit SCK=P2^1;
sbit SCL=P1^1;
sbit SDA=P1^0;
#define TEMP 0
#define HUMI 1
typedef union
{ unsigned int i;
float f;
} value;
//蔽塌enum {,EMP,HUMI};
//以上所示為系統的主程序結構,其中子程序可根據系統整個具體的要求進行添加代碼,
//刷新LED顯示子程序write_led();硬體採用解碼器;按鍵檢測子嘩仿程序check_key();的執行通過讀單片機I/O口高低電平識別按鍵。
//以下所示代碼為讀溫濕度感測器子程序read_ sensor()的程序內容:
/********************************************************************
工程名 SHTxx demo program (V2.1)
文件名: SHTxx_Sample_Code.c
MCU: 80C51 family
編譯器: Keil Version 6.14
*******************************************************************/亂並纖
//-------------------------------------------------------------------
// mol-var
//-------------------------------------------------------------------
void warning(void);
void Delay(unsigned int time);
#define noACK 0
#define ACK 1
unsigned int *p_value;
#define STATUS_REG_W 0x06 //000 0011 0
#define STATUS_REG_R 0x07 //000 0011 1
#define MEASURE_TEMP 0x03 //000 0001 1
#define MEASURE_HUMI 0x05 //000 0010 1
#define RESET 0x1e //000 1111 0
//-------------------------------------------------------------------
char s_write_byte(unsigned char value)
//-------------------------------------------------------------------
// 寫一個位元組,檢查應答信號
{
unsigned char idata i,error=0;
for (i=0x80;i>0;i/=2)
{ if (i & value) DATA=1;
else DATA=0;
SCK=1;
_nop_();_nop_();_nop_(); //時鍾脈沖寬度 5 us
SCK=0;
}
DATA=1; //釋放DATA
SCK=1; //9個CLK後應答
error=DATA; //檢查應答信號 (DATA 被拉低)
SCK=0;
return error; // 如果沒有應答則error=1
}//
//-------------------------------------------------------------------
char s_read_byte(unsigned char ack)
//-------------------------------------------------------------------
// 讀一個位元組,檢查應答信號
{
unsigned char i,val=0;
DATA=1; //釋放DATA信號
for (i=0x80;i>0;i/=2)
{ SCK=1;
if (DATA) val=(val | i);
SCK=0;
}
DATA=!ack; //如果 "ack==1" ,拉低DATA
SCK=1; //clk #9 for ack
_nop_();_nop_();_nop_(); //延時5微秒
SCK=0;
DATA=1; //釋放DATA
return val;
}
//-------------------------------------------------------------------
void s_transstart(void)
//-------------------------------------------------------------------
// generates a transmission start
// _____ ________
// DATA: |_______|
// ___ ___
// SCK : ___| |___| |______
{
DATA=1; SCK=0; //初始狀態
_nop_();
SCK=1;
_nop_();
DATA=0;
_nop_();
SCK=0;
_nop_();_nop_();_nop_();
SCK=1;
_nop_();
DATA=1;
_nop_();
SCK=0;
}
//-------------------------------------------------------------------
void s_connectionreset(void)
//-------------------------------------------------------------------
//通訊復位: 至少在9 SCK 周期後,DATA=1 傳輸開始
// _____________________________________________________
// DATA: //|_______|
// _ _ _ _ _ _ _ _ _ ___ ___
// SCK : __| |__| |__| |__| |__| |__| |__| |__| |__| |______| |___|
{
unsigned char i;
DATA=1; SCK=0; //初始狀態
for(i=0;i<9;i++) //9 SCK周期
{ SCK=1;
SCK=0;
}
s_transstart(); //通訊開始
}
//-------------------------------------------------------------------
char s_softreset(void)
// resets the sensor by a softreset
{
unsigned char error=0;
s_connectionreset(); //復位通訊
error+=s_write_byte(RESET); //發送復位命令
return error; //如果感測器沒有響應則error=1
}
//-------------------------------------------------------------------
char s_read_statusreg(unsigned char *p_value,unsigned *p_checksum)
//-------------------------------------------------------------------
//讀效驗寄存器狀態 (8-bit)
{
unsigned char error=0;
s_transstart(); //通訊開始
error=s_write_byte(STATUS_REG_R); //發送命令
*p_value=s_read_byte(ACK); //讀狀態寄存器(8-bit)
*p_checksum=s_read_byte(noACK); //讀效驗和
return error; //如果感測器沒有響應則error=1
}
//-------------------------------------------------------------------
char s_write_statusreg(unsigned char *p_value)
//-------------------------------------------------------------------
// writes the status register with checksum (8-bit)
{
unsigned char error=0;
s_transstart(); //通訊開始
error+=s_write_byte(STATUS_REG_W);// 發送命令
error+=s_write_byte(*p_value); //發送狀態寄存器的值
return error; //如果感測器沒有響應則error=1
}
//-------------------------------------------------------------------
char s_measure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode)
//-------------------------------------------------------------------
// makes a measurement (humidity/temperature) with checksum
{
unsigned char idata error=0;
unsigned int i;
s_transstart(); //通訊開始
switch(mode)
{ //發送名令
case TEMP : error+=s_write_byte(MEASURE_TEMP); break;
case HUMI : error+=s_write_byte(MEASURE_HUMI); break;
default : break;
}
for (i=0;i<65535;i++) if(DATA==0) break; //等待感測器完成測量
if(DATA) error+=1;
*(p_value) =s_read_byte(ACK); //讀取第一個位元組
*(p_value+1)=s_read_byte(ACK); //讀取第二個位元組
*p_checksum =s_read_byte(noACK); //讀取效驗和
return error;
}
//-------------------------------------------------------------------
//-------------------------------------------------------------------
void calc_sth11(float *p_humidity ,float *p_temperature)
//-------------------------------------------------------------------
// 計算溫度和濕度
// input : humi [Ticks] (12 bit)
// temp [Ticks] (14 bit)
// output: humi [%RH]
// temp
{ const float xdata C1=-4.0;
const float xdata C2=+0.0405;
const float xdata C3=-0.0000028;
const float xdata T1=+0.01;
const float xdata T2=+0.00008;
float rh=*p_humidity; //計算濕度值
float t=*p_temperature; // 計算溫度值
float rh_lin;
float rh_true;
float t_C;
t_C=t*0.01 - 40;
rh_lin=C3*rh*rh + C2*rh + C1;
rh_true=(t_C-25)*(T1+T2*rh)+rh_lin;
if(rh_true>100)rh_true=100; //如果結果超出了可能的范圍就取消
if(rh_true<0.1)rh_true=0.1;
*p_temperature=t_C;
*p_humidity=rh_true;
}
//-------------------------------------------------------------------
float calc_dewpoint(float h,float t)
//-------------------------------------------------------------------
// calculates dew point
// input: humid,ty , temperature
// output: dew point
{ float dew_point,logEx;
logEx=0.66077+7.5*t/(237.3+t)+(log10(h)-2);
dew_point = (logEx - 0.66077)*237.3/(0.66077+7.5-logEx);
return dew_point;
}
//-------------------------------------------------------------------
void main_measure()
//-------------------------------------------------------------------
// 使用SHT10功能步驟:
// 1.通訊復位
// 2. 測量溫度,濕度
// 3. 計算溫度,濕度
// 45. 顯示溫度,濕度
{ value humi_val,temp_val;
float dew_point,error;
unsigned char checksum;
unsigned int idata i;
s_connectionreset();
while(1)
{ error=0;
error+=s_measure((unsigned char*) &humi_val.i,&checksum,HUMI); //測量濕度
error+=s_measure((unsigned char*) &temp_val.i,&checksum,TEMP); //測量溫度
if(error!=0) s_connectionreset();
//如果有錯誤就復位
else
{ humi_val.f=(float)humi_val.i; //將整數轉換成浮點數
temp_val.f=(float)temp_val.i;
calc_sth11(&humi_val.f,&temp_val.f);
//計算溫度,濕度
dew_point=calc_dewpoint(humi_val.f,temp_val.f);
//計算dew
//printf("temp:%5.1fC humi:%5.1f%% dew point:%5.1f,\n",temp_v,l.f,humi_v,l.f,dew_point);
}
for (i=0;i<40000;i++);//----------延時0.8s
}
}
//語音功能子程序
//下面代碼為語音晶元使用範例,該功能放在主程序中的warning()子程序中執行。
void delay(unsigned int time) //延遲 n 微秒
{
while(time!=0)
{
time-- ;
}
}
void delayms(unsigned int time) //延遲 n 毫秒
{
TMOD=0x01;
for(time;time>0;time--)
{
TH0 = 0xfc;
TL0 = 0x18;
TR0 = 1;
while(TF0!=1)
{;}
TF0=0;
TR0=0;
}
}
//************************************
//ISD4002 spi 串列發送子程序,8 位數據
//************************************
void spi_send(unsigned char isdx)
{
unsigned char idata k;
SS=0;//SS=0; //,s=0,打開 spi 通信端
SCLK=0;
for(k=0;k<8;k++) //先發低位再發高位,依發送。 { i
{
if((isdx&0x01)==1)
MOSI=1;
else
MOSI=0;
isdx=isdx>>1;
SCLK=1;
delay(2);
SCLK=0;
delay(2);
}
}
//*******************************
//發送 stop 指令
//*******************************
void isd_stop(void)
{
delay(10);
spi_send(0x30);
SS=1;
delayms(50);
}
//*******************************
//發送上電指令,並延遲 50ms
//*******************************
void isd_pu(void)
{ delay(10);
SS=0;
spi_send(0x20);
SS=1;
delayms(50);
}
//發送掉電指令,並延遲 50ms
//*******************************
void isd_pd(void)
{
delay(10);
spi_send(0x10);
SS=1;
delayms(50);
}
//*******************************
//發送 play 指令
//*******************************
void isd_play(void)
{
LED=0;
spi_send(0xf0);
SS=1;
}
//*******************************
//發送 rec 指令
//*******************************
void isd_rec(void)
{
LED=0;
spi_send(0xb0);
SS=1;
}
//*******************************
//發送 setplay 指令
//*******************************
void isd_setplay(unsigned char adl,unsigned char adh)
{
spi_send(adl); //發送放音起始地址低位
adh=adh||0xe0;
spi_send(adh); //發送放音起始地址高位
SS=1;
}
//*******************************
//發送 setrec 指令
//*******************************
void isd_setrec(unsigned char adl,unsigned char adh)
{
spi_send(adl); //發送放音起始地址低位
adh=adh||0xa0;
spi_send(adh); //發送放音起始地址高位
SS=1;
}
//************************************
//晶元溢出,LED 閃爍提醒停止錄音
//************************************
void isd_overflow(void)
{
while(AN==0)
{
LED=1;
delayms(300);
LED=0;
delayms(300);
}
}
//************************************
//檢查晶元是否溢出(讀,OVF,並返回 OVF 值)
//************************************
unsigned char chk_isdovf(void)
{
SS=0;
delay(2);
SCLK=0;
delay(2);
SCLK=1;
SCLK=0;
delay(2);
if (MISO==1)
{
SCLK=0;
SS =1; //關閉 spi 通信端
isd_stop(); //發送 stop 指令
return 1; //OVF 為 1,返回 1
}
else
{
SCLK=0;
SS =1; //關閉 spi 通信端
isd_stop(); //發送 stop 指令
return 0; //OVF 為 0,返回 0
}
}
//**********************************************************************
//主程序
//功能:1.錄音時,按住 AN 鍵,LED 點亮開始錄音,松開 AN 即可停止錄音
// 再次按下 AN 鍵,LED 點亮開始錄第二段音,依次類推,直到晶元溢出。
// 按 stop 鍵晶元復位
// 2.放音時,按一下 AN 鍵,即播放一段語音。按 stop 鍵晶元復位。
//************************************************************************
void voice(void)
{
unsigned char ovflog;
while(1)
{
P0=P1=P2=P3=0xff; //初始化
while (AN==1) //等待 AN 鍵按下
{
if (AN==0) //按鍵防抖動
{delayms(20);}
}
isd_pu(); // AN 鍵按下,ISD 上電並延遲 50ms
isd_pd();
isd_pu();
if (PR==1) //如果 PR=1 則轉入錄音部分
{
delayms(500); //延遲錄音
isd_setrec(0x00,0x00); //發送 0x0000h 地址的 setplay 指令
do
{
isd_rec(); //發送 rec 指令
while(AN==0) //等待錄音完畢
{
if (ISD_INT==0)//如果晶元溢出,進行 LED 閃爍提示,
isd_overflow(); //如果取消錄音(松開AN鍵)則停止錄音,晶元復位
}
if (ISD_INT==0)
break;
LED=1; //錄音完畢,LED 熄滅
isd_stop(); //發送停止命令
while(AN==1) //如果 AN 再次按下,開始錄制下一段語音
{
if(STOP==0) //如果按下 STOP 按鍵,則晶元復位
break;
if (AN==0)
delayms(500);
}
}while(AN==0);
}
else //如果 PR==0 則轉入放音部分
{
while(AN==0){;}
isd_setplay(0x00,0x00); //發送 setplay 指令,從 0x0000 地址開始放音
do
{
isd_play(); //發送放音指令
delay(20);
while(ISD_INT==1) //等待放音完畢的 EOM 中斷信號
{;}
LED=1;
isd_stop(); //放音完畢,發送 stop 指令
if (ovflog=chk_isdovf())//檢查晶元是否溢出,如溢出則停止放音,晶元復位
break;
while(AN==1) //等待 AN 鍵再次按下
{
if (STOP==0)
break;
if(AN==0)
delayms(20);
}
}while(AN==0); // AN 鍵再次按下,播放下一段語音
}
isd_stop();
isd_pd();
}
}
#define ZLG7290 0x70
#define RADR 0x01
#define uchar unsigned char
#define uint unsigned int
/************************************/
void I2cStart(void)
{
SDA=1;
SCL=1;
Delay(10);
SDA=0;
Delay(10);
SCL=0;
}
/************************************/
void I2cStop(void)
{
SDA=0;
SCL=1;
Delay(10);
SDA=1;
Delay(10);
SCL=0;
}
/************************************/
void WriteI2cByte(uchar dat)
{
uchar k;
SCL=0;
for (k=0;k<8;k++)
{
SDA=(bit)(dat&0x80);
SCL=1;
Delay(10);
SCL=0;
dat<<=1;
}
SCL=0;
}
/*************************************/
uchar ReadI2cByte(void)
{
uchar dat,k;
for (k=0;k<8;k++)
{
SCL=0;
SDA=1; //一定要將SDA置為高電平,否則不能正常連續取數據
Delay(10);
SCL=1;
dat<<=1;
if (SDA)
dat|=0x01;
SCL=0;
Delay(10);
}
SCL=0;
return dat;
}
/*************************************/
void SendAck(void)
{
SDA=0;
Delay(10);
SCL=1;
Delay(10);
SCL=0;
}
/*************************************/
void SendNoAck(void)
{
SDA=1;
SCL=1;
Delay(10);
SCL=0;
}
/************************************/
void I2cWaitAck(void)
{
uchar ack;
SDA=1;
SCL=1;
Delay(10);
ack=SDA;
SCL=0;
}
/***********************************************************/
void I2cReadSequence(uchar sla,uchar sbua,uchar *s,uchar len)
{
uchar l;
I2cStart();
WriteI2cByte(sla);
I2cWaitAck();
WriteI2cByte(sbua);
I2cWaitAck();
I2cStart();
WriteI2cByte(sla+1);
I2cWaitAck();
for (l=0;l<len-1;l++)
{
*s=ReadI2cByte();
SendAck();
s++;
}
*s=ReadI2cByte();
SendNoAck();
I2cStop();
}
/************************************************************/
void I2cWriteSequence(uchar sla,uchar sbua,uchar *s,uchar len) //wr
{
uchar k;
I2cStart();
WriteI2cByte(sla);
I2cWaitAck();
WriteI2cByte(sbua);
I2cWaitAck();
for (k=0;k<len;k++)
{
WriteI2cByte(*s);
I2cWaitAck();
s++;
}
I2cStop();
}
/**************************************************************/
void I2cWriteByteToSlaver(uchar sla,uchar sbua,uchar dat)
{
I2cStart();
WriteI2cByte(sla);
I2cWaitAck();
WriteI2cByte(sbua);
I2cWaitAck();
WriteI2cByte(dat);
I2cWaitAck();
I2cStop();
Delay(10);
}
/**************************************************************/
uchar I2cReadByteFromSlaver(uchar sla,uchar sbua)
{
uchar dat;
I2cStart();
WriteI2cByte(sla);
I2cWaitAck();
WriteI2cByte(sbua);
I2cWaitAck();
I2cStart();
WriteI2cByte(sla+1);
I2cWaitAck();
dat=ReadI2cByte();
SendAck();
SendNoAck();
I2cStop();
return dat;
}
/**************************************************/
void main()
{
voice();//完成語音晶元的初始化 置入工作狀態
s_softreset();
while(1)//進入程序主循環
{
main_measure();//讀溫濕度感測器 得到溫度值Tem 濕度值Hum
/* if(Tem>Set_Tem && Hum >Set_Hum)//設置報警區間
{
warning();//執行警告 啟動報警
} */
}
}
⑵ 有沒有基於51單片機的DHT11感測器和LCD12864顯示器來實現溫濕度控制的電路原理圖,在protel 99中繪制的。
你是做基於單片機的溫濕度採集系統吧?如果單純要顯示溫濕度,用LCD1602就可以了的。我有一些類似的設計,不知道是否適合你,需要直接找我吧,在線等待,不在的話可以給我留言,看到後馬上回復。
⑶ 大學PLC課程設計一般有哪些題目
1. 基於FX2N-48MRPLC的交通燈控制
2. 西門子PLC控制的四層電梯畢業設計論文
3. PLC電梯控制畢業論文
4. 基於plc的五層電梯控制
5. 松下PLC控制的五層電梯設計
6. 基於PLC控制的立體車庫系統設計
7. PLC控制的花樣噴泉
8. 三菱PLC控制的花樣噴泉系統
9. PLC控制的搶答器設計
10. 世紀星組態 PLC控制的交通燈系統
11. X62W型卧式萬能塵褲銑床設計
12. 四路搶答器PLC控制
13. PLC控制類畢業設計論文
14. 鐵路與公路交叉口護欄自動控制系統
15. 基於PLC的機械手自動操作系統
16. 三相非同步電動機正反轉控制
17. 基於機械手分選大小球的自動控制
18. 基於PLC控制的作息時間控制系統
19. 變頻恆壓供水控制系統
20. PLC在電網備用自動投入中的應用
21. PLC在變電站變壓器自動化中的應用
22. FX2系列PCL五層電梯控制系統
23. PLC控制的自動售貨機畢業設計論文
24. 雙恆壓供水西門子PLC畢業設計
25. 交流變頻宴兄棚調速PLC控制電梯系統設計畢業論文
26. 基於PLC的三層電梯控制系統設計
27. PLC控制自動門的課程設計
28. PLC控制鍋爐輸煤系統
29. PLC控制變頻調速五層電梯系統設計
30. 機械手PLC控制設計
31. 基於PLC的組合機床控制系統設計
32. PLC在改造z-3040型搖臂鑽床中的應用
33. 超高壓水射流機器人切割系統電氣控制設計
34. PLC在數控技術中進給系統的開發中的應用
35. PLC在船用牽引控制系統開發中的應用
36. 智能組合秤控制系統設計
37. S7-200PLC在數控車床控制系統中的應用
38. 自動送料裝車系統PLC控制設計
39. 三菱PLC在五層電梯控制中的應用
40. PLC在交流雙速電梯控制系統中的應用
41. PLC電梯控制畢業論文
42. 基於PLC的電機故障診斷系統設計
43. 歐姆龍PLC控制交通燈系統畢業論文
44. PLC在配料生產線上的應用畢業論文
45. 三菱PLC控制的四層電梯畢業設計論文
46. 全自動洗衣機PLC控制畢業設計論文
47. 工業洗衣機的PLC控制畢業論文
48. 《雙恆壓無塔供水的PLC電氣控制》
49. 基於三菱PLC設計的四層電梯控制系統
50. 西門子PLC交通燈畢業設計
51. 自動銑床PLC控制系統畢業設計
52. PLC變頻調速恆壓供水系統
53. PLC控制的行車自動化控制系統
54. 基於PLC的自動售貨機的設計
55. 基於PLC的氣動機械手控制系統
56. PLC在電梯自動化控制中的應用
57. 組態控制交通燈
58. PLC控制的升降橫移式自動化立體車庫
59. PLC在電動單梁天車中的應用
60. PLC在液體混合控制系統中的應用
61. 基於西門子PLC控制的全自動洗衣機模擬設計
62. 基於三菱PLC控制的全自動洗衣機
63. 基於plc的污水處理系統
64. 恆壓供水系統的PLC控制設計
65. 基於歐姆龍PLC的變頻恆壓供水系統設計
66. 西門子PLC編寫的花樣噴泉控製程序
67. 歐姆龍PLC編寫的全自動洗衣機控製程序
68 景觀溫室控制系統的設計
69. 貯絲生產線PLC控制的系統
70. 基於PLC的霓虹燈控制系統
71. PLC在砂光機控制系統上的應用
72. 磨石晌則粉生產線控制系統的設計
73. 自動葯片裝瓶機PLC控制設計
74. 裝卸料小車多方式運行的PLC控制系統設計
75. PLC控制的自動罐裝機系統
76. 基於CPLD的可控硅中頻電源
77. 西門子PLC編寫的花樣噴泉控製程序
78. 歐姆龍PLC編寫的全自動洗衣機控製程序
79. PLC在板式過濾器中的應用
80. PLC在糧食存儲物流控制系統設計中的應用
81. 變頻調速式疲勞試驗裝置控制系統設計
82. 基於PLC的貯料罐控制系統
83. 基於PLC的智能交通燈監控系統設計
1.基於labVIEW虛擬濾波器的設計與實現
2.雙閉環直流調速系統設計
3.單片機脈搏測量儀
4.單片機控制的全自動洗衣機畢業設計論文
5.FPGA電梯控制的設計與實現
6.恆溫箱單片機控制
7.基於單片機的數字電壓表
8.單片機控制步進電機畢業設計論文
9.函數信號發生器設計論文
10.110KV變電所一次系統設計
11.報警門鈴設計論文
12.51單片機交通燈控制
13.單片機溫度控制系統
14.CDMA通信系統中的接入信道部分進行模擬與分析
15.倉庫溫濕度的監測系統
16.基於單片機的電子密碼鎖
17.單片機控制交通燈系統設計
18.基於DSP的IIR數字低通濾波器的設計與實現
19.智能搶答器設計
20.基於LabVIEW的PC機與單片機串口通信
21.DSP設計的IIR數字高通濾波器
22.單片機數字鍾設計
23.自動起閉光控窗簾畢業設計論文
24.三容液位遠程測控系統畢業論文
25.基於Matlab的PWM波形模擬與分析
26.集成功率放大電路的設計
27.波形發生器、頻率計和數字電壓表設計
28.水位遙測自控系統 畢業論文
29.寬頻視頻放大電路的設計 畢業設計
30.簡易數字存儲示波器設計畢業論文
31.球賽計時計分器 畢業設計論文
32.IIR數字濾波器的設計畢業論文
33.PC機與單片機串列通信畢業論文
34.基於CPLD的低頻信號發生器設計畢業論文
35.110kV變電站電氣主接線設計
36.m序列在擴頻通信中的應用
37.正弦信號發生器
38.紅外報警器設計與實現
39.開關穩壓電源設計
40.基於MCS51單片機溫度控制畢業設計論文
41.步進電動機竹竿舞健身娛樂器材
42.單片機控制步進電機 畢業設計論文
43.單片機汽車倒車測距儀
44.基於單片機的自行車測速系統設計
45.水電站電氣一次及發電機保護
46.基於單片機的數字顯示溫度系統畢業設計論文
47.語音電子門鎖設計與實現
48.工廠總降壓變電所設計-畢業論文
49.單片機無線搶答器設計
50.基於單片機控制直流電機調速系統畢業設計論文
51.單片機串列通信發射部分畢業設計論文
52.基於VHDL語言PLD設計的計程車計費系統畢業設計論文
53.超聲波測距儀畢業設計論文
54.單片機控制的數控電流源畢業設計論文
55.聲控報警器畢業設計論文
56.基於單片機的鎖相頻率合成器畢業設計論文
57.基於Multism/protel的數字搶答器
58.單片機智能火災報警器畢業設計論
59.無線多路遙控發射接收系統設計畢業論文
60.單片機對玩具小車的智能控制畢業設計論文
61.數字頻率計畢業設計論文
62.基於單片機控制的電機交流調速畢業設計論文
63.樓宇自動化--畢業設計論文
64.車輛牌照圖像識別演算法的實現--畢業設計
65.超聲波測距儀--畢業設計
66.工廠變電所一次側電氣設計
67.電子測頻儀--畢業設計
68.點陣電子顯示屏--畢業設計
69.電子電路的電子模擬實驗研究
70.基於51單片機的多路溫度採集控制系統
71.基於單片機的數字鍾設計
72.小功率不間斷電源(UPS)中變換器的原理與設計
73.自動存包櫃的設計
74.空調器微電腦控制系統
75.全自動洗衣機控制器
76.電力線載波數據機畢業設計論文
77.圖書館照明控制系統設計
78.基於AC3的虛擬環繞聲實現
79.電視伴音紅外轉發器的設計
80.多感測器障礙物檢測系統的軟體設計
81.基於單片機的電器遙控器設計
82.基於單片機的數碼錄音與播放系統
83.單片機控制的霓虹燈控制器
84.電阻爐溫度控制系統
85.智能溫度巡檢儀的研製
86.保險箱遙控密碼鎖 畢業設計
87.10KV變電所的電氣部分及繼電保護
88.年產26000噸乙醇精餾裝置設計
89.卷揚機自動控制限位控制系統
90.鐵礦綜合自動化調度系統
91.磁敏感測器水位控制系統
92.繼電器控制兩段傳輸帶機電系統
93.廣告燈自動控制系統
94.基於CFA的二階濾波器設計
95.霍爾感測器水位控制系統
96.全自動車載飲水機
97.浮球液位感測器水位控制系統
98.干簧繼電器水位控制系統
99.電接點壓力表水位控制系統
100.低成本智能住宅監控系統的設計
101.大型發電廠的繼電保護配置
102.直流操作電源監控系統的研究
103.懸掛運動控制系統
104.氣體泄漏超聲檢測系統的設計
105.電壓無功補償綜合控制裝置
106.FC-TCR型無功補償裝置控制器的設計
107.DSP電機調速
108.150MHz頻段窄帶調頻無線接收機
109.電子體溫計
110.基於單片機的病床呼叫控制系統
111.紅外測溫儀
112.基於單片微型計算機的測距儀
113.智能數字頻率計
114.基於單片微型計算機的多路室內火災報警器
115.信號發生器
116.基於單片微型計算機的語音播出的作息時間控制器
117.交通信號燈控制電路的設計
118.基於單片機步進電機控制系統設計
119.多路數據採集系統的設計
120.電子萬年歷
121.遙控式數控電源設計
122.110kV降壓變電所一次系統設計
123.220kv變電站一次系統設計
124.智能數字頻率計
125.信號發生器
126.基於虛擬儀器的電網主要電氣參數測試設計
127.基於FPGA的電網基本電量數字測量系統的設計
128.風力發電電能變換裝置的研究與設計
129.電流繼電器設計
130.大功率電器智能識別與用電安全控制器的設計
131.交流電機型式試驗及計算機軟體的研究
132.單片機交通燈控制系統的設計
133.智能立體倉庫系統的設計
134.智能火災報警監測系統
135.基於單片機的多點溫度檢測系統
136.單片機定時鬧鍾設計
137.濕度感測器單片機檢測電路製作
138.智能小車自動定址設計--小車懸掛運動控制系統
139.探討未來通信技術的發展趨勢
140.音頻多重混響設計
141.單片機呼叫系統的設計
142.基於FPGA和鎖相環4046實現波形發生器
143.基於FPGA的數字通信系統
144.基於單片機的帶智能自動化的紅外遙控小車
145.基於單片機AT89C51的語音溫度計的設計
146.智能樓宇設計
147.行動電話接收機功能電路
148.單片機演奏音樂歌曲裝置的設計
149.單片機電鈴系統設計
150.智能電子密碼鎖設計
151.八路智能搶答器設計
152.組態控制搶答器系統設計
153.組態控制皮帶運輸機系統設計
154..基於單片機控制音樂門鈴
155.基於單片機控制文字的顯示
156.基於單片機控制發生的數字音樂盒
157.基於單片機控制動態掃描文字顯示系統的設計
158.基於LMS自適應濾波器的MATLAB實現
159.D功率放大器畢業論文
160.無線射頻識別系統發射接收硬體電路的設計
161.基於單片機PIC16F877的環境監測系統的設計
162.基於ADE7758的電能監測系統的設計
163.智能電話報警器
164.數字頻率計 課程設計
165.多功能數字鍾電路設計 課程設計
166.基於VHDL數字頻率計的設計與模擬
167.基於單片機控制的電子秤
168.基於單片機的智能電子負載系統設計
169.電壓比較器的模擬與模擬
170.脈沖變壓器設計
171.MATLAB模擬技術及應用
172.基於單片機的水溫控制系統
173.基於FPGA和單片機的多功能等精度頻率計
174.發電機-變壓器組中微型機保護系統
175.基於單片機的雞雛恆溫孵化器的設計
176.數字溫度計的設計
177.生產流水線產品產量統計顯示系統
178.水位報警顯時控制系統的設計
179.紅外遙控電子密碼鎖的設計
180.基於MCU溫控智能風扇控制系統的設計
181.數字電容測量儀的設計
182.基於單片機的遙控器的設計
183.200電話卡代撥器的設計
184.數字式心電信號發生器硬體設計及波形輸出實現
185.電壓穩定畢業設計論文
186.基於DSP的短波通信系統設計(IIR設計)
187.一氧化碳報警器
188.網路視頻監控系統的設計
189.全氫罩式退火爐溫度控制系統
190.通用串列匯流排數據採集卡的設計
191.單片機控制單閉環直流電動機的調速控制系統
192.單片機電加熱爐溫度控制系統
193.單片機大型建築火災監控系統
194.USB介面設備驅動程序的框架設計
195.基於Matlab的多頻率FMICW的信號分離及時延信息提取
196.正弦信號發生器
197.小功率UPS系統設計
198.全數字控制SPWM單相變頻器
199.點陣式漢字電子顯示屏的設計與製作
200.基於AT89C51的路燈控制系統設計
200.基於AT89C51的路燈控制系統設計
201.基於AT89C51的寬范圍高精度的電機轉速測量系統
202.開關電源設計
203.基於PDIUSBD12和K9F2808簡易USB快閃記憶體設計
204.微型機控制一體化監控系統
205.直流電機試驗自動採集與控制系統的設計
206.新型自動裝彈機控制系統的研究與開發
207.交流非同步電機試驗自動採集與控制系統的設計
208.轉速閉環控制的直流調速系統的模擬與設計
209.基於單片機的數字直流調速系統設計
210.多功能頻率計的設計
211.18信息移頻信號的頻譜分析和識別
212.集散管理系統—終端設計
213.基於MATLAB的數字濾波器優化設計
214.基於AT89C51SND1C的MP3播放器
215.基於光纖的汽車CAN匯流排研究
216.汽車倒車雷達
217.基於DSP的電機控制
218.超媒體技術
219.數字電子鍾的設計與製作
220.溫度報警器的電路設計與製作
221.數字電子鍾的電路設計
222.雞舍電子智能補光器的設計
223.高精度超聲波感測器信號調理電路的設計
224.電子密碼鎖的電路設計與製作
225.單片機控制電梯系統的設計
226.常用電器維修方法綜述
227.控制式智能計熱表的設計
228.電子指南針設計
229.汽車防撞主控系統設計
230.單片機的智能電源管理系統
231.電力電子技術在綠色照明電路中的應用
232.電氣火災自動保護型斷路器的設計
233.基於單片機的多功能智能小車設計
234.對漏電保護器安全性能的剖析
235.解析民用建築的應急照明
236.電力拖動控制系統設計
237.低頻功率放大器設計
238.銀行自動報警系統
⑷ 學了51單片機2個月了,自己獨立做了個電子鬧鍾.不過覺得不是很自信,覺得沒有掌握透51.我是不是該
可以在原有鬧鍾的基礎上繼續增加功能,比如原來用的數碼管現在可以換成1602或者12864甚至TFT彩屏,加入時鍾晶元如ds1302,擴展鬧鈴個數到6個甚至更多,可以掉電保存鬧鍾,再然後可以加入語音晶元語音報時報溫濕度,響音樂等等,像按鍵可以做成電容式觸摸按鍵。等你這些可以全部做到51就差不多完全掌握了。
⑸ 關於51單片機中DHT11溫濕度感測器器問題
是不是你的delay函數有問題?內部軟體延時跟晶振以及單片機工作速度有關,建議用keil模擬計算一下使用的單片機的實際延時,可能是延時時間不夠,導致對應的時序出現問題。