资源描述:
《实验13_串行通信实验8251》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验十三串行通讯一、实验目的1、了解串行通讯的基本原理。2、掌握串行接口芯片8251的工作原理和编程方法。二、实验内容1、按图13-1连接好电路,(8251插通用插座)其中8253计数器用于产生8251的发送和接收时钟,TXD和RXD连在一起。2、编程:从键盘输入一个字符,将其ASCII码加1后发送出去,再接收回来在屏幕上显示,实现自发自收。三、实验提示1、图示电路8251的控制口地址为2B9H,数据口地址为2B8H。2、8253计数器的计数初值=时钟频率/(波特率×波特率因子),这里的时钟频率接1MHz,波特率若选1200,波特率因子若
2、选16,则计数器初值为52。3、收发采用查询方式。;************************;;*8251串行通讯(自发自收)*;;************************;datasegmentio8253aequ280hio8253bequ283hio8251aequ2b8hio8251bequ2b9hmes1db'youcanplayakeyonthekeybord!',0dh,0ah,24hmes2ddmes1dataendscodesegmentassumecs:code,ds:datastart:movax,d
3、atamovds,axmovdx,io8253b;设置计数器工作方式moval,16houtdx,almovdx,io8253amoval,52;给计数器送初值outdx,almovdx,io8251b;初始化xoral,almovcx,03;向控制端口送个delay:callout1loopdelaymoval,40h;向控制端口送H,使其复位callout1moval,4eh;设置为个停止位,8个数据位,波特率因子为callout1moval,27h;向送控制字允许其发送和接收callout1ldsdx,mes2;显示提示信息mova
4、h,09int21hwaiti:movdx,io8251binal,dxtestal,01;发送是否准备好jzwaitimovah,01;是,从键盘上读一字符int21hcmpal,27;若为ESC,结束jzexitmovdx,io8251aincaloutdx,al;发送movcx,40hs51:loops51;延时next:movdx,io8251binal,dxtestal,02;检查接收是否准备好jznext;没有,等待movdx,io8251ainal,dx;准备好,接收movdl,almovah,02;将接收到的字符显示在屏幕
5、上int21hjmpwaitiexit:movah,4ch;退出int21hout1procnear;向外发送一字节的子程序outdx,alpushcxmovcx,40hgg:loopgg;延时popcxretout1endpcodeendsendstart