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

正文內容

基于at89c51單片機的蔬菜大棚溫度控制系統(tǒng)設計—大學學位論文范文模板參考資料(文件)

2024-12-31 09:32 上一頁面

下一頁面
 

【正文】 WARNH1 EQU 32H ; 溫度下限 TEMP0 EQU 34H ; 溫度小數(shù)部分 TEMP1 EQU 35H ; 溫度整數(shù)部分 DIS0 EQU 36H ; 小數(shù)位 DIS1 EQU 37H ; 個位 DIS2 EQU 38H ; 十位 DIS3 EQU 39H ; 百位 ORG 0000H AJMP MAIN ORG 000BH AJMP T0INT ORG 0023H AJMP S_INT 主程序 ORG 0030H MAIN: MOV SP,40H ; 堆棧棧底放 50H MOV WARNH0,25H MOV WARNH1,18H CALL T0INIT ; 初始化 T0 CALL SCANKEY ; 掃描鍵盤 CLR ENABLE ; 清使能標志 CLR DTSIGN ; 清數(shù)據(jù)標志 LCALL INT_EN LOOP: CALL DISPLY ; 調用顯示子 程序 AJMP LOOP ; T0 初始化 TOINIT: ORL TMOD,01H ANL TMOD,F1H MOV TH0,3CH MOV TL0,B0H MOV R7,15H ; 軟件計數(shù)初值 RET ;開中斷子程序 INT_EN: SETB EA SETB ET0 ; 開 T0中斷 STEB TR0 RET ;關中斷子程序 INT_DS: CLR ET0 ; 關 T0中斷 CLR TR0 ; T0 停止計數(shù) RET ;顯示子程序 DISPLY: PUSH ACC PUSH 06H MOV A,TEMP1 ; 溫度整數(shù)部分送 A DISPLY1: MOV B,100H DIV AB ; 相除取百位 MOV DIS3,A ; 百位送 DIS3 MOV A,B ; 余數(shù)送 A MOV B,10H DIV AB ; 相除取十位 MOV DIS2,A ; 十位送 DIS2 MOV DIS1,B ; 個位送 DIS1 MOV DIS0,TEMP0 ; 小數(shù)部分送 DIS0 MOV DPTR,ZIXING ; 送字形碼首地址 MOV A,DIS0 ; 取小數(shù) MOVC A,A+DPTR ; 取對應字形碼 MOV P0,A SETB LED0 SETB LED1 SETB LED2 CLR LED0 MOV SEG,A ; 送字形碼 CALL DELAY0 MOV A,DIS1 ; 取個位 MOVC A,A+DPTR ; 取對應字形碼 MOV P0,A CLR ; 清最高位顯示小數(shù)點 SETB LED0 SETB LED1 SETB LED2 CLR LED1 MOV SEG,A ; 送字形碼 CALL DELAY0 MOV A,DIS2 ; 取十位 MOVC A,A+DPTR ; 取對應字形碼 MOV P0,A OUTDIS: POP 06H POP ACC RET ZIXING: DB 03FH,006H,05BH,04FH,66H,6DH,7DH,078H 7FH,6FH;共陽數(shù)碼管但是加了uln2803 才使用共陰極數(shù)碼管字型碼 ;延時子程序 DELAY0: MOV R6,1FH DEL0: MOV R5,0BH DEL1: NOP DJNZ R5,DEL1 DJNZ R6,DEL0 RET ;鍵盤子程序 SCANKEY: ACALL KEY JNB F0,LNEXT ACALL KEYPROC LNEXT: AJMP SCANKEY DELAY: MOV R7,100H D1: MOV R6,100H DJNZ R6,$ DJNZ R7,D1 RET KEYPROC: MOV A,B JB ,KEYS1 JB JB ,KEYS3 JB ,KEYS4 AJMP KEY_RET KEYS1: SETB S1 AJMP KEY_RET KEYS2: SETB S2 AJMP KEY_RET KEYS3: SETB S3 AJMP KEY_RET KEYS4: SETB S4 AJMP KEY_RET KEY_RET: RET KEY: CLR F0 ORL P1,00001111B MOV A,P1 ORL A,11110000B CPL A JZ K_RET CALL DELAY ORL A,00001111B MOV A,P1 ORL A,11110000B CPL A JZ K_RET MOV B,A SETB F0 K_RET: ORL P1,00001111B MOV A,P1 ORL A JZ K_RET1 AJMP K_RET K_RET1: CALL DELAY RET S1: INC C JBC 1,T1 JBC 2,T2 JBC 3,T3 RET S2: MOV A,31H INC A AJMP S4 S3: MOV B,32H DEC B AJMP S4 S4: MOV A,31H MOV B,32H RET T1: MOV A,WARNH0 AJMP DISPLY1 T2: MOV A,WARNH1 AJMP DISPLY1 T3: AJMP DISPLY1 CLR C AJMP S1 RET ; T0 中斷子程序 T0INT: PUSH ACC PUSH 06H PUSH 05H MOV TL0,B0H MOV TH0,3CH DJNZ R7,OUTSINT MOV R7,15H LCALL GET_TEMPER ; 讀取溫度 JNB HAVE,OUTT0INT MOV A,TEMP1 CLR C SUBB A,WARNH0 ; 將讀取的溫度與高溫限比較 TINT0: JNZ T1NT1 ; 判斷是否大于高溫限 AJMP T1NT2 ; 不大于轉 T1NT2’ T1NT1: CLR CLR AJMP TINT4 TINT2: SUBB A,WARNH1 ; 將讀取的溫度與低溫限比較 JC TINT3 ; 判斷是 否小于低溫限 AJMP TINT4 ; 不小于轉 TINT4 TINT3: CLR CLR AJMP TINT4 TINT4: CALL PRO ; 處理數(shù)據(jù) OUTT0INT: POP 05H POP 06H POP ACC RETI 從 18B20 獲得溫度數(shù)據(jù)程序 GET_TEMPER: CALL INI_18B20 ; 操作前先復位 JB HAVE,GET0 ; 若 18B20 存在則轉 MOV TEMP0,0FH ; 數(shù)碼管顯示 000 MOV TEMP1,00H AJMP OUTGET ; 退出 GET0: MOV A,CCH ; 跳過 ROM 匹配 CALL WR_18B20 MOV A,44H ; 開始轉化 CALL WR_18B20 MOV R6,11H ; 延遲約 800ms GET1: LCALL DISPLY DJNZ R6,GET1 CALL INI_18B20 ; 操作前先復 位 MOV A,CCH ; 跳過 ROM 匹配 CALL WR_18B20 MOV A,0BEH ; 讀取命令 CALL WR_18B20 CALL RD_18B20 ; 開始讀取 ROM OUTGET: RET ; 18B20 復位程序 INI_18B20: SETB WR_18B20 NOP CLR WR_18B20 ; 拉低數(shù)據(jù)線 MOV R6,3H ; 延遲約 500us INI1: MOV R5,75H DJNZ R5,$ DJNZ R6,INI1 SETB WR_18B20 ; 然后釋放 NOP NOP NOP MOV R5,25H INI2: JNB WR_18B20,INI3 ; 等待 18B20 回應 DJNZ R5,INI2 AJMP INI4 ; 延時 INI3: SETB HAVE ; 置標志位,表示 18B20 存在 AJMP INI5 INI4: CLR HAVE ; 消標志位,表示 18B20 不存在 LJMP INI7 INI5: MOV R5,90H INI6: DJNZ R5,INI6 ; 時序要求延時一段時間 INI7: SETB WR_18B20 RET ; 18B20 寫程序 WR_18B20: MOV R6,8H ; 一共 8 位數(shù)據(jù) CLR C WR1: CLR WR_18B20 :拉低數(shù)據(jù)線 MOV R5,6H ; 延遲約 17us DJNZ R5,$ RRC A ; 右移數(shù)據(jù)到 CY MOV WR_18B20,C ; 寫入 18B20 MOV R5,25H ; 保持電平 35us DJNZ R5,$ SETB WR_18B20 ; 釋放數(shù)據(jù)線 NOP DJNZ R6,WR1 ; 若未完成寫入,繼續(xù) SETB WR_18B20 ; 釋放數(shù)據(jù)線 RET ; 18B20 讀程序(高位寸 TEMP1,低位存 TEMP0) RD_18B20: MOV R6,2H ; 需要讀 2 個字節(jié)的數(shù)據(jù) MOV R0,TEMP0 ; 送高位首地址 RD0: MOV R5,8H ; 讀 8位數(shù)據(jù) RD1: CLR C ; 清 CY,為讀數(shù)據(jù)做準備 SETB WR_18B20 NOP NOP CLR WR_18B20 ; 拉低數(shù)據(jù)線 NOP NOP NOP SETB WR_18B20 ; 釋放數(shù)據(jù)線 MOV R4,08H ; 稍作延遲 DJNZ R4,$ MOV C,WR_18B20 ; 讀數(shù)據(jù)線數(shù)據(jù)到 C MOV R4,23H ; 延遲 DJNZ R4,$ RRC A ; 右移 CY 數(shù)據(jù)到 A DJNZ R5,RD1 ; 若 8 位沒讀完,轉 RD1 MOV R0,A ; 將讀到數(shù)據(jù)送 ROM INC R0 ; ROM 指針加一 DJNZ R6,RD0 ; 若 2 字節(jié)未讀完,轉 RD0 RET ;獲
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1