技術頻道

      流量積算儀的設計


        摘要 本文中介紹了一個用單片機設計的流量積算儀,與流量計配合使用,能適用于各種介質,如氣體、液體等,并能在全流程范圍內進行非線性調節,用各種介質的標準儀表對該流量計進行檢定后,即可使之成為該介質的流量計。
        一、測量原理
        本文中介紹了一個用單片機設計的流量積算儀,它能適用于各種介質,如氣體、液體等,并能在全流程范圍內進行非線性調節,用各種介質的標準儀表對該流量計進行檢定后,即可使之成為該介質的流量計。
      流量計由流量傳感器和流量積算儀兩部分組成,流量傳感器由旋渦發生體、傳感器探頭和產生輸出信號的相關電子電路組成。
        當以一定流速流動介質遇到流量傳感器的旋渦發生體時,旋渦產生的頻率與流速成正比,因此與管道內的流量成正比,因此我們用單片機設計的流量積算儀,根據傳感器送來的頻率信號,進行累計,顯示,并將累計流量和瞬時流量通過串行口通訊送到計算機中進行處理,如形成報表等。
        為使用儀表更加準確,我們可以通軟件的方法使儀表非常精確,基本上可達到0.05%左右。首先在儀表出廠前,非用標準設置對該流量計進行檢定后,即可記錄在全流程范圍內的若干段中,每段內單個頻率的每秒流量系數。然后通過四個鍵的鍵盤設置流量參數,由單片機程序將系統全程的頻率對應的每秒流量計算出來后,寫入單片機的24C16中。
        正常測量時,根據不同的頻率取出24C16中的相應每秒流量,送到單片機中經運算,得到當時的瞬時流量(米3/小時),并進行累計。
      二、硬件電路原理圖(如附圖一和附圖二)
      附圖一:
        1、硬件中的核心是ATMEL生產的AT89C51/LV51單片機,它是一種低功耗/低電壓、高性能的8位單片機,片內帶有一個4K字節的Flash可編程可擦除只讀存儲器,它采用了CMOS工藝和ATMEL公司的高密度非易失性存儲器技術,而且其輸出引腳和指令系統都與MSC-51兼容。
        2、存儲流量和參數,用的存儲器是ATMEL生產的AT24C16系列,它是一種帶有閃2K字節的可電擦除、可編程的只讀存儲器。通過單片機的P0.0和P0.1口與它的SDA和SCL分別相連,進行讀寫操作。
        3、一秒硬件復位電路,使用MC14060(十四位二進制計數器)、二個74HC132(兩輸入與非門)和二個雙JK觸發器CD4027,在CD4027的15腳形成一秒寬的時鐘脈沖。
        4、CD4027的15腳接到RESET端,使單片機定時復位。單片機采用省電模式工作,每次輸入、累計、顯示處理后等待喚醒,這樣工作功耗非常小。設置補償系數時,復位腳正常連接。
        5、流量傳感器的輸入脈沖通過74HC393鎖存(雙四位二進制計數器)后,送入單片機的P2口。輸入信號:脈沖信號(0~255)HZ
        6、在單片機內經過程序處理后,輸出顯示信號送到P1口(數據4位,選擇信號4位)。連到12針的插座上。
      附圖二:
        1、輸出顯示信號送到P1口(數據4位,選擇信號4位)連到12針插座,其中數據4位(高四位)送入MC14543(BCD--鎖存/7段譯碼/驅動動器)中,共有12個MC14543,分別控制著與累計流量8位及瞬時流量4位相連的液晶塊的顯示數據。數據中另外4位選擇信號(ABCD)直接送到CD4514譯碼器(4位鎖存/4-16線譯碼器),通過兩個MC14174B(帶清0端的6D觸發器),浮動顯示的小數點位。
        2、累積流量和瞬時流量的顯示使用兩個液晶塊:EDS806A 960827/DR(8位)、EDS805A 971218/DR(4位)
        a、 累積流量顯示:八位浮點式,開始顯示小數點后五位:0.00000m3,最后顯示小數點后三位:0000.000m3。
        b、 瞬時流量顯示:顯示為小數點后兩位:00.00 m3。
      三、總框圖及主程序



      程序根據開關的設置分三大部分:①正常使用即測量部分②測量輸入頻率部分③設置調整系數部分。
      主程序如下:
      ORG 0000H
      LJMP L001E
      ORG 0003H
      LJMP L05E6
      ORG 0023H
      LJMP server
      MOV C,P0.7
      NOP
      JC L001E
      LJMP L052C ;
      L001E: MOV C, P0.7 ;IC40開關1(ON),3(ON),寫系數
      NOP
      JC L002C ;IC40開關2(ON),4(ON),測流量
      L0029: LJMP L037A ;IC40開關2(ON),4(OFF),測頻率
      L002C: LCALL L003B ;初始化
      LCALL L01D2 ;輸入頻率
      LCALL L01B7H ;流量進行累計
      LCALL L0085 ;顯示
      ORL 87H, #02H
      L003B: MOV R0, #60H ;60H~6FH清0
      MOV B, #10H
      LCALL L005B
      MOV C, P3.3
      JC L005A
      MOV R0, #40H ;40H~6FH清0
      MOV B, #10H
      LCALL L005B
      MOV R0, #50H ;50H~6FH清0
      MOV B, #10H
      LCALL L005B
      L005A: RET
      L005B: MOV @R0, #00H
      INC R0
      DJNZ B, L005B
      RET



      ORG 0037EH
      L037E: NOP
      JNB P0.7, L0385
      LJMP L052C ;寫系數
      L0385: MOV 38H, #00H ;以下是測頻率
      MOV 39H, #00H
      MOV 3AH, #00H
      MOV 3BH, #00H
      MOV 3CH, #00H
      MOV 3DH, #00H
      MOV 3EH, #00H
      MOV 3FH, #00H
      L03A1: CLR C
      MOV 2EH, #00H
      MOV 2FH, #00H
      ACALL L046E
      MOV A, R0
      NOP
      MOV B, #64H
      DIV AB
      MOV 32H, A
      MOV A, B
      MOV B, #0AH
      DIV AB
      MOV 31H, A
      MOV 30H, B
      MOV 33H, #00H
      MOV 34H, #00H
      MOV 35H, #00H
      MOV 36H, #00H
      MOV 37H, #00H
      ACALL L0411
      ACALL L03EF
      MOV C, P3.3
      JC L03EC
      MOV 38H, #00H
      MOV 39H, #00H
      MOV 3AH, #00H
      MOV 3BH, #00H
      MOV 3CH, #00H
      MOV 3DH, #00H
      MOV 3EH, #00H
      MOV 3FH, #00H
      L03EC: ORL 87H, #02H
      L03EF: ORL P1, #0FFH
      MOV B, #0EH
      CLR A
      MOV DPTR, #0359H ;顯示數據
      L03F9: MOVC A, @A+DPTR
      MOV R0, A
      MOV A, @R0
      ORL A, #0F0H
      ANL P1, A
      CLR A
      INC DPTR
      MOVC A, @A+DPTR
      ANL P1, A
      ORL P1, #0F0H
      ORL P1, #0FFH
      CLR A
      INC DPTR
      DJNZ B, L03F9
      RET
      L0411: MOV R0, #30H
      MOV R1, #38H
      MOV B, #08H
      CLR C
      L0419: MOV A, @R1
      ADDC A, @R0
      DA A
      MOV C, ACC.4
      CLR ACC.4
      MOV @R1, A
      INC R0
      INC R1
      DJNZ B, L0419
      RET
      ORG 0359
      DB 4BH,0DFH,4AH,0CFH,49H,9FH,49H,8FH,47H,7FH,46H,6FH,45H,5FH,44H,4FH
      DB 43H,3FH,38H,2FH,37H,1FH,36H,0FH,2FH,0AFH,2DH,0BFH

      ORG 000BH
      LJMP L05E6

      ORG 052CH
      L052C: MOV SP, #38H
      MOV IE, #88H
      MOV PSW, #00H
      MOV TMOD, #15H
      MOV TL0, #00H
      MOV TH0, #00H
      MOV TL1, #00H
      MOV TH1, #00H
      SETB TCON.TR0
      SETB TCON.TR1
      SETB P3.1
      MOV P3, #0FFH
      L0552: LCALL L0BD3 ;鍵盤輸入
      L0579: CJNE A, #0FBH, L0552
      LCALL L0814 ;寫系數
      RET

      ORG 05E6H ;定時顯示
      L05E6: PUSH ACC
      PUSH PSW
      MOV PSW, #08H
      MOV TL1, #00H
      MOV TH1, #00H
      CLR A
      MOV 78H, A
      SETB 01H
      MOV R0, #25H
      MOV R1, #00H
      MOV R7, #0CH
      L05FE: MOV A, #00H
      ORL A, #0F0H
      ANL P1, A
      ANL P1, A
      CLR A
      MOV A, #0BFH
      ANL P1, A
      ORL P1, #0F0H
      ORL P1, #0FFH
      MOV A, #00H
      ORL A, #0F0H
      ANL P1, A
      ANL P1, A
      CLR A
      MOV A, #0AFH
      ANL P1, A
      ORL P1, #0F0H
      ORL P1, #0FFH
      MOV A, R0
      CJNE A, 00H, L0635
      JNB 0AH, L0635
      CPL 0BH
      JNB 0BH, L0635
      MOV A, #0FH
      LJMP L0636
      L0635: MOV A, @R0
      L0636: ANL A, #0FH
      SWAP A
      ORL A, R1
      SWAP A
      MOV P1, A
      ORL A, #0F0H
      MOV P1, A
      INC R0
      INC R1
      CJNE R1, #0AH, L0648
      INC R1
      INC R1
      L0648: DJNZ R7, L05FE
      POP PSW
      POP ACC
      RETI


      四、接口及外設驅動程序
      1、輸入部分程序:
      L01D2: MOV R0, P2 ;讀入P2中的頻率信號
      CLR P3.7
      NOP
      NOP
      NOP
      SETB P3.7
      NOP
      NOP
      NOP
      MOV R1, #70H ;讀出的數據存入位置
      MOV R6, #0A0H ;27C16中的設備地址
      MOV R7, #08H
      L01E4: LCALL L0223 ;根據相應的頻率從27C16中讀取每秒流量參數
      MOV @R1, A
      INC R1
      MOV A, R6
      ADD A, #02H ;
      MOV R6, A
      DJNZ R7, L01E4 ;讀8位參數
      PUSH 00H
      MOV R1, #70H
      MOV R0, #28H
      MOV R3, #08H
      L01F7: MOV A, @R1
      MOV @R0, A
      DEC R0
      INC R1
      DJNZ R3, L01F7 ;將70H中的數據送入20H~27H中
      MOV R0, #20H ;將20H~27H中的數據送到60H~67H中。
      MOV R1, #67H
      MOV R3, #08H
      L0203: MOV A, @R0
      MOV @R1, A
      INC R0
      INC R1
      DJNZ R3, L0203
      MOV 60H, #36H ;將60H中的每秒流量換算成米3/小時
      MOV R0, #20H
      MOV R1, #60H
      MOV R3, #07H
      LCALL L02FC
      MOV R0, #20H ;將瞬時流量換算成十進制BCD送入到30H~3FH中
      MOV R1, #3FH
      MOV R2, #08H
      LCALL L034A
      POP 00H
      RET

      計算累計流量送入50H中,程序如下
      L01B7: mov R0, #67H ;將60H~67H中的瞬時流量二進制值累加到50H~57H
      MOV R1, #57H
      MOV B, #08H
      CLR C
      L01BF: MOV A, @R1
      ADDC A, @R0
      DA A
      MOV @R1, A
      DEC R0
      DEC R1
      DJNZ B, L01BF
      MOV R0, #50H ;將50H~57H中的二進制換算成十進制BCD碼
      MOV R1, #4FH ;送到40H~47H中
      MOV R2, #08H
      LCALL L034A
      RET
      2、顯示部分:
      程序如下:

      L0085: ORL P1, #0FFH ;P1口置1,4FH~40H中是要顯示的數據(高~低)
      MOV A, 4FH ;最高位是否為0
      NOP
      NOP
      MOV A, 4FH
      ANL A, #0ffH
      JZ L009E ;為0轉移
      MOV DPTR, #0F10H ;第一段顯示數據(此時數據為最大)
      MOV 2FH, #0a0h ;送小數點數據到2FH中
      LJMP L00DD
      L009E: MOV A, 4EH ;次高位是否為0
      NOP
      NOP
      MOV A, 4EH
      ANL A, #0FFH
      JZ L00B1 ;為0轉移
      MOV DPTR, #0F20H ;第二段顯示數據
      MOV 2FH, #21H ;送小數點數據到2FH中
      LJMP L00DD
      L00B1: MOV A, 4DH
      NOP
      NOP
      MOV A, 4DH
      ANL A, #0FFH
      JZ L00C4 ;為0轉移
      MOV DPTR, #0F30H ;第三段顯示數據
      MOV 2FH, #22H ;送小數點數據到2FH中
      LJMP L00DD
      L00C4: MOV A, 4CH
      NOP
      NOP
      MOV A, 4CH
      ANL A, #0FFH
      JZ L00D7 ;為0轉移
      MOV DPTR, #0F40H ;第四段顯示數據
      MOV 2FH, #24H ;送小數點數據到2FH中
      LJMP L00DD
      L00D7: MOV DPTR, #0F50H ;第五段顯示數據
      MOV 2FH, #28H ;送小數點數據到2FH中
      L00DD: MOV B, #0DH ;顯示數據中的數據個數
      MOV A, 2FH
      ANL A, #0FH
      MOV 2DH, A
      MOV A, 2FH
      ANL A, #0F0H
      SWAP A
      MOV 2FH, A
      CLR A
      L00EE: MOVC A, @A+DPTR ;取相應段的數據進行顯示
      MOV R0, A
      MOV A, @R0
      ORL A, #0F0H
      ANL P1, A
      NOP
      NOP
      NOP
      NOP
      NOP
      ANL p1,a
      CLR A
      INC DPTR
      MOVC A, @A+DPTR
      ANL P1, A
      NOP
      NOP
      NOP
      NOP
      ANL P1, A
      ORL P1, #0F0H
      ORL P1, #0FFH
      CLR A
      INC DPTR
      DJNZ B, L00EE
      END
      ORG 0F10H ;以下為顯示數據,浮動五位。
      DB 4FH,0DFH,4EH,0CFH,4DH,9FH,4CH,8FH,4BH,7FH,4AH,6FH,49H,5FH,48H,4FH
      DB 47H,3FH,38H,2FH,37H,1FH,36H,0FH,2FH,0AFH,2DH,0BFH
      ORG 0F20 H
      DB 4EH,0DFH,4DH,0CFH,4CH,9FH,4BH,8FH,4AH,7FH,49H,6FH,48H,5FH,47H,4FH
      DB 46H,3FH,38H,2FH,37H,1FH,36H,0FH,2FH,0AFH,2DH,0BFH
      ORG 0F30 H
      DB 4DH,0DFH,4CH,0CFH,4BH,9FH,4AH,8FH,49H,7FH,48H,6FH,47H,5FH,46H,4FH
      DB 45H,3FH,38H,2FH,37H,1FH,36H,0FH,2FH,0AFH,2DH,0BFH
      ORG 0F40 H
      DB 4CH,0DFH,4BH,0CFH,4AH,9FH,49H,8FH,48H,7FH,47H,6FH,46H,5FH,45H,4FH
      DB 44H,3FH,38H,2FH,37H,1FH,36H,0FH,2FH,0AFH,2DH,0BFH
      ORG 0F50 H
      DB 4BH,0DFH,4AH,0CFH,49H,9FH,49H,8FH,47H,7FH,46H,6FH,45H,5FH,44H,4FH
      DB 43H,3FH,38H,2FH,37H,1FH,36H,0FH,2FH,0AFH,2DH,0BFH
      3、鍵盤部分:
      L0BD3: SETB P3.2
      SETB P3.3
      SETB p3.4
      SETB P3.5
      MOV A, P3
      ORL A, #0D7H
      CJNE A, #0FFH, L0BF0
      MOV R6, #10H
      ACALL L0BFE
      MOV A, P3
      ORL A, #0D7H
      CJNE A, #0FFH, L0BD3
      CLR A
      CLR 07H
      SJMP L0BFD
      L0BF0: MOV R6, #10H
      ACALL L0BFE
      MOV A, P3
      ORL A, #0D7H
      CJNE A, #0FFH, L0BFD
      SJMP L0BD3
      L0BFD: RET
      L0BFE: NOP
      LCALL L07D3 ;延時程序
      DJNZ R6, L0BFE
      RET
      4、通訊程序:
      采用中斷方式傳送數據給計算機。
      ORG 0023H
      server: push acc
      push 00h
      push 01h
      push 02h ;保護斷點
      JBC TI,server1 ;中斷程序將累計流量傳給算機
      RETI
      Server1: mov R1,#50h
      Mov R0,#08h
      mov a,@r1
      MOV SBUF, A ;傳送一個位
      Djnz R0,server1
      JB P,ERROR ;偶校驗
      ANL A,#7FH ;去掉校驗位
      Server2: mov R1,#60h ; 中斷程序將瞬時流量傳給算機
      Mov R0,#08h
      mov a,@r1
      MOV SBUF, A ;傳送一個位
      Djnz R0,server1
      JB P,ERROR ;偶校驗
      ANL A,#7FH ;去掉校驗位
      ERROR: pop acc ;恢復斷點
      pop 02h
      pop 01h
      pop 00h
      RETI
      四、結束語
      流量計的抗干擾能力強,在流量全范圍內可非線性調整、內部無可調件、使用維護簡單等優點,可以用來測量、變送及現場顯示封閉工業管道中液體、氣體和蒸汽的流量及總量。從投用到現在,應用的效果非常好,是一種理想的儀表。
      參考文獻:
      1、 李華主編,MCG-51系列單片機實用接口技術,北京航空航天大學出版社出版,1997,書號:ISBN 7-81012-420-X/TP.091
      2、 李廣弟主編,單片機基礎,北京航空航天大學出版社出版,1994






      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 精品日韩一区二区三区视频| 无码精品国产一区二区三区免费 | 成人国产精品一区二区网站| 久久久久人妻精品一区| 国产乱码精品一区二区三区麻豆| 亚洲AV无码第一区二区三区| 一区二区三区四区在线播放| 风间由美在线亚洲一区| bt7086福利一区国产| 亚洲国产福利精品一区二区| 国产激情视频一区二区三区| 成人区精品人妻一区二区不卡| 日韩有码一区二区| 国产精品一区二区在线观看| 在线|一区二区三区四区| 亚洲av无码一区二区三区人妖| 午夜影院一区二区| 亚洲国产系列一区二区三区| 无码国产精品一区二区免费式直播 | 日韩人妻无码一区二区三区久久99| 色偷偷久久一区二区三区| 国产亚洲福利精品一区| 成人日韩熟女高清视频一区| 久久一区二区三区精品| 一区二区三区观看免费中文视频在线播放 | 日本中文字幕一区二区有码在线| 国产日韩精品一区二区三区| 日本一区免费电影| 一区二区三区美女视频| 中文字幕亚洲乱码熟女一区二区| 日韩免费视频一区二区| 亚洲日本乱码一区二区在线二产线 | 久久久人妻精品无码一区| 一级特黄性色生活片一区二区| 日韩在线视频一区二区三区| 亚洲一区二区高清| 亚洲国产精品自在线一区二区| 天堂国产一区二区三区| 亚洲日韩国产一区二区三区在线 | 日本亚洲成高清一区二区三区| 久久一区不卡中文字幕|