微机系统与接口实验——利用两台TPC-ZK微机原理实验平台实现两机之间通信.docx
微机系统与接口试验报告组员:一、试验目的通过本试验了解串行通信原理;理解计算机软件、硬件如何协作工作,如何对计算机进行功能扩展;学会一般接口电路设计过程和张动代码编写方法;学会如何进行软件、硬件调试。二、试波内容(1)试验任务利用两台TPC-ZK微机原理试脸平台实现两机之间通信。M乙机(2)试髓要求在试验台实现:设计硬件电路并在试验台上完成连接;双机通信时,一方用键盘或AD采集模拟信号,在另一方机器展示;,完成程序的编写、调试工作C起先四、试龄程序程序清单与相关注释:DATASEGMENTDATAENDSSTACKSEGMENTSTACKDW100HDUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DSiDATA;试脸机器指定的端口地址PORTAEQU288H;8255端口地址PORTBEQU289HPORTCEQU28AHTIMEREQU280H;8254的端口地址START:;初始化8251MOVDX,2B9H;限制口地址为2B9HMOVA1.,0OUTDX1A1.OUTDX,A1.MOV1.,4OH;IR(D6)置1(40H:01000000)使8251复位(内部复位)OUTDX,A1.;方式限制字必需在复位后首先写入MOVA1.,OCFH;异步传送;帧的格式,8位字符,2个停止位,无校验;1200Bauds,波特率因子64OUTDX1A1.MOVA1.,27H;写入吩咐限制字,允许发送和接受,并使RTS输出为低OUTDX,A1.;初始化8254计数器MOV1.,00110110B;方式3,作为方波发生器MOVDX,TIMER+3OUTDX,A1.MOVAX,52;频率19.2KhZMOVDXjTIMEROUTDX1A1.;写入计数器初值的低字节MOVA1.,AHOUTDX1A1.;写入计数器初值的高字节;初始化8255,工作方式O,A口输出,C口高位输出,低位输入,B口输出洪口输出段码;C用于检测键盘输入MOVDX,PORTA+3MOVA1.,81H;10000001OUTDX,A1.;从键盘获得输入XI:MOVA1.,OOhMOVDX,PORTCOUTDX,A1.;oo->cq,pcosoWAIT:INA1.,DX;读入列线值ANDA1.,OFH;只要低四位CMPA1.,OFH;无按犍按下,则跳转至X2,推断是否收到数据JZX2CA1.1.DE1.AYMOVB1.,4;行数MOVBH,4;列数MOVA1.,OEFH;扫描码MOVC1.,OFHMOVCH,OFFH;键值-1ROW:OUTDX1A1.RO1.A1.,1;左移生成下一个扫描码ANDA1.,OFHCMPA1.,OFHJNZCO1.;有键按下转CO1.ADDCH,BH;指向某列按键号,起先编号MOVA1.,AHDECB1.JNZROWJMPX1.CO1.:INCCHRCRA1.,1;依据接口可能须要改为SH1.JCCO1.MOVA1.,CH;A1.为键号CA1.1.INPUTMOVB1.,A1.;在屏幕上显示;发送输入的字符SEND:MOVDX,2B9HINA1.,DX;读状态口ANDA1.,01H;TxRDY=1.?是否可以传送JZSENDDECDXOUTDX,1.X2:MOVDX,2B9HINA1.,DX;读状态口ANDA1.,02H;RxRDY=I?是否收到新消息JZX1.;未接收到跳转到X1.DECDXINA1.,DXCA1.1.QDMX3:MOVDX,PORTAOUTDX,A1.JMPX1.E:MOVAX,4C00HINT21HDE1.AYPROCNEARPUSHCXMOVCX,7FFFH;书按健按下1.PO:1.OOP1.PO;延时POPCXRETDE1.AYENDP;子程序INPUT,将小健盘输入的键号,转换成相对应的ASe1.1.码;输入的存储在A1.中,转换结果成储存在A1.中INPUTPROCNEARPUSHBXCMPA1.,6JBIN1.MOVB1.,OFHSUBB1.,A1.MOVA1.,B1.ADDA1.,'O'JMPINENDINI:MOVB1.JfSUBB1.,A1.MOVA1.,B1.INEND:POPBXRETInputendp;子程序QDM,将数字转换成七段码在数码管匕显示;A1.储存要转换的字符的ASCII码,转换结果在A1.中QDMPROCNEARCASEO:CMPA1.,'O,JNECASE1.JMPCASEENDCASE1.:CMPA1.,JNECASE2MOVA1.,06HJMPCASEENDCASE2: CMPA1.,'2,JNECASE3MOVA1.,5BHJMPCASEENDCASE3: CMPA1.,3JNECASE4MOVA1.,4FHJMPCASEENDCASE4: CMPA1.,'4,JNECASE5MOVA1.,66HJMPCASEENDCASE5: CMPA1.,'5,JNECASE6MOVA1.,6DHJMPCASEENDCASE6: CMPA1.,'6'JNECSE7MOVA1.,7DHJMPCASEENDCASE7: CMPA1.,'7,JNECASE8MOVA1.,07HJMPCASEENDCASE8: CMPA1.,'8,JNECASE9MOVA1.,7FHJMPCASEENDCASE9: CMPA1.,'9'JNECASEAMOVA1.,6FHJMPCASEENDCASEA:CMPA1.,'a'JNECASEBMOVA1.,77HJMPCASEENDCASEB:CMPA1.,'b,JNECASECJMPCASEENDCASEC:CMPA1.,'c"JNECASEDMOVA1.,39HJMPCASEENDCASED:CMPA1.,'d'JNECASEEMOVA1.,5EHJMPCASEENDCASEE:CMPA1.,'e'JNECASEFMOVA1.,79HJMPCASEENDCASEF:CMPA1.,'fJNEDEFAU1.TMOVA1.,71HJMPCASEENDDEFAU1.T:MOVA1.,OHCASEEND:RETQDMENDPCODEENDSENDSTARTCODEENDSENDSTART五、试舱结果描述试验现象与结果并赐予分析。试验现象:依据上述试验原理图连接好每台机器的电路,然后把把两台机器的TxD和RxD分别互联起来。双机通信时,在每台机器上的小键盘上按键时,都可立即在另一台机器的数码管上显示输入的数据,两台机器是异步双工通信的,发送和接受可同时进行且互不干扰.结果分析:由匕述的试验流程图可知,当机器甲没有按键时,程序中会转到检杳是否收到数据的部分,若机器乙有数据传来,则接收数据并调用数码管显示模块输出;着有按健,则调用键盘扫描程序读入按键值,并把数据传到串行接口芯片8251,由其与机器乙依据事先规定好的帧的格式传送数据,对机器乙也是执行与机器甲相同的流程。六、问总解决与收获体会本次试胶首先的问题便是4乘4键盘输入的识别,通过首先确定列号再通过行扫描的方式解决了问题,而后关于芯片的详细作用通过翻阅课本得到了熨习和巩固,同时在连线的时候对于软件给出的连线方式一起先有怀疑,感觉好像少了几根线,后来才知道,试验板内部本省已有部分连线,如此给我们节约r时间也给杳错带来r便利。在验收前的试脸中,同旁边组的起由于带电操作的问题把板子左上边的那块给烧了,刚起先不知道缘由,通过更换那一小块板子后整体工作正常找到了故障的所在。总体来说这次试验还算顺当,相关学问遗忘较为严峻,某些考研的同学竟然也都不知道,今后在学问的学习上以与在实际的操作上都要更加的细心,更加的有条理。