系統(tǒng)執(zhí)行軟件源程序代碼_第1頁
系統(tǒng)執(zhí)行軟件源程序代碼_第2頁
系統(tǒng)執(zhí)行軟件源程序代碼_第3頁
系統(tǒng)執(zhí)行軟件源程序代碼_第4頁
系統(tǒng)執(zhí)行軟件源程序代碼_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、附錄一 系統(tǒng)執(zhí)行軟件源程序代碼一、 系統(tǒng)多機(jī)通信從機(jī)源程序代碼 TXCJ.ASM *TXCJ.ASM* *Lu Bo* *2007.5.26*- ORG 0000H SJMP MAIN ORG 0023H ;串行口中斷入口 SJMP SJCS-主程序- MAIN: SLAVE EQU 12 DK EQU P1.0 MOV SCON,#0B0H MOV TMOD,#20H MOV TL1,#0FDH MOV TH1,#0FDH MOV IE,#90H SETB TR1 LCALL WDCJ SETB RS1 CLR RS0 LCALL BCDZH LCALL DISPLAY CLR RS1 CL

2、R RS0 SJMP MAIN-串行口中斷服務(wù)子程序- SJCS: CLR RI PUSH A PUSH PSW MOV A,SBUF XRL A,#SLAVE JZ SJCS0 SJCS1: SETB SM2 POP PSW POP A RETI SJCS0: CLR SM2 MOV SBUF,#SLAVE JNB TI,$ CLR TI JNB RI,$ CLR RI MOV A,SBUF XRL A,#11H JZ SJCS2 SJMP SJCS1 SJCS2: MOV A,25H ADD A,#1 MOV SBUF,A JNB TI,$ CLR TI MOV 22H,#00H SJMP

3、 SJCS1-18B20溫度采集子程序- WDCJ: MOV SP,#60H LCALL GET_TEMP MOV A,21H MOV C,00H RRC A MOV C,01H RRC A MOV C,02H RRC A MOV C,03H RRC A MOV 21H,A MOV 25H,A LCALL BCDZH LCALL DISPLAY AJMP MAIN-18B20溫度采集時(shí)序子程序- GET_TEMP: CLR EA LCALL INT MOV A,#0CCH LCALL WRITE MOV A,#44H LCALL WRITE LCALL INT MOV A,#0CCH LCAL

4、L WRITE MOV A,#0BEH LCALL WRITE LCALL READ MOV 21H,A LCALL READ MOV 20H,A SETB EA RET-18B20初始化子程序- INT: CLR EA L0: CLR DK MOV R2,#200 L1: CLR DK DJNZ R2,L1 SETB DK MOV R2,#30 L4: DJNZ R2,L4 CLR C ORL C,DK JC L0 MOV R6,#80 L5: ORL C,DK JC L3 DJNZ R6,L5 SJMP L0 L3: MOV R2,#200 L2: DJNZ R2,L2 RET -18B2

5、0寫命令子程序- WRITE: CLR EA MOV R3,#8 WR1: SETB DK MOV R4,#8 RRC A CLR DK WR2: DJNZ R4,WR2 MOV DK,C MOV R4,#20 WR3: DJNZ R4,WR3 DJNZ R3,WR1 SETB DK RET-18B20讀數(shù)據(jù)子程序 READ: CLR EA MOV R6,#8 RE1: CLR DK MOV R4,#4 NOP SETB DK RE2: DJNZ R4,RE2 MOV C,DK RRC A MOV R5,#30 RE3: DJNZ R5,RE3 DJNZ R6,RE1 SETB DK RET-

6、八為十六轉(zhuǎn)十進(jìn)制子程序- BCDZH: INC 21H MOV A,21H MOV 30H,#12 JNB ACC.7,BCD0 MOV 30H,#11 CPL A ADD A,#1 BCD0: MOV R1,#00H MOV R2,#00H CLR C BCD1: SUBB A,#64H JC BCD2 INC R1 SJMP BCD1 BCD2: ADD A,#64H BCD3: SUBB A,#0AH JC BCD4 INC R2 SJMP BCD3 BCD4: ADD A,#0AH MOV 31H,R1 MOV 32H,R2 MOV 33H,A RET-四位數(shù)碼子程序- DISPLAY

7、: MOV R3,#4 MOV R0,#30H MOV 3AH,#0f7H DISP0: MOV A,R0 MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#0D00H MOVX DPTR,A MOV DPTR,#0E00H MOV A,3AH MOVX DPTR,A RR A MOV 3AH,A ACALL DY1ms INC R0 DJNZ R3,DISP0 RET -0.2ms延時(shí)子程序- DY1ms: MOV R4,#50 LOOP: NOP NOP DJNZ R4,LOOP RET-10ms延時(shí)子程序- DY10ms: MOV R4,#10 LOOP0: M

