




免費(fèi)預(yù)覽已結(jié)束,剩余15頁(yè)可下載查看
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
/PT100自身溫度范圍 #define M_temper_MIN -200 /最低溫度 #define M_temper_MAX 500 /最高溫度 /CPU引腳定義 #define P_LED P0 sbit LED_S1 = P2 0; /LED1位選 sbit LED_S2 = P2 1; /LED2位選 sbit LED_S3 = P2 2; /LED3位選 sbit LED_S4 = P2 3; /LED4位選 sbit KEY_S1 = P1 0; /上下限溫度設(shè)置 sbit KEY_S2 = P1 1; /溫度加 sbit KEY_S3 = P1 2; /溫度減 /全局變量寄存器 uchar M_LED1, M_LED2, M_LED3, M_LED4; /4位LED顯示寄存器 uchar LED_DISP_TAB = /LED編碼表 0X3f, 0X06, 0X5b, 0X4f, 0X66, 0X6d, 0X7d, 0X07, 0X7f, 0X6f, /0-9 0X40, 0X23, 0X1c, 0X58 /字符: - n u c ; uchar Set_count; /溫度設(shè)置按鈕計(jì)數(shù) uchar T0_count; /T0定時(shí)中斷計(jì)數(shù) uint T1_count; /T1定時(shí)中斷計(jì)數(shù) char M_temper_up; /溫度上限 char M_temper_down; /溫度下限 char M_temper_AI; /設(shè)置中溫度 char M_temper_conver; /當(dāng)前溫度 bit B_set,B_set_AI; /溫度設(shè)置標(biāo)志 bit B_set_T0,B_set_T1; /定時(shí)器中斷標(biāo)志 /函數(shù)聲明 void T1int_init(); /* 定時(shí)器T1初始化: 設(shè)置工作方式 賦初值 開啟中斷 */ void T0int_init(); /* 定時(shí)器T0初始化: 設(shè)置工作方式 賦初值 開啟中斷 */ void Set_temper(); /*設(shè)置上下限溫度: 按鍵次數(shù)=1:顯示上限溫度并處于操作狀態(tài) 按鍵次數(shù)=2:顯示下限溫度并處于操作狀態(tài) 按鍵次數(shù)=3:保存設(shè)置值并退出 */ void Inc_temper(); /*提高設(shè)置的溫度 */ void Dec_temper(); /*降低設(shè)置的溫度 */ void LED_data_BCD(char Disp_dat); /*數(shù)碼管顯示溫度 */ void PT100_delay(uint count); /* PT100延時(shí)程序 */ void PT100_reset(void); /*PT100復(fù)位初始程序:根據(jù)PT100要求對(duì)其進(jìn)行復(fù)位初始控制 */ bit PT100_readbit(void) ; /*PT100位讀子程序: 從PT100取出一位數(shù)據(jù) */ uchar PT100_readbyte(void); /*PT100字節(jié)讀子程序: 讀出的一字節(jié)數(shù)據(jù)并返回?cái)?shù)據(jù)值 */ void PT100_writebyte(uchar dat); /*PT100字節(jié)寫子程序: 將輸入?yún)?shù)值寫入PT100 */ void PT100_change(void); /啟動(dòng)PT100溫度轉(zhuǎn)換 uchar PT100_Gettemper(void); /*讀取PT100溫度數(shù)據(jù):?jiǎn)尉€方式讀取PT100轉(zhuǎn)換的溫度數(shù)據(jù), 并返回處理后的溫度值 */ void Delay_ms(uint count); /延時(shí)子程序:延時(shí) count (ms) void main() uchar M_temper_curr; SP=0x50; /堆棧起始地址 M_temper_up =100; /初始溫度上下限 M_temper_down=0; Delay_ms(500); T0int_init(); /T0 T1初始化 T1int_init(); while(1) if (B_set_T0) /T0定時(shí)讀取溫度標(biāo)志 EA=0; /關(guān)總中斷 B_set_T0=0; if(!B_set) /上下限設(shè)置狀態(tài)時(shí),取消溫度讀取 PT100_change(); /讀取溫度 M_temper_curr=PT100_Gettemper(); M_temper_conver=(M_temper_curr 126 ? (127-M_temper_curr):M_temper_curr); /轉(zhuǎn)換正負(fù)溫度 LED_data_BCD(M_temper_conver); /轉(zhuǎn)換LED顯示 EA=1; if (B_set_T1) /T1定時(shí)LED顯示掃描標(biāo)志 TR1=0;B_set_T1=0; +T1_count; switch (T1_count) /依次顯示4位LED case 1: LED_S4 = 1; P_LED = LED_DISP_TABM_LED1; LED_S1 = 0; break; case 2: LED_S1 = 1; P_LED = LED_DISP_TABM_LED2; LED_S2 = 0; break; case 3: LED_S2 = 1; P_LED = LED_DISP_TABM_LED3; LED_S3 = 0; break; case 4: LED_S3 = 1; P_LED = LED_DISP_TABM_LED4; LED_S4 = 0; T1_count = 0; break; TR1=1; /開T1定時(shí)器 if (M_temper_converM_temper_down)&(M_temper_converM_temper_up) /溫度在上下限范圍內(nèi) BUZZ=B_BUZZ_OFF; RED_ALARM=B_RED_OFF; GREEN_ALARM=B_GREEN_OFF; else BUZZ=B_BUZZ_ON; if(M_temper_converM_temper_down) RED_ALARM=B_RED_ON; /低于下限溫度 else GREEN_ALARM=B_GREEN_ON; /高于上限溫度 if (!KEY_S1) /按鍵檢測(cè) Set_temper(); /設(shè)置溫度 Delay_ms(200); if (B_set) if (!KEY_S2) Inc_temper(); /溫度加 Delay_ms(200); if (!KEY_S3) Dec_temper(); /溫度減 Delay_ms(200); void Set_temper() /設(shè)置溫度 +Set_count; B_set = 1; /設(shè)置標(biāo)志 if (Set_count = 1) /設(shè)置上限 B_set_AI = 0; LED_data_BCD(M_temper_up); M_temper_AI = M_temper_up; /將原上限溫度取出 else if (Set_count = 2) /設(shè)置下限 B_set_AI = 1; M_temper_up = M_temper_AI; /存入新的上限溫度 LED_data_BCD(M_temper_down); M_temper_AI = M_temper_down; /將原下限溫度取出 else /確認(rèn) 退出 B_set = 0; Set_count = 0; LED_data_BCD(M_temper_conver); M_temper_down = M_temper_AI; /存入新的下限溫度 void Inc_temper() /溫度加 if (B_set_AI) /判斷當(dāng)前是設(shè)置上限(0)還是下限(1) if (M_temper_AI M_temper_MAX) & (M_temper_AI M_temper_up) M_temper_AI+; /不能加到上線溫度和溫度范圍 else if (M_temper_AI M_temper_MIN) M_temper_AI-; else if (M_temper_AI M_temper_MIN) & (M_temper_AI M_temper_down) M_temper_AI-; LED_data_BCD(M_temper_AI); void PT100_delay(uint count) /PT100特定延時(shí) uint i; while(count) i=200; while(i0) i-; count-; void PT100_reset(void) /PT100復(fù)位初始 uint i; DQ=0; i=103; while(i0)i-; DQ=1; i=4; while(i0)i-; bit PT100_readbit(void) /PT100位讀子程序 uint i; bit dat; DQ=1;_nop_(); DQ=0;i+; DQ=1;i+;i+; dat=DQ; i=8;while(i0)i-; return (dat); uchar PT100_readbyte(void) /PT100字節(jié)讀子程序 uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=PT100_readbit(); dat=(j1); /把讀取的數(shù)據(jù)一位一位放進(jìn)去 return(dat); void PT100_writebyte(uchar dat) /PT100字節(jié)寫子程序 uint i; uchar j; bit testb; for(j=1;j1; if(testb) /write 1 DQ=0; i+;i+; DQ=1; i=8;while(i0)i-; else DQ=0; /write 0 i=8;while(i0)i-; DQ=1; i+;i+; void PT100_change(void) /啟動(dòng)PT100溫度轉(zhuǎn)換 PT100_reset(); PT100_delay(1); PT100_writebyte(0xcc); PT100_writebyte(0x44); uchar PT100_Gettemper() /讀取PT100溫度數(shù)據(jù) uint temp; uchar M_temper_L=0,M_temper_H=0; PT100_reset(); PT100_delay(1); PT100_writebyte(0xcc); PT100_writebyte(0xbe); M_temper_L=PT100_readbyte(); M_temper_H=PT100_readbyte(); temp=M_temper_H; /溫度數(shù)據(jù)處理 temp0xf0) /正(0)負(fù)(1)溫度值 temp=(0x1000-(temp&0x0fff)/16)+127; /計(jì)算溫度 else temp=temp/16; M_temper_H=temp; return M_temper_H; void LED_data_BCD(char Disp_dat) /顯示數(shù)據(jù)LED編碼處理 if (Disp_dat 0) for (i = 0; i T0_TIMER_S); B_set_T0=1; T0_count=0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第一月考數(shù)學(xué)試卷
- 二年級(jí)階段測(cè)試數(shù)學(xué)試卷
- 定陶初中二模數(shù)學(xué)試卷
- 課件培訓(xùn)的心得
- 2025至2030城市應(yīng)急聯(lián)動(dòng)行業(yè)市場(chǎng)深度調(diào)研及前景趨勢(shì)與發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 四川眉山職業(yè)技術(shù)學(xué)院招聘考試真題2024
- 寧波前灣控股集團(tuán)有限公司人員招聘考試真題2024
- 成都市東光實(shí)驗(yàn)小學(xué)教師招聘考試真題2024
- 2025至2030超級(jí)食物粉行業(yè)市場(chǎng)深度研究與戰(zhàn)略咨詢分析報(bào)告
- 奮飛初三期中數(shù)學(xué)試卷
- 既有建筑地基基礎(chǔ)加固技術(shù)規(guī)范 JGJ 123-2012知識(shí)培訓(xùn)
- 實(shí)驗(yàn)室菌種管理制度
- 如何當(dāng)好一名班主任 課件-2024-2025學(xué)年高一下學(xué)期班主任工作經(jīng)驗(yàn)分享
- 2025年基礎(chǔ)電氣工程考試試題及答案
- 2025至2030中國(guó)改裝車行業(yè)深度發(fā)展研究與企業(yè)投資戰(zhàn)略規(guī)劃報(bào)告
- 中醫(yī)執(zhí)業(yè)醫(yī)師歷年真題及解答
- 鎮(zhèn)江市鑫泰絕緣材料有限公司新型絕緣材料生產(chǎn)項(xiàng)目環(huán)評(píng)資料環(huán)境影響
- 商業(yè)領(lǐng)域的數(shù)字化轉(zhuǎn)型與人才培養(yǎng)的深度融合研究報(bào)告
- 2025年木板式家具行業(yè)深度研究報(bào)告
- 2024-2025學(xué)年人教版PEP六年級(jí)下學(xué)期期末試卷(含答案含聽力原文無(wú)音頻)
- 2025屆陜西省西安西工大附中物理八下期末質(zhì)量檢測(cè)試題含解析
評(píng)論
0/150
提交評(píng)論