欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

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

QQ登錄

只需一步,快速開始

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

DS18B20遙控調(diào)整上下限和精度

[復(fù)制鏈接]
ID:72088 發(fā)表于 2020-1-2 21:06 | 顯示全部樓層 |閱讀模式
/*
DS18B20數(shù)字溫度計(jì)89C51(晶振12M),(-55.0℃---125.0℃)遙控調(diào)整溫度范圍。利用18B20內(nèi)部E2PRAM存儲(chǔ)溫度。上下限溫度設(shè)定成功(-50℃---110℃)

回差電壓特性輸出控制(如:TH=30,TL=20)低溫+調(diào)整不會(huì)超過高溫,反之,高溫-調(diào)整不會(huì)小于低溫
只有返回正常顯示時(shí)候才存儲(chǔ)到18B20中E2PROM
功能如下:
1、-55.0℃---125.0℃顯示                                                                                       
2、遙控任意設(shè)定上下限溫度區(qū)間(-50℃---110℃)
3、9位精度----12位精度遙控任意切換
2019.12.30完成功能。
*/


;18B20精度和輸入端修改
        DQ        BIT P3.6                ;18b20輸入腳


;顯示端口定義
        WEI_1        BIT        P2.0                ;顯示右數(shù)第一位
        WEI_2        BIT        P2.1                ;2
        WEI_3        BIT        P2.2                ;3
        WEI_4        BIT        P2.3                ;4
        OUT         EQU        P0


;遙控碼與輸出端口修改
        IR_YK1        EQU 0CCH;遙控用戶碼1(改遙控器按鍵)
        IR_YK2        EQU 1DH        ;遙控用戶碼2
        IR_YK3        EQU 04H        ;遙控功能碼
        IR_YK4        EQU 05H        ;遙控加
        IR_YK5        EQU 06H        ;遙控減
        JK_LENG        BIT P2.6                ;繼電器輸出制冷恒溫
        JK_RE         BIT P2.7                ;繼電器輸出加熱恒溫


;以上定義可修改端口,以下定義不可修改以免影響程序

        FLAG        BIT        38H        ;DS18B20存在標(biāo)志(位定義)
        FUHAO        BIT        39H        ;負(fù)溫度標(biāo)志(位定義)
        IRIN        BIT        P3.2        ;紅外線輸入腳
        A_BIT        EQU        34H   ;放百位
        B_BIT        EQU        35H   ;放十位
        C_BIT        EQU        36H   ;放個(gè)位
        D_BIT        EQU        37H   ;個(gè)位小數(shù)
        WENDU_TH        EQU 32H        ;上限溫度按鍵調(diào)整位置
        WENDU_TL        EQU 33H        ;下限溫度按鍵調(diào)整位置
        JINGDU        EQU 25H        ;配置精度位1FH(9位)3FH(10位)5FH(11位)7FH(12位)

        ORG         00H
        AJMP         MAIN
        ORG         03H         ;外部中斷P3.2(遙控調(diào)整上下限和精度)
        AJMP        INT_0
        ORG         40H

;======================主程序==========================
MAIN:     ;
        MOV DPTR,#TAB
        SETB EA                 ;打開CPU總中斷請(qǐng)求
        SETB IT0         ;設(shè)定INT0的觸發(fā)方式為脈沖負(fù)邊沿觸發(fā)
        SETB EX0
        MOV A,#0
        MOV 20H,A
        MOV 21H,A
        MOV 22H,A
        MOV 23H,A
        MOV R4,#0
AAAA:
        MOV A,R4                       
        JNZ AAAA_0                ;R4=0正常轉(zhuǎn)換溫度,R4不為0只掃描按鍵和顯示程序
        ACALL RE_TEMP        ;讀取溫度值子程序
        ACALL TURN     ;數(shù)據(jù)轉(zhuǎn)化子程序
        ACALL SHUCHU        ;比較輸出控制程序
        MOV R7,#150        ;降低讀取溫度頻率,防止觸發(fā)溫度跳變
AAAA_0:
        ACALL DISPLAY        ;顯示程序
        ACALL KEY_0        ;溫度調(diào)整程序
        DJNZ R7,AAAA_0
        JMP   AAAA

回復(fù)的人多的,感興趣的話,過兩天我燒寫程序發(fā)上來

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:577423 發(fā)表于 2020-1-3 11:01 | 顯示全部樓層
匯編的就算了吧
回復(fù)

使用道具 舉報(bào)

ID:72088 發(fā)表于 2020-12-26 09:34 | 顯示全部樓層
BCD碼的運(yùn)算規(guī)則:

BCD碼是十進(jìn)制數(shù),而運(yùn)算器對(duì)數(shù)據(jù)做加減運(yùn)算時(shí),都是按二進(jìn)制運(yùn)算規(guī)則進(jìn)行處理的。這樣,當(dāng)將 BCD碼傳送給運(yùn)算器進(jìn)行運(yùn)算時(shí),其結(jié)果需要修正。修正的規(guī)則是:當(dāng)兩個(gè)BCD碼相加,如果和等于或小于 1001(即十進(jìn)制數(shù) 9),不需要修正;如果相加之和在 1010 到1111(即十六進(jìn)制數(shù) 0AH~0FH)之間,則需加 6 進(jìn)行修正;如果相加時(shí),本位產(chǎn)生了進(jìn)位,也需加 6 進(jìn)行修正。這樣做的原因是,機(jī)器按二進(jìn)制相加,所以 4 位二進(jìn)制數(shù)相加時(shí),是按“逢十六進(jìn)一”的原則進(jìn)行運(yùn)算的,而實(shí)質(zhì)上是 2 個(gè)十進(jìn)制數(shù)相加,應(yīng)該按“逢十進(jìn)一”的原則相加,16 與10相差 6,所以當(dāng)和超過 9或有進(jìn)位時(shí),都要加 6 進(jìn)行修正。

eg:

(1) 將 5 和 8 以 8421 BCD輸入機(jī)器,則運(yùn)算如下:


  0 1 0 1


  +) 1 0 0 0


  1 1 0 1 結(jié)果大于 9


  +) 0 1 1 0 加 6 修正


  1 0 0 1 1 即13 的 BCD碼


  結(jié)果是 0011,即十進(jìn)制數(shù) 3,還產(chǎn)生了進(jìn)位。5+8=13





(于2012年5月22日20:06:11)

DA為十進(jìn)制調(diào)整指令,功能是在進(jìn)行BCD碼加法運(yùn)算時(shí),用來對(duì)BCD碼的加法運(yùn)算結(jié)果進(jìn)行自動(dòng)修正。但對(duì)BCD碼的減法不能用此指令來進(jìn)行修正。因?yàn)锽CD碼本質(zhì)上時(shí)十進(jìn)制,而單片機(jī)只懂二進(jìn)制,因此當(dāng)兩個(gè)BCD數(shù)相加大于9時(shí),單片機(jī)仍按二進(jìn)制加法相加,應(yīng)進(jìn)位而不產(chǎn)生進(jìn)位,導(dǎo)致出現(xiàn)非法BCD碼,導(dǎo)致計(jì)算結(jié)果出錯(cuò)。在此種情況下必須進(jìn)行+6修正才能得到正確的BCD碼。但是判斷后+6指令繁瑣,因此出現(xiàn)DA這個(gè)指令,可以減少代碼長(zhǎng)度。

12D+39D(十進(jìn)制)
12H和39H(十六進(jìn)制) 這兩個(gè)數(shù)是相等的嗎,12H=18D? 39H=57D ?

DA調(diào)整的對(duì)象是ADD或ADDC以后的結(jié)果,而且是BCD碼相加以后才能夠加以調(diào)整,否則沒有實(shí)際意義!

比如,現(xiàn)在我想執(zhí)行12D+39D也就是兩個(gè)十進(jìn)制數(shù)相加這樣一個(gè)加法(有時(shí)候程序處理的需要,數(shù)據(jù)在單片機(jī)中是以BCD碼的形式存儲(chǔ)的,也就是12H和39H(十六進(jìn)制),但我們可以人為將它 們看為12D和39D(十進(jìn)制),而且還希望相加以后的結(jié)果為51H,也就是說符合十進(jìn)制運(yùn)算規(guī)則12+39=51,而不是4BH的結(jié)果),但這樣的十進(jìn)制加法運(yùn)算在單片機(jī)中是不能夠直接實(shí)現(xiàn)的。因 為單片機(jī)只能夠執(zhí)行二進(jìn)制加法指令,也就是所有的運(yùn)算都按照二進(jìn)制中的規(guī)則進(jìn)行!于是就出現(xiàn)了DA調(diào)整指令!現(xiàn)在12H+39H,將12H放于A中,執(zhí)行 ADD A,#39H指令,則結(jié)果為4BH,這不是我們希望的51H的數(shù)據(jù)形式!!這時(shí)執(zhí)行DA A 指令后,就會(huì)將A中的數(shù)據(jù)調(diào)整為51H(具體調(diào)整過程和原理你可以 詳細(xì)看書,如果單片機(jī)書中講的不詳細(xì),那么微機(jī)原理中一定說的非常詳細(xì)),而我們按照BCD碼規(guī)則就將其看為51D,符合我們的要求!也就是說加數(shù)和被加數(shù)都是BCD碼的形式,最大也只可能是99H,也就是我們十進(jìn)制數(shù)中的99,只有這樣才會(huì)有實(shí)際的意義
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表