標題: 基于51單片機的智能散熱系統設計 PWM+1602液晶顯示 [打印本頁]
作者: 海風吹著涼 時間: 2018-11-9 11:08
標題: 基于51單片機的智能散熱系統設計 PWM+1602液晶顯示
智能散熱系統設計
1.1設計目的
本設計是為了幫助學生掌握單片機I/O口、中斷等功能部件及直流電機等一些常見外圍設備的使用,建立綜合應用編程的基本能力,訓練學生綜合運用所學知識解決實際問題而創建較完整的簡單應用程序的獨立編程能力。
1.2設計要求
基本要求:系統能采集當前環境溫度,當溫度達到一定值時觸發直流風扇的轉動進行主動散熱,而且隨著溫度的變化,散熱風扇的轉速有明顯區別,達到溫度高風力強,溫度低風力弱的效果。要求溫度值可以顯示。
擴展部分:可以設計三檔風力及對應的觸發條件。
1.3學習要點
l 單片機I/O使用
l PWM脈寬調制
l 中斷
l 定時器控制
單片機源程序如下:
- #include"temp.h"
- #include"lcd.h"
- //數碼管位選段選:
- unsigned char code weixuan[8] = {
- 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位選控制
- unsigned char code gyduanxuan[17] = {
- 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
- //0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的顯示碼
- unsigned char LCDtemp[6];
- sbit beep=P3^0; // P3^5 不能用,會高低電平一直變換,問老師。
- unsigned int value; //矩陣鍵盤的鍵值
- int temp; //定義溫度
- unsigned int biaozhi; //定義控制標志
- unsigned int RTdata; //定義串口數據
- sbit fengshan=P2^4;
- void xianxiang();
- void JZjianpan(void);
- void zhongduanInit();
- void LCDxianshi();
- void chuli();
- void main()
- {
- unsigned int yanshiCS;
- zhongduanInit();
- biaozhi=0;
- temp=0;
- fengshan=0;
- Delay(50);
- LcdInit();
- while(1)
- {
-
- if(biaozhi==0)
- {
- temp=Ds18b20ReadTemp();
- xianxiang();
- LCDxianshi();
- chuli();
- Delay(1);
- }
- if(biaozhi==4)
- {
-
- for(yanshiCS=500;yanshiCS>0;yanshiCS--)
- {
- switch(RTdata)
- {
- case('1'):temp=400;break; //25度
- case('2'):temp=480;break; //30度
- case('3'):temp=560;break; //35度
- }
- xianxiang();
- LCDxianshi();
- chuli();
- Delay(1);
- }
- biaozhi=0;
- }
- }
- }
- void xianxiang()
- {
- float tp;
- if(temp<0)
- {
- temp--;
- temp=~temp;
- tp=temp;
- temp=tp*0.0625*100+0.5;
- P0=0x40;
- LcdWriteCom(0x80);
- LcdWriteData('-');
- }
- else
- {
- tp=temp;
- temp=tp*0.0625*100+0.5;
- LcdWriteCom(0x80);
- LcdWriteData('+');
- Delay(1);
- }
- LCDtemp[0]=temp/10000;
- LCDtemp[1]=temp%10000/1000;
- LCDtemp[2]=(temp%1000/100);
- LCDtemp[3]=('.');
- LCDtemp[4]=temp%100/10;
- LCDtemp[5]=temp%10;
- }
- void LCDxianshi()
- {
- LcdWriteCom(0x81);
- LcdWriteData('0'+LCDtemp[0]);
- LcdWriteCom(0x82);
- LcdWriteData('0'+LCDtemp[1]);
- LcdWriteCom(0x83);
- LcdWriteData('0'+LCDtemp[2]);
- LcdWriteCom(0x84);
- LcdWriteData(LCDtemp[3]);
- LcdWriteCom(0x85);
- LcdWriteData('0'+LCDtemp[4]);
- LcdWriteCom(0x86);
- LcdWriteData('0'+LCDtemp[5]);
- LcdWriteCom(0x87);
- LcdWriteData('C');
- }
- void chuli()
- {
- int a=1;
- int q;
- while((temp>=2800)&&(temp<2900)&&a)
- {
- fengshan=1;
- Delay(30);
- for(q=0;q<500;q++)
- {
- beep=~beep;
- Delay(1);
- }
- a=0;
- }
- fengshan=0;
- a=1;
- while((temp>=2900)&&(temp<3000)&&a)
- {
- fengshan=1;
- Delay(60);
- for(q=0;q<500;q++)
- {
- beep=~beep;
- Delay(1);
- }
- a=0;
-
- }
- fengshan=0;
- a=1;
- while((temp>=3000)&&(temp<4000)&&a)
- {
- fengshan=1;
- Delay(120);
- for(q=0;q<500;q++)
- {
- beep=~beep;
- Delay(1);
- }
- a=0;
- }
- fengshan=0;
- }
- void zhongduanInit()
- {
- SCON=0X50;
- PCON=0X80;
- TMOD=0X20;
- TH1=0XF3;
- TL1=0XF3;
- ES=1;
- EA=1;
- TR1=1;
- }
- void chuankou() interrupt 4
- {
- biaozhi=4;
- RTdata=SBUF;
- RI=0;
- SBUF=RTdata;
- while(!TI);
- TI=0;
- }
復制代碼
所有資料51hei提供下載:
散熱器—液晶1602顯示 串口.rar
(49.56 KB, 下載次數: 38)
2018-11-9 11:07 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者: 海風吹著涼 時間: 2018-11-9 11:10
分享學習51的時候做的課設 ,當時的滿分作品。 雖然現在看起來有些稚嫩,但對于只學過51的同學來說是一份很不錯的51實例,可以從中學到不少東西
作者: 時光淺唱fly 時間: 2018-11-9 16:09
剛剛開始學,希望以后可以看懂
作者: 32號 時間: 2018-11-18 18:31
請問有這個的仿真圖嗎
作者: A1010346122 時間: 2018-11-26 19:33
并沒有仿真圖啊
作者: enchidianzi 時間: 2018-11-27 07:14
學習了
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
成人黄色电影在线播放
|
日韩最新网站
|
黄色毛片一级
|
亚洲精品国产综合区久久久久久久
|
午夜日韩精品
|
欧美成年网站
|
欧美日韩一二区
|
国产精品久久久久久久粉嫩
|
亚洲一区二区三区在线
|
精品一区二区三区四区外站
|
欧美成人一区二区
|
成人黄色在线
|
香蕉视频黄色
|
国产在线观看一区二区三区
|
美国av毛片
|
青青草av
|
日韩视频一区在线观看
|
欧美日韩在线国产
|
亚洲成人在线网
|
日韩精品一区二区三区中文在线
|
亚洲精品久久久久久久久久久久久
|
在线免费观看一区二区
|
国产区一区二区三区
|
久热中文字幕
|
精品国产免费一区二区三区演员表
|
国产精品久久久久久久久久免费看
|
99亚洲国产精品
|
亚洲精品久久久一区二区三区
|
久久精品a级毛片
|
美女二区
|
日韩一区中文字幕
|
午夜精品一区二区三区在线播放
|
久久久久国产
|
免费观看毛片
|
日韩中文字幕在线视频
|
亚洲aⅴ精品
|
看一级毛片视频
|
国内精品伊人久久久久网站
|
亚洲欧美精品
|
亚洲视频免费在线观看
|
亚洲综合色视频在线观看
|