c語言測控
① 真的很急!基於51單片機的DS18B20 溫度測控系統 c語言程序
#include<reg52.h> #include<math.h>
#include<INTRINS.H>
#define uchar unsigned char
#define uint unsigned int;
/******************************************************************/
/* 定義埠 */
/******************************************************************/
sbit seg1=P2^0;
sbit seg2=P2^1;
sbit seg3=P2^2;
sbit DQ=P1^7;//ds18b20 埠
sfr dataled=0x80;//顯示數據埠
/******************************************************************/
/* 全局變數 */
/******************************************************************/
uint temp;
uchar flag_get,count,num,minute,second;
uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//7段數碼管段碼表共陽
uchar str[6];
/******************************************************************/
/* 函數聲明 */
/******************************************************************/
void delay1(uchar MS);
unsigned int ReadTemperature(void);
void Init_DS18B20(void);
unsigned char ReadOneChar(void);
void WriteOneChar(unsigned char dat);
void delay(unsigned int i);
/******************************************************************/
/* 主函數 */
/******************************************************************/
main()
{
unsigned char TempH,TempL;
TMOD|=0x01;//定時器設置
TH0=0xef;
TL0=0xf0;
IE=0x82;
TR0=1;
P2=0x00;
count=0;
while(1)
{
str[5]=0x39; //顯示C符號
str[1]=tab[TempH/100]; //十位溫度
str[2]=tab[(TempH%100)/10]; //十位溫度
str[3]=tab[(TempH%100)%10]|0x80; //個位溫度,帶小數點
str[4]=tab[TempL];
if(flag_get==1) //定時讀取當前溫度
{
temp=ReadTemperature();
if(temp&0x8000)
{
str[0]=0x40;//負號標志
temp=~temp; // 取反加1
temp +=1;
}
else
str[0]=0;
TempH=temp>>4;
TempL=temp&0x0F;
TempL=TempL*6/10;//小數近似處理
flag_get=0;
}
}
}
/******************************************************************/
/* 定時器中斷 */
/******************************************************************/
void tim(void) interrupt 1 using 1//中斷,用於數碼管掃描和溫度檢測間隔
{
TH0=0xef;//定時器重裝值
TL0=0xf0;
num++;
if (num==50)
{num=0;
flag_get=1;//標志位有效
second++;
if(second>=60)
{second=0;
minute++;
}
}
count++;
if(count==1)
{P2=0;
dataled=str[0];}//數碼管掃描
if(count==2)
{P2=1;
dataled=str[1];}
if(count==3)
{ P2=2;
dataled=str[2];
}
if(count==4)
{ P2=3;
dataled=str[3];
}
if(count==5)
{ P2=4;
dataled=str[4];
}
if(count==6)
{ P2=5;
dataled=str[5];
count=0;}
}
/******************************************************************/
/* 延時函數 */
/******************************************************************/
void delay(unsigned int i)//延時函數
{
while(i--);
}
/******************************************************************/
/* 初始化 */
/******************************************************************/
void Init_DS18B20(void)
{
unsigned char x=0;
DQ = 1; //DQ復位
delay(8); //稍做延時
DQ = 0; //單片機將DQ拉低
delay(80); //精確延時 大於 480us
DQ = 1; //拉高匯流排
delay(10);
x=DQ; //稍做延時後 如果x=0則初始化成功 x=1則初始化失敗
delay(5);
}
/******************************************************************/
/* 讀一個位元組 */
/******************************************************************/
unsigned char ReadOneChar(void)
{
unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 給脈沖信號
dat>>=1;
DQ = 1; // 給脈沖信號
if(DQ)
dat|=0x80;
delay(5);
}
return(dat);
}
/******************************************************************/
/* 寫一個位元組 */
/******************************************************************/
void WriteOneChar(unsigned char dat)
{
unsigned char i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = dat&0x01;
delay(5);
DQ = 1;
dat>>=1;
}
delay(5);
}
/******************************************************************/
/* 讀取溫度 */
/******************************************************************/
unsigned int ReadTemperature(void)
{
unsigned char a=0;
unsigned int b=0;
unsigned int t=0;
Init_DS18B20();
WriteOneChar(0xCC); // 跳過讀序號列號的操作
WriteOneChar(0x44); // 啟動溫度轉換
delay(200);
Init_DS18B20();
WriteOneChar(0xCC); //跳過讀序號列號的操作
WriteOneChar(0xBE); //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度
a=ReadOneChar(); //低位
b=ReadOneChar(); //高位
b<<=8;
t=a+b;
return(t);
}
//LZ,這是測溫並且用數碼管顯示程序,報警可以自己另行添加!主要程序就是這些!
()
繼
② C語言編程 51單片機實現濕度測量控制
你好!是採用模擬的形式實現嗎?原理圖確定了嗎
③ 測控技術與儀器要學編程嗎
測控技術與儀器專業是需要學習編程的,包括電腦編程與單片機編程。
一、測控技術與儀器專業的主要課程:
主要課程:電路原理度、EDA技術及應用、感測器與檢測技術、自動控制原理、單片機原理及應用、程序設計、精密機械與儀器設計、精密機械製造工程、模擬電子技術基礎、數字電子技術基礎、微型計算機原理與應用、控制工程基礎、信號分析與處理、精密測控與系統、工程光學。
二、測控技術與儀器專業的專業方向:
測控技術及儀器專業是儀器科學與技術和控制科學與技術交叉融合而形成的綜合性學科。
方向一以集電子技術、先進控制理論、計算機控制技術、自動檢測技術、光電技術以及網路技術於一體為特色,以生產過程的機電裝備運行狀態及其信息為研究對象。本方向旨在培養基礎理論扎實、實踐能力強、知識面廣,外語綜合能力和計算機應用能力較強,人文社會科學綜合素質較高,具有開拓創新意識,能夠從事工業過程式控制制理論與裝備、計算機輔助測試系統、信息處理與狀態識別等領域的研究開發、設計製造和運行管理的復合型高級工程技術人才。
方向二以光—機—電—儀器—計算機技術一體化為特色,以感測器技術、信息獲取與處理技術、自動化精密機械以及智能儀器儀表為主要研究對象。本方向旨在培養基礎理論扎實、實踐能力強、知識面廣,外語綜合能力和計算機應用能力較強,人文社會科學綜合素質較高,具有開拓創性意識,能夠從事測控儀器、信息技術以及測試計量技術等方面的研究開發、設計製造和運行管理方面的復合型高級工程技術人才。
三、測控技術與儀器專業的就業方向:
該專業畢業生大多就業於航天航空、兵器、機械、電子、能源、化工、通訊、交通等眾多國防科技及國民經濟建設領域的研究院所和企業,從事現代測控系統的研究設計、製造、應用工作。
④ 測控技術與儀器專業學的數電模電,c語言單片機嵌入式微機原理自動控制原理檢測技術這些課之間有什麼聯系
你好,數電模電是單片機的基本知識,因為單片機以及一些相關電路都是要學了數電模電才理解。然後C語言一般用於單片機上運行的程序的編寫,要麼就是匯編語言,其他語言用的較少。微機原理主要是介紹一般微型計算機的組成結構和一些常用晶元的結構以及使用的技術。
自動控制和檢測技術這兩個主要就是學怎麼讓系統穩定啊,怎麼實現自動化工作啊,這樣
⑤ 溫度測控系統的c語言程序
我以前做過的項目就涉及這兩方面,當初我用的控制板只有rs232,就用了rs232轉rs485.至於ds18b20的話幾個io口就可以了,不過這個的時序需要把握好,ds18b20好像要達到微妙級了,io輸出好像是請求數據,io輸入時是讀取數據。自己實踐吧。
⑥ 學c語言更好還是vb對找工作而言,我是學測控技術及儀器的.
巧了,我也是,06級的,咱們測控當然是學C語言了,這是個基礎語言,學好它在學別的.我不知道你是搞什麼方向的,我是做偏向於控制的,有一些心得,希望對你有幫助:http://blog.csdn.net/zhzht19861011/archive/2009/09/12/4545159.aspx
⑦ 我是測控技術與儀器專業,看好多招聘都要求精通c語言,我們專業學習c應該學習哪些,如何學習呀
我就是測控技術與儀器專業畢業的。現在從事本專業工作已經6年。作為一個過來人,看得出你是個在校學生。說說點我自己的經歷,也給你點參考和建議吧。
測控專業本身學習的課程就很多,很雜,但是沒有一門學的很專。它不像電子電氣這些專業。測控專業的畢業生一般工作從事質量這塊的比較多,也就是在一般企業里從事品質保證,比如產品試驗,比如編寫測試程序進行檢測等等。當然轉行的也比較多。
你說的C語言是基礎,這其實是所有工科類尤其是電類專業所必須掌握的。其實我在大學四年在學校內我就已經考到了軟體設計師的證書。C學習你可以和單片機學習結合,就是用C編寫單片機程序,這在企業里用的很多,還有就是電子技術的基本功要打的很牢。
上面說的是你從事本專業工作的話。不過在這里我,作為一個過來人,非常誠懇地奉勸你一句:學弟,轉行吧!我也有過你現在這樣的時代,你有的想法我也有過。但是,我不得不很真實地告訴你一句:學測控專業或者學工科專業,真的很垃圾!這話說的或許很過,但是這是現實。你現在可以不相信我,但是等到你真的走上這條路,你再想轉,呵呵,那就真的不是很容易的。說這些是不想再看到一個和我學同樣專業的人走和我一樣的彎路。
說了很多,自己好好把握吧,祝你好運~~
⑧ 我是測控技術與儀器專業的 ,c語言要學到什麼程度啊·
我也是測控專業的已經畢業了,C語言說實在的只要能考試不掛科就可以,只學一本教材以後根本沒什麼用,如果你要是考國二的話還是應該用點心學,當然國二證書拿到手以後就可以再也不用管了。
⑨ 本人是學測控專業的,希望前輩告訴我單片機和C語言重要嗎我以後畢業能幹些什麼啊
我也是測控畢業的。
測控主要是做工業、航天、醫療等等方面的測量和控制。所以需要用到電子電路來實現,最早在測控領域都是用模擬電路來實現的。但現在的數字電子發展迅速,所以很多領域都需要用微控制器(單片機)來經行測量和控制。在一個測控系統來說,單片機及其程序是作為一個中心主控的角色。但也不能忽略了單片機的外圍電路設計的功底。在測控系統開發中,我覺得最難,最需要花費精力的恰恰是單片機的外圍電路,電路的設計千變萬化,若設計不好,不僅僅會影響到單片機的調試工作,還會影響整個測控系統的功能。所以學單片機不僅要學它的編程,還學好學好模擬電子技術和數字電子技術。
C語言,只是對於單片機開發的其中一種軟體。誠然,相對於匯編語言來說,C語言開發比較通俗。但要學習單片機,就必須要了解它的指令(就是匯編),因為C語言還是需要編譯成匯編的。有些單片機在某些特殊功能上,還必須嵌入匯編語言才能開發,比如PIC單片機的校準字。
測控專業跟自動化專業相近,但它更側重於在數據測量,控制工程方面。畢業後可以從事設備的開發和維等。現在我怎麼說你都不會太明白,建議你在學校的時候多動手,多做實驗。一般大學都會組織學生參加電子設計比賽,希望你學習完電子技術,單片機,微機原理後也參加這些比賽,可以增長你的經驗!
⑩ 我是學測控的,大一的C語言才考了29分,是不是沒前途了
學校里的成績並不唯一,只要掌握基本技能,加強動手能力,保持一顆好學的心,必須會有出息的。有一個同學,學校里各科成績都不理想,但喜歡維修,電器,電腦都行,後來工作中修設備,兩年後應聘到一家外企10萬年薪。