久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3133|回復(fù): 5
收起左側(cè)

51單片機(jī)溫度控制匯編程序

[復(fù)制鏈接]
ID:356269 發(fā)表于 2018-6-27 09:22 | 顯示全部樓層 |閱讀模式
有沒(méi)有大神幫忙看看為什么TEMP地址內(nèi)一直是00?就是數(shù)碼管顯示一直是00,我沒(méi)有寫進(jìn)去嗎?
比較急,謝謝各位大神

溫度控制.7z

34.56 KB, 下載次數(shù): 43

回復(fù)

使用道具 舉報(bào)

ID:360102 發(fā)表于 2018-6-27 11:14 | 顯示全部樓層
666,不錯(cuò)啊
回復(fù)

使用道具 舉報(bào)

ID:356269 發(fā)表于 2018-6-27 16:33 | 顯示全部樓層

出不來(lái)啊。。啥都沒(méi)有,表示懵逼不知道哪里出了問(wèn)題
回復(fù)

使用道具 舉報(bào)

ID:356269 發(fā)表于 2018-6-27 16:36 | 顯示全部樓層
抱歉抱歉,為了看看TEMP里是不是空值,我把字碼表的第一個(gè)從0改成了1,所以顯示11,不知道哪里出了問(wèn)題,求大神指教
回復(fù)

使用道具 舉報(bào)

ID:7485 發(fā)表于 2018-6-28 09:56 | 顯示全部樓層
你的編程的思路太亂。
剛剛看了開頭一點(diǎn),你看看我紅色文字的部分,僅就你說(shuō)的設(shè)置問(wèn)題,其余的沒(méi)看。
        DQ        EQU        P1.7        ;DS18B20控制口 //最好“EQU”改為“BIT”,防止出錯(cuò),還一目了然。
        LED1          EQU         P2.5
    LED2          EQU         P2.6
    LED         EQU         P3
        FLAG        EQU        30H        //你這樣定義的是字節(jié),不是“位”可你下面的程序顯示,你應(yīng)該是“位”。
                                //內(nèi)部數(shù)據(jù)存儲(chǔ)器20H~2FH單元是可“位操作”空間,你可以使用位地址,
                                //也可以使用“FLAG   BIT  2AH.1” 這樣的地址和定義方法。

GEWEI        EQU        29H          //由于上面所說(shuō)之原因,所以一般盡量少用20H~2FH,留給位操作用。
        SHI            EQU        28H
        XIAOSHU        EQU        27H
        TEMP_TL        EQU        20H  ;低溫限值
        TEMP_TH        EQU        21H  ;高溫限值
        TEMPH        EQU        22H  ;溫度高字節(jié)
        TEMPL        EQU        23H  ;溫度低字節(jié)
        TEMP        EQU        24H
        GREEN   EQU        P2.0
        BLUE    EQU P2.1
        K1        EQU        P1.1
        K2        EQU        P1.2
        K3        EQU        P1.3
        k4  EQU P1.4
;===============================================

MAIN:
        MOV        TEMP_TH,#25
        MOV        TEMP_TL,#01
        CLR K1       //可以使用一句“MOV  P1,   #00”替代這5句,簡(jiǎn)潔,節(jié)省空間
        CLR K2
        CLR K3
        CLR K4
        CLR P1.5
        CLR DQ
        CLR GREEN
        CLR BLUE
        ACALL        WR_THL                ;寫入高溫限值和低溫限值寄存器
        ACALL        WR_PROM
        ACALL        RE_PROM         ;從EEPROM中返回高溫限值和低溫限值
        ACALL        RESET                 ;初始化1820
        JB            FLAG,LOOP       
        ACALL        ERROR                ;報(bào)錯(cuò)
               
LOOP:
        ACALL        READ_T                ;1820讀取溫度
    ACALL   TURN                ;轉(zhuǎn)換
        ACALL        DISP_TEMP        ;數(shù)碼管顯示實(shí)時(shí)溫度
        ACALL        KEYSCAN                ;鍵盤設(shè)定高溫限值和低溫限值
        ACALL        WR_THL       
        ACALL   WR_PROM
        ACALL        TEMP_COMP
        JMP        LOOP

;=============啟動(dòng)1820讀取溫度====================

READ_T:
        SETB        DQ
        ACALL        RESET
        JB        FLAG,READ_T1
        RET
