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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9424|回復: 5
收起左側

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

  [復制鏈接]
ID:210588 發表于 2017-9-2 09:56 | 顯示全部樓層 |閱讀模式
基于51單片機的DS18B20溫度+LCD顯示(匯編編寫)
TIM截圖20170902095158.png TIM截圖20170902095509.png 0.png

單片機源程序如下:
  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)





評分

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

查看全部評分

回復

使用道具 舉報

無效樓層,該帖已經被刪除
ID:278194 發表于 2018-11-27 17:23 | 顯示全部樓層
想問一下 你的硬件仿真感覺少好多東西?
回復

使用道具 舉報

ID:681943 發表于 2020-1-6 10:13 | 顯示全部樓層
硬件仿真少了一些電路?
回復

使用道具 舉報

ID:783871 發表于 2020-6-28 13:01 | 顯示全部樓層
程序調試的好多未定義啊,怎么解決啊?
回復

使用道具 舉報

ID:61140 發表于 2022-4-4 19:22 | 顯示全部樓層
可以仿真成功,但硬件實測第一行顯示白塊,第二行不顯示
回復

使用道具 舉報

ID:1032085 發表于 2022-6-4 13:20 | 顯示全部樓層
這個怎么設置讓他顯示負數啊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
日本一级黄视频| 韩国美女久久| 精品卡一卡二| 免费成人av资源网| 香蕉视频在线观看免费| 成人在线观看黄| 日韩国产精品一区| 韩国av一区二区三区| 午夜欧美巨大性欧美巨大| 初体验·韩国| 日本少妇aaa| 欧美一区二区综合| 日韩免费在线观看| 国产黑丝在线一区二区三区| 欧美专区福利免费| 天堂网www中文在线| 波多野结衣日韩| 黄色aaa级片| 国产精品亚洲片夜色在线| 亚洲成人av中文| 亚洲精品字幕| 人成在线免费网站| 日日日日影院| www.毛片com| 成年人三级视频| 欧美精品videos| 一区二区三区日韩欧美精品| 在线电影一区| 色黄视频在线观看| 国产系列在线观看| 伊人色综合久久久天天蜜桃| 一本色道久久综合亚洲精品图片 | 国产欧美日韩小视频| 欧美疯狂xxxx大交乱88av| 婷婷国产在线综合| 国产一区免费电影| 乱熟女高潮一区二区在线| 日本美女一级片| av官网在线| 国产一区二区香蕉| 欧美精品vⅰdeose4hd| 国产在线国偷精品产拍免费yy| 国产一区二区三区亚洲| 性欧美18一19性猛交| 中文字幕1区2区| 国产一级二级三级精品| 亚洲精品中文字幕av| 欧美国产一区视频在线观看| 久久精品不卡| 嗯啊主人调教在线播放视频| 黄色片免费看| 亚洲综合网av| 黄色性生活一级片| 欧美不卡在线一区二区三区| 欧美成人精品一区| 在线精品国精品国产尤物884a| 欧美亚洲一级| 精品三级av在线导航| a视频在线观看| 天堂在线免费观看| 性欧美18一19性猛交| 大桥未久一区二区| 国产精品手机视频| 日韩一区二区欧美| 亚洲天堂精品在线观看| 亚洲免费精品| 97人人澡人人爽91综合色| 一本一道波多野毛片中文在线| 亚洲欧美综合图片| 69精品久久久| 95视频在线观看| 国产xxxx振车| 精品视频一区在线| 成人9ⅰ免费影视网站| 欧美另类在线观看| 亚洲国产91精品在线观看| 性欧美疯狂xxxxbbbb| 成人一级片在线观看| 黑人一区二区| 台湾亚洲精品一区二区tv| yellow在线观看网址| 超碰中文在线| 亚州色图欧美色图| 中文字幕在线观| 九九99九九精彩| 青春娱乐分类视频精品2动漫| 五月天婷婷久久| 一级片久久久久| www.cao超碰| 国产资源第一页| 欧美精品久久久| 国产精品99蜜臀久久不卡二区| 久久精品电影网站| 亚洲免费视频在线观看| 欧美精品色一区二区三区| 在线不卡一区二区| 日韩电影中文字幕| 精品久久国产精品| 国内成人精品一区| www亚洲精品| 欧美精品久久久久a| 日韩av片免费在线观看| 欧美日韩在线第一页| 丁香激情综合国产| 国产日韩三级在线| 成人免费精品视频| 亚洲国产经典视频| 欧美激情在线免费观看| 亚洲一区在线观看视频| 国产精品久久777777| 久久久噜噜噜久久人人看| 国产在线精品国自产拍免费| 久久精品人人做| 精品久久久国产精品999| 岛国视频午夜一区免费在线观看| 欧美日韩在线电影| 欧美日韩一二三四五区| 日韩欧美高清一区| 久久久精品视频成人| 国产裸体写真av一区二区| 蜜桃av噜噜一区二区三| 男人操女人免费软件| 日韩电影在线观看中文字幕| 精品视频在线播放免| 久久久亚洲网站| 俄罗斯精品一区二区| 91黄在线观看| 91av免费看| av影院在线播放| 麻豆tv在线观看| 久久9999久久免费精品国产| 好吊色一区二区三区| 午夜精品一区二区三| 国产免费黄色| 九色porny视频国产网曝| 青青草中文字幕| 四虎成人精品在永久免费| 操人真爽免费视频| av在线免费电影| 欧美成人精品一区二区男人看| 超碰公开在线| 日韩一区二区三区在线看| 视频精品一区| av不卡免费看| 国产精品久久影院| 性做久久久久久久久| 亚洲高清久久网| 国产精品都在这里| 成人av免费看| 免费黄色特级片| 内射一区二区三区| 天天干天天干天天干天天| 亚洲精品乱码久久久久久蜜桃动漫| 美日韩在线观看| 日韩三级电影网| 97蜜桃久久| 久久亚洲精品人成综合网| 视频一区视频二区欧美| 久久在线精品| 久久只精品国产| 一区二区三区高清在线| 欧美精选一区二区| 97在线视频免费观看| 91久久久国产精品| 亚洲欧洲免费无码| 人妻少妇被粗大爽9797pw| 韩国av中国字幕| 亚洲色成人www永久网站| 精品国自产在线观看| 国产免费高清av| 99在线精品视频免费观看20| 免费国产高清| 调教视频免费在线观看| 人人精品视频| 久久午夜激情| 精品久久久久久| 欧美性一区二区三区| 久久国产精品精品国产色婷婷| 四虎影院一区二区| 午夜欧美福利视频| 日产电影一区二区三区| 午夜久久久久久久久久| 天海翼一区二区三区免费| 2023国产精华国产精品| 精品91在线| ...中文天堂在线一区| 欧美一区二区不卡视频| 久久精品国产视频| 日韩国产一区久久| 亚洲一区二区三区四区精品| 日韩黄色中文字幕| 少妇性l交大片7724com| 国产67194| 羞羞漫画网18久久app| 二区在线播放| 亚洲人成高清| 欧日韩精品视频| 成人夜晚看av| 久久综合色视频| 在线观看日本黄色| 亚洲高清视频网站| 四虎永久在线高清国产精品| 96视频在线观看欧美| 欧美涩涩网站| 国产三区在线成人av| 中文字幕久久久av一区| yellow视频在线观看一区二区| 91av免费观看| 亚洲色图影院| 牛牛影视精品影视| 亚洲精品福利| 久久网这里都是精品| 久久精品视频亚洲| 黄色片一级视频| 成人h动漫精品一区二区无码 | 久久久久成人网| 国产精品无码av无码| 国产精品成人免费一区二区视频| 天天摸日日操| 成人开心激情| 亚洲深夜影院| 亚洲一区二区视频| 国产欧美亚洲视频| 日韩毛片无码永久免费看| 一区三区三区不卡| 欧美黄色网页| 26uuu精品一区二区| 精品久久久久久久人人人人传媒 | 盗摄牛牛av影视一区二区| 国产无一区二区| 欧美有码在线视频| 三级电影在线看| 66av99| 日韩视频一二区| 亚洲欧美日韩一区二区三区在线观看 | 成人性视频免费网站| 久久人人爽亚洲精品天堂| 成人在线观看黄| 中文字幕少妇| 精品国产乱码一区二区三区| 理论电影国产精品| 7799精品视频| 1区1区3区4区产品乱码芒果精品| 在线小视频你懂的| 国产成在线观看免费视频| 97超碰在线免费| 26uuu久久天堂性欧美| 日韩av电影中文字幕| 久操视频免费看| 国内精品久久久久久久久蜜桃| 亚洲人成777| 亚洲蜜臀av乱码久久精品蜜桃| 美日韩精品免费视频| 超碰成人在线播放| 蝌蚪91视频| 欧美精品中文字幕亚洲专区| 日本韩国欧美在线| 91亚洲午夜在线| 日本三级午夜理伦三级三| 在线视频婷婷| 国产亚洲在线观看| 亚洲天堂开心观看| av在线观看地址| 特级丰满少妇一级aaaa爱毛片| 18加网站在线| 狂野欧美一区| 久久综合电影一区| 国产免费视频传媒| 国产xxx免费观看| 99久久激情| 欧美日韩大陆在线| 欧美下载看逼逼| 国产视频在线免费观看| 日韩有码欧美| 国产精品久久久久久妇女6080| 成人片在线免费看| 一级片在线观看视频| 最新国产露脸在线观看| 久久这里只有精品首页| 豆国产97在线| 精品国产av一区二区三区| 麻豆国产一区二区三区四区| 精品久久久久久久久久| 免费日韩在线观看| 国产hs免费高清在线观看| 在线成人激情| 亚洲成人久久一区| 善良的小姨在线| 天堂网视频在线观看| 欧美婷婷在线| 久久亚洲精品中文字幕冲田杏梨 | 2020日本不卡一区二区视频| 成人免费视频网站入口| 国产日韩在线观看一区| 国产一区福利| 日韩经典第一页| 日韩 中文字幕| 免费黄网站在线| 亚洲欧美激情插| av无码久久久久久不卡网站| 日本影音先锋电影| 久久久久观看| 精品久久久久99| 国产黑丝一区二区| 天天色综合4| 九色综合狠狠综合久久| 欧美巨大黑人极品精男| √天堂中文官网8在线| 超碰在线公开| 在线免费观看不卡av| 污污网站在线观看视频| 欧美女子与性| 中文字幕佐山爱一区二区免费| 久久精品在线免费视频| 可以直接看的av网址站| 国产精品一区一区| 国产精品第一视频| 精品国精品国产自在久不卡| 欧美日韩国产高清电影| 欧美一级日韩一级| 亚洲一区二区三区四区av| 国产真实生活伦对白| 飘雪影视在线观看免费观看 | 99久久精品费精品国产风间由美| 欧美高清一级大片| 成人毛片一区二区三区| 视频小说一区二区| 欧美贵妇videos办公室| 成年人视频免费| 中文字幕av一区二区三区人| 欧美一级午夜免费电影| 中出视频在线观看| 高清美女视频一区| 国产成+人+日韩+欧美+亚洲| 国产精品7m视频| 亚洲国产精品一| 亚洲视频日本| 91在线免费网站| 久久日.com| 年轻的保姆91精品| 在线播放精品一区二区三区| 97超碰在线免费观看| 蜜桃视频在线观看免费视频| 这里只有精品视频在线观看| 色婷婷av777| 欧美黄色网络| 最近2019中文字幕第三页视频| 中国黄色a级片| 欧美男体视频| 亚洲人永久免费| 不卡av电影在线| 国产韩国精品一区二区三区| 国产精欧美一区二区三区| 伊人国产视频| 国产精品一区不卡| 中文一区一区三区免费| 国产寡妇色xxⅹ交肉视频| 国产美女一区二区| 一二三在线视频| 你懂的在线观看视频网站| 欧美日韩性视频在线| 91黄色免费视频| 国产精品3区| 亚洲成人av在线播放| 欧美精品乱码视频一二专区| 惠美惠精品网| 国产视频精品va久久久久久| 国产超碰人人爽人人做人人爱| 欧美日韩五区| 国产午夜精品一区二区三区欧美| 91在线视频导航| 中国xxxx视频播放50| 久久99久久精品欧美| 中国一级黄色录像| 久草福利资源在线视频| 国产一区二区导航在线播放| 天天好比中文综合网| 国产美女在线一区二区三区| 大陆成人av片| 久久久精品麻豆| 另类激情视频| 久精品免费视频| 四虎国产精品成人永久免费影视| 99久久免费国产| 亚洲精品中文字幕在线| 又黄又www的网站| 国产精品天干天干在观线| 亚洲国产欧美91| 91蜜桃臀久久一区二区| 国产精品久久一| 亚洲最新永久观看在线| 91麻豆成人久久精品二区三区| 高清av免费看| 国产精品69xx| 日韩综合中文字幕| 中文字幕麻豆| 欧美激情在线观看视频免费| 成年女人免费视频| 免费视频亚洲| 国产精品视频一|