導航:首頁 > 操作系統 > 單片機的控制系統設計

單片機的控制系統設計

發布時間:2022-11-18 09:43:54

㈠ 請簡述單片機系統的設計過程是怎樣的

單片機應用系統設計分為硬體設計與軟體設計兩部分及系統調試三個部分,大致過程如下:一、硬體電路設計1、根據任務需求規劃確定單片機類型及外圍介面電路方案;2、根據方案設計具體電路。二、軟體設計1、根據目標任務的功能需求,結合硬體電路控制方式,規劃設計軟體功能模塊;2、將功能模塊細化成流程圖;3、根據流程圖編寫程序代碼;4、將編譯後的目標代碼下載到實物單片機或虛擬單片機進行軟體模擬調試;三、系統調試1、將初調成功的目標的代碼下載到單片機目標試驗板進行軟硬體聯調及功能驗證;2、驗證成功符合設計要求,就可以進入小批量測試了。

㈡ 基於單片機的電熱水壺控制系統設計

這個簡單,你在壺內放個溫度感測器

㈢ 基於單片機的熱水器溫度控制系統

東華理工大學畢業設計(論文)

基於單片機的熱水器溫度控制

摘 要

溫度是日常生活中不可缺少的物理量,溫度在各個領域都有積極的意義。很多行業中以及日常生活中都有大量的用電加熱設備,如用於加熱處理的加熱熱水器,用於洗浴的電熱水器及各種不同用途的溫度箱等,採用單片機對它們進行控制具有控制方便、簡單、靈活性大等特點,而且還可以大幅提高被控系統的性能,從而能被大大提高產品的質量。因此,智能化溫度控制技術正被廣泛地應用。

本溫度設計採用現在流行的AT89C51單片機為控制器,用PID控制方法,再配以其他電路對熱水器的水溫進行控制。

關鍵詞:89C51; PID; 溫度控制

I

1/41頁
東華理工大學畢業設計(論文)

ABSTRACT

Temperature is essential physical in daily life ,and in various fields has positive implications.A lot of businesses and daily lives have a lot of electric heating equipment.Such as electric water heater for bathing and variety of different uses of the temperature boxes. MCU to control them with easy to control,simple,flexibility and other characteristics,also can significantly improve the performance of the controlled system,which can be greatly improved proct quality. Therefore,intelligent temperature control technology is being widely used.

The temperature control design uses the now popular AT89C51 MCU controller,with PID control method, which together with

㈣ 單片機控制系統的硬體設計包括哪些

單片機硬體設計,是針對設計需求,以單片機為核心來設計外圍電路的。首先要有電源部分,因為單片機供電電壓大多是5V或者3.3V,還要有時鍾電路、復位電路,這是最基本的。然後就是根據實際項目需求,加入通訊電路、輸入輸出電路等等。

㈤ 51單片機控制的電子時鍾系統 畢業設計

可以用1302做
我有現成的
LCD1602
顯示的,51做的
基本思路是用單片機讀取1302裡面的信息,處理,然後送LCD1602顯示。
有興趣可以去我博客看,裡面還上傳了之前我做的實物圖片和PCB,可以照著做。

㈥ 單片機畢業設計,基於51單片機的電梯控制系統的設計

基於51單片機的電梯控制系統的設計
引 言
隨著現代高科技的發展,住房和辦公用樓都已經逐漸向高層發展。電梯是高層賓館、商店、住宅、多層倉庫等高層建築不可缺少的垂直方向的交通運輸工具。1889年美國奧梯斯升降機公司推出的世界上第一部以電動機為動力的升降機,同年在紐約市馬累特大廈安裝成功。隨著建築物規模越來越大,樓層也越來越高,對電梯的調速精度、調速范圍等靜態和動態特性都提出了更高的要求。由於傳統的電梯運行邏輯控制系統採用的是繼電器邏輯控制線路。採用這種控制線路,存在易出故障、維護不便、運行壽命較短、佔用空間大等缺點。從技術發展來看,這種系統將逐漸被淘汰。
目前,由可編程控制器(PLC)或微型計算機組成的電梯運行邏輯控制系統,正以很快的速度發展著。可編程式控制制器,是微機技術與繼電器常規控制技術相結合的產物,是在順序控制器和微機控制器的基礎上發展起來的新型控制器,是一種以微處理器為核心用作數字控制的專用計算機,它有良好的抗干擾性能,適應很多工業控制現場的惡劣環境,所以現在的電梯控制系統主要還是由可編程式控制制器控制。但是由於PLC的針對性較強,每一台PLC都是根據一個設備而設計的,所以價格較昂貴。而單片機價格相當便宜,如果在抗干擾功能上有所提高的話完全可以代替PLC實現對工控設備的控制。當然單片機並不象PLC那麼有針對性,所以由單片機設計的控制系統可以隨著設備的更新而不斷修改完善,更完美的實現設備的升級。
電梯控制系統是比較復雜的一個大型系統,在計算機誕生的幾十年裡,繼電器控制系統為電梯控制的發展做了巨大的貢獻,但在性能上和PLC還是有本質上的差距。在科技的不斷發展下,我想單片機控制系統很快可以解決抗擾性,成為方便有效的電梯控制系統。
由於時間和能力有限,在設計過程中難免有很多疏漏和不足之處,懇請老師批評指正,我將努力改正,爭取做出完美的畢業設計。