READ_T1:
        MOV        A,#0CCH
        ACALL        WR_1820
        MOV        A,#44H
        ACALL        WR_1820
        ACALL        RESET
        MOV        A,#0CCH
        ACALL        WR_1820
        MOV        A,#0BEH
        ACALL        WR_1820
        ACALL        READ_1820
        RET
;=========把高溫和低溫限值寫入寄存器=================
WR_THL:       
JB        FLAG,WR_HL   //上電重啟時(shí),F(xiàn)LAG=0,所以一直不會(huì)跳轉(zhuǎn),另外,用按鍵設(shè)置溫度上下限時(shí),也要考慮這一點(diǎn),是否應(yīng)該按你的要求先允許寫,寫完后關(guān)閉(你是否想FLAG=0轉(zhuǎn)移,應(yīng)該用JNB)
        RET
WR_HL:        ACALL        RESET
        MOV        A,#0CCH
        ACALL        WR_1820
        MOV        A,#4EH
        ACALL        WR_1820
        MOV        A,TEMP_TH
        ACALL        WR_1820
        MOV        A,TEMP_TL
        ACALL        WR_1820  //寫完以后設(shè)置“FLAG”,禁止再寫(按鍵設(shè)置時(shí)先解除)
        RET
;==========把高溫和低溫限值寫入EEPROM=================
WR_PROM:ACALL        RESET
        MOV        A,#0CCH
        ACALL        WR_1820
        MOV        A,#48H
        ACALL        WR_1820
        RET
;========把EEPROM的值返回到高溫和低溫限值寄存器========
RE_PROM:
        ACALL        RESET
        MOV        A,#0CCH
        ACALL        WR_1820
        MOV        A,#0B8H
        ACALL        WR_1820
        RET
;===========初始化1820==================================
RESET:
        SETB         DQ
        NOP
        CLR        DQ
        MOV        R5,#250
        DJNZ        R5,$
        SETB        DQ            
        NOP       
        MOV        R5,#25H
RESET1:        JNB        DQ,FLAG1
        DJNZ        R5,RESET1
        JMP        NDQ
FLAG1:        SETB        FLAG
        MOV        R5,#100
        DJNZ        R5,$
        SETB        DQ
        MOV        R5,#100
        DJNZ        R5,$
        JMP        RETU
NDQ:
        CLR        FLAG
        ACALL        ERROR
RETU:
        SETB        DQ
        RET
;=============1820寫字節(jié)========================
WR_1820:
        MOV        R6,#8
        CLR        C       
WR1:
        CLR        DQ
        MOV        R5,#7
        DJNZ        R5,$
        RRC        A
        MOV        DQ,C
        MOV        R5,#25
        DJNZ        R5,$
        SETB        DQ
        NOP
        NOP
        DJNZ        R6,WR1
        SETB        DQ
        RET
;==============讀取1820數(shù)據(jù)======================

READ_1820:
        MOV        R2,#4
        MOV        R1,#TEMPL       
RE1:
        MOV        R6,#8
RE2:
        SETB        DQ
        NOP
        CLR        DQ
        CLR        C
        NOP
        NOP
        SETB        DQ
        MOV        R5,#9
        DJNZ        R5,$
        MOV        C,DQ
        MOV        R5,#24
        DJNZ        R5,$
        RRC        A
        DJNZ        R6,RE2
        MOV        @R1,A
        DEC        R1
        DJNZ        R2,RE1
        RET
;===========轉(zhuǎn)換數(shù)據(jù)=============================

TURN:
        MOV        XIAOSHU,TEMPL         ;保存TEMPL值,后面用于取低4位轉(zhuǎn)換小數(shù)部分
        MOV        A,TEMPL
        MOV        C,16                 ;22H的位尋址
        RRC        A
        MOV        C,17
        RRC        A
        MOV        C,18
        RRC        A
        MOV        C,19
        RRC        A
        MOV        TEMP,A
        MOV        A,XIAOSHU
        ANL        A,#00001111B
        MOV        XIAOSHU,A           
        RET
;========鍵盤掃描=============================
KEYSCAN:
        JB     K1, SET_H     ;按下K1,設(shè)定高限值
KEYSCAN1:               
        JB     K4, SET_L     ;按下K4,設(shè)定低限值       
