電磁流量計轉換器的研制與開發 二十八
4.3 A/D轉換子程序模塊
電磁流量計對所有輸入的模擬量轉換為數字量,本設計是以中斷方式讀取轉換結果的,但這里我們也將查詢方式讀取轉換結果程序流程圖寫出來,以用來比較。
AD0809的中斷方式轉換程序段如下 ORG 0030H MOV R7,#41H MOV DPTR,#0FFF8H ;端口地址送DPTR MOVX @DPTR,A ;啟動A/D轉換 SETB EA SETB EX1 ;開外中斷1 SETB IT1 ;外中斷請求信號為下跳沿觸發方式 LOOP: SJMP LOOP ;等待中斷 END 中斷服務程序: ORG 0013H LJMP WZ1 WZ1: MOV DPTR,#0FFF9H MOVX A,@DPTR ;讀高8位數據 MOV @R7,A ;存高8位數據 INC DPTR INC DPTR MOVX A,@DPTR ;讀低4位數據 ANL A,#0FH ;屏蔽高4位隨機數
執行主程序
啟動A/D轉換
等待中斷
中斷返回
轉換結果 處理程序
保護現場
讀取轉換結果 高8位 41H 低8位 40H
DEC R7 MOV @R7,A ;存低4位數據 LJMP: DDPP ;跳至數據處理程序 RETI
4.4 鍵盤子程序模塊
本系統中設立1個按鍵,此鍵調節勵磁電路的頻率。由第二章我們已知這個按鍵接在單片機的P3.2口,即利用單片機的外部中斷INT0,在編程時把INT0設為下降沿觸發,則可實現調節頻率的功能。當外部產生中斷時,中斷子程序對20H.4取反。若20H.4=1則選擇60HZ頻率,若20H.4=0那么選擇30HZ頻率。 中斷子只對20H.4取反,具體程序如下: INT0IN: NOP NOP CPL 20H.4 NOP RETI
4.5 LED顯示子程序模塊
該程序的功能是清楚地顯示液體流量的當前值。
程序開始
保護現場
關TI中斷,開其他中斷
設置段碼緩沖區指針
設置位碼緩沖區指針
設置顯示位數
是閃爍位否?
將位碼和段碼值送P2口
顯示某位,延時1ms
修改顯示緩沖區指針顯示位數減1
顯示完否?
TI計數器置初值
恢復現場,開中斷
中斷返回(RET)
電磁流量計