8、OV R5,#250 LOOP1: NOP NOP DJNZ R5,LOOP DJNZ R4,LOOP0 RET-十進(jìn)制碼表- TAB: DB 3fh,06h,5bh,4fh,66h ;0,1,2,3 DB 6dh,7dh,07h,7fh,6fh ;4,5,6,7 DB 058H,040H,00H ;8,9,C,-,黑屏 END二、系統(tǒng)多機(jī)通信主機(jī)源程序代碼 TXZJ.ASM- *TXCJ.ASM* *Lu Bo* *2007.5.26*-ORG 0000H SJMP MAIN-主程序- MAIN: MOV SP,#70H MOV SCON,#98H MOV TMOD,#20H MOV TL1

9、,#0FDH MOV TH1,#0FDH MOV PCON,#00H MOV R6,#10 MOV R7,#3 MOV 55H,#00H SETB TR1 LCALL BCDZH LCALL DISPLAY MAIN00: LCALL PCJCX LCALL SJCS MOV SCON,#50H lcall serial_send MOV SCON,#98H LCALL PCJCX LCALL SJCS11 LCALL PCJCX SJMP MAIN00-通信子程序- SJCS: MOV A,R6 MOV SBUF,A LCALL BCDZH LCALL DISPLAY JNB TI,$ CL

10、R TI LCALL BCDZH LCALL DISPLAY JNB RI,$ CLR RI MOV A,SBUF XRL A,R6 JZ SJCS0 SJCS00: LCALL BCDZH LCALL DISPLAY SETB TB8 SJMP SJCS SJCS0: CLR TB8 MOV 30H,R6 MOV A,#11H MOV SBUF,A LCALL BCDZH LCALL DISPLAY JNB TI,$ CLR TI JNB RI,$ CLR RI MOV A,SBUF MOV 44H,A LCALL SFJSJ SETB TB8 DJNZ 55H,SJCS RET SJCS1

11、1: MOV 55H,#00H INC R6 DJNZ R7,SJCS MOV R6,#10 MOV R7,#3 RET SFJSJ: CJNE R6,#11,SFJSJ3 MOV 62H,44H MOV 58H,44H SJMP SFJSJ0 SFJSJ3: JC SFJSJ1 MOV 63H,44H MOV 58H,44H SJMP SFJSJ0 SFJSJ1: MOV 61H,44H MOV 58H,44H SFJSJ0: RET PCJCX: MOV SCON,#50H JNB RI,HH1 LJMP HH2 HH1: LCALL BCDZH LCALL DISPLAY JNB RI,

12、WW5 HH2: CLR RI MOV A,SBUF WW1: CJNE A,#49,WW2 mov 44h,61h lcall bcdzh lcall display MOV 58H,61H lcall serial_send LJMP WW5-PC機(jī)地址判別子程序- WW2: CJNE A,#50,WW3 mov 44h,62h lcall bcdzh lcall display MOV 58H,62H lcall serial_send LJMP WW5 WW3: CJNE A,#51,WW4 mov 44h,63h lcall bcdzh lcall display MOV 58H,6

13、3H lcall serial_send LJMP WW5 WW4: CJNE A,#52,WW5 LJMP MAIN WW5: MOV SCON,#98H RET-八為十六轉(zhuǎn)十進(jìn)制子程序- BCDZH: MOV A,44H MOV 31H,#15 JNB ACC.7,BCD0 MOV 31H,#14 CPL A ADD A,#1 BCD0: MOV R1,#00H MOV R2,#00H CLR C BCD1: SUBB A,#64H JC BCD2 INC R1 SJMP BCD1 BCD2: ADD A,#64H BCD3: SUBB A,#0AH JC BCD4 INC R2 SJMP

14、 BCD3 BCD4: ADD A,#0AH MOV 32H,R1 MOV 33H,R2 MOV 34H,A RET-六位數(shù)碼子程序- DISPLAY: MOV R3,#6 MOV 35H,#13 MOV R0,#30H MOV 3AH,#0DFH DISP0: MOV A,R0 MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#0D00H MOVX DPTR,A MOV DPTR,#0E00H MOV A,3AH MOVX DPTR,A RR A MOV 3AH,A ACALL DY1ms INC R0 DJNZ R3,DISP0 RET-0.2ms延時(shí)子程序- D