RETUN:
        ACALL        WR_THL                ;把高溫限值和低溫限值寫入RAM
        ACALL  WR_PROM                ;限值復(fù)制到EEPROM中
        RET
;------------調(diào)高限值----------------------

SET_H:                          
    MOV  60H,P1
        ACALL        DELAY20       
KEY:
        JNB  K1,RETUN
        MOV  A,P1
        CJNE A,60H,KEY1
        JMP  KEY
KEY1:
    XRL A,60H
    JB ACC.2,KEYHH
    JB ACC.3,KEYHL
        JB ACC.1,RETUN               
KEYHH:       
    INC            TEMP_TH          ;按下K2,值加1
        CPL     P3.0
        JMP     SET_H     
KEYHL:  
        DEC         TEMP_TH          ;按下K3,值減1
        CPL     P3.1
    JMP                SET_H
;-------------調(diào)低溫限值------------------------------
SET_L:                          
    MOV  61H,P1
        ACALL        DELAY20       
KEY2:
    JNB  K4,RETUN
        MOV  A,P1
        CJNE A,61H,KEY3
        JMP  KEY2
KEY3:
    XRL A,61H
    JB ACC.2,KEYLH
    JB ACC.3,KEYLL
        JB ACC.4,RETUN
KEYLH:       
    INC            TEMP_TL          ;按下K2,值加1
        CPL     P3.2
        JMP     SET_L     
KEYLL:  
        DEC         TEMP_TL          ;按下K3,值減1
        CPL     P3.3
    JMP                SET_L
       
;==============溫度比較======================================

TEMP_COMP:
        CLR C
        MOV        A,TEMP_TH
        SUBB        A,TEMP
        JC LEDBLUE
        MOV        A,TEMP
        SUBB        A,TEMP_TL
        JC LEDGREEN
        RET
LEDBLUE:
        SETB BLUE
        RET
LEDGREEN:
        SETB GREEN
        RET
;===============報(bào)錯(cuò)============================
ERROR:       
        SETB P1.5
        RET
;=================數(shù)碼顯示======================
DISP_TEMP:
        MOV           LED,#0C8H
        MOV           A,TEMP
        MOV           B,#10
        DIV    AB
        MOV           SHI,A
        MOV           GEWEI,B       
        MOV           DPTR,#SHUTAB       
        MOV    A,SHI     
        MOVC   A,@A+DPTR
        SETB   P2.6           
    MOV    LED,A
        ACALL  DELAY20
        CLR    P2.6
        MOV    A,GEWEI            
        MOVC   A,@A+DPTR
        SETB   P2.7           
    MOV    LED,A
        ACALL  DELAY20
        CLR    P2.7
        RET
SHUTAB:        DB        0F9H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H                  
DELAY20:
        MOV        R5,#50
DLY:
        MOV        R6,#100
        DJNZ        R6,$
        DJNZ        R5,DLY
        RET

            
END                  
回復(fù)

使用道具 舉報(bào)

ID:331163 發(fā)表于 2018-6-28 10:24 | 顯示全部樓層
厲害了   就是不懂  哎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美精品在线播放 | 91九色在线观看 | 国产精品福利在线观看 | 一级做a爰片久久毛片免费看 | 国产日产精品一区二区三区四区 | 日韩精品在线免费观看视频 | 国产精品99久久久久久宅男 | 国产午夜精品久久久 | 精品国产欧美一区二区三区成人 | 亚洲先锋影音 | 999久久久免费精品国产 | 欧美性大战xxxxx久久久 | 久久久新视频 | 我我色综合 | 成人一区av偷拍 | 国产一区二区三区四区在线观看 | 亚洲天堂久久 | 欧美国产精品 | 日韩欧美一区二区三区免费观看 | 日韩欧美日韩在线 | 99在线免费观看视频 | 亚洲国产精品久久久 | 久久成人国产精品 | 天天草草草 | 爽爽免费视频 | 午夜一区 | 成人在线视频一区 | 欧洲成人免费视频 | 啪啪免费网站 | 午夜网 | 国产中文字幕在线 | 99久久免费精品国产免费高清 | 亚洲精品久久久一区二区三区 | 香蕉久久av | 色综合一区二区三区 | 中文字幕综合 | 狠狠av| 国产成人亚洲精品 | 国产精品久久久久久久久久久久午夜片 | 理论片免费在线观看 | 亚洲欧洲精品在线 |