目錄
目錄 1
引 言 2
第1章 緒 論 3
1.1 電梯的發展 3
1.2電梯的分類 4
第2章 方案的比較和確定 6
2.1 方案的選擇 6
2.1.1 電梯繼電器控制系統的優缺點 6
2.1.2 PLC控制系統的特點 6
2.1.3 電梯變頻調速控制的特點 7
2.2 單片機控制方案的選擇 7
2.3 變頻器的選型 8
第3章 硬體系統的設計 10
3.1 硬體結構圖 10
3.2 系統硬體原理圖 10
3.3 89C51單片機的原理及其外圍電路的設計 10
3.3.1 89C51單片機的原理與結構 10
3.3.2 單片機外圍電路的設計 14
3.4 輸入模塊的設計 18
3.4.1 鎖存器74LS373及其擴展功能簡介 20
3.4.2 光電感測器 20
3.4.3 KC778B紅外感測器基本應用電路 21
3.4.4 輸入信號的採集 22
3.5 輸出模塊設計 24
3.5.1 DAC0832的功能簡介 25
3.5.2 變頻器功能簡介 26
3.5.3 LED驅動器功能簡介 29
3.5.4 控制信號的輸出 32
第4章 系統軟體的設計 34
4.1 主程序流程圖 34
4.2 讀入信息並顯示子程序的流程圖 37
4.3 延時去抖動子程序 37
4.4 設置目標層子程序流程圖 38
4.5 電機拖動子程序流程圖 39
4.6 電梯載客子程序流程圖 40
4.7 中斷服務流程圖 41
小結與展望 42
致謝 43
參考文獻 44
附錄部分: 45
附錄A 電氣原理圖 45
附錄B 外文文獻及其譯文 46
附錄C 主要參考文獻及其摘要 50

㈦ 單片機控制系統設計有哪些基本要求

控制系統設計是一個很大的課題.從分類上來說有開環控制系統(如交通燈),閉環反饋控制系統(如溫度控制),有模擬控制系統,也有數字控制系統.它們的具體設計要求各有不同.但總體來說,一般控制系統要求
1)滿足控制精度和穩定性要求
2)滿足響應時間要求
3)有足夠的抗干擾和雜訊的能力(魯棒性)
4)容易實現,成本低

㈧ 單片機溫度控制系統設計方案

#include<reg52.H>

externGetTemp(); //聲明引用外部函數

; //聲明引用外部變數

voiddelay(unsignedinti);

//elseIO

sbitLS138A=P2^2;//管腳定義

sbitLS138B=P2^3;

sbitLS138C=P2^4;

//此表為LED的字模,共陰數碼管0-9-

unsignedcharcodeDisp_Tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};

unsignedlongLedOut[5],LedNumVal;

voidsystem_Ini()

{

TMOD|=0x11;

TH1=0xD8;//10

TL1=0xF0;

IE=0x8A;

TR1=1;

}

main()

