客車用盤式制動(dòng)閘制動(dòng)性能檢測系統(tǒng)設(shè)計(jì)
客車用盤式制動(dòng)閘制動(dòng)性能檢測系統(tǒng)設(shè)計(jì),客車用盤式制動(dòng)閘制動(dòng)性能檢測系統(tǒng)設(shè)計(jì),客車,用盤式,制動(dòng)閘,制動(dòng),性能,機(jī)能,檢測,系統(tǒng),設(shè)計(jì)
畢 業(yè) 設(shè) 計(jì) 附 件 四
源程序
專 業(yè) 機(jī)械設(shè)計(jì)制造及其自動(dòng)化
學(xué)生姓名
班 級
學(xué) 號
指導(dǎo)教師
完成日期 2011年6月6日
源程序
速度采集AD/轉(zhuǎn)換接口程序
ORG 0000H
ADIO: SJMP START
ORG 0013H ; INT1中斷入口
MOV R6,#0AH ; 設(shè)置循環(huán)次數(shù),
延時(shí)10s
LOOP: LCALL DEL; 調(diào)用1s延時(shí)子程序
JMP INDATA
DJNZ R6,LOOP
ORG 0040H; 主程序入口
START: ANL P2,#07FH; 芯片選擇
MOVX A,@R1; 讀一個(gè)數(shù)據(jù)并復(fù)位ADC中斷觸發(fā)器
ORL P2,80H; 置位P2.7
MOV R0,#20H; 數(shù)據(jù)地址
MOV Rl,0FFH; 虛擬地址
MOV A,#0FFH; 為中斷循環(huán)置位累加器
ANL P2,#07FH; 發(fā)送片選信號
MOVX @Rl,A 發(fā)送寫輸出信號,啟動(dòng)A/D轉(zhuǎn)換
SETB EA 中斷開放
SETB EXI 允許INT1中斷
LOOP: JNZ LOOP 中斷等待,判A的內(nèi)容=0,進(jìn)入中斷后A=0
NOP
NOP
INDATA: MOVX A,@R1; 若片選為低,則輸入數(shù)據(jù)
MOV @R0,A 存儲在存儲器中
CRL A; 清累加器以得到中斷循環(huán)輸出
RET; 返回
SMJZ: ORG 3000H
MOV DPTR,#6000H 8279命令口地址
MOV A,#10H; 8位顯示,右入口
MOVX @DPTR,A; 輸出控制字
MOV A,#14H 分頻數(shù)20
MOVX @DPTR,A; 8279內(nèi)部產(chǎn)生100kHz頻率
MOV A#90H; 寫顯示RAM地址,Al=1遞增
MOVX @DPTR,A
RET
轉(zhuǎn)速顯示編程:
ORG 3100H
ZSDISP: MOV RO,#43H; 顯示緩沖地址43H
MOV R2, #04H 顯示共4位
MOV DPTR,#4000H; 指向8279數(shù)據(jù)口
LOOP: MOV A,@R0
MOV DPTR,#TAB; 開始查表,TAB=3180H
MOVC A,A+@DPTR
MOVX @DPTR,A
DEC R0
DJNZ R2 ,LOOP
RET
延時(shí)lms程序:
DL 1MS: MOV R3, #02H
Ll: MOV R4, #0F8H
L2: DJNZ R4, L2
DJNZ R3, Ll
RET
數(shù)據(jù)處理及拆字程序如下:
ADCP: ORG 1000H
MOV A,@R0; 從AD轉(zhuǎn)換中取數(shù)據(jù)
MOV 26H,A; 數(shù)據(jù)送26H儲存,作比較用
MOV B,#0FH; 將15的二進(jìn)制數(shù)0FH送B
DIV AB
MOV 20H,A; 商數(shù)存A
MOV 21H,B; 余數(shù)存B
MOV R4,#02H; 兩個(gè)單元均需要拆字顯示
MOV R0,#20H; 從暫存單元取數(shù)
MOV Rl,#40H; 設(shè)暫存拆字結(jié)果臨時(shí)單元
LOOP: MOV A,@R0
MOV B,#0AH; 除以10即可
DIV AB
MOV @R1,B; 存余數(shù)(個(gè)位)
INC Rl
MOV @R1,A; 存商(十位)
INC Rl
INC R0
DJNZ R4,LOOP
RET
轉(zhuǎn)速賦初值:
ZSFCZ: MOV DPTR,#34X()H; 設(shè)置地址3400H
MOV R4,#02H; 兩個(gè)初值分別傳送
MOV R0,#21H; 設(shè)暫存單元首地址
LOOP: MOVX A,@DPTR
MOV @R0,A
DEC R0; 指向轉(zhuǎn)速百位、千位
INC DPTR; 指向轉(zhuǎn)速個(gè)位、十位
DJNZ R4, L
RET
主程序:
ORG 4200H
MAIN: LCALL SMLZ
LCALL ZSFCZ
MOV R6,#0AH; 置循環(huán)次數(shù),延時(shí)10S
LOOP1: LCALL DEL; 調(diào)用1S延時(shí)子程序
LCALL ADIO
LCALL ADCP
LCALL DLlms; 調(diào)用lms延時(shí)子程序
LCALL ZSDISP
DJNZ R6,LOOP1
LCALL KZYS
MOV P2,#02H;
ORL P2,#80H; 禁止片選信號
LCALL SMLZ
LCALL TOCSH
LCALL MBFCZ
LOOP2: LCALL CX
LCALL MBDISP
LCALL DLlms; 調(diào)用lms延時(shí)子程序
MOV R4,26H
CJNE R4,00H,L00P2; 判轉(zhuǎn)速是否為0,不為0,繼續(xù)
SETB P2.2; 鎖存秒表顯示
END
ATmega16單片機(jī)對A/D芯片TLC3545的初始化和采樣程序如下:
?void??Init_TLC3545(?) //初始化程序
?{
CS3545_A?=?0;?
CS3545_A?=?0;//這里是把拉低2us,TLC3545初始化把拉低至少1個(gè)SCLK時(shí)鐘
CS3545_A?=?1;
?}
?void????Sample_TLC3545(?) //采樣程序
?{
uint8 k;
EA?=?0;
EA?=?1;
CS3545_A?=?0;?
SPIDAT?=?0x77;?? //寫SPIDAT產(chǎn)生SCLK時(shí)鐘
while?(!ISPI);?
datah?=?SPIDAT;? //收TLC3545發(fā)出的前8位,第一個(gè)字節(jié)
SPIDAT?=?0x77;
while?(!ISPI);
????????datal?=?SPIDAT; //收后8位,第二個(gè)字節(jié)??
SPIDAT?=?0x77;? //繼續(xù)給SCLK時(shí)鐘,直到24thSCLK之后釋放cs
do?{
k?=?0;
}while(k);???? //拖延時(shí)間,讓TLC3545的在24個(gè)SCLK周期后才得以釋放
dUw0?=?((datah<<8)?+?(datal&0xfc));
? CS3545_A?=?1;
?}
數(shù)據(jù)采集器的串行口初始化和中斷子程序的代碼如下:
初始化程序:
MOV SCON,#50H ;設(shè)置成串口1方式
MOV PCON,#00H
MOV TMOD,#21H ;波特率發(fā)生器T1工作在模式2上
MOV TH1,#0FDH ;T1初始化,設(shè)定波特率為38400
MOV TL1,#0FDH
SETB TR1 ;啟動(dòng)波特率發(fā)生器
SETB EA
SETB ES ;允許串口中斷
串行中斷子程序:
SSERVER: MOV 34H, A ;保護(hù)現(xiàn)場
CLR ES
JNB RI, KZHD
CLR RI
MOV A, SBUF
CJNE A, #02H, KZHD ;若地址不匹配,開串口中斷并中斷返回
MOV SBUF, #02H ;若匹配,發(fā)送自身地址
JNB TI, $
CLR TI
MOV R1, #40H ;發(fā)送采集的數(shù)據(jù)
MOV R4, #16
JIXU: MOV SBUF, @R1
JNB TI, $
CLR TI
INC R1
DJNZ R4, JIXU
MOV R1, #40H ;將采集數(shù)據(jù)存儲區(qū)清零
MOV R4, #16
QL: MOV @R1, #00
INC R1
DJNZ R4, QL
KZHD: SETB ES ;開中斷
FANHUI: MOV A, 34H ;還原現(xiàn)場
RETI ;中斷返回
本系統(tǒng)實(shí)現(xiàn)串行通訊主要分兩步:MsComm控件屬性的設(shè)置和OnComm對事件作出響應(yīng)。詳細(xì)程序如下:
(1)MsComm控件屬性的設(shè)置
MsComm1.Settings=“38400,n,8,1”
’數(shù)據(jù)傳輸波特率為38400b/s,無奇偶校驗(yàn),8位數(shù)據(jù)位,1位停止位
MsComm1.ComPort=Y(jié) ’設(shè)Y為1,2,分別代表串行口1,2
MsComm1.Inputlen=0 ’將緩沖區(qū)內(nèi)容一次讀入
MsComm1.InBufferSize = 1024 ’接收緩沖區(qū)大小
MsComm1.InputMode = ComInputModeBinary ’數(shù)據(jù)以二進(jìn)制的格式取回
MsComm1.RThreshold = 2 ’接收兩個(gè)字節(jié)觸發(fā)一次OnComm事件
MsComm1.OutBufferSize = 512 ’傳輸緩沖區(qū)大小
MsComm1.PortOpen = True ’打開串口
(2)OnComm事件響應(yīng)程序
Private Sub MSComm1_OnComm()
Dim i As Integer
Dim recdata() As Byte
’定義二進(jìn)制數(shù)組,由緩沖區(qū)接收到的數(shù)據(jù)用二進(jìn)制格式接收
Dim DataCom As Single ’數(shù)據(jù)轉(zhuǎn)換為Single格式
’以下程序是comEvReceive事件觸發(fā)后,將數(shù)據(jù)存入相應(yīng)的數(shù)組
Select Case MsComm1.CommEvent
Case ComEvReceive
recdata = MsComm1.Input
DataCom = (256 * recdata(i) + recdata(i - 1))
Next i
End Select
End Sub
本系統(tǒng)中利用ADO對象編程訪問數(shù)據(jù)庫的具體使用方法如下:
首先,在Access中建立名為Datamb.mdb的數(shù)據(jù)庫,表1為數(shù)據(jù)表的結(jié)構(gòu)。表中存儲了制動(dòng)壓力、閘間隙、油壓、運(yùn)行速度和安全回路狀態(tài),以及相應(yīng)的數(shù)據(jù)采集的時(shí)間。
表1 數(shù)據(jù)表結(jié)構(gòu)
字段名稱
數(shù)據(jù)類型
Id (編號)
自動(dòng)編號
Datadat (日期)
日期/時(shí)間(短時(shí)間)
Datatim (時(shí)間)
日期/時(shí)間(長時(shí)間)
Dataval1_press (壓力)
數(shù)字(單精度型)
Dataval1_gap (間隙)
數(shù)字(單精度型)
……
……
Dataval24_press (壓力)
數(shù)字(單精度型)
Dataval24_gap (間隙)
數(shù)字(單精度型)
Dataval1_oil
數(shù)字(單精度型)
Dataval2_oil
數(shù)字(單精度型)
Dataval_speed
數(shù)字(單精度型)
Dataval_relay
數(shù)字(布爾型)
其次,通過引用ADO對象建立數(shù)據(jù)庫中的表與數(shù)據(jù)源的連接:
Ado1.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=" & DataPath.Text & "; Persist Security Info=False"
Ado1.CommandType = adCmdTable
Ado1.RecordSource = "datamb"
再次,對數(shù)據(jù)表進(jìn)行操作,包括更新和清空:
Ado1.Refresh
If Ado1.Recordset.RecordCount > 0 Then
Ado1.Recordset.MoveFirst
While Not Ado1.Recordset.EOF
Ado1.Recordset.Delete
Ado1.Recordset.MoveNext
Wend
End If
最后,對數(shù)據(jù)記錄進(jìn)行操作,包括增加、修改、刪除記錄,以下是增加新記錄的程序代碼:
With Ado1.Recordset
.AddNew ’新增加一條記錄
.Fields(1).Value = Date ’數(shù)據(jù)采集日期
.Fields(2).Value = Time ’數(shù)據(jù)采集時(shí)間
For i=3 to 54
.Fields(i).Value = DataCom(i-2)
’將采集到的數(shù)據(jù)值賦給相應(yīng)的字段
Next i
.MoveNext
End with
形成報(bào)表的輸出,實(shí)現(xiàn)的主要代碼如下:
'//聲明一個(gè)WORD應(yīng)用程序,使WORD中的APPLICATION對象對自動(dòng)功能有效
Dim Myword As New Word.Application
'//定義變量,使其代表WORD的一篇文檔
Dim Mydoc As Word.Document
Dim Myrange As Range
Dim Mytable As Table
Dim mybook As Bookmark
Set Mydoc = Myword.Documents.OPEN(App.Path & "\報(bào)表模版.doc")
Mydoc.SaveAs (App.Path & "\報(bào)表1.doc")
'AppActivate Mydoc.Application.Caption
Set Mytable = Mydoc.Tables(1)
Mytable.Select
7
收藏
編號:20944636
類型:共享資源
大?。?span id="24d9guoke414" class="font-tahoma">8.90MB
格式:ZIP
上傳時(shí)間:2021-04-21
40
積分
- 關(guān) 鍵 詞:
-
客車用盤式制動(dòng)閘制動(dòng)性能檢測系統(tǒng)設(shè)計(jì)
客車
用盤式
制動(dòng)閘
制動(dòng)
性能
機(jī)能
檢測
系統(tǒng)
設(shè)計(jì)
- 資源描述:
-
客車用盤式制動(dòng)閘制動(dòng)性能檢測系統(tǒng)設(shè)計(jì),客車用盤式制動(dòng)閘制動(dòng)性能檢測系統(tǒng)設(shè)計(jì),客車,用盤式,制動(dòng)閘,制動(dòng),性能,機(jī)能,檢測,系統(tǒng),設(shè)計(jì)
展開閱讀全文
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。