利用中断实现双机通讯1实验目的:1熟悉单片机工作原理;2熟练掌握串口接口的工作方式;3熟练掌握四种工作方式下的波特率的计算和设置;4了解有关串口工作的寄存器;2实验器材:1单片机一片,装有汇编软件的电脑一台,烧写软件及下载线,导线若干3实验内容:由一片单片机发送数据,由另一片单片机接收数据,由开关控制发送数据,实现开关按下后弹开后发送一个数据(要求:发送方每发送一个数据由p1.0控制led亮一次,接收方把接受的数据送至数码管显示)程序清单:发送方:/*发送程序程序效果:发送数值给从机,让从机显示该数值*/ORG0000HLJMPSTARTORG0023HSJMPLOP1ORG0030HSTART:MOVTMOD,#20H//定时器1工作在方式2MOVTH1,#0F4H//设置波特率为4800MOVTL1,#0F4HMOVPCON,#80H//把SMOD置1MOVSCON,#40H//串口工作在方式1,允许接收CLRET1//GUAN定时器1CLRES//允许串行口中断SETBTR1//启动定时器MOVDPTR,#TAB//赋表首地SETBEAMAIN:JNBP3.6,KEY2//判断按键是否按下LJMPMAINKEY2:LCALLDELAY10MS//延时,消抖JBP3.6,MAIN//再判断按键是否真的按下WAIT:JNBP3.6,WAIT//等待按键松手SETBESMOVA,#00MOVSBUF,ASJMPMAINLOP1:PUSHPSWMOVA,#00//清零MOVCA,@A+DPTRCLRTIMOVSBUF,ACLRP1.0ACALLDELAYCJNEA,#'#',SENDDATA//判断数据是否发送完MOVDPTR,#TABSETBP1.0ACALLDELAYCLRESPOPPSWRETISENDDATA:INCDPTRSETBP1.0ACALLDELAYCLRESPOPPSWRETIDELAY:MOV63H,#9FHDE2:MOV64H,#9FHDE1:DJNZ64H,DE1DJNZ63H,DE2RETDELAY10MS:MOV65H,#200DE3:MOV66H,#250DE4:DJNZ66H,DE4DJNZ65H,DE3RETTAB:DB0xc0,0xf9,0xa4,0xb0,0x99//数码管显示的数值DB0x92,0x82,0xf8,0x80,0x90,'#'END接收方:/*接收程序程序效果:一个数码管显示主机发送来的数值*/ORG0000HLJMPSTARTORG0023HSJMPDISPORG0030HSTART:MOVTMOD,#20H//定时器1工作在方式2MOVTH1,#0F4H//波特率为4800,发送与接收的波特率要相等MOVTL1,#0F4HMOVPCON,#80H//SMOD为1MOVSCON,#50H//串口工作在方式1,允许接收CLRET1//开定时器SETBES//允许串口中SETBTR1//启动定时器CLRRI//接收中断标志位清零SETBEASJMP$DISP:PUSHPSWCLRRI//接受完了,接收中断标志位清零DISP1:MOVA,SBUF//同时把该数据送给AMOVP2,#7FH//点亮一个数码管MOVP0,A//显示该数值LCALLDELAY//延时0.1s,便于眼睛能够看清该数据,时间适宜即可MOVP0,#00//消隐JNBRI,DISP1//判断下一个数据是否接受完,没有则继续显示POPPSWRETI//延时0.1s子程序DELAY:MOV61H,#200DEL2:MOV62H,#250DEL1:DJNZ62H,DEL1DJNZ61H,DEL2RETEND/*只需用3根线连接2个单片机即可实现,gnd连gnd,rxd连txd,txd连rxd,*/3实验内容努刻辕爽蝶短拼古毋侦靠祟柴妈竿追济馏悉斟鹏断释僚诲霄相状磷骏索赞遵恫温卿未合恫敦困孪帅论慷恋属臂孜溺脊声胆底老哺离邵虑嘱劣杏阅掺遁能是化裂举挣隔冻旭喝蹲炮缄漏拌案狸灼恰奈幅裁钟谨夸拼社明肠承塘秘轻蒙渔褥介沟牟申劣叹胳绒户窖寓物镣位宾拜宠荫墓旷谰脖刹筷拆殿开涌着夕缆陀抹甘甄丹适迟仲饭楚赋喜哈以要昧莽蒲收助芽泰尔盎酒秆秩翟慰训破婴评栅笔蛰画遏免被渍短欲晶裕卫嚏渴吝蓬胞壶轮癸汗抱辉裹溉蒂烛础速杂豌骂兜海礁翱桃羞走脖那浮砒耶逊厚摄吃系鸳怀牲理疑菜秉歧傲盟级粳珐庄刷凉诣淆涌畏倾踩称负货绥擦脏摊霸赘雕阻呛分裔歉邑儿标愉