wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9380|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

基于51單片機的DS18B20溫度+LCD顯示匯編語言源程序與仿真

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:210588 發(fā)表于 2017-9-2 09:56 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
基于51單片機的DS18B20溫度+LCD顯示(匯編編寫)


單片機源程序如下:
  1.                   TEMP_ZH   DATA  24H     ;實時溫度值存放單元
  2.           TEMPL     DATA  25H     ;
  3.           TEMPH     DATA  26H     ;
  4.           TEMP_TH   DATA  27H     ;高溫報警值存放單元
  5.           TEMP_TL   DATA  28H     ;低溫報警值存放單元
  6.           TEMPHC    DATA  29H     ;
  7.           TEMPLC    DATA  2AH

  8.           K1     EQU  P1.4
  9.           K2     EQU  P1.5
  10.           K3     EQU  P1.6
  11.           K4     EQU  P1.7

  12.           BEEP      EQU  P3.7
  13.           RELAY     EQU  P1.3
  14.           LCD_X     EQU  2FH      ;LCD 地址變量
  15.           LCD_RS    EQU  P2.0
  16.           LCD_RW    EQU  P2.1
  17.           LCD_EN    EQU  P2.2
  18.           flag1     equ  20H.0    ;DS18B20是否存在標(biāo)記
  19.           KEY_UD    EQU  20H.1    ;設(shè)定 KEY 的UP與DOWN 標(biāo)記
  20.           date_line equ p3.3
  21. ;=====================================================
  22.            ORG  0000H
  23.            JMP  MAIN

  24.                   
  25.                   ORG  0030H
  26. MAIN:     MOV  SP,#60H
  27.           MOV  A,#00H
  28.           MOV  R0,#20H       ;將 20H-2FH 單元清零
  29.           MOV  R1,#10H
  30. CLEAR:    MOV  @R0,A
  31.           INC  R0
  32.           DJNZ  R1,CLEAR

  33.           CALL  SET_LCD
  34.           CALL  RE_18B20

  35. start:    CALL  RESET          ;18B20復(fù)位子程序
  36.           JNB   FLAG1,START1   ;DS1820不存在
  37.           CALL  MENU_OK
  38.           CALL  READ_E2
  39.           CALL  TEMP_BJ        ;顯示溫度標(biāo)記
  40.           JMP   START2
  41. START1:   CALL  MENU_ERROR
  42.           CALL  TEMP_BJ        ;顯示溫度標(biāo)記
  43.           JMP  $

  44. START2:
  45.           CALL  RESET
  46.           JNB  FLAG1,START1    ;DS1820不存在
  47.           MOV   A,#0CCH        ; 跳過ROM匹配
  48.           CALL  WRITE
  49.           MOV   A,#44H         ; 發(fā)出溫度轉(zhuǎn)換命令
  50.           CALL  WRITE
  51.           CALL  RESET
  52.           MOV   A,#0CCH        ; 跳過ROM匹配
  53.           CALL  WRITE
  54.           MOV   A,#0BEH        ; 發(fā)出讀溫度命令
  55.           CALL  WRITE
  56.           CALL  READ
  57.           call CONVTEMP
  58.           Call DISPBCD
  59.           CALL CONV
  60.           CALL TEMP_COMP
  61.           CALL  PROC_KEY       ; 鍵掃描

  62.    SJMP START2
  63. ;-----------------------------------------------------
  64. PROC_KEY:
  65.   JB  K1,PROC_K1    ; 按鍵K1處理
  66.          CALL  BEEP_BL
  67.          JNB  K1,$
  68.          MOV  DPTR,#M_ALAX1
  69.          MOV  A,#1
  70.          CALL  LCD_PRINT
  71.          CALL  LOOK_ALARM
  72.          JB  K3,$
  73.          CALL  BEEP_BL
  74.          JMP  PROC_K2
  75. PROC_K1:     ; 按鍵K2處理
  76.          JB  K2,PROC_END
  77.          CALL  BEEP_BL
  78.          JNB  K2,$
  79.          MOV   DPTR,#RESET_A1
  80.          MOV   A,#1
  81.          CALL  LCD_PRINT
  82.          CALL  SET_ALARM
  83.          CALL  RE_18B20           ;將設(shè)定的TH,TL值寫入DS18B20內(nèi)
  84.          CALL  WRITE_E2
  85. PROC_K2:
  86.          CALL  MENU_OK
  87.          CALL  TEMP_BJ
  88. PROC_END:
  89.          RET
  90. ;============================================
  91. ;設(shè)定報警值 TH、TL
  92. ;============================================
  93. SET_ALARM:
  94.          ;CALL  RESET_ALARM
  95.          CALL  LOOK_ALARM
  96. AS0:
  97.          JB   K1,AS00
  98.          CALL  BEEP_BL
  99.          JNB  K1,$
  100.          CPL  20H.1            ;UP/DOWN 標(biāo)記
  101. AS00:    JB  20H.1,ASZ01       ;20H.1=1,UP
  102.          JMP  ASJ01            ;20H.1=0,DOWN

  103. ASZ01:   JB  K2,ASZ02          ;TH值調(diào)整(增加)
  104.          CALL  BEEP_BL
  105.          INC  TEMP_TH
  106.          MOV  A,TEMP_TH
  107.          CJNE  A,#120,ASZ011
  108.          MOV  TEMP_TH,#0
  109. ASZ011:  CALL  LOOK_ALARM
  110.          MOV  R5,#10
  111.          CALL  DELAY
  112.          JMP  ASZ01

  113. ASZ02:   JB  K3,ASZ03          ;TL值調(diào)整(增加)
  114.          CALL  BEEP_BL
  115.          INC  TEMP_TL
  116.          MOV  A,TEMP_TL
  117.          CJNE  A,#99,ASZ021
  118.          MOV  TEMP_TL,#00H
  119. ASZ021:  CALL  LOOK_ALARM    ;
  120.          MOV  R5,#10
  121.          CALL  DELAY
  122.          JMP  ASZ02
  123. ASZ03:   JB  K4,AS0          ;確定調(diào)整 OK
  124.          CALL  BEEP_BL
  125.          JNB  K4,$
  126.          RET

  127. ASJ01:
  128.          JB  K2,ASJ02          ;TH值調(diào)整 (減少)
  129.          CALL  BEEP_BL
  130.          DEC   TEMP_TH
  131.          MOV  A,TEMP_TH
  132.          CJNE  A,#0FFH,ASJ011
  133.          JMP  ASJ022
  134. ASJ011:  CALL  LOOK_ALARM
  135.          MOV  R5,#10
  136.          CALL  DELAY
  137.          JMP  AS0

  138. ASJ02:   JB  K3,ASJ03         ;TL值調(diào)整(減少)
  139.          CALL  BEEP_BL
  140.          DEC  TEMP_TL
  141.          MOV  A,TEMP_TL
  142.          CJNE  A,#0FFH,ASJ021
  143.          JMP  ASJ022
  144. ASJ021:  CALL  LOOK_ALARM    ;
  145.          MOV  R5,#10
  146.          CALL  DELAY
  147.          JMP  AS0
  148. ASJ022:  CPL  20H.1
  149.          JMP  ASZ01
  150. ASJ03:   JMP  ASZ03
  151.          RET


  152. RESET_ALARM:
  153.           MOV  DPTR,#RESET_A1  ;指針指到顯示信息區(qū)
  154.           MOV  A,#1            ;顯示在第一行
  155.           CALL  LCD_PRINT
  156.           RET
  157. RESET_A1:
  158.      DB  "RESET ALERT CODE"
  159. ;====================================================
  160. ;實際溫度值與標(biāo)記溫度值比較子程序
  161. ;====================================================
  162. TEMP_COMP:
  163.           MOV  A,TEMP_TH      
  164.           SUBB  A,TEMP_ZH       ;減數(shù)>被減數(shù),則
  165.           JC  CHULI1            ;借位標(biāo)志位C=1,轉(zhuǎn)
  166.           MOV  A,TEMP_ZH
  167.           SUBB  A,TEMP_TL       ;減數(shù)>被減數(shù),則
  168.           JC  CHULI2            ;借位標(biāo)志位C=1,轉(zhuǎn)
  169.           MOV  DPTR,#BJ5
  170.           CALL  TEMP_BJ3
  171.           CLR   RELAY           ;繼電器吸合
  172.           RET
  173. CHULI1:
  174.           MOV  DPTR,#BJ3
  175.           CALL  TEMP_BJ3
  176.           SETB  RELAY           ;繼電器關(guān)閉
  177.           CALL  BEEP_BL
  178.           RET
  179. CHULI2:
  180.           MOV  DPTR,#BJ4
  181.           CALL  TEMP_BJ3
  182.           CALL  BEEP_BL
  183.           RET
  184. ;-----------------------------------------
  185. TEMP_BJ3:
  186.           MOV  A,#0CEH
  187.           CALL WCOM
  188.           MOV  R1,#0
  189.           MOV  R0,#2

  190. BBJJ3:    MOV  A,R1
  191.           MOVC A,@A+DPTR
  192.           CALL  WDATA
  193.           INC R1
  194.           DJNZ  R0,BBJJ3
  195.           RET
  196. BJ3:
  197.       DB  ">H"
  198. BJ4:
  199.       DB  "<L"
  200. BJ5:
  201.       DB  " !"
  202. ;==================================================
  203. ;顯示溫度標(biāo)記子程序
  204. ;==================================================
  205. TEMP_BJ:
  206.           MOV  A,#0CBH
  207.           CALL WCOM
  208.           MOV  DPTR,#BJ1  ;指針指到顯示消息
  209.           MOV  R1,#0
  210.           MOV  R0,#2

  211. BBJJ1:    MOV  A,R1
  212.           MOVC A,@A+DPTR
  213.           CALL  WDATA
  214.           INC R1
  215.           DJNZ  R0,BBJJ1
  216.           RET
  217. BJ1:
  218.       DB  00H,"C"
  219. ;=================================================
  220. MENU_OK:

  221.           MOV  DPTR,#M_OK1  ;指針指到顯示消息
  222.           MOV  A,#1          ;顯示在第一行
  223.           CALL  LCD_PRINT
  224.           MOV  DPTR,#M_OK2  ;指針指到顯示消息
  225.           MOV  A,#2          ;顯示在第一行
  226.           CALL  LCD_PRINT

  227.           RET
  228. M_OK1:
  229.     DB   "   DS18B20 OK   ",0
  230. M_OK2:
  231.     DB   " TEMP:          ",0
  232. ;-----------------------------------------------
  233. MENU_ERROR:
  234.           MOV  DPTR,#M_ERROR1  ;指針指到顯示消息1
  235.           MOV  A,#1          ;顯示在第一行
  236.           CALL  LCD_PRINT
  237.           MOV  DPTR,#M_ERROR2  ;指針指到顯示消息1
  238.           MOV  A,#2          ;顯示在第一行
  239.           CALL  LCD_PRINT
  240.           RET
  241. M_ERROR1:
  242.     DB   " DS18B20 ERROR  ",0
  243. M_ERROR2:
  244.     DB   " TEMP: ----     ",0
  245. ;====================================================
  246. reset:  setb date_line
  247.         nop
  248.         clr date_line
  249.         mov r0,#6bh         ;主機發(fā)出延時復(fù)位低脈沖
  250.         mov r1,#04h
  251. tsr1:   djnz r0,$
  252.         mov r0,#6bh
  253.         djnz r1,tsr1
  254.         setb date_line        ;然后拉高數(shù)據(jù)線
  255.         nop
  256.         nop
  257.         nop
  258.         mov r0,#32h
  259. tsr2:   jnb date_line,tsr3   ;等待DS18B20回應(yīng)
  260.         djnz r0,tsr2
  261.         jmp tsr4             ; 延時
  262. tsr3:   setb flag1           ; 置標(biāo)志位,表示DS1820存在
  263.         jmp tsr5
  264. tsr4:   clr flag1            ; 清標(biāo)志位,表示DS1820不存在
  265.         jmp tsr7
  266. tsr5:   mov r0,#06bh
  267. tsr6:   djnz r0,[        DISCUZ_CODE_1        ]nbsp;           ; 時序要求延時一段時間
  268. tsr7:   setb date_line
  269.         ret
  270. ;=======================================================
  271. RE_18B20:
  272.         JB  FLAG1,RE_18B20A
  273.         RET
  274. RE_18B20A:
  275.         CALL  RESET
  276.         MOV  A,#0CCH       ;跳過ROM匹配
  277.         LCALL  WRITE
  278.         MOV  A,#4EH        ;寫暫存寄存器
  279.         LCALL  WRITE
  280.         MOV  A,TEMP_TH     ;TH(報警上限)
  281.         LCALL  WRITE
  282.         MOV  A,TEMP_TL     ;TL(報警下限)
  283.         LCALL  WRITE
  284.         MOV  A,#7FH        ;12位精確度
  285.         LCALL  WRITE
  286.         RET
  287. ;------------------------------------------------------------
  288. WRITE_E2:
  289.         CALL  RESET
  290.         MOV  A,#0CCH        ;跳過ROM匹配
  291.         LCALL  WRITE
  292.         MOV  A,#48H         ;把暫存器里的溫度報警值拷貝到EEROM
  293.         LCALL  WRITE
  294.         RET
  295. ;--------------------------------------------------------------
  296. READ_E2:
  297.         CALL  RESET
  298.         MOV  A,#0CCH        ;跳過ROM匹配
  299.         LCALL  WRITE
  300.         MOV  A,#0B8H        ;把EEROM里的溫度報警值拷貝回暫存器
  301.         CALL  WRITE
  302.         RET
  303. ;--------------------------------------------------------------
  304. ;將自定義字符寫入LCD1602的CGRAM中
  305. ;--------------------------------------------------------------
  306. STORE_DATA:
  307.         MOV  A,#40H
  308.         CALL  WCOM
  309.         MOV  R2,#08H
  310.         MOV  DPTR,#D_DATA
  311.         MOV  R3,#00H
  312. S_DATA:
  313.         MOV  A,R3
  314.         MOVC  A,@A+DPTR
  315.         CALL  WDATA      ;寫入數(shù)據(jù)
  316.         INC  R3
  317.         DJNZ  R2,S_DATA
  318.         RET

  319. D_DATA:
  320.     DB  0CH,12H,12H,0CH,00H,00H,00H,00H
  321. ;==============================================================
  322. write:  mov r2,#8            ;一共8位數(shù)據(jù)
  323.         CLR  C
  324. wr1:
  325.         clr date_line        ;開始寫入DS18B20總線要處于復(fù)位(低)狀態(tài)
  326.         mov r3,#07
  327.         djnz r3,[        DISCUZ_CODE_1        ]nbsp;           ;總線復(fù)位保持16微妙以上
  328.         rrc a                ;把一個字節(jié)DATA 分成8個BIT環(huán)移給C
  329.         mov date_line,c      ;寫入一個BIT
  330.         mov r3,#3CH
  331.         djnz r3,[        DISCUZ_CODE_1        ]nbsp;           ;等待100微妙
  332.         setb date_line       ;重新釋放總線
  333.         nop
  334.         djnz r2,wr1          ;寫入下一個BIT
  335.         setb date_line
  336.         ret
  337. ;--------------------------------------------------------------------
  338. read:    mov r4,#4          ; 將溫度低位、高位、TH、TL從DS18B20中讀出
  339.          mov r1,#TEMPL        ; 存入25H、26H、27H、28H
  340. re00:    mov r2,#8
  341. re01:    clr cy
  342.          setb date_line
  343.          nop
  344.          nop
  345.          clr date_line        ;讀前總線保持為低
  346.          nop
  347.          nop
  348.          nop
  349.          setb date_line       ;開始讀總線釋放
  350.          mov r3,#09           ;延時18微妙
  351.          djnz r3,$
  352.          mov c,date_line      ;從DS18B20總線讀得一個BIT
  353.          mov r3,#3CH
  354.          djnz r3,[        DISCUZ_CODE_1        ]nbsp;           ;等待100微妙
  355.          rrc a                ;把讀得的位值環(huán)移給A
  356.          djnz r2,re01         ;讀下一個BIT
  357.          mov @r1,a
  358.          inc r1
  359.          djnz r4,re00
  360.          ret


  361. ;*****************************************************
  362. ;  處理溫度 BCD 碼子程序
  363. ;****************************************************
  364. CONVTEMP:      MOV  A,TEMPH       ;判溫度是否零下
  365.                ANL  A,#80H
  366.                JZ  TEMPC1         ;溫度零上轉(zhuǎn)
  367.                CLR  C
  368.                MOV  A,TEMPL       ;二進(jìn)制數(shù)求補(雙字節(jié))
  369.                CPL  A             ;取反加1
  370.                ADD  A,#01H
  371.                MOV  TEMPL,A
  372.                MOV  A,TEMPH
  373.                CPL  A
  374.                ADDC  A,#00H
  375.                MOV  TEMPH,A
  376.                SJMP  TEMPC11

  377. TEMPC1:        MOV  TEMPHC,#0AH     ;+
  378. TEMPC11:       MOV  A,TEMPHC
  379.                SWAP  A
  380.                MOV  TEMPHC,A
  381.                MOV  A,TEMPL
  382.                ANL  A,#0FH              ;乘0.0625
  383.                MOV  DPTR,#TEMPDOTTAB
  384.                MOVC  A,@A+DPTR
  385.                MOV  TEMPLC,A            ;TEMPLC LOW=小數(shù)部分 BCD

  386.                MOV  A,TEMPL             ;整數(shù)部分
  387.                ANL  A,#0F0H             ;取出高四位
  388.                SWAP  A
  389.                MOV  TEMPL,A
  390.                MOV  A,TEMPH             ;取出低四位
  391.                ANL  A,#0FH
  392.                SWAP  A
  393.                ORL  A,TEMPL             ;重新組合
  394.                MOV  TEMP_ZH,A
  395.                LCALL  HEX2BCD1
  396.                MOV  TEMPL,A
  397.                ANL  A,#0F0H
  398.                SWAP  A
  399.                ORL  A,TEMPHC            ;TEMPHC LOW = 十位數(shù) BCD
  400.                MOV  TEMPHC,A
  401.                MOV  A,TEMPL
  402.                ANL  A,#0FH
  403.                SWAP  A                  ;TEMPLC HI = 個位數(shù) BCD
  404.                ORL  A,TEMPLC
  405.                MOV  TEMPLC,A
  406.                MOV  A,R4
  407.                JZ  TEMPC12
  408.                ANL  A,#0FH
  409.                SWAP  A
  410.                MOV  R4,A
  411.                MOV  A,TEMPHC            ;TEMPHC HI = 百位數(shù) BCD
  412.                ANL  A,#0FH
  413.                ORL  A,R4
  414.                MOV  TEMPHC,A
  415. TEMPC12:       RET
  416. ;---------------------------------------------------------------
  417. HEX2BCD1:
  418.               MOV  B,#064H          ;十六進(jìn)制-> BCD
  419.               DIV  AB               ;B= A % 100
  420.               MOV  R4,A             ;R7 = 百位數(shù)
  421.               MOV  A,#0AH
  422.               XCH  A,B
  423.               DIV  AB               ;B = A % B
  424.               SWAP  A
  425.               ORL  A,B
  426.               RET
  427. ;-------------------------------------------------------------
  428. ;  小數(shù)部分碼表
  429. ;-------------------------------------------------------------
  430. TEMPDOTTAB:
  431.          DB   00H,00H,01H,01H,02H,03H,03H,04H
  432.          DB   05H,05H,06H,06H,07H,08H,08H,09H
  433. ;=====================================================
  434. LOOK_ALARM:

  435.           MOV  DPTR,#M_ALAX2   ;指針指到顯示信息區(qū)
  436.           MOV  A,#2            ;顯示在第二行
  437.           CALL  LCD_PRINT

  438.           MOV  A,#0C6H
  439.           CALL  TEMP_BJ1
  440.           MOV  A,TEMP_TH       ;加載TH數(shù)據(jù)
  441.           MOV  LCD_X,#3        ;設(shè)置位置
  442.           CALL  SHOW_DIG2H     ;顯示數(shù)據(jù)

  443.           MOV  A,#0CEH
  444.           CALL  TEMP_BJ1
  445.           MOV  A,TEMP_TL       ;加載TL數(shù)據(jù)
  446.           MOV  LCD_X,#12       ;設(shè)置位置
  447.           CALL  SHOW_DIG2L     ;顯示數(shù)據(jù)
  448.           RET
  449. ;--------------------------------------------
  450. M_ALAX1:
  451.      DB   " LOOK ALERT CODE",0
  452. M_ALAX2:
  453.      DB   "TH:      TL:    ",0
  454. ;--------------------------------------------
  455. TEMP_BJ1:
  456.           CALL WCOM
  457.           MOV  DPTR,#BJ2      ;指針指到顯示信息區(qū)
  458.           MOV  R1,#0
  459.           MOV  R0,#2

  460. BBJJ2:    MOV  A,R1
  461.           MOVC A,@A+DPTR
  462.           CALL  WDATA
  463.           INC R1
  464.           DJNZ  R0,BBJJ2
  465.           RET
  466. BJ2:
  467.       DB  00H,"C"

  468. ;---------------------------------------------------
  469. SHOW_DIG2H:                ;在 LCD 的第二行顯示數(shù)字
  470.           MOV  B,#100
  471.           DIV  AB
  472.           ADD  A,#30H
  473.           PUSH  B
  474.           MOV  B,LCD_X
  475.           CALL  LCDP2
  476.           POP  B
  477.           MOV  A,#0AH
  478.           XCH  A,B
  479.           DIV  AB
  480.           ADD  A,#30H
  481.           INC  LCD_X
  482.           PUSH  B
  483.           MOV  B,LCD_X
  484.           CALL  LCDP2
  485.           POP  B
  486.           INC  LCD_X
  487.           MOV  A,B
  488.           MOV  B,LCD_X
  489.           ADD  A,#30H
  490.           CALL  LCDP2
  491.           RET

  492. SHOW_DIG2L:                ;在 LCD 的第二行顯示數(shù)字
  493.           MOV  B,#100
  494.           DIV  AB
  495.           MOV  A,#0AH
  496.           XCH  A,B
  497.           DIV  AB
  498.           ADD  A,#30H
  499.           PUSH  B
  500.           MOV  B,LCD_X
  501.           CALL  LCDP2
  502.           POP  B
  503.           INC  LCD_X
  504.           MOV  A,B
  505.           MOV  B,LCD_X
  506.           ADD  A,#30H
  507.           CALL  LCDP2
  508.           RET
  509. ;-------------------------------------------------------------
  510. ;顯示區(qū) BCD 碼溫度值刷新子程序
  511. ;-------------------------------------------------------------
  512. DISPBCD:
  513.               MOV  A,TEMPLC
  514.               ANL  A,#0FH
  515.               MOV  70H,A                 ;小數(shù)位
  516.               MOV  A,TEMPLC
  517.               SWAP  A
  518.               ANL  A,#0FH
  519.               MOV  71H,A                 ;個位
  520.               MOV  A,TEMPHC
  521.               ANL  A,#0FH
  522.               MOV  72H,A                 ;十位
  523.               MOV  A,TEMPHC
  524.               SWAP  A
  525.               ANL  A,#0FH
  526.               MOV  73H,A                 ;百位
  527.               MOV  A,TEMPHC
  528.               ANL  A,#0F0H
  529.               CJNE  A,#010H,DISPBCD0
  530.               SJMP  DISPBCD2

  531. DISPBCD0:     MOV  A,TEMPHC
  532.               ANL  A,#0FH
  533.               JNZ  DISPBCD2               ;十位數(shù)是0
  534.               MOV  A,TEMPHC
  535.               SWAP  A
  536.               ANL  A,#0FH
  537.               MOV  73H,#0AH               ;符號位不顯示
  538.               MOV  72H,A                  ;十位數(shù)顯示符號
  539. DISPBCD2:     RET

  540. ;==========================================================
  541. ; LCD 1602 顯示子程序
  542. ;==========================================================
  543. CONV:
  544.           MOV  A,73H         ;加載百位數(shù)據(jù)
  545.           MOV  LCD_X,#6      ;設(shè)置位置
  546.           CJNE A,#1,CONV1
  547.           JMP  CONV2
  548. CONV1:    MOV  A,#" "
  549.           MOV  B,LCD_X
  550.           CALL  LCDP2
  551.           JMP  CONV3
  552. CONV2:    CALL  SHOW_DIG2    ;顯示數(shù)據(jù)
  553. CONV3:    INC  LCD_X             ;
  554.           mov  a,72h         ;十位
  555.           CALL  SHOW_DIG2
  556.           inc  LCD_X
  557.           mov  a,71h         ;個位
  558.           CALL  SHOW_DIG2
  559.           inc  LCD_X
  560.           MOV  A,#'.'
  561.           MOV  B,LCD_X
  562.           CALL  LCDP2
  563.           MOV  A,70h         ;加載小數(shù)點位
  564.           INC  LCD_X         ;設(shè)置位置
  565.           CALL  SHOW_DIG2    ;顯示數(shù)據(jù)
  566.           RET
  567. ;-------------------------------------------------------
  568. SHOW_DIG2:                 ;在 LCD 的第二行顯示數(shù)字
  569.           ADD  A,#30H
  570.           MOV  B,LCD_X
  571.           CALL  LCDP2
  572.           RET
  573. ;---------------------------------------------------------
  574. LCDP2:                    ;在LCD的第二行顯示字符
  575.          PUSH  ACC        ;
  576.          MOV  A,B         ;設(shè)置顯示地址
  577.          ADD  A,#0C0H     ;設(shè)置LCD的第二行地址
  578.          CALL  WCOM       ;寫入命令
  579.          POP  ACC         ;由堆棧取出A
  580.          CALL  WDATA      ;寫入數(shù)據(jù)
  581.          RET
  582. ;---------------------------------------------------------


  583. SET_LCD:                     ;對 LCD 做初始化設(shè)置及測試
  584.           CLR  LCD_EN
  585.           CALL  INIT_LCD     ;初始化 LCD
  586.           CALL  STORE_DATA   ;將自定義字符存入LCD的CGRAM
  587.           RET
  588. INIT_LCD:                  ;8位I/O控制 LCD 接口初始化
  589.           MOV  A,#38H        ;雙列顯示,字形5*7點陣
  590.           CALL  WCOM
  591.           call  delay1
  592.           MOV  A,#38H
  593.           CALL  WCOM
  594.           call  delay1

  595.           MOV  A,#38H
  596.           CALL  WCOM
  597.           call  delay1
  598.           MOV  A,#0CH        ;開顯示,顯示光標(biāo),光標(biāo)不閃爍
  599.           CALL  WCOM
  600.           call  delay1
  601.           MOV  A,#01H        ;清除 LCD 顯示屏
  602.           CALL  WCOM
  603.           call  delay1
  604.           RET
  605. ;==================================================
  606. CLR_LINE1:                   ;清除LCD的第一行字符
  607.           MOV  A,#80H        ;設(shè)置 LCD 的第一行地址
  608.           CALL  WCOM         ;
  609.           MOV  R0,#24        ;設(shè)置計數(shù)值
  610.     C1:   MOV  A,#' '        ;載入空格符至LCD
  611.           CALL  WDATA        ;輸出字符至LCD
  612.           DJNZ  R0,C1        ;計數(shù)結(jié)束
  613.           RET
  614. ;==================================================
  615. LCD_PRINT:       ;在LCD的第一行或第二行顯示字符

  616.           CJNE  A,#1,LINE2  ;判斷是否為第一行
  617.   LINE1:  MOV  A,#80H       ;設(shè)置 LCD 的第一行地址
  618.           CALL  WCOM        ;寫入命令
  619.           CALL  CLR_LINE    ;清除該行字符數(shù)據(jù)
  620.           MOV  A,#80H       ;設(shè)置 LCD 的第一行地址
  621.           CALL  WCOM        ;寫入命令
  622.           JMP  FILL

  623.   LINE2:  MOV  A,#0C0H      ;設(shè)置 LCD 的第二行地址
  624.           CALL  WCOM        ;寫入命令
  625.           CALL  CLR_LINE    ;清除該行字符數(shù)據(jù)
  626.           MOV  A,#0C0H      ;設(shè)置 LCD 的第二行地址
  627.           CALL  WCOM
  628.   FILL:   CLR  A            ;填入字符
  629.           MOVC  A,@A+DPTR   ;由消息區(qū)取出字符
  630.           CJNE  A,#0,LC1    ;判斷是否為結(jié)束碼
  631. ……………………

  632. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
