找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 6570|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

[討論]傳感器數(shù)據(jù)采集系統(tǒng)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:10248 發(fā)表于 2009-10-30 19:33 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

請(qǐng)高手看看我做的實(shí)驗(yàn)臺(tái)的數(shù)據(jù)采集系統(tǒng),看看下面的程序哪里有問題??????? 圖一,為硬件電路圖, 圖二,為計(jì)算機(jī)方面的軟件界面(用VB做的)

 

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

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

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

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

DONT: AJMP LOOP                          ;重復(fù)執(zhí)行程序

;====================================================
; 執(zhí)行相應(yīng)的程序
;====================================================

;AD轉(zhuǎn)換模塊
ADZH:
 MOV R0,#30H                ;存數(shù)據(jù)首地址
 SETB P3.7                     ;經(jīng)與非門后使R/C=0
 CLR P3.6                       ;經(jīng)與非門后使CE=1
 MOV DPTR,#3FFFH            ;使AO=0,CS=0,啟動(dòng)12位轉(zhuǎn)換
 MOVX @DPTR,A              ;啟動(dòng)AD轉(zhuǎn)換
HERE: AJMP HERE             ;等待中斷
ADZD: 
 PUSH PSW
 PUSH DPH
 PUSH DPL
 PUSH ACC                        ;保護(hù)現(xiàn)場(chǎng)
 CLR P3.7                          ;經(jīng)與非門后使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個(gè)0輸出(CS=0,R/C=1,AO=1)
 MOVX A,@DPTR                ;讀低4位
 ANL A,#0FH                      ;屏蔽高4位隨機(jī)數(shù)據(jù)
 INC R0                               ;數(shù)據(jù)地址加1
 MOV @R0,A                       ;存低4位
 POP ACC                           ;恢復(fù)現(xiàn)場(chǎng)
 POP DPL
 POP DPH
 POP PSW
 RETI
 AJMP SENDON

 ;復(fù)位按鈕的相應(yīng)程序
ALLOFF: MOV     P0,#00H         ;數(shù)據(jù)清零
        AJMP    SENDALL             ;發(fā)送代碼1

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

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

        END

[此貼子已經(jīng)被admin于2009-10-31 14:32:33編輯過]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:18672 發(fā)表于 2009-10-31 07:20 | 只看該作者

看看啥好東西

 

回復(fù)

使用道具 舉報(bào)

板凳
ID:18934 發(fā)表于 2009-11-8 21:06 | 只看該作者
好厲害啊,我覺得電路設(shè)計(jì)好難啊,都不知道從哪里下手
回復(fù)

使用道具 舉報(bào)

地板
ID:23217 發(fā)表于 2010-4-21 09:03 | 只看該作者

為什么不用c的?找結(jié)構(gòu)很麻煩。就是一個(gè)稱重傳感器的定時(shí)采集和通過rs232的pc通信

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表