还剩13页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
附录一系统执行软件源程序代码系统多机通信从机源程序代码TXCJ.ASM*TXCJ.ASM**Lu Bo**
2007.
5.26*ORG0000HSJMP MAIN;串行口中断入口ORG0023HSJMP SJCS--主程序MAIN:SLAVE EQU12DK EQUP
1.0MOV SCON,#OBOHMOV TMOD,#20HMOV TL1,#OFDHMOV TH1,#OFDHMOV IE,#90HSETB TR1LCALL WDCJSETBRS1CLR RSOLCALLBCDZHLCALLDISPLAYCLR RSICLR RSOSJMPMAIN-----------------串行口中断服务子程序SJCS:CLR RIPUSHAPUSH PSWMOV A,SBUFXRL A,#SLAVEJZ SJCSOSJCS1:SETB SM2POP PSWPOPARETISJCSO:CLR SM2MOV SBUF,#SLAVEserial_send:NOPNOP NOPNOP DEC58HMOV A,58H movb,#10超过lOOoC divabmov dptr,#ascii_tabmove a,@a+dptr;温度值为进制方式,控制范围不16mov sbuf,a;LCALL;因此可只用两位十进制数表示BCDZH;LCALL;分出十位在中,个位在中DISPLAY jnbti,$acc b;用查表法将数转换成码ascii结束时ti=l clrtimov a,bmove a,@a+dptr;启动串口发送位的数据10mov sbuf,a;等待一帧发送结束,未完时ti=0,;LCALLBCDZH;LCALL;清除发送中断标志位DISPLAY jnbti,$;取在中的个位bclr tiSETBTB8;启动串口发送个位的数据RET码表ascii_tab:db30h,31h,32h,33h,34h,35h,36h,37h,38h,39h;0—9ASCIITAB:DB3fh,06h,5bh,4fh,66h;0,l,2,3;DB6dh,7dh,07h,7fh,6fh4,5,6,7黑屏DB77H,7CH,39H,058H,040H,00H;8,9,A,b,C,c-,END
三、计算机实验室温控系统机应用程序代码PC VisualBasicDim xAs IntegerDimy As IntegerDim TAsIntegerDimC AsIntegerDim IAs IntegerPrivate Sub button_now1_Click发送数据MSComm.Output=Text_SEND.Text+1”延时TexjSEND.Text=T For I=1To2NextEnd SubPrivate Sub button_now2_Click发送数据MSComm.Output=Text_SEND.Text+2”T=111Text_SEND.Text二2延时For I=1To2NextEnd SubPrivateSub button_now3_Click发送数据MSComm.Output=Text_SEND.Text+3”T=121Text_SEND.Text=2延时For I=1To2NextEnd SubPrivateSub Button_RECV_C_Click二”Text_RECV.TextText_SEND.SetFocusMSComm.Output=Text_SEND.Text+9End SubPrivateSub Button_SEND_C_ClickText_SEND.Text=””Text_SEND.SetFocusEnd SubPrivateSub Button_SEND_ClickDim xAs String,发送数据不能为空发送数据不能为空,IfText_SEND.Text=Then x=MsgBox16Exit SubEndIf保证串口打开If NotMSComm.PortOpen Then请打开串口x=MsgBox19MSComm.PortOpen=TrueEnd If,发送数据MSComm.Output=Text_SEND.Text延时ForI=1To200NextEnd SubPrivateSub Checkl_ClickIf Check!.Value=1Thenx=1Elsex=0End IfEnd SubPrivateSubcmdquit_ClickOpen“C:\SCON.txt”For OutputAs#2Print#2,Text_RECV.TextClose#2EndEnd Sub端口设置PrivateSubForm_Load MSComm.CommPort=1MSComm.Settings=n9600,n,8,l MSComm.InputLen=0MSComm.InBufferSize=1024MSComm.OutBufferSize=512MSComm.PortOpen=True MSComm.SThreshold=0MSComm.RThreshold=1MSComm.InBufferCount=0MSComm.OutBufferCount=0Text_SEND.Text=Text_RECV.Text=””EndSubPrivateSub MSComm_OnCommSelect CaseMSComm.CommEvent1检查串口事件错误处理Case comEventOverrunText_SEND.Text”Text_RECV.Text”Text_SEND.SetFocusExit SubCasecomEventRxOverText_SEND.Text”Text_RECV.Text”Text_SEND.SetFocusExit SubCasecomEventTxFullText_SEND.Text”Text_RECV.Text”Text_SEND.SetFocusExit SubCasecomEvReceiveDim strAs Stringb=Date$a=Time$MidDate$,1,4MidDate$,6,2MidDate$,9,2str=MSComm.InputIfT=10ThenLblnowl.Caption=NOW1“+””+str+n℃n二””lblnow
2.CaptionLBLNOW
3.Caption=””Open“C:\RECV.txt”For AppendAs#1Print#l,b+”“+a+””+str+“℃”Close#1T=13ElseTfT=11Then二”Lblnowl.Captionlblnow
2.Caption二NOW2“+””+str+n℃HLBLNOW
3.Caption=Open C:\RECV.txt”For AppendAs#1Print#1,b+”“+a+””+str+“℃”Close#1T=13ElselfT=12ThenLblnowl.Caption=lblnow
2.Caption=”LBLNOW
3.Caption=N0W3“+“+str+H℃nOpen C:\RECV.txt”For AppendAs#1Print#l,b+“+a+””+str+“℃”Close#1ElseText_RECV.Text=Text_RECV.Text+b+”+a+””+str+n℃”+”Open“C:\RECV.txt”For AppendAs#1Print#l,b+n n+a+n n+str+H℃nClose#1End IfEndSelectEnd SubPrivateSub Timerl_TimerIf x=1ThenMSComm.Output=Text_SEND.Text+4End IfEndSubJNB TI,$CLR TIJNB RI,$CLR RIMOV A,SBUFXRLA,#11HJZ SJCS2SJMP SJCS1SJCS2:MOV A,25HADD A,#lMOV SBUF,AJNB TI,$CLR TIMOV22H,#00HSJMP SJCS1温度采集子程序----------------18B20WDCJ:MOV SP,#60HLCALL GET_TEMPMOV A,21HMOV C,00H RRCAMOV C,01HRRC AMOV C,02HRRC AMOVC,03HRRC AMOV21H,AMOV25H,ALCALLBCDZHLCALL DISPLAYAJMP MAIN温度采集时序子程序------------------18B20GET_TEMP:CLR EALCALLINTMOV A,#0CCHLCALL WRITEMOV A,#44HLCALL WRITELCALLINTMOV A,#0CCHLCALL WRITEMOV A,#0BEH LCALLWRITE LCALLREAD MOV21H,A LCALLREADMOV20H,A SETBEA RET----------------18B20初化子程序INT:CLR EALO:CLR DKMOV R2,#200LI:CLR DKDJNZ R2,L1SETB DKMOV R2,#30L4:DJNZ R2,L4CLRCORL C,DKJC LOMOV R6,#80L5:ORL C,DKJC L3DJNZ R6,L5SJMP LOL3:MOV R2,#200L2:DJNZ R2,L2RET写----------------18B20WRITE:CLR EAMOV R3,#8WR1:SETB DKMOV R4,#8RRCA CLRDKWR2:DJNZ R4,WR2MOV DK,CMOV R4,#20WR3:DJNZ R4,WR3DJNZ R3,WR1SETB DKRET读数据子程序------------------18B20READ:CLR EAMOV R6,#8REI:CLR DKMOV R4,#4NOPSETB DKRE2:DJNZ R4,RE2MOVC,DKRRC AMOV R5,#30RE3:DJNZ R5,RE3DJNZ R6,RE1SETB DKRET-----------------八为十六转十进制子程序BCDZH:INC21HMOV A,21HMOV30H,#12JNB ACC.7,BCD0MOV30H,#llCPLAADDA,#1BCDO:MOV R1,#00HMOV R2,#00HCLRCBCD1:SUBB A,#64HJC BCD2INC R1SJMPBCD1BCD2:ADD A,#64HBCD3:SUBB A,#0AHJC BCD4INC R2SJMP BCD3BCD4:ADD A,#0AHMOV31H,RIMOV32H,R2MOV33H,ARET-----------------四位数码子程序MOV R0,#30HMOV3AH,#0f7HDISPO MOVA,@RO MOV:DPTR,#TAB MOVCA,@A+DPTR MOVDPTR,#0D00H MOVX@DPTR,A MOVDPTR,#0E00HMOV A,3AH MOVX@DPTR,A RRAMOV3AH,A ACALLDY1ms INC RODJNZ R3,DISPO RET延-
0.2msDYlms:MOV R4,#50LOOP:NOPNOPDJNZ R4,LOOPRET延-----------------10msDYlOms:MOV R4,#10LOOPO:MOVR5,#250LOOP1:NOPNOPDJNZ R5,LOOPDJNZ R4,LOOPORET-------------十进;」,TAB:DB3fh,06h,5bh,4fh,66h02,3;;,DB6dh,7dh,07h,7fh,6fh4,5,6,789c.黑屏DB058H,040H,00H END
二、系统多机通信主机源程序代码TXZJ.ASM*TXCJ.ASM**Lu Bo**2007526*ORG0000HSJMP MAIN程序MAIN:MOV SP,#70HMOV SCON,#98HMOV TMOD,#20HMOV TL1,#OFDHMOV TH1,#OFDHMOV PCON,#OOHMOV R6,#10MOVR7,#3MOV55H,#00HSETB TRILCALLBCDZHLCALLDISPLAYMAINOO:LCALL PCJCXLCALLSJCSMOV SCON,#50HIcall serial_sendMOV SCON,#98HLCALL PCJCXLCALLSJCS11LCALL PCJCXSJMPMAINOO------------通信子程序SJCS:MOVA,R6MOV SBUF,A LCALLBCDZH LCALL DISPLAYJNBTI,$CLR TILCALLBCDZH LCALL DISPLAYJNB RI,$CLR RIMOVA,SBUFXRL A,R6JZ SJCSOSJCSOO:LCALL BCDZHLCALLDISPLAYSETB TB8SJMP SJCSSJCSO:CLR TB8MOV30H,R6MOVA,#11H MOVSBUF,A LCALLBCDZHLCALLDISPLAYJNBTI,$CLR TIJNB RI,$CLR RIMOVA,SBUFMOV44H,ALCALL SFJSJSETBTB8DJNZ55H,SJCS RETMOV55H,#00HINC R6DJNZR7,SJCSMOV R6,#10MOVR7,#3RETCJNE R6,#11,SFJSJ3MOV62H,44HMOV58H,44H SJMPSFJSJOSJCS11:JC SFJSJ1MOV63H,44HMOV58H,44H SJMPSFJSJOMOV61H,44HMOV58H,44HRETSFJSJ:MOV SCON,#50HJNB RI,HH1LJMP HH2LCALLBCDZHLCALLDISPLAYSFJSJ3:JNBRI,WW5CLR RIMOVA,SBUFCJNE A,#49,WW2SFJSJ1:SFJSJO:PCJCX:HH1:HH2:WW1:mov44h,61hIcall bcdzhIcalldisplayMOV58H,61HIcall serial_sendLJMP WW5机地址------------------PCWW2:CJNE A,#50,WW3mov44h,62hIcall bcdzhIcalldisplayMOV58H,62HIcall serial_sendLJMP WW5WW3:CJNE A,#51,WW4mov44h,63hIcall bcdzhIcalldisplayMOV58H,63HIcall serial_sendLJMP WW5WW4:CJNE A,#52,WW5LJMP MAINWW5:MOV SCON,#98HRET------------------八为十六转BCDZH:MOVA,44HMOV31H,#15JNB ACC.7,BCD0MOV31H,#14CPLA ADD A,#lBCDO:MOVR1,#OOHMOV R2,#00H CLRCBCD1:SUBB A,#64HJC BCD2INC RISJMPBCD1BCD2:ADD A,#64HBCD3:SUBB A,#0AHJC BCD4INCR2SJMP BCD3BCD4:ADDA,#OAHMOV32H,R1MOV33H,R2MOV34H,ARET--------------六位数码子程DISPLAY:MOVR3,#6MOV35H,#13MOVR0,#30HMOV3AH,#0DFHDISPO:MOVA,@R0MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#0D00HMOVX@DPTR,AMOV DPTR,#0E00HMOV A,3AHMOVX@DPTR,ARR AMOV3AH,AACALL DY1msINC RODJNZR3,DISP0RET延时子程-----------------
0.2msDY1ms:MOVR4,#50LOOP:NOPNOPDJNZ R4,LOOPRET延时子程--------------------10msDYlOms:MOVR4,#10LOOPO:MOVR5,#250LOOP1:NOPNOPDJNZ R5,LOOPDJNZ R4,LOOPORET机通信子程--------------------PC。
个人认证
优秀文档
获得点赞 0