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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3495|回復: 0
打印 上一主題 下一主題
收起左側

DS18B20 50H 85等問題調試總結-有程序-努力了就有回報

[復制鏈接]
跳轉到指定樓層
樓主
ID:83710 發表于 2015-6-23 21:11 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
回顧我的18B20實驗,直到今晚才告一段落,讓我記住這一天2010年5月2日晚九點,現在回顧一下吧!
自從1602做出來后,我就致力于18B20溫度傳感器,因為他不僅體積小,而且是單總線,也是很先進的,我起初只意識到這東西的先進性,并沒有了解他的難度,記得是四月初吧,那晚我在1602成功后,驕傲的忘乎所以,于是自己編了一個ASM,寫進去直接傻逼!我那一晚試了七八次,都失敗了,一連幾晚編了寫,寫了編,還是失敗,我開始重新審視這個DS18B20,我上網找了大量的資料,什么中文的,英文的,全解的,入門的,還有程序,結果,還是失敗,現在看來,雖然我失敗了,但是我已初步了解了1820的構造,和部分時序,半個月后,還是不行,我陷入思考中,為什么?時序不正確?要怎么做?后來想了一個辦法,讀溫度,顯示在P0口上,那樣一旦成功,在P0上會有所反應,結果,在一切正常下,竟然讀出一個0550H,而且不動,一直顯示50H,但那時我可以證明我的復位時序是對的,悲哀的是我不知道怎樣改了,有過了幾天,在網上找到了關于顯示0550H的信息,他們稱之為85現象,但是還是沒解決,大前天,我找了一段程序,寫入,竟然讓我眼前一亮,因為他可以讀出,我在此基礎上,看我的時序,原來是我時序出的問題,我按照手冊從新編寫,果然好了,讀出是溫度值,不過是BCD碼的,然后我著手讓他變成十進制,有在網上找公式,費了好大腦汁,寫出來,一試,有傻逼,真無語了,還有亂碼,直到今晚,我下了班,吃了飯,有來到電腦前,開機,運行KEIL,打開程序,把我的想發寫進去,失敗,我在一次看資料,說是得乘以0.0625,我想先不用這木弄,先乘以0.5,于是我組合高低字節,然后,處以2,顯示,結果。。。。。,顯示12攝氏度,不可能啊,今天很熱,至少二十度,顯然,不正確,我反復搞了幾次,還是不行,但是我在偶然間,看到一個現象,就是我一按復位時,顯示42攝氏度我一想,復位時應該是85才對,怎么是...42乘以2正好約等于85,數據處理問題,我馬上把處以2,去掉,又一試,我成功了,顯示25度,和空調上的數值一致,
            我........淚.........
這是堅持不懈的結果,永不放棄的結果,在哪里摔倒,在哪里站起來,雖然我笨,但是別人能做到的我通過努力也一定會做到,我付出了一個月的晚上,在工地我也在想,沒事我就想,我心血太多了,我寫了二百多次,實驗更多了,開關,通電斷電,資料在我電腦里存滿了,網站在我地址欄里擠滿了,今天.......不說了,看程序
ORG 0000H
DQ EQU P1.6
LSB EQU 50H
MSB EQU 51H
   mov 30H,#00h ;       個位緩沖區
     mov 31H,#00h  ;     十位緩沖區
  MOV 32H,#00H ;   百位緩沖區
  MOV 33H,#00H;      千位緩沖區
mov dptr,#tab
MAIN:
LCALL GMP
   lcall display
SJMP MAIN   
      
GMP: SETB P1.6        
           LCALL RSET_18B20
     MOV A,#0CCH
     LCALL WRITE_18B20
     MOV A,#44H
     LCALL WRITE_18B20
   
   
   
     LCALL DELAY

     LCALL RSET_18B20         
     MOV A,#0CCH
     LCALL WRITE_18B20
     MOV A,#0BEH
     LCALL WRITE_18B20
         
     LCALL READ_18B20
          MOV LSB,A      
     LCALL READ_18B20
           MOV MSB,A
      RET
   
      
RSET_18B20:SETB DQ
CLR DQ ;復位開始拉低總線500微秒等待應答。
  MOV R0,#100
W:  NOP   
  NOP
  NOP    ;延時500 微秒
  DJNZ R0,W
SETB DQ    ;總線拉高
MOV R0,#30 ;延時60微秒
DJNZ R0,$
JB DQ,$ ;等待18B20應答低脈沖為存在脈沖,MCU收到后才向下執行。
MOV R0,#200 ;延時60微秒
DJNZ R0,$     ;切忌切忌哈哈哈
RET
WRITE_18B20:MOV R2,#8;一共8位數據
WE: CLR C
CLR DQ
MOV R0,#5
DJNZ R0,$
RRC A
MOV DQ,C
MOV R0,#22
DJNZ R0,$
SETB DQ
NOP
DJNZ R2,WE
RET
READ_18B20:MOV R2,#8
RE:SETB DQ                     
NOP
CLR C
CLR DQ
NOP
NOP
NOP
NOP
SETB DQ
NOP
NOP
NOP
NOP
NOP
NOP
NOP
MOV C,DQ
MOV R0,#21
DJNZ R0,$
RRC A
DJNZ R2,RE
RET
   
DELAY:MOV R0,#0FFH
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R0,$
RET
      
display:
MOV A,LSB
ANL A,#0F0H
SWAP A
MOV LSB,A     ;消除小數
MOV A,MSB
ANL A,#07H
SWAP A
MOV MSB,A
ADD A,LSB
MOV B,#10
DIV AB
MOV 30H,B
MOV 31H,A
        

;*****************顯示子程序 **********************************************
      clr P1.3
     mov a,30H ;個位
     movC A,@a+dptr
  MOV P0,A ;向個位寫數據
     lcall deley
     sETb P1.3
     clr p1.2
     mov a,31H ;十位
     movc A,@a+dptr
  MOV P0,A;向十位寫數據
  lcall deley
  sETb P1.2
  clr P1.1
     mov a,32H;百位
     movC A,@a+dptr
  MOV P0,A;向百位寫數據
     lcall deley
     sETb P1.1
     clr p1.0
     mov a,33H ;千位
     movc A,@a+dptr
  MOV P0,A;向去千位寫數據
  lcall deley
  sETb P1.0
   
;;**************************************************
deley:mov r0,#01h
loop:mov r1,#0ffh
lo:nop
nop
nop
NOP
NOP

   djnz r1,lo
   djnz r0,loop
   ret
  tab:db  0c0h,0f9h,0a4h,0b0h,099h,092h,082h,0f8h,080h,090h
ret
END

5月2日晚于天津開發區第四項目部二樓宿舍


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩中文字幕一区二区 | 日本不卡一二三 | 国产欧美性成人精品午夜 | 日本欧美国产在线观看 | 欧美一级片 | 综合久久一区 | 日韩视频―中文字幕 | www.久久 | 黄色在线| 99re6在线 | 日日夜夜天天 | av黄色片在线观看 | 91日韩| 亚洲97| 日本韩国欧美在线观看 | 欧美日韩三级视频 | 久久精品视频在线观看 | 男人午夜视频 | 久久精品国产一区二区电影 | 国产精品不卡 | 国产视频不卡一区 | 怡红院免费的全部视频 | 色综合久久久久 | 日韩乱码一二三 | 国产日韩欧美一区二区 | 我我色综合 | 一区二区视频在线观看 | 玖玖在线精品 | 一区二区视频在线 | 亚洲高清免费观看 | 欧美日在线 | 亚洲天堂中文字幕 | 亚洲欧美激情精品一区二区 | 欧美成年人 | 欧美乱做爰xxxⅹ久久久 | 蜜桃精品视频在线 | 亚洲三级在线观看 | 亚洲午夜精品 | 国产成人精品免费视频大全最热 | 日韩小视频 | 亚洲欧美一区二区三区情侣bbw |