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

標題: 基于51單片機的DS18B20溫度+LCD顯示匯編語言源程序與仿真 [打印本頁]

作者: lyh一點點    時間: 2017-9-2 09:56
標題: 基于51單片機的DS18B20溫度+LCD顯示匯編語言源程序與仿真
基于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是否存在標記
  19.           KEY_UD    EQU  20H.1    ;設定 KEY 的UP與DOWN 標記
  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復位子程序
  36.           JNB   FLAG1,START1   ;DS1820不存在
  37.           CALL  MENU_OK
  38.           CALL  READ_E2
  39.           CALL  TEMP_BJ        ;顯示溫度標記
  40.           JMP   START2
  41. START1:   CALL  MENU_ERROR
  42.           CALL  TEMP_BJ        ;顯示溫度標記
  43.           JMP  $

  44. START2:
  45.           CALL  RESET
  46.           JNB  FLAG1,START1    ;DS1820不存在
  47.           MOV   A,#0CCH        ; 跳過ROM匹配
  48.           CALL  WRITE
  49.           MOV   A,#44H         ; 發出溫度轉換命令
  50.           CALL  WRITE
  51.           CALL  RESET
  52.           MOV   A,#0CCH        ; 跳過ROM匹配
  53.           CALL  WRITE
  54.           MOV   A,#0BEH        ; 發出讀溫度命令
  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           ;將設定的TH,TL值寫入DS18B20內
  84.          CALL  WRITE_E2
  85. PROC_K2:
  86.          CALL  MENU_OK
  87.          CALL  TEMP_BJ
  88. PROC_END:
  89.          RET
  90. ;============================================
  91. ;設定報警值 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 標記
  101. AS00:    JB  20H.1,ASZ01       ;20H.1=1,UP
  102.          JMP  ASJ01            ;20H.1=0,DOWN

  103. ASZ01:   JB  K2,ASZ02          ;TH值調整(增加)
  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值調整(增加)
  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          ;確定調整 OK
  124.          CALL  BEEP_BL
  125.          JNB  K4,$
  126.          RET

  127. ASJ01:
  128.          JB  K2,ASJ02          ;TH值調整 (減少)
  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值調整(減少)
  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  ;指針指到顯示信息區
  154.           MOV  A,#1            ;顯示在第一行
  155.           CALL  LCD_PRINT
  156.           RET
  157. RESET_A1:
  158.      DB  "RESET ALERT CODE"
  159. ;====================================================
  160. ;實際溫度值與標記溫度值比較子程序
  161. ;====================================================
  162. TEMP_COMP:
  163.           MOV  A,TEMP_TH      
  164.           SUBB  A,TEMP_ZH       ;減數>被減數,則
  165.           JC  CHULI1            ;借位標志位C=1,轉
  166.           MOV  A,TEMP_ZH
  167.           SUBB  A,TEMP_TL       ;減數>被減數,則
  168.           JC  CHULI2            ;借位標志位C=1,轉
  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           ;繼電器關閉
  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. ;顯示溫度標記子程序
  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         ;主機發出延時復位低脈沖
  250.         mov r1,#04h
  251. tsr1:   djnz r0,$
  252.         mov r0,#6bh
  253.         djnz r1,tsr1
  254.         setb date_line        ;然后拉高數據線
  255.         nop
  256.         nop
  257.         nop
  258.         mov r0,#32h
  259. tsr2:   jnb date_line,tsr3   ;等待DS18B20回應
  260.         djnz r0,tsr2
  261.         jmp tsr4             ; 延時
  262. tsr3:   setb flag1           ; 置標志位,表示DS1820存在
  263.         jmp tsr5
  264. tsr4:   clr flag1            ; 清標志位,表示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      ;寫入數據
  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位數據
  323.         CLR  C
  324. wr1:
  325.         clr date_line        ;開始寫入DS18B20總線要處于復位(低)狀態
  326.         mov r3,#07
  327.         djnz r3,[        DISCUZ_CODE_1        ]nbsp;           ;總線復位保持16微妙以上
  328.         rrc a                ;把一個字節DATA 分成8個BIT環移給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                ;把讀得的位值環移給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         ;溫度零上轉
  367.                CLR  C
  368.                MOV  A,TEMPL       ;二進制數求補(雙字節)
  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=小數部分 BCD

  386.                MOV  A,TEMPL             ;整數部分
  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 = 十位數 BCD
  400.                MOV  TEMPHC,A
  401.                MOV  A,TEMPL
  402.                ANL  A,#0FH
  403.                SWAP  A                  ;TEMPLC HI = 個位數 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 = 百位數 BCD
  412.                ANL  A,#0FH
  413.                ORL  A,R4
  414.                MOV  TEMPHC,A
  415. TEMPC12:       RET
  416. ;---------------------------------------------------------------
  417. HEX2BCD1:
  418.               MOV  B,#064H          ;十六進制-> BCD
  419.               DIV  AB               ;B= A % 100
  420.               MOV  R4,A             ;R7 = 百位數
  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. ;  小數部分碼表
  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   ;指針指到顯示信息區
  436.           MOV  A,#2            ;顯示在第二行
  437.           CALL  LCD_PRINT

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

  443.           MOV  A,#0CEH
  444.           CALL  TEMP_BJ1
  445.           MOV  A,TEMP_TL       ;加載TL數據
  446.           MOV  LCD_X,#12       ;設置位置
  447.           CALL  SHOW_DIG2L     ;顯示數據
  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      ;指針指到顯示信息區
  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 的第二行顯示數字
  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 的第二行顯示數字
  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. ;顯示區 BCD 碼溫度值刷新子程序
  511. ;-------------------------------------------------------------
  512. DISPBCD:
  513.               MOV  A,TEMPLC
  514.               ANL  A,#0FH
  515.               MOV  70H,A                 ;小數位
  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               ;十位數是0
  534.               MOV  A,TEMPHC
  535.               SWAP  A
  536.               ANL  A,#0FH
  537.               MOV  73H,#0AH               ;符號位不顯示
  538.               MOV  72H,A                  ;十位數顯示符號
  539. DISPBCD2:     RET

  540. ;==========================================================
  541. ; LCD 1602 顯示子程序
  542. ;==========================================================
  543. CONV:
  544.           MOV  A,73H         ;加載百位數據
  545.           MOV  LCD_X,#6      ;設置位置
  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    ;顯示數據
  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         ;加載小數點位
  564.           INC  LCD_X         ;設置位置
  565.           CALL  SHOW_DIG2    ;顯示數據
  566.           RET
  567. ;-------------------------------------------------------
  568. SHOW_DIG2:                 ;在 LCD 的第二行顯示數字
  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         ;設置顯示地址
  577.          ADD  A,#0C0H     ;設置LCD的第二行地址
  578.          CALL  WCOM       ;寫入命令
  579.          POP  ACC         ;由堆棧取出A
  580.          CALL  WDATA      ;寫入數據
  581.          RET
  582. ;---------------------------------------------------------


  583. SET_LCD:                     ;對 LCD 做初始化設置及測試
  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        ;開顯示,顯示光標,光標不閃爍
  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        ;設置 LCD 的第一行地址
  608.           CALL  WCOM         ;
  609.           MOV  R0,#24        ;設置計數值
  610.     C1:   MOV  A,#' '        ;載入空格符至LCD
  611.           CALL  WDATA        ;輸出字符至LCD
  612.           DJNZ  R0,C1        ;計數結束
  613.           RET
  614. ;==================================================
  615. LCD_PRINT:       ;在LCD的第一行或第二行顯示字符

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

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

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

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






