欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6636|回復: 3
收起左側

[討論]傳感器數據采集系統

[復制鏈接]
ID:10248 發表于 2009-10-30 19:33 | 顯示全部樓層 |閱讀模式

請高手看看我做的實驗臺的數據采集系統,看看下面的程序哪里有問題??????? 圖一,為硬件電路圖, 圖二,為計算機方面的軟件界面(用VB做的) 1.jpg 未命名.jpg

 

;======================
; 設置波特率
;======================
 ORG 0000H
 AJMP MAIN
 ORG 0003H
 AJMP ADZD
MAIN:
 MOV TMOD,#20H           ;令定時器1工作于模式2
 MOV TH1,#0FDH
 MOV TL1,#0FDH            ;設定計數值,令波特率為9600
 SETB TR1                      ;啟動定時器1
 SETB   IT0                     ;為邊沿觸發方式
 SETB EA                        ;開中斷
 SETB EX0                      ;允許中斷
;======================
; 接收數據
;======================
 MOV SCON,#70H             ;設定串行端口為模式1
LOOP:   CLR RI                 ;清除接收中斷標志位(開始接收數據)
 JNB RI,$                          ;等待數據接收完畢

;======================
; 判斷哪個按鈕被按下
;======================
 MOV A,SBUF                                ;接收到的數據(即代碼)存入A內

NEXT1: CJNE A,#'1',NEXT0            ;若代碼為1(即“開始”按鈕被按下)
 AJMP ADZH                                  ;則調用AD轉換模塊

NEXT0:  CJNE A,#'0',DONT            ;若代碼為0(即“復位”按鈕被按下)
 AJMP ALLOFF                                ;則跳去執行ALLOFF

DONT: AJMP LOOP                          ;重復執行程序

;====================================================
; 執行相應的程序
;====================================================

;AD轉換模塊
ADZH:
 MOV R0,#30H                ;存數據首地址
 SETB P3.7                     ;經與非門后使R/C=0
 CLR P3.6                       ;經與非門后使CE=1
 MOV DPTR,#3FFFH            ;使AO=0,CS=0,啟動12位轉換
 MOVX @DPTR,A              ;啟動AD轉換
HERE: AJMP HERE             ;等待中斷
ADZD: 
 PUSH PSW
 PUSH DPH
 PUSH DPL
 PUSH ACC                        ;保護現場
 CLR P3.7                          ;經與非門后使R/C=1
 MOV DPTR,#3FFFH            ;允許高8位并行輸出(CS=0,R/C=1,AO=0)
 MOVX A,@DPTR                ;讀高8位
 MOV @R0,A                      ;高8位存入RAM單元
 MOV DPTR,#7FFFH            ;允許低4位加上4個0輸出(CS=0,R/C=1,AO=1)
 MOVX A,@DPTR                ;讀低4位
 ANL A,#0FH                      ;屏蔽高4位隨機數據
 INC R0                               ;數據地址加1
 MOV @R0,A                       ;存低4位
 POP ACC                           ;恢復現場
 POP DPL
 POP DPH
 POP PSW
 RETI
 AJMP SENDON

 ;復位按鈕的相應程序
ALLOFF: MOV     P0,#00H         ;數據清零
        AJMP    SENDALL             ;發送代碼1

;====================================================
; 發送數據
;====================================================
;發送代碼0
SENDALL:
 CLR TI                        ;清除發送中斷標志位(準備發送數據)
 MOV SBUF,#'0'            ;發送代碼2
 JNB TI,$                      ;等待數據發送完畢
 AJMP LOOP                  ;重復執行程序

;發送代碼1
SENDON:
 CLR TI
 MOV SBUF,#'1'
 JNB TI,$
 AJMP LOOP

        END

[此貼子已經被admin于2009-10-31 14:32:33編輯過]
回復

使用道具 舉報

ID:18672 發表于 2009-10-31 07:20 | 顯示全部樓層

看看啥好東西

 

回復

使用道具 舉報

ID:18934 發表于 2009-11-8 21:06 | 顯示全部樓層
好厲害啊,我覺得電路設計好難啊,都不知道從哪里下手
回復

使用道具 舉報

ID:23217 發表于 2010-4-21 09:03 | 顯示全部樓層

為什么不用c的?找結構很麻煩。就是一個稱重傳感器的定時采集和通過rs232的pc通信

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表