15、Y1ms: MOV R4,#50 LOOP: NOP NOP DJNZ R4,LOOP RET-10ms延時(shí)子程序- DY10ms: MOV R4,#10 LOOP0: MOV R5,#250 LOOP1: NOP NOP DJNZ R5,LOOP DJNZ R4,LOOP0 RET-PC機(jī)通信子程序- serial_send: NOP NOP NOP NOP DEC 58H MOV A,58H mov b,#10 ;溫度值為16進(jìn)制方式,控制范圍不超過100oC div ab ;因此可只用兩位十進(jìn)制數(shù)表示 mov dptr,#ascii_tab ;分出十位在acc中,個(gè)位在b中 movc a

16、,a+dptr ;用查表法將數(shù)轉(zhuǎn)換成ascii碼 mov sbuf,a ;LCALL BCDZH ;LCALL DISPLAY ;啟動(dòng)串口發(fā)送10位的數(shù)據(jù) jnb ti,$ ;等待一幀發(fā)送結(jié)束,未完時(shí)ti=0,結(jié)束時(shí)ti=1 clr ti ;清除發(fā)送中斷標(biāo)志位 mov a,b ;取在b中的個(gè)位 movc a,a+dptr mov sbuf,a ;LCALL BCDZH ;LCALL DISPLAY ;啟動(dòng)串口發(fā)送個(gè)位的數(shù)據(jù) jnb ti,$ clr ti SETB TB8 RET ascii_tab:db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h ;09A

17、SCII碼表 TAB: DB 3fh,06h,5bh,4fh,66h ;0,1,2,3 DB 6dh,7dh,07h,7fh,6fh ;4,5,6,7 DB 77H,7CH,39H,058H,040H,00H ;8,9,A,b,C,c-,黑屏 END三、計(jì)算機(jī)實(shí)驗(yàn)室溫控系統(tǒng)PC機(jī)應(yīng)用程序代碼:(Visual Basic)-Dim x As IntegerDim y As IntegerDim T As IntegerDim C As IntegerDim I As Integer-Private Sub button_now1_Click() MSComm.Output = Text_SEND

18、.Text + 1 發(fā)送數(shù)據(jù) T = 10 Text_SEND.Text = 1 For I = 1 To 2 延時(shí) NextEnd Sub-Private Sub button_now2_Click() MSComm.Output = Text_SEND.Text + 2 發(fā)送數(shù)據(jù) T = 11 Text_SEND.Text = 2 For I = 1 To 2 延時(shí) NextEnd Sub-Private Sub button_now3_Click() MSComm.Output = Text_SEND.Text + 3 發(fā)送數(shù)據(jù) T = 12 Text_SEND.Text = 2 For

19、 I = 1 To 2 延時(shí) NextEnd Sub-Private Sub Button_RECV_C_Click() Text_RECV.Text = Text_SEND.SetFocus MSComm.Output = Text_SEND.Text + 9End Sub-Private Sub Button_SEND_C_Click() Text_SEND.Text = Text_SEND.SetFocusEnd Sub-Private Sub Button_SEND_Click()Dim x As String If Text_SEND.Text = Then 發(fā)送數(shù)據(jù)不能為空 x =

20、 MsgBox(發(fā)送數(shù)據(jù)不能為空, 16) Exit Sub- End If If Not MSComm.PortOpen Then 保證串口打開 x = MsgBox(請打開串口, 9) MSComm.PortOpen = True End If MSComm.Output = Text_SEND.Text 發(fā)送數(shù)據(jù) For I = 1 To 200 延時(shí) NextEnd SubPrivate Sub Check1_Click()If Check1.Value = 1 Then x = 1Else x = 0 End IfEnd Sub-Private Sub cmdquit_Click()

21、Open C:SCON.txt For Output As #2Print #2, Text_RECV.TextClose #2EndEnd Sub-Private Sub Form_Load() 端口設(shè)置 MSComm.CommPort = 1 MSComm.Settings = 9600,n,8,1 MSComm.InputLen = 0 MSComm.InBufferSize = 1024 MSComm.OutBufferSize = 512 MSComm.PortOpen = True MSComm.SThreshold = 0 MSComm.RThreshold = 1 MSComm

22、.InBufferCount = 0 MSComm.OutBufferCount = 0 Text_SEND.Text = Text_RECV.Text = End Sub-Private Sub MSComm_OnComm() Select Case MSComm.CommEvent 檢查串口事件 錯(cuò)誤處理 Case comEventOverrun Text_SEND.Text = Text_RECV.Text = Text_SEND.SetFocus Exit Sub Case comEventRxOver Text_SEND.Text = Text_RECV.Text = Text_SEND.SetFocus Exit Sub Case comEventTxFull Text_SEND.Text = Text_RECV.Text = Text_SEND.SetFocus Exit Sub Case comEvReceive Dim str As String b = Date$ a = Time$ Mid(Date$, 1, 4) & Mid(Date$, 6, 2) & Mid(Date

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論