作者: 曾經的你    時間: 2018-11-27 17:23
想問一下 你的硬件仿真感覺少好多東西?
作者: 582156647    時間: 2020-1-6 10:13
硬件仿真少了一些電路?
作者: 什么時候    時間: 2020-6-28 13:01
程序調試的好多未定義啊,怎么解決?
作者: xiaoyuxinke    時間: 2022-4-4 19:22
可以仿真成功,但硬件實測第一行顯示白塊,第二行不顯示
作者: McYdad    時間: 2022-6-4 13:20
這個怎么設置讓他顯示負數啊




歡迎光臨 (http://m.izizhuan.cn/bbs/) Powered by Discuz! X3.1
91丝袜国产在线播放| 自拍偷拍免费精品| 欧美aaa在线| 亚洲欧洲日韩精品在线| 又黄又爽在线免费观看| 国内精品久久久久久久久久久 | 色偷偷av一区二区三区| 性做久久久久久免费观看| 蜜桃av噜噜一区二区三区小说| 国产成人在线中文字幕| 欧洲一区二区三区| 黄色三级电影网| 亚洲av片在线观看| 国产小视频在线免费观看| 美女网站视频在线观看| avav在线播放| 91视频最新| 91高清免费在线观看| 亚洲精品久久久久中文字幕二区 | 在线成人h网| 9l亚洲国产成人精品一区二三| 九色91在线| 久久久亚洲精华液精华液精华液| 福利视频理论电影| 国产又粗又长又大视频| 久久久久99精品成人片试看| 免费看三级黄色片| 成人区一区二区| 欧美日韩国产三区| 日本不卡高字幕在线2019| 亚洲午夜精品视频| 欧美一级片在线看| 一本色道久久综合亚洲91| 欧美国产日韩a欧美在线观看 | 亚洲国产精品va在线| 欧美日韩美女视频| 最新热久久免费视频| 成人18视频日本| 另类小说视频一区二区| 亚洲精品美女91| 久久久久电影| 欧美中文一区二区| 亚洲美女15p| 日韩最新av| 熟妇高潮一区二区三区| 久久人人爽人人爽人人| 国产一级淫片久久久片a级| 欧美视频亚洲图片| 天天色综合社区| 日韩在线观看a| 一区二区三区四区五区精品| 日本一区二区三区免费观看| 99国产高清| 国产区亚洲区欧美区| 青青久久av北条麻妃黑人| 久久久久国产视频| 欧美日韩成人黄色| 欧美人在线视频| 国产欧美精品区一区二区三区| 国产一区在线不卡| 青青草国产成人99久久| 蜜乳av一区二区三区| 蜜桃伊人久久| 久久蜜桃精品| 麻豆成人综合网| 久草中文综合在线| 国产在线不卡一区| 成人午夜免费av| av在线一区二区三区| av电影在线观看完整版一区二区| 成人aa视频在线观看| 97精品国产97久久久久久久久久久久| 成人性生交大片免费看视频在线 | 欧美韩国理论所午夜片917电影| 最新91在线视频| 国产精品自拍在线| 国产在线播放一区| 丰满岳乱妇一区二区三区| 成人毛片视频在线观看| 91玉足脚交白嫩脚丫在线播放| 久久蜜桃一区二区| 亚洲欧洲在线观看av| 亚洲精品日韩一| 欧美日韩国产色视频| 欧美在线制服丝袜| 精品欧美一区二区久久 | 国产精品午夜电影| 亚洲午夜视频在线| 一本到不卡免费一区二区| 91麻豆精品国产| 亚洲精品在线视频| 久久影院中文字幕| 欧美亚洲成人免费| 超碰97在线人人| 日韩aⅴ视频一区二区三区| 国产91porn| 手机在线免费观看毛片| 免费高清视频在线观看| 手机看片福利视频| 一级片免费网址| 国产ts变态重口人妖hd| 欧美成人做性视频在线播放| 美女与牲口做爰视频在线观看| 99爱免费视频| 黄色av免费在线看| 激情黄产视频在线免费观看| 成人在线观看免费播放| 最近国产精品视频| 激情综合视频| 国产二区国产一区在线观看| 国产精品久久久久影院| 日本高清视频一区二区| 亚洲精品美女在线| 久久久久久久久久久免费精品| 国产剧情日韩欧美| 翔田千里亚洲一二三区| 不卡av免费在线| 极品人妻一区二区三区| 97人人澡人人爽人人模亚洲| 黄色美女一级片| 公交车上扒开嫩j挺进去 | 在线视频免费在线观看一区二区| 精品一区二区成人精品| 中文字幕一区二区日韩精品绯色| 日韩欧美亚洲综合| 亚洲天堂av在线播放| 国产精品高潮呻吟视频| 亚洲精品中字| 亚洲第一成肉网| 日本少妇裸体做爰| av资源中文色综合| 亚洲精品少妇久久久久久| 青青青草视频在线| 婷婷亚洲成人| 蜜臀av一区二区在线免费观看| 国产精品久久久久久久久免费丝袜 | 国产精品一区二区三区在线| 综合久久国产| 亚洲美女高潮久久久| 久久久久99精品成人片三人毛片| 影音先锋在线资源中文字幕| 免费成年网站| 四虎4545www国产精品| 国产高清久久| caoporn国产精品| 欧美日韩在线综合| 久久免费视频网站| 亚洲一区在线免费| 亚洲一级av无码毛片精品| 69av视频在线观看| 黄色免费直接看| 高h视频在线播放| 日韩精品免费| 91视频.com| 日韩欧美美女一区二区三区| 国产精品久久久久久久久男| 污污污污污污www网站免费| 国产熟妇搡bbbb搡bbbb| 亚洲国产成人一区二区| 最大av网站| 国产va免费精品观看精品| 国产精品一国产精品k频道56| 亚洲视频图片小说| 最近2019中文字幕一页二页| 久久久综合亚洲91久久98| 亚洲国产综合av| 中文字幕在线视频第一页| www.99com| 亚洲一区二区av| 男女男精品网站| 色综合av在线| 国产99久久久欧美黑人 | 92福利视频午夜1000合集在线观看| 久久久久久久久久久99| 日本成人免费在线观看| 色se01短视频永久免费| 日韩av中文| 欧美aaaa视频| 亚洲蜜臀av乱码久久精品蜜桃| 这里精品视频免费| 亚洲巨乳在线观看| 老熟妇高潮一区二区三区| 国产娇喘精品一区二区三区图片| 最爽无遮挡行房视频在线| 欧美在线1区| 亚洲一区日韩精品中文字幕| 久久久久久国产精品美女| 久久99久久99精品| 在线观看免费国产视频| 四虎免费av| 日本精品一区二区三区在线观看视频| 国产综合色在线| 精品国产免费久久| 欧美亚洲另类在线一区二区三区| 日韩毛片无码永久免费看| 超碰在线91| ww久久综合久中文字幕| 国产精品综合在线视频| 国产欧美一级| 欧美日韩激情一区二区三区| 91国产丝袜在线放| 中文字幕xxx| 国产又粗又长| 国产一区精品福利| av在线播放成人| www.色综合| 黄色片视频在线免费观看| 久草视频在线免费| 无人视频在线观看免费| 国产精品有限公司| 极品尤物一区二区| 老女人av在线| 五月天亚洲色图| 亚洲欧美视频在线观看| 国产福利视频一区| 一本色道久久hezyo无码| 欧美图片欧美激情欧美精品 | 91网上在线视频| 久久国产色av| 噼里啪啦国语在线观看免费版高清版| 国产精品怡红院| 国产一二区在线| 日韩激情av在线| 亚洲激情第一页| 欧美国产综合在线| 亚洲爱情岛论坛永久| 中文在线手机av| 国产一区二区三区香蕉| 最新91在线视频| 国产欧美高清在线| 亚洲色图首页| 国产麻豆久久| 国产亚洲va综合人人澡精品| 2019亚洲男人天堂| 亚洲国产第一区| jizzjizzjizzjizz日本| 精品国产一区探花在线观看| 色悠久久久久综合欧美99| 精品一区久久久| www..com国产| 免费在线观看黄色| 狠狠色综合日日| 久久99国产精品自在自在app| 佐山爱在线视频| 柠檬在线导航福利| 精品国产乱码| 欧美电影一区二区三区| 大片在线观看网站免费收看| 成 人 黄 色 片 在线播放| 成人免费短视频| 国产精品毛片大码女人| 91传媒免费看| 福利网址在线观看| 男人天堂亚洲天堂| 91在线国产观看| 国产精品久久网| 777777国产7777777| 国产精品一区二区婷婷| 韩国理伦片一区二区三区在线播放| 美女扒开尿口让男人操亚洲视频网站| 国产吃瓜黑料一区二区| 1069男同网址| 视频在线观看一区二区三区| 久热精品视频在线免费观看 | 成人免费在线观看网站| 欧美久久视频| 亚洲人成网站999久久久综合| 在线观看免费av网址| 黄色网页大全| 国产一区二区精品| 久久99久久99精品免观看粉嫩 | 一个人看的免费视频色| 水蜜桃久久夜色精品一区的特点| 欧美成人午夜剧场免费观看| 成人午夜剧场视频网站| 伦av综合一区| 日本aa在线| 国产精品女主播在线观看| 麻豆91蜜桃| 理论片中文字幕| 日韩a级大片| 亚洲精品一区二区三区影院| 久国产精品视频| 欧美xxxxxxxxx59| 久久电影网电视剧免费观看| 2019中文在线观看| 国产精品9191| 桃子视频成人app| 欧美色视频日本版| 日本一本二本在线观看| 天天操人人爽| 久久精品国产77777蜜臀| 国产精品久久久久久一区二区| 全部毛片永久免费看| 欧美xxxxxx| 91久久精品一区二区三区| 中文字幕乱码人妻综合二区三区| av先锋资源网| 久久99最新地址| 91精品国产91久久久久青草| 亚洲av无码一区二区乱子伦| 羞羞答答一区二区| 伊人伊成久久人综合网站| 69xxx免费| 理论不卡电影大全神| 欧美午夜无遮挡| 九九视频精品在线观看| 黄页网址在线观看| 久久青草国产手机看片福利盒子| 欧美日韩电影一区二区三区| 四虎a级欧美在线观看| 亚洲午夜久久久久久尤物| 91国产美女视频| 中文字幕日韩经典| 亚洲8888| 久久伊人免费视频| 欧美h在线观看| 久久狠狠久久| 色天天综合狠狠色| 91看片在线播放| 久久精品国产亚洲blacked| 亚洲女同精品视频| 午夜国产福利一区二区| 国产精品亚洲d| 精品国产自在久精品国产| 性欧美一区二区| 成人性生交大片免费网站| 日韩一区和二区| 国产免费嫩草影院| 日韩毛片网站| 在线播放日韩av| 日韩激情在线播放| 欧美三级午夜理伦三级在线观看| 中文字幕精品在线| 男人天堂av在线播放| 日本道不卡免费一区| 欧美一级淫片丝袜脚交| 国产夫妻在线观看| 亚洲青涩在线| 99久热re在线精品996热视频| 欧美最猛性xxxx高清| 激情偷乱视频一区二区三区| 一区二区精品在线观看| 少妇**av毛片在线看| 亚洲色图在线视频| 香蕉视频禁止18| 菠萝蜜视频国产在线播放| 欧美午夜精品免费| 成都免费高清电影| 久久久免费人体| www.欧美精品| 精品国产伦一区二区三| 一区二区三区福利| 欧美日韩综合网| 男人午夜天堂| 一区二区三区四区蜜桃| 无码人妻久久一区二区三区蜜桃| 亚洲福利影院| 中文字幕国产亚洲2019| 国产精品色综合| 亚洲专区在线| 天天久久人人| 外国精品视频在线观看| 色综合久久88色综合天天6| 精品人妻无码一区二区三区换脸| 欧美激情精品| 国产亚洲欧美日韩俺去了| 韩国中文字幕av| 色偷偷色偷偷色偷偷在线视频| 日韩精品极品视频| 夜夜骚av一区二区三区| 首页亚洲欧美制服丝腿| av磁力番号网| 日本综合在线| 国产偷亚洲偷欧美偷精品| 91资源在线视频| 免费精品视频最新在线| 国产在线视频在线| 国产精品实拍| 亚洲欧洲在线免费| 国内毛片毛片毛片毛片| 极品少妇一区二区三区精品视频| 男人添女人荫蒂免费视频| 午夜不卡视频| 亚洲欧美日韩综合| 亚洲第一精品网站| 国产美女久久久久| 国产一区二区视频免费在线观看| xxxx在线视频| 久久人人爽亚洲精品天堂| 嫩草影院永久一二三入口| 久久免费美女视频| 性高潮免费视频| 欧美成人一区在线观看| 亚洲自拍中文字幕| 97香蕉久久| 日韩写真欧美这视频| 国产精品视频第一页| 国产一区二区不卡在线| 久久撸在线视频|