{unsignedchari;

system_Ini();

while(1)

{

GetTemp();

/********以下將讀18b20的數據送到LED數碼管顯示*************/

LedNumVal=Temperature;//把實際溫度送到LedNumVal變數中

LedOut[0]=Disp_Tab[LedNumVal%10000/1000];

LedOut[1]=Disp_Tab[LedNumVal%1000/100];

LedOut[2]=Disp_Tab[LedNumVal%100/10]; //十位

LedOut[3]=Disp_Tab[LedNumVal%10];//個位

for(i=0;i<4;i++)

{

P0=LedOut[i];

switch(i)

{ //138解碼

case0:LS138A=0;LS138B=0;LS138C=0;break;

case1:LS138A=1;LS138B=0;LS138C=0;break;

case2:LS138A=0;LS138B=1;LS138C=0;break;

case3:LS138A=1;LS138B=1;LS138C=0;break;

}

delay(100);

}

P0=0;

}

}

//延時程序

voiddelay(unsignedinti)

{

charj;

for(i;i>0;i--)

for(j=200;j>0;j--);

}

/*************************此部分為18B20的驅動程序*************************************/

#include<reg52.H>

#include<intrins.h>

sbitD18B20=P3^7;

#defineNOP()_nop_()/*定義空指令*/

#define_Nop()_nop_()/*定義空指令*/

voidTempDelay(unsignedcharidataus);

voidInit18b20(void);

voidWriteByte(unsignedcharidatawr);//單位元組寫入

voidread_bytes(unsignedcharidataj);

unsignedcharCRC(unsignedcharj);

voidGemTemp(void);

voidConfig18b20(void);

voidReadID(void);

voidTemperatuerResult(void);

bitflag;

unsignedintidataTemperature;

unsignedcharidatatemp_buff[9];//存儲讀取的位元組,readscratchpad為9位元組,readromID為8位元組

unsignedcharidataid_buff[8];

unsignedcharidata*p,TIM;

unsignedcharidatacrc_data;

unsignedcharcodeCrcTable[256]={

0,94,188,226,97,63,221,131,194,156,126,32,163,253,31,65,

157,195,33,127,252,162,64,30,95,1,227,189,62,96,130,220,

35,125,159,193,66,28,254,160,225,191,93,3,128,222,60,98,

190,224,2,92,223,129,99,61,124,34,192,158,29,67,161,255,

70,24,250,164,39,121,155,197,132,218,56,102,229,187,89,7,

219,133,103,57,186,228,6,88,25,71,165,251,120,38,196,154,

101,59,217,135,4,90,184,230,167,249,27,69,198,152,122,36,

248,166,68,26,153,199,37,123,58,100,134,216,91,5,231,185,

140,210,48,110,237,179,81,15,78,16,242,172,47,113,147,205,

17,79,173,243,112,46,204,146,211,141,111,49,178,236,14,80,

175,241,19,77,206,144,114,44,109,51,209,143,12,82,176,238,

50,108,142,208,83,13,239,177,240,174,76,18,145,207,45,115,

202,148,118,40,171,245,23,73,8,86,180,234,105,55,213,139,

87,9,235,181,54,104,138,212,149,203,41,119,244,170,72,22,

233,183,85,11,136,214,52,106,43,117,151,201,74,20,246,168,

116,42,200,150,21,75,169,247,182,232,10,84,215,137,107,53};

//

/************************************************************

*Function:延時處理

*parameter:

*Return:

*Modify:

*************************************************************/

voidTempDelay(unsignedcharidataus)

{

while(us--);

}

/************************************************************

*Function:18B20初始化

*parameter:

*Return:

*Modify:

*************************************************************/

voidInit18b20(void)

{

D18B20=1;

_nop_();

D18B20=0;

TempDelay(80);//delay530uS//80

_nop_();

D18B20=1;

TempDelay(14);//delay100uS//14

_nop_();

_nop_();

_nop_();

if(D18B20==0)

flag=1;//detect1820success!

else

flag=0;//detect1820fail!

TempDelay(20);//20

_nop_();

_nop_();

D18B20=1;

}

/************************************************************

*Function:向18B20寫入一個位元組

*parameter:

*Return:

*Modify:

*************************************************************/

voidWriteByte(unsignedcharidatawr)//單位元組寫入

{

unsignedcharidatai;

for(i=0;i<8;i++)

{

D18B20=0;

_nop_();

D18B20=wr&0x01;

TempDelay(3);//delay45uS//5

_nop_();

_nop_();

D18B20=1;

wr>>=1;

}

}

/************************************************************

*Function:讀18B20的一個位元組

*parameter:

*Return:

*Modify:

*************************************************************/

