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

正文內(nèi)容

畢業(yè)論文-基于pid算法的中醫(yī)理療恒溫控制器設(shè)計(jì)(參考版)

2025-06-07 22:02本頁面
  

【正文】 biaozhi=0。 } if(biaozhi==1) {miao3=miao2。 WriteSet1302(0x8e,0x80)。 miao3=ReadSet1302(0x81)。 jishu=0。 fen2=ReadSet1302(0x83)。 師范學(xué)院學(xué)院本科畢業(yè)論文 28 圖 37 定時(shí)報(bào)警程序流程圖 部分 程序 如下 : void hengwenPID(void) { if((miao1!=0)||(fen1!=0)||(shi1!=0)) { if(jishu==1) { WriteSet1302(0x8e,0x00)。同時(shí),當(dāng)定時(shí)時(shí)間到,就執(zhí)行聲光報(bào)警。 else high_time=0。spid,rin )。 rin = s。 s=temp%10*100/16。i++) { tmpchange()。 } else { for(i=0。} } else if(tmph=temp) { if(temptmph0) { high_time=0。 else high_time=100。spid,rin )。 rin = s。 s=temp%10*100/16。i++) { tmpchange()。 } else { for(i=0。 if(tmphtemp) { if(tmphtemp10) { high_time=100。 return (ppProportion * Error // 比例項(xiàng) + ppIntegral * ppSumError // 積分項(xiàng) + ppDerivative * dError)。 // 當(dāng)前微分 ppPrevError = ppLastError。 // 偏差 ppSumError += Error。 開 始目 標(biāo) 溫 度 當(dāng) 前 溫 度 ?全 速 加 熱 停 止 加 熱目 標(biāo) 溫 度 與 當(dāng) 前溫 度 差 值 大 于0 ?輸 出 控 制 量 、 控 制 加 熱 趨 勢(shì)P I D 算 法目 標(biāo) 溫 度 與 當(dāng) 前溫 度 差 值 大 于 1 ?返 回YYNNNY 圖 36 溫度比較子程序流程圖 溫度控制部分程序如下: unsigned int PIDCalc( struct PID *pp, unsigned int NextPoint ) { unsigned int dError,Error。 圖 35 PID運(yùn)算程序流程圖 溫度控制程序 如圖 36所示為系統(tǒng)溫度控制流程圖、在溫度控制過程中根據(jù)當(dāng)前溫度值判斷是否采用PID運(yùn)算 [17]。 }} 溫度控制程序 本控制系統(tǒng)中,采用的是數(shù)字 PID控制算法。 //溫度在寄存器中是 12位,分辨率是 temp=tt*10+。 //two byte pose a int variable 兩個(gè)字節(jié)組合為 1個(gè) 字 temp=temp|a。 //讀高 8位 temp=b。 a=tmpread()。 tmpwritebyte(0xcc)。 師范學(xué)院學(xué)院本科畢業(yè)論文 25 dsreset()。 // initiates a single temperature conversion 寫溫度轉(zhuǎn)換指令 } 功能 : 讀取寄存器中存儲(chǔ)的溫度數(shù)據(jù) uint tmp() { float tt。 tmpwritebyte(0xcc)。 } }} void tmpchange(void) 功能 : DS18B20開始獲取數(shù)據(jù)并轉(zhuǎn)換 { dsreset()。 i++。while(i0)i。 } else { DQ=0。 i=8。i++。 if(testb) //write 1 { DQ=0。0x01。j=8。 bit testb。 } 功能 : 向 1820寫一 個(gè)字節(jié)數(shù)據(jù)函數(shù) void tmpwritebyte(uchar dat) { uint i。//讀 1位數(shù)字程序 dat=(j7)|(dat1)。i=8。 dat=0。 while(i0)i。 DQ=1。 i=103。 圖 34 DS18B20 溫度轉(zhuǎn)換流程圖 功能 :DS18B20復(fù)位,初始化函數(shù) void dsreset(void) { uint i。每個(gè)讀周期最短的持續(xù)期為 60μ s。 讀操作:主機(jī)將數(shù)據(jù)線從高電平拉至低電平 1μ s 以上,再使數(shù)據(jù)線升為高電平,從而產(chǎn)生讀起始信號(hào)。在開始另一個(gè)寫周期前,必須有 1μ s 以上的高電平恢復(fù)期。從 DQ線的下降沿起計(jì)時(shí),在15μ s 到 60μ s 這段時(shí)間內(nèi)對(duì)數(shù)據(jù)線進(jìn)行檢測(cè),如數(shù)據(jù)線為高電平則寫 1;若為低電平,則寫 0。將 DQ 線拉低 480μ s 至 960μ s,再將 DQ拉高15μ s 至 60μ s,然后 DS18B20 發(fā)出 60μ s 至 240μ s 的低電平作為應(yīng)答信號(hào),這是主機(jī)才能對(duì)它進(jìn)行其它操作。} 師范學(xué)院學(xué)院本科畢業(yè)論文 23 溫度采集程序 由于 DS18B20[15]外接電路極為簡(jiǎn)單,所以電路連接沒有問題,但是在軟件編程上,就要求嚴(yán)格按照時(shí)序進(jìn)行讀寫操作。 } write_date(‘ C39。 delay1(10)。 delay1(10)。 rw=0。 } void write_date(uchar date) { P0=date。 delay1(10)。 delay1(10)。 rw=0。 開 始初 始 化寫 指 令寫 數(shù) 據(jù)返 回 圖 33 LCD1602 顯示程序 void write_(uchar ) { P0=。 WriteSet1302(0x84,shi)。 //禁止寫入 WriteSet1302(0x80,miao)。 } WriteSet1302(0x90,0xa6)。i++) {WriteSet1302(addr,TableDs1302[i])。 //允許寫入 for(i=0。 addr=0x80。 TableDs1302[1]=fen。 break。 if(shi0) shi=23。 break。 if(fen0) fen=59。 break。 if(miao0) miao=59。 { while(!reduce)。} } } if(reduce==0) {delay1(1)。 write_sfm(8,shi,1)。 case 3: shi++。 write_sfm(11,fen,1)。 case 2: fen++。 write_sfm(14,miao,1)。 switch(num) { case 1: miao++。 if(add==0)。 //退出 break。 flag=1。 break。 case 3:write_(0x80+9)。 //fen write_(0x0f)。 break。 switch(num) { case 1:write_(0x80+15)。 while(!set)。 師范學(xué)院學(xué)院本科畢業(yè)論文 20 if(set==0) { delay1(2)。在編寫程序時(shí)主要完成判斷是否有按鍵、去抖、鍵值確定、功能確定、加、減等功能。 } } } 按鍵功能程序 系統(tǒng)按鍵功能 流程圖如圖 32所示。 PIDw=1。 showtime()。 Baojin=1。 delay1(900)。 showtime()。 Baojin=1。 delay1(900)。 showtime()。 Baojin=1。 delay1(900)。 showtime()。 Baojin=1。 delay1(900)。 henwenfl=0。(shi1==0)) {if(henwenfl==1) {disdingshi()。(fen1==0)amp。} if((miao1==0)amp。 } } if(henwenfl==1) {hengwenPID()。 } } if(henwenfl==0) { green=0。 if(flag==1) { yellow=0。 disdingshi()。 Henwentemp(tmph)。 temp=tmp()。 pare_temp()。 while(1) { keyscan()。 TR0=0。 temp=tmp()。 開 始D S 1 3 0 2 初 始 化L C D 1 6 0 2 初 始 化顯 示 制 作 者 信 息獲 取 溫 度按 鍵 標(biāo) 志 位 = 1獲 取 溫 度顯 示 當(dāng) 前 時(shí) 間 、 定 時(shí) 時(shí) 間 、 恒 溫 溫 度P I D 處 理 子 程 序清 屏第 一 次 溫 度 轉(zhuǎn) 換鍵 盤 掃 描 子 程 序YN 圖 31 系統(tǒng)總體流程圖 師范學(xué)院學(xué)院本科畢業(yè)論文 17 系統(tǒng) 主程序 如下 : void main() { InitDS1302()。 如 圖 216為系統(tǒng) +5V直流電源的整體圖。 因?yàn)橐敵?5V的電壓,所以選用 7805, LM7805最大 可以輸出 1A的電流,師范學(xué)院學(xué)院本科畢業(yè)論文 15 內(nèi)部有限流式短路保護(hù)。其工作原理與元器件的選擇如下: 變壓器輸入端 經(jīng)過一個(gè)保險(xiǎn)連接電源插頭,變壓器后面的 4個(gè)二極管組成一個(gè)橋式整流電路,整流后就得到一個(gè)電壓波動(dòng)很大的直流電源,所以后面需接一個(gè)點(diǎn)解整容電流變壓器輸出端的 12V電壓經(jīng)橋式整流并電容濾波,在電容 C1兩端較大的電壓,假如從電容兩端直接接一個(gè)負(fù)載,當(dāng)負(fù)載變化或交流電源有少許波動(dòng)都會(huì)使 C1 兩端的電壓發(fā)生較大幅度的變化,因此要得到一個(gè)比較穩(wěn)定的電壓,在這里接一個(gè)三端穩(wěn)壓器的元件。 由于本設(shè)計(jì)由 +5V電壓供電,并且 +5V是主電源。 DS1302接的晶振為 標(biāo)準(zhǔn) ,圖 215所示為 DS1302與單片機(jī)接口電路。在緊跟 8位的控制指令字后的下一個(gè) SCLK脈沖的下降沿 時(shí), 讀出 DS1302數(shù)據(jù),從低位 0位至高位 7位 讀出數(shù)據(jù), 如 圖 214所示為 數(shù)據(jù)讀寫時(shí)序 。最低有效位 (位 0),如果 為 0, 表示要進(jìn)行寫操作, 如果 為 1,則表示進(jìn)行讀操作 。 DS1302外部引腳: 表 21為 DS1302外部引腳 引腳號(hào) 引腳名稱 功能 1 VCC2 主電源 3 X X2 振蕩源,外接 32768Hz晶振 4 GND 地線 5 RST 復(fù)位 /片選線 6 I/O 串行數(shù)據(jù)輸入 /輸出端(雙向) 7 SCLK 串行時(shí)鐘輸入端 8 VCC1 后備電源 DS1302的控制字節(jié) 表 22為 DS1302的控制字節(jié) 7 6 5 4 3 2 1 0 1 RAM CK A4 A3 A2 A1 A0 RAM K 控制字節(jié) 的 位 1到 位 5指示操作單元的地址 , 控制字節(jié) 的 位 6如果為 0, 則表示存取日歷時(shí)鐘數(shù)據(jù),如果 為 1,則 表示存取 RAM數(shù)據(jù) 。 DS1302含有的 RAM分為兩種,一種是單個(gè)的RAM單元,一共有 31個(gè),其中每個(gè)單元有 8位的字節(jié),命令控制字為 C0HFDH,奇數(shù)為讀操作。 有 12個(gè)寄存器,其中 7個(gè)與時(shí)鐘、日歷 有關(guān) , 并以 BCD碼 的存放數(shù)據(jù) 形式 。 硬件電路如 圖 213所示。 所以, 只 需幾個(gè)數(shù)據(jù)線就可以在系統(tǒng)間交換信息,特別適用于計(jì)算機(jī) 之間 、計(jì)算機(jī)與外設(shè)之間的遠(yuǎn)距離通信 。雙向可控硅和加熱 裝置串聯(lián) 在 220V的電路中 ,單片機(jī)經(jīng)運(yùn)算 后 輸出模擬 PWM波 , 通過光電耦合器來
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1