系统执行软件源程序代码_第1页
系统执行软件源程序代码_第2页
系统执行软件源程序代码_第3页
系统执行软件源程序代码_第4页
系统执行软件源程序代码_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、附录一 系统执行软件源程序代码一、 系统多机通信从机源程序代码 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-串行口中断服务子程序- 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温度采集时序子程序- 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读数据子程序 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、八为十六转十进制子程序- 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-四位数码子程序- 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延时子程序- DY1ms: MOV R4,#50 LOOP: NOP NOP DJNZ R4,LOOP RET-10ms延时子程序- DY10ms: MOV R4,#10 LOOP0: M

8、OV R5,#250 LOOP1: NOP NOP DJNZ R5,LOOP DJNZ R4,LOOP0 RET-十进制码表- 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二、系统多机通信主机源程序代码 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机地址判别子程序- 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-八为十六转十进制子程序- 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-六位数码子程序- 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延时子程序- D

15、Y1ms: MOV R4,#50 LOOP: NOP NOP DJNZ R4,LOOP RET-10ms延时子程序- DY10ms: MOV R4,#10 LOOP0: MOV R5,#250 LOOP1: NOP NOP DJNZ R5,LOOP DJNZ R4,LOOP0 RET-PC机通信子程序- serial_send: NOP NOP NOP NOP DEC 58H MOV A,58H mov b,#10 ;温度值为16进制方式,控制范围不超过100oC div ab ;因此可只用两位十进制数表示 mov dptr,#ascii_tab ;分出十位在acc中,个位在b中 movc a

16、,a+dptr ;用查表法将数转换成ascii码 mov sbuf,a ;LCALL BCDZH ;LCALL DISPLAY ;启动串口发送10位的数据 jnb ti,$ ;等待一帧发送结束,未完时ti=0,结束时ti=1 clr ti ;清除发送中断标志位 mov a,b ;取在b中的个位 movc a,a+dptr mov sbuf,a ;LCALL BCDZH ;LCALL DISPLAY ;启动串口发送个位的数据 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三、计算机实验室温控系统PC机应用程序代码:(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 发送数据 T = 10 Text_SEND.Text = 1 For I = 1 To 2 延时 NextEnd Sub-Private Sub button_now2_Click() MSComm.Output = Text_SEND.Text + 2 发送数据 T = 11 Text_SEND.Text = 2 For I = 1 To 2 延时 NextEnd Sub-Private Sub button_now3_Click() MSComm.Output = Text_SEND.Text + 3 发送数据 T = 12 Text_SEND.Text = 2 For

19、 I = 1 To 2 延时 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 发送数据不能为空 x =

20、 MsgBox(发送数据不能为空, 16) Exit Sub- End If If Not MSComm.PortOpen Then 保证串口打开 x = MsgBox(请打开串口, 9) MSComm.PortOpen = True End If MSComm.Output = Text_SEND.Text 发送数据 For I = 1 To 200 延时 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() 端口设置 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 检查串口事件 错误处理 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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论