unsignedcharReadByte(void)//讀取單位元組

{

unsignedcharidatai,u=0;

for(i=0;i<8;i++)

{

D18B20=0;

u>>=1;

D18B20=1;

if(D18B20==1)

u|=0x80;

TempDelay(2);

_nop_();

}

return(u);

}

/************************************************************

*Function:讀18B20

*parameter:

*Return:

*Modify:

*************************************************************/

voidread_bytes(unsignedcharidataj)

{

unsignedcharidatai;

for(i=0;i<j;i++)

{

*p=ReadByte();

p++;

}

}

/************************************************************

*Function:CRC校驗

*parameter:

*Return:

*Modify:

*************************************************************/

unsignedcharCRC(unsignedcharj)

{

unsignedcharidatai,crc_data=0;

for(i=0;i<j;i++)//查表校驗

crc_data=CrcTable[crc_data^temp_buff[i]];

return(crc_data);

}

/************************************************************

*Function:讀取溫度

*parameter:

*Return:

*Modify:

*************************************************************/

voidGemTemp(void)

{

read_bytes(9);

if(CRC(9)==0)//校驗正確

{

Temperature=temp_buff[1]*0x100+temp_buff[0];

// Temperature*=0.625;

Temperature/=16;

TempDelay(1);

}

}

/************************************************************

*Function:內部配置

*parameter:

*Return:

*Modify:

*************************************************************/

voidConfig18b20(void)//重新配置報警限定值和解析度

{

Init18b20();

WriteByte(0xcc);//skiprom

WriteByte(0x4e);//writescratchpad

WriteByte(0x19);//上限

WriteByte(0x1a);//下限

WriteByte(0x7f);//set11bit(0.125)

Init18b20();

WriteByte(0xcc);//skiprom

WriteByte(0x48);//保存設定值

Init18b20();

WriteByte(0xcc);//skiprom

WriteByte(0xb8);//回調設定值

}

/************************************************************

*Function:讀18B20ID

*parameter:

*Return:

*Modify:

*************************************************************/

voidReadID(void)//讀取器件id

{

Init18b20();

WriteByte(0x33);//readrom

read_bytes(8);

}

/************************************************************

*Function:18B20ID全處理

*parameter:

*Return:

*Modify:

*************************************************************/

voidTemperatuerResult(void)

{

p=id_buff;

ReadID();

Config18b20();

Init18b20();

WriteByte(0xcc);//skiprom

WriteByte(0x44);//Temperatureconvert

Init18b20();

WriteByte(0xcc);//skiprom

WriteByte(0xbe);//readTemperature

p=temp_buff;

GemTemp();

}

voidGetTemp()

{

if(TIM==100)//每隔1000ms讀取溫度

{TIM=0;

TemperatuerResult();

}

}

/*************************************

[t1(10ms)中斷]中斷

*************************************/

voidT1zd(void)interrupt3

{

TH1=0xD8;//10

TL1=0xF0;

TIM++;

}

/*************************此部分為74HC595的驅動程序使用SPI匯流排連接*************************************/

#include<reg52.h>

#include<intrins.h>

#defineNOP()_nop_()/*定義空指令*/

#define_Nop()_nop_()/*定義空指令*/

voidHC595SendData(unsignedintSendVal);

//SPIIO

sbitMOSIO=P1^5;

sbitR_CLK=P1^6;

sbitS_CLK=P1^7;

sbitIN_PL=P3^4;//74HC165shiftload把數據載入到鎖存器中

sbitIN_Dat=P3^5;//74HC165output數據移出

sbitOE=P3^6;

/*********************************************************************************************************

**函數名稱:HC595SendData

**功能描述:向SPI匯流排發送數據

*********************************************************************************************************/

voidHC595SendData(unsignedintSendVal)

{

unsignedchari;

for(i=0;i<16;i++)

{

if((SendVal<<i)&0x8000)MOSIO=1;//setdatalinehigh

elseMOSIO=0;

S_CLK=0;

NOP();

NOP();

S_CLK=1;

}

R_CLK=0;//setdatalinelow

NOP();

NOP();

R_CLK=1;//片選

OE=0;

}

㈨ 單片機交通信號燈控制系統設計

單片機交通信號燈控制
系統設計
有完整的程序。

閱讀全文

與單片機的控制系統設計相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:485
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:382
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163