freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于單片機的電阻爐溫度控制系統(tǒng)設計-資料下載頁

2025-07-27 05:44本頁面
  

【正文】 )當設定溫度小于實際溫度,說明溫度已超調,故電熱絲不工作,使其降溫。參考文獻[1] 楊世興.郭秀才監(jiān)測監(jiān)控系統(tǒng).中國電力出版社,2007[2] 丁鎮(zhèn)生.傳感器及傳感技術應用.電子工業(yè)出版社,2002[3] 陳良光.劉劍亮.DS18X20在多點測溫中的編碼優(yōu)化技術.電子工業(yè)出版社,2001[4] 陳潤泰、許琨編.檢測技術與智能儀表.長沙:中南工業(yè)大學出版社,1998[5] 蔡美琴等.MCS一51系列單片機系統(tǒng)及其應用.北京:高等教育出版社,1999[6] 劉迎春、葉湘濱.傳感器原理設計與應用(第三版).長沙:國防科技大學出版社,1997[7] 戴佳.51單片機應用系統(tǒng)開發(fā)典型實例.北京:中國電力出版社,2005[8] 范風強.單片機語言C51應用實戰(zhàn)集錦.北京:電子工業(yè)出版社,2005 [9] 謝宜仁.:人民郵電出版社,2003[10] 趙晶.Protel99高級應用.北京:人民郵電出版社,2000[11] 沙占友.智能化集成溫度傳感器原理與應用.北京:機械工業(yè)出版社,2002[12] 付家才.單片機控制工程實踐技術.北京:化學工業(yè)出版社,2004致 謝經過三個月的學習和試驗,終于完成了我的畢業(yè)設計??粗约盒燎诘某晒?,心里非常高興。在這期間遇到了很多從來都沒有遇到過的問題,但是通過自己的努力和老師、同學的幫助最后把它們一一解決了。其中在蔣麗英老師的精心安排和指導下,對題目有了較深入的理解,也嘗到了電路系統(tǒng)設計的艱辛。在本次設計中我在各個環(huán)節(jié)中都做到了深入實際,動手實踐,不僅對我們學過的理論知識進行了一次全面的復習和鞏固,而且還在電子電路、單片機等方面拓展了我們的知識面,為將來的實際工作打下良好的基礎,特別是在分析問題,解決問題的方面得到了良好的鍛煉機會,受益匪淺。由于本人水平和經驗有限,在設計的過程中難免存在一些不足甚至一些錯誤,敬請各位老師和同學批評指正。最后,向我的指導教師蔣麗英老師表示誠摯的感謝,同時,也向幫助過我的同學們表示感謝!附錄Ⅰ 程序清單includeincludeincludeinclude define CIRCLE 100define uchar unsigned chardefine uint unsigned int。struct PID { unsigned int SetPoint。 // 設定目標 Desired Value unsigned int Proportion。 // 比例常數 Proportional Const unsigned int Integral。 // 積分常數 Integral Const unsigned int Derivative。 // 微分常數 Derivative Const unsigned int LastError。 // Error[1] unsigned int PrevError。 // Error[2] unsigned int SumError。 // Sums of Errors }。 struct PID spid。 // PID Control Structure unsigned int rout。 // PID Response (Output) unsigned int rin。 // PID Feedback (Input) typedef unsigned char BYTE。typedef unsigned int WORD。typedef bit BOOL 。sbit key1=P3^2。 //定義按鍵位置sbit key2=P3^3。sbit key3=P3^4。sbit key4=P3^5。sbit key5=P3^6。sbit key6=P3^7。sbit rs = P1^0。sbit rw = P1^1。sbit ep = P1^2。sbit pwm=P1^5。 //sbit DQ=P1^3。//ds18b20 信號引腳即DQsfr dataled=0x80。//顯示數據端口 即P2口為段選碼輸入口uchar temp。//溫度變量unsigned char set_temper=30。 unsigned char high_time。unsigned int s。 uchar flag_get,count,num,counter。 //溫度讀取標志位、中斷次數變量,t0中斷次數以讀取溫度值, t1中斷次數以控制周期和pwm的占空比。char const table[]={100,80,70,60,50,40,30,20,0}。//高電平時間查表ucharcode tab[]={0x28,0xEB,0x32,0xA2,0xE1,0xA4,0x24,0xEA,0x20,0xA0,0x60,0x25,0x3C,0x23,0x34,0x74,0xF7,0xFF}。//,0x88,0x83,0xC6,0xA1,0x86,0x8E}。//共陽led顯示段碼1~15段碼表uchar shi,ge,danwei,dang,dang_dis。 // 定義溫度十位、個位、攝氏度單位、及檔位變量名稱,及顯示檔位的查表變量void delay1(uchar MS)。// 延時函數unsigned char ReadTemperature(void)。//讀溫度子函數void Init_DS18B20(void)。// DS18B20初始化unsigned char ReadOneChar(void)。//讀字節(jié)子函數void WriteOneChar(unsigned char dat)。//寫字節(jié)子函數void delay(unsigned int i)。//延時//void del(unsigned int)。void drive_moto()。//由P1低四位輸出控制信號void initial()。unsigned int TempBuffer[5]。BYTE code dis1[] = {Temperature:}。BYTE code dis2[] = {Set_Temper:}。BYTE code dis3[] = {0123456789}。BYTE code dis4[] = 0xdf。BYTE code dis5[] = {C}。delay2(BYTE ms){ BYTE i。 while(ms) { for(i = 0。 i i++) { _nop_()。 _nop_()。 _nop_()。 _nop_()。 } }}BOOL lcd_bz(){ // 測試LCD忙碌狀態(tài) BOOL result。 rs = 0。 rw = 1。 ep = 1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 result = (BOOL)(P0 amp。 0x80)。 ep = 0。 return result。 }lcd_wcmd(BYTE cmd){ // 寫入指令數據到LCD while(lcd_bz())。 rs = 0。 rw = 0。 ep = 0。 _nop_()。 _nop_()。 P0 = cmd。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 ep = 1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 ep = 0。 }lcd_pos(BYTE pos){ //設定顯示位置 lcd_wcmd(pos | 0x80)。}lcd_wdat(BYTE dat) { //寫入字符顯示數據到LCD while(lcd_bz())。 rs = 1。 rw = 0。 ep = 0。 P0 = dat。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 ep = 1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 ep = 0。 }lcd_init(){ //LCD初始化設定 lcd_wcmd(0x38)。 // delay2(1)。 lcd_wcmd(0x0c)。 // delay2(1)。 lcd_wcmd(0x06)。 // delay2(1)。 lcd_wcmd(0x01)。 //清除LCD的顯示內容 delay2(1)。}void initial(){EA=1。TMOD=0x11。//定時器設置皆工作在16定時計數器模式TH0=0xef。//T0賦初值TL0=0xf0。TH1=(655361000)/256。//T1賦初值TL1=(655361000)%256。ET1=1。ET0=1。TR0=1。TR1=1。P2=0xff。 count=0。counter=0。//pwm占空比控制變量//IP=0x08。 //T1優(yōu)先級高于T0 ,后來證明此語句是多余的,因為當加入此句后反/////而pwm調速和溫度檢測都變得有點不穩(wěn)定。}void delay(unsigned int i)//延時函數{ while(i)。 }//18b20初始化函數,檢測總線上是否有從屬器件DS的存在,若存在則通訊成功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則初始化失敗,因為DQ復位成功的回答信號即存在信號是低電平 delay(5)。}//讀一個字節(jié)ROMunsigned char ReadOneChar(void){unsigned char i=0。unsigned char dat = 0。for (i=8。i0。i) { DQ = 0。 // 給脈沖信號 dat=1。 DQ = 1。 // 給脈沖信號 if(DQ) dat|=0x80。// delay(5)。 } return(dat)。}//寫一個字節(jié)void WriteOneChar(unsigned char dat){ unsigned char i=0。 for (i=8。 i0。 i) { DQ = 0。 DQ = datamp。0x01。 delay(5)。 DQ = 1。 dat=1。 }delay(5)。}//讀取溫度unsigned char ReadTemperature(void){unsigned char a=0。unsigned char b=0。unsigned char t=0。Init_DS18B20()。// 復位WriteOneChar(0xCC)。 // 跳過讀序號列號的操作WriteOneChar(0x44)。 // 啟動溫度轉換delay(100)。Init_DS18B20()。 //每次操作前都要進行復位WriteOneChar(0xCC)。 //跳過讀序號列號的操作 WriteOneChar(0xBE)。 //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度a=ReadOneChar()。b=ReadOneChar()。s=(unsigned int)(aamp。0x0f)。 b=4。//取高字節(jié)的第四位,因為高四位為符號位:1111為負,0000為正,b+=(aamp。0xf0)4。//忽略小數位,取a的高四位,與b的相加就是此時所測得到整數溫度值t=b。return(t)。//返回溫度值給這個函數}void printf(){ BYTE i。 delay2(10)。 lcd_pos(0x00)。 // 設置顯示位置為第一行的第5個字符 i = 0。 while(dis1[i] != 39。\039。) { // 顯示字符wele! lcd_wdat(dis1[i])。 i++。 } lcd_pos(0x40)。 // 設置顯示位置為第二行第二個字符 i = 0。 while(dis2[i] != 39。\039。) { lcd_wdat(dis2[i])。 // 顯示字符 i++。 } TempBuffer[0]=temp/10。 //十位 TempBuffer[1]=temp%10。 //個位 lcd_pos(0x0c)。 lcd_wdat(dis3[TempBuffer[0]])。 //測試溫度十位 lcd_pos(0x0d)。 lcd_wdat(dis3[TempBuffer[1]])。 //測試溫度個位 lcd_pos(0x0e)。 lcd_wdat(dis4[0])。 lcd_pos(0x0f)。 lcd_wdat(dis5[0])。
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1