资源描述:
《串行接口实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程实验报告实验名称:串行接口专业班级:学号:姓名:同组人员:指导教师:报告日期:13实验二1.实验目的32.实验内容33.实验原理34.程序代码65.实验体会1313实验二1.实验目的1.熟悉串行接口芯片8251的工作原理2.掌握串行通讯接收/发送程序的设计方法2.实验内容通过对8251芯片的编程,使得实验台上的串行通讯接口(RS232)以查询方式实现信息在双机上的。具体过程如下:1.从A电脑键盘上输入一个字符,将其通过A试验箱的8251数据口发送出去,然后通过B试验箱的8251接收该字符,最后在B电脑的屏幕上显示出来。2.从A试验箱上输入步进电
2、机控制信息(开关信息),通过A试验箱的8251数据口发送到B试验箱的8251数据口,在B试验箱上接收到该信息之后,再用这个信息控制B试验箱上的步进电机的启动停止、转速和旋转方向。3.实验原理1.8251控制字说明在准备发送数据和接收数据之前必须由CPU把一组控制字装入8251。控制字分两种:方式指令和工作指令,先装入方式指令,后装入工作指令。另外,在发送和接收数据时,要检查8251状态字,当状态字报告“发送准备好”/“接收准备好”时,才能进行数据的发送或接收。2.8251方式指令(端口地址2B9H)133.8251工作指令(端口地址2B9H)1.8
3、251状态字(端口地址2B9H)5.8253控制字(283H)6.8253计数初值(283H)计数初值=时钟频率/(波特率×波特率因子)
本实验:脉冲源=1MHz
波特率=1200
波特率因=16
计数初值=/1200*16=5213NYYN读入字符显示在屏幕上为ESC?接收准备好?NY发送字符接收字符从键盘接收一字符发送准备好?接收字符显示在屏幕上初始化8253,设置工作方式和计数初值初始化8251,先后传方式和工作命令字结束开始7.程序流程框图134.程序代码Fxc.asm;************************;;*8251串行通讯
4、(自发自收)*;;************************;datasegmentio8253aequ280h;8253计数0端口地址io8253bequ283h;8253控制端口地址io8251aequ2b8h;8251数据端口地址io8251bequ2b9h;8251控制端口地址mes1db'youcanplayakeyonthekeybord!',0dh,0ah,24hmes2ddmes1dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovdx,io82
5、53b;设置8253计数器0工作方式moval,16h;控制字为Boutdx,almovdx,io8253amoval,52;给8253计数器0送初值outdx,almovdx,io8251b;初始化8251;xoral,al;movcx,03;向8251控制端口送3个0;delay:callout1;loopdelaymoval,40h;向8251控制端口送40H,使其复位callout1moval,4eh;设置为1个停止位,8个数据位,波特率因子为16callout1moval,27h;向8251送控制字允许其发送和接收callout1ldsd
6、x,mes2;显示提示信息movah,09int21hwaiti:movdx,io8251binal,dxtestal,01;发送是否准备好13jznextmovah,0bhint21htestal,0ffh;检测是否有键盘输入jznextmovdl,0ffh;有键盘输入,读入字符movah,06hint21hcmpal,27;若为ESC,结束jzexitmovdx,io8251a;incaloutdx,al;发送;movcx,40h;s51:loops51;延时next:movdx,io8251binal,dxtestal,02;检查接收是否准备
7、好jzwaiti;没有,等待movdx,io8251ainal,dx;准备好,接收movdl,almovah,02;将接收到的字符显示在屏幕上int21hjmpwaitiexit:movah,4ch;退出int21hout1procnear;向外发送一字节的子程序outdx,al;pushcx;movcx,40h;gg:loopgg;延时;popcxretout1endpcodeendsendstartSend.asm13;************************;;*8251串行通讯(自发自收)*;;*******************
8、*****;datasegmentio8253aequ280h;8253计数0端口地址io8253bequ283h;825