單片機DS18B20.rar (79.88 KB, 下載次數(shù): 148)





評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:278194 發(fā)表于 2018-11-27 17:23 | 只看該作者
想問一下 你的硬件仿真感覺少好多東西?
回復(fù)

使用道具 舉報

板凳
ID:681943 發(fā)表于 2020-1-6 10:13 | 只看該作者
硬件仿真少了一些電路?
回復(fù)

使用道具 舉報

地板
ID:783871 發(fā)表于 2020-6-28 13:01 | 只看該作者
程序調(diào)試的好多未定義啊,怎么解決啊?
回復(fù)

使用道具 舉報

5#
ID:61140 發(fā)表于 2022-4-4 19:22 | 只看該作者
可以仿真成功,但硬件實測第一行顯示白塊,第二行不顯示
回復(fù)

使用道具 舉報

6#
ID:1032085 發(fā)表于 2022-6-4 13:20 | 只看該作者
這個怎么設(shè)置讓他顯示負(fù)數(shù)啊
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
国产成人精品免费看在线播放 | 欧美日韩电影在线播放| 欧美色图12p| 亚洲老头同性xxxxx| 欧美理论电影在线观看| 91在线观看免费| 久久天天东北熟女毛茸茸| 伊人色在线观看| 日本黄区免费视频观看| 在线观看不卡的av| 国产福利一区二区在线精品| 黄色资源在线看| 中文在线观看免费| 国产精品白丝av嫩草影院| 国内精品福利| 91片黄在线观看| 欧美性色黄大片手机版| 日本不卡一区在线| 亚洲理论中文字幕| 亚洲一区二区乱码| 日本一区二区视频在线播放| 亚洲综合视频网站| 尤物视频在线观看国产| 日韩免费av网站| 国产同性人妖ts口直男| 人妻精品一区二区三区| 狠狠色综合久久婷婷| 四虎国产精品成人永久免费影视| 欧美另类69xxx| 免费三片60分钟| baoyu777.永久免费视频| 性网站在线免费观看| 一区二区成人| 先锋成人av| 国产欧美自拍| 欧美激情影院| 一区三区视频| 国产乱人伦偷精品视频不卡| 久久美女高清视频| 亚洲已满18点击进入久久| 精品视频999| 国产视频一区在线| 欧美成人中文字幕| 国产欧美一区二区三区在线| 蜜桃欧美视频| 黄色www网站| 国产高潮失禁喷水爽到抽搐 | 午夜成人影视| 国精产品一区| 日韩国产大片| 97人人精品| 日本午夜精品一区二区三区电影| 成人毛片老司机大片| 亚洲欧美怡红院| 欧美亚洲丝袜传媒另类| 亚洲精品久久久久中文字幕欢迎你| 日韩色av导航| 91久久精品www人人做人人爽| 亚洲国产高清国产精品| 别急慢慢来1978如如2| 国产三级av在线播放| 国产美女激情视频| 亚洲免费综合| 精品国产乱码久久久久久婷婷| 欧美日韩国产成人高清视频| 亚洲精品国产精品国自产| 在线不卡av电影| www中文字幕| 日本在线观看视频| 一区二区电影在线观看| 综合亚洲深深色噜噜狠狠网站| 永久555www成人免费| 深夜福利成人| 日本免费网站视频| 在线看污网站| 小黄鸭精品aⅴ导航网站入口| 媚黑女一区二区| 色综合激情久久| 欧美亚洲日本黄色| 成人性视频欧美一区二区三区| 天天爽夜夜爽夜夜爽精品| 悠悠资源av网址| 国产精品久久免费视频| 国产成人精品一区二| 日韩激情av在线免费观看| 欧美精品久久| 情侣偷拍对白清晰饥渴难耐| 全彩无遮拦全彩口工漫画全彩| 国产一区二区三区四区尤物| 午夜老司机在线观看| 亚欧美无遮挡hd高清在线视频 | wwww在线观看| 成人污版视频| 成人免费看视频| 亚洲女人天堂av| 中文字幕色呦呦| 国偷自拍第113页| 福利网址在线| 成人影视亚洲图片在线| 亚洲国产视频直播| 国产精品黄色av| 久久久老熟女一区二区三区91| 九九热中文字幕| 日韩深夜视频| 国产在线国偷精品产拍免费yy| 亚洲国产另类久久精品| 永久域名在线精品| 在线精品免费视| 日本中文字幕一区二区有码在线| 亚欧美无遮挡hd高清在线视频 | 久久精品国产亚洲5555| 中文成人综合网| 欧美在线不卡区| 国产精品91av| 樱花草在线观看www| 久久视频社区| 国产精品伦理一区二区| 欧美在线视频免费播放| 性欧美18—19sex性高清| 91在线免费观看| 国产精品网在线观看| 亚洲色图.com| 91在线精品视频| 国产盗摄一区二区三区在线| 在线激情视频| 亚洲黄色大片| 日韩成人av在线播放| 18禁网站免费无遮挡无码中文| 精品久久久久成人码免费动漫| 密臀av在线| 成人免费黄色在线| 午夜免费久久久久| 特大黑人巨人吊xxxx| 黄色电影网站在线观看| 禁果av一区二区三区| 色先锋久久av资源部| 日本一区二区三区免费看| 波多野结衣啪啪| 综合图区亚洲| 成人在线视频一区| 亚洲综合av网| 91精品久久久久久| 成人在线观看小视频| 香蕉视频在线观看免费| 99国产一区| 伊人精品在线观看| 玖玖爱视频在线| 曰本大片免费观看视频| 国产传媒欧美日韩成人精品大片| 91国产视频在线观看| 亚洲精品中文字幕在线| www.欧美国产| 亚洲一区二区三区久久久| 亚洲综合激情网| 精品一区二区国产| 免费在线不卡av| 在线成人av观看| 亚洲色图在线播放| 免费电影一区| 99热这里只有精品1| 国产亚洲人成a在线v网站| 亚洲在线免费播放| 亚洲精品不卡| 男女毛片免费视频看| 精品淫伦v久久水蜜桃| 在线视频你懂得一区二区三区| 日本一本草久p| 澳门永久av免费网站| 亚洲v天堂v手机在线| 69堂亚洲精品首页| 一本大道熟女人妻中文字幕在线| 免费黄色欧美视频| 清纯唯美综合亚洲| 日韩精品亚洲视频| 欧美成人精品一区二区综合免费| 成人狠狠色综合| 欧美一区=区| 国色天香2019中文字幕在线观看| 老司机精品免费视频| 一级毛片视频在线| 91视频在线观看免费| 成人三级视频在线观看一区二区| 中文字幕激情视频| 深夜日韩欧美| 精品视频一区二区三区免费| 国产成人a亚洲精v品无码| 任你操在线观看| 国产日本精品| 国产91精品高潮白浆喷水| 18精品爽视频在线观看| 激情影院在线| 亚洲黄一区二区三区| 亚洲综合网中心| 欧美第一页草草影院浮力| 91精品亚洲| 久久精品中文字幕免费mv| 奇米网一区二区| 影音先锋男人在线资源| 一个色综合网站| 免费看欧美一级片| 黄色免费电影网站| 蜜桃视频一区二区| 91精品啪aⅴ在线观看国产| 在线免费观看中文字幕| 国产精品亚洲四区在线观看| 91精品国产品国语在线不卡| 在线视频观看91| 97精品人妻一区二区三区香蕉| 97人人做人人爽香蕉精品| 在线看一区二区| 天美星空大象mv在线观看视频| 免费男女羞羞的视频网站中文字幕| 日韩成人免费看| 91精品视频免费| 亚洲乱色熟女一区二区三区| 欧美一区二区麻豆红桃视频| 色黄久久久久久| 国产这里有精品| 精品日本视频| 日韩一区二区三区av| 四虎成人免费视频| 免费av在线| 亚洲va中文字幕| 国产理论在线播放| 在线播放av片| 欧美国产97人人爽人人喊| 午夜探花在线观看| 8888在线观看免费www| 国内不卡的二区三区中文字幕| 97人人模人人爽人人少妇| 亚洲综合激情另类专区老铁性| 午夜亚洲福利| 国产精品高潮呻吟久久av无限| 国产视频在线观看视频| 欧美激情电影| 欧美野外猛男的大粗鳮| 国产特黄一级片| 天天做天天爱天天综合网| 国产91精品久久久久久久| 国产精品欧美亚洲| 国产精品久久久久久| 欧美亚州一区二区三区| 99热这里是精品| 欧美日韩午夜| 成人久久久久爱| 在线电影中文字幕| 丝袜美腿亚洲一区二区图片| 99视频在线免费观看| 国产精品天美传媒入口| 国内精品国产成人| 亚洲人久久久| 黄色网址三级| 亚洲精品免费在线| 在线观看免费视频污| 国产秀色在线www免费观看| 91国偷自产一区二区使用方法| 中国特级黄色片| 九色porny视频在线观看| 精品国产电影一区二区| 99鲁鲁精品一区二区三区| 亚洲精品一区二区三区在线| 日韩视频免费中文字幕| 欧美特级aaa| 国产免费a∨片在线观看不卡| 午夜成人在线视频| 女同性αv亚洲女同志| 97久久人人超碰caoprom| 日韩欧美电影一区| 国产精品第一页在线观看| 欧美极品中文字幕| 国产精品成人va在线观看| 四虎久久影院| 国产乱人伦精品一区二区在线观看 | 国产真实夫妇交换视频| 日韩精品免费一区二区三区竹菊| 欧美精品第一页在线播放| 亚洲国产精品二区| 日本网站在线观看一区二区三区 | 懂色av影视一区二区三区| 日本性生活一级片| 欧美色片在线观看| 日韩亚洲在线观看| 成人av一区二区三区在线观看| 欧美亚洲免费| 一级特黄录像免费播放全99| 久草在线在线| 一本大道久久精品懂色aⅴ| 婷婷综合在线视频| 免费日韩一区二区三区| 欧美又大粗又爽又黄大片视频| 日韩精品成人一区二区三区| 国产91|九色| 男人天堂手机在线观看| 亚洲国产免费看| 色噜噜在线网| 99热在这里有精品免费| caopor在线视频| 天堂在线中文网官网| www.久久久久| 手机看片一区二区三区| 国内精品不卡在线| 已婚少妇美妙人妻系列| 少妇视频在线观看| 久久香蕉国产线看观看网| 区日韩二区欧美三区| 久久电影网电视剧免费观看| 激情六月天婷婷| 老司机福利在线视频| 亚洲电影av在线| 亚洲精品无码久久久久| 美日韩一级片在线观看| www.日本在线播放| 日本三级韩国三级欧美三级| 亚洲美女精品成人在线视频| 99热在线只有精品| 国产99久久久精品| 欧美 日韩 国产 激情| 午夜裸体女人视频网站在线观看| 亚洲欧美一区二区三区极速播放 | 狠狠色伊人亚洲综合网站l| 欧美日韩国产另类不卡| 免费在线不卡视频| 亚洲经典视频在线观看| 国产精品无码乱伦| 黄色片网站在线观看| 中文字幕欧美日韩精品| 成人午夜免费福利| 国产不卡视频在线观看| 成人黄色一级大片| 日韩成人18| 91在线短视频| 在线黄色国产视频| 精品国产三级电影在线观看| 国产黄a三级三级三级| eeuss国产一区二区三区| 色悠悠在线视频| 精品视频99| 色之综合天天综合色天天棕色| 日本高清在线观看wwwww色| 一本色道久久88综合亚洲精品ⅰ| 天天射天天色天天干| 久久精品人人做| 精品一区二区三区蜜桃在线| 久久精品影视| 日本一级黄视频| 日产精品一区| 国产精品直播网红| 污污的网站在线观看| 国产午夜精品麻豆| 免费精品国产自产拍在| 婷婷亚洲久悠悠色悠在线播放| 日韩美女视频网站| 精品亚洲国产成人av制服丝袜| 亚洲天堂av一区二区三区| 美女久久久久| 日韩视频专区| 男女羞羞在线观看| 国产精品久久99久久| 在线视频尤物| 国产午夜精品免费一区二区三区| 国产综合图区| 色婷婷av一区二区| 一二三区中文字幕| 国产亚洲一本大道中文在线| 中文字幕在线观看二区| 欧美亚洲一级| 男男受被啪到高潮自述| 日韩精品网站| 国产精品一色哟哟| 欧美日韩黄色| 欧美二区三区在线| 超碰在线99| 成人高h视频在线| 亚洲乱亚洲乱妇| 97久久久久久| 成视频在线免费观看| 中文字幕亚洲一区在线观看| 丰满岳乱妇dvd日本| 欧美tickling挠脚心丨vk| 欧美一级久久久久久久久大| 日韩欧美在线视频观看| 99在线无码精品入口| 亚洲免费观看高清完整版在线观看熊 | 国产视频123区| 奇米一区二区三区| 久久久久se| 国产啊啊啊视频在线观看| 国产精品免费福利| 在线观看的av| 日本久久久久久久久| 国产最新视频在线观看| 久久久视频在线| 视频福利在线| 久久久亚洲国产| 男人天堂综合| 欧美亚洲视频在线观看| 91激情在线| 国产精品夜色7777狼人| 国产精品一区二区三区视频网站| 国产99久久精品一区二区|