8251串行通讯实验
郑州科技学院
《微机原理与接口技术》课程设计
题目8251串行通讯实验
学生姓名
专业班
目录
1 引言 (1)
2 设计方案与论证 (1)
2.1 设计内容 (1)
2.2 设计要求 (2)
2.3 设计框图 (2)
3 设计原理及功能 (2)
3.1 8251的基本性能 (2)
3.2 8251的内部结构及外部引脚 (2)
3.3 软件 (3)
3.3.1 流程图 (3)
3.3.2 主程序 (4)
4 单元电路的设计 (5)
4.1 电路图 (5)
4.2 电路说明 (5)
4.3 8251概述 (6)
4.4 8251的内部结构 (6)
5 系统调试与结果测试 (8)
5.1 调试 (8)
5.2 程序结果测试 (9)
6 总结 (10)
参考文献 (11)
附录1:总体电路原理图 (12)
附录2 程序 (13)
附录3:实验原器件清单 (15)
1 引言
通过对微机系统分析和具体设计,使学生加深对所学课程的理解,掌握汇编语言程序设计的基本方法和典型接口电路的基本设计方法,培养学生分析问题、解决问题的能力,培养学生对微型计算机应用系统的基本设计能力,提高学生的实践动手能力和创新能力。从《微型计算机原理》中,我懂得了微机设计的基本原理,学会了微机的基本知识和内容,知道了其中的基本操作。另外,我从《微型计算机原理与应用》中知道了在微机实验中如何应用的,并且学到了以前没有学到的知识。在微机原理及应用课程中学过了微机各个基本组成模块的原理和编程技术,在实验室现有的设备情况下,设计一个具有一定功能的应用系统,达到对知识的深入理解和融会贯通,培养动手能力、实践能力以及团队合作的精神。
2 设计方案与论证
2.1 设计内容
连接好电路,(8251插通用插座)其中8253计数器用于产生8251的发送和接收时钟,TXD和RXD连在一起。
编程:从键盘输入一个字符,将其ASCII码加1后发送出去,再接收回来在屏幕上显示,实现自发自收。
2.2 设计要求
8253计数器的计数初值=时钟频率/(波特率*波特率因子),这里的时钟频率接1MHz,波特率若选1200,波特率因子若选16,这计数器初值52.
2.3 设计框图
3 设计原理及功能
3.1 8251的基本性能
8251是可编程的串行通信接口,可以管理信号变化范围很大的串行数据通信。有下列基本性能:
(1)通过编程,可以工作在同步方式,也可以工作在异步方式。(2)同步方式下,波特率为0~64K,异步方式下,波特率为0~19.2K。
(3)在同步方式时,可以用5~8位来代表字符,内部或外部同步,可自动插入同步字符。
(4)在异步方式时,也使用5~8位来代表字符,自动为每个数据增加1个启动位,并能够根据编程为每个数据增加1个、1.5个或2个停止位。
(5)具有奇偶、溢出和帧错误检测能力。
(6)全双工,双缓冲器发送和接收器。
3.2 8251的内部结构及外部引脚
8251有7个主要部分,即数据总线缓冲器、读/写控制逻辑电路、调制/解调控制电路、发送缓冲器、发送控制电路、接收缓冲器和接收控制电路,每个部分还有对外的引脚。8251共有28个外部引脚,每个引脚信号的输入输出方式不同。根据第一个实验的两个程序设计出8251串口自发自收实验的实验程序,可
参考双机通讯实验的两个程序的格式。对于串行传输的数据格式,本实验有如下规定:一个字有一个逻辑“1”起始位,8位ASCII码数据位,1位逻辑“1”停止位,传输波特率为9600baut。
程序设计提示:可以用4000H-400AH十个单元作为需要发送数据的存贮单元,可以用3000H-300AH十个单元作为接收数据的存贮单元。
3.3 软件
3.3.1 流程图
3.3.2 主程序
mov ds,ax
mov dx,io8253b ;设置8253计数器0工作方式
mov al,16h
out dx,al
mov dx,io8253a
mov al,52 ;给8253计数器0送初值
out dx,al
mov dx,io8251b ;初始化8251
xor al,al
mov cx,03 ;向8251控制端口送3个0
delay: call out1
loop delay
mov al,40h ;向8251控制端口送40H,使其复位
call out1
mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call out1
mov al,27h ;向8251送控制字允许其发送和接收
call out1
lds dx,mes2 ;显示提示信息
mov ah,09
int 21h
waiti: mov dx,io8251b
in al,dx
test al,01 ;发送是否准备好
jz waiti
mov ah,01 ;是,从键盘上读一字符
int 21h
cmp al,27 ;若为ESC,结束
jz exit
mov dx,io8251a
inc al
out dx,al ;发送
mov cx,0F00h
4 单元电路的设计
4.1 电路图
图 5-1
4.2 电路说明
该电路图采用了串联的方式,运用了8253和8251,8253 是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz,用+5V 单电源供电。8253具有延时中断;可编程频率发生器;事件计数器;二进制倍频器;实时时钟;数字单稳复杂的电机控制器。8253有计数结束中断;可编程频率发生;频率发生器;方波频率发生器;软件触发的选通信号;硬件触发的选通信号六种方式。
4.3 8251概述
Intel 公司的8251 是可编程串行通信接口集成电路,可工作于同步或异步方式,并可指定为半双工或全双工工作方式,同时也可确定字符位数、奇偶校验和异步时钟频率。
4.4 8251的内部结构
8251的内部结构图如图所示,可以看出,8251有7个主要部分,即数据总线缓冲器、读/写控制逻辑电路、调制/解调控制电路、发送缓冲器、发送控制电路、接收缓冲器和接收控制电路,图中还标识出了每个部分对外的引脚。
8251的外部引脚如图所示,共28个引脚,每个引脚信号的输入输出方式如图中箭头方向所示。
图5-4 内部结构图
图5-5外部引脚图
5 系统调试与结果测试
5.1 调试
为了进一步了解系统的工作过程,这里介绍一下系统的调试过程。
(1)首先根据电路图连接好如图7-1。
(2)在PC机上敲入程序,并对其进行的查错,编译,连接,最后生成可执行文件。
(3)将试验箱接入电源,运行程序。
图5-1
5.2 程序结果测试
(1)8253计数器的计数初值=时钟频率/(波特率*波特率因子),这里的时钟频率接1MHz,波特率若选1200,波特率因子若选16,这计数器初值52.
(2)收发采用查询方式。
图5-2
6 总结
课程设计是培养我们综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程。在这次的课程设计中,我深深地认识到理论联系实际的重要性。
此次课程设计有两周的时间,在第一周,我们不但在图书馆借了许多的相关资料,并且在网上也下载了一些电子书籍,和同学们一起讨论,遇到不懂的就向老师请教。从而很快地了解到此次课程设计的内容及要求,并且确定了设计的方案。
在确定了方案之后,本以为会很快的完成设计。但是,事情远比想象的困难的多。有时会犯一些简单的原则性错误。经过多次的检查,源程序编译把错误个个清除。
除此之外,通过这次课程设计,我也学会了当面对困难时我们应该以何种心态。不论是做实验,还是做课程设计,我们都要有所准备。俗话说的好“不打无准备之仗”,用到此处是再恰当不过了。只有做好了充分的准备,才能顺利的完成课程设计。其实,我们做其他事情也是如此。
参考文献
[1] 专著.王忠民.《微型计算机原理》【M】.西安科技大学出版社.2005年5月
[2] 专著.王永山.《微型计算机原理与应用》【M】.西安电子科技大学出版社.1991
[3] 专著.白中英.《计算机组成原理》【M】.北京科学出版社.2000年
[4] 专著.王晓军.《微机原理与接口技术》【M】.北京邮电大学出版社.2001年
[5] 专著.吴功宜.《计算机网络教程》【M】,电子工业出版社. 2003 年
[6] 专著.吴玲达.《计算机通信原理与技术》【M】.国防大学出版社. 2003
年 3 月
[7] 专著.张家超. 《计算机网络基础》【M】.中国电力出版社. 2003 年9 月
附录1:总体电路原理图
附录2 程序
data segment
ioport equ 1200h-0280h
io8253a equ ioport+280h
io8253b equ ioport+283h
io8251a equ ioport+2b8h
io8251b equ ioport+2b9h
mes1 db 'you can play a key on the keybord!',0dh,0ah,24h
mes2 dd mes1
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov dx,io8253b ;设置8253计数器0工作方式
mov al,16h
out dx,al
mov dx,io8253a
mov al,52 ;给8253计数器0送初值
out dx,al
mov dx,io8251b ;初始化8251
xor al,al
mov cx,03 ;向8251控制端口送3个0
delay: call out1
loop delay
mov al,40h ;向8251控制端口送40H,使其复位
call out1
mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call out1
mov al,27h ;向8251送控制字允许其发送和接收
call out1
lds dx,mes2 ;显示提示信息
mov ah,09
int 21h
waiti: mov dx,io8251b
in al,dx
test al,01 ;发送是否准备好
jz waiti
mov ah,01 ;是,从键盘上读一字符
int 21h
cmp al,27 ;若为ESC,结束
jz exit
mov dx,io8251a
inc al
out dx,al ;发送
mov cx,0F00h
s51: loop s51 ;延时
next: mov dx,io8251b
in al,dx
test al,02 ;检查接收是否准备好
jz next ;没有,等待
mov dx,io8251a
in al,dx ;准备好,接收
mov dl,al
mov ah,02 ;将接收到的字符显示在屏幕上
int 21h
jmp waiti
exit: mov ah,4ch ;退出
int 21h
out1 proc near ;向外发送一字节的子程序out dx,al
push cx
mov cx,0F00h
gg: loop gg ;延时
pop cx
ret
out1 endp
code ends
end start
附录3:实验原器件清单
(1)电脑
(2)微机原理实验箱
(3)8251芯片
(4)8253芯片
(5)导线若干
8251串行通讯实验
安徽师范大学数计学院实验报告 专业名称11计科 课程微机原理 实验名称串行通信实验姓名 学号110704012
8251 可编程串行口与PC 机通讯实验 一、实验目的 (1) 掌握8251 芯片的结构和编程,掌握微机通讯的编制。 (2) 学习有关串行通讯的知识。 (3) 学习PC 机串口的操作方法。 二、实验说明 1、8251 信号线 8251 是CPU 与外设或Mode 之间的接口芯片,所以它的信号线分为两组:一组是用于与CPU 接口 的信号线,另一组用于与外设或Mode 接口。 (1)与CPU 相连的信号线: 除了双向三态数据总线(D7~D0)、读(RD)、写(WR)、片选(CS)之外,还有: RESET:复位。通常与系统复位相连。 CLK:时钟。由外部时钟发生器提供。 C/D:控制/数据引脚。 TxRDY:发送器准备好,高电平有效。
TxE:发送器空,高电平有效。 RxRDY:接收器准备好,高电平有效。 SYNDET/BRKDET:同步/中止检测,双功能引脚。 (2)与外设或Mode 相连的信号线: DTR:数据终端准备好,输出,低电平有效。 DSR:数据装置准备好,输入,低电平有效。 RTS:请求发送,输出,低电平有效。 CTS:准许传送,输入,低电平有效。 TxD:发送数据线。 RxD:接收数据线。 TxC:发送时钟,控制发送数据的速率。 RxC:接收时钟,控制接收数据的速率。 2、8251 的初始化编程和状态字 8251 是一个可编程的多功能串行通信接口芯片,在使用前必须对它进行初始化编程。初始化编 程包括CPU 写方式控制字和操作命令字到8251 同一控制口,在初始化编程时必须按一定的顺序。如 下面的流程图:
串口通信实验报告全版.doc
实验三双机通信实验 一、实验目的 UART 串行通信接口技术应用 二、实验实现的功能 用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。 三、系统硬件设计 (1)单片机的最小系统部分 (2)电源部分 (3)人机界面部分
数码管部分按键部分 (4)串口通信部分 四、系统软件设计 #include
sbit L1=P0^5; sbit L2=P0^6; sbit L3=P0^7; uint m=0,i=0,j; uchar temp,prt; /***y延时函数***/ void delay(uint k) { uint i,j; //定义局部变量ij for(i=0;i { m=1; //KEY1键按下 return(m); } if(H2==0) { m=4; //KEY4键按下 return(m); } } } if(L2==0) { delay(5); if (L2==0) { L2=0;H1=1;H2=1; if(H1==0) { m=2; //KEY2键按下 return(m); } if(H2==0) { m=5; //KEY5键按下 return(m); } } } if(L3==0) { delay(5); if (L3==0) { L3=0;H1=1;H2=1; if(H1==0) { m=3; //KEY3键按下 课程名称:Zigbee技术及应用实验项目:串口通信实验指导教师: 专业班级:姓名:学号:成绩: 一、实验目的: (1)认识串口通信的概念; (2)学习单片机串口通信的开发过程; (3)编写程序,使单片机与PC通过串口进行通信。 二、实验过程: (1)根据实验目的分析实验原理; (2)根据实验原理编写C程序; (3)编译下载C程序,并在实验箱上观察实验结果。 三、实验原理: 串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送,此时只需要一条数据线,外加一条公共信号地线和若干条控制信号线。因为一次只能传送一位,所以对于一个字节的数据,至少要分8位才能传送完毕,如图3-1所示。 图2-1串行通信过程 串行通信制式: (1)单工制式 这种制式是指甲乙双方通信时只能单向传送数据,发送方和接收方固定。 (2)半双工制式 这种制式是指通信双方都具有发送器和接收器,即可发送也可接收,但不能同时接收和发送,发送时不能接收,接收时不能发送。 (3)全双工制式 这种制式是指通信双方均设有发送器和接收器,并且信道划分为发送信道和接收信道,因此全双工制式可实现甲乙双方同时发送和接收数据,发送时能接收,接收时能发送。 三种制式分别如图3-2所示 图3-2串行通信制式 3.1硬件设计原理 CC2530有两个串行通信接口USART0和USART1,两个USART具有同样的功能,可已分别运行于UART模式和同步SPI模式。 CC2530的两个串行通信接口引脚图分布如表3-1所示 表3-1 CC2530串行通信口引脚图分布 本实验CC2530模块使用的是USART1的位置2,P1_6和P1_7。 串行通信实验报告 班级学号日期 一、实验目的: 1、掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。 2、了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。 3、学习串口通讯的程序编写方法。 二、实验要求 1.单机自发自收实验:实现自发自收。编写相应程序,通过发光二极管观察收发状态。 2.利用单片机串行口,实现两个实验台之间的串行通讯。其中一个实验台作为发送方,另一侧为接收方。 三、实验说明 通讯双方的RXD、TXD信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。也可以将本机的TXD接到RXD上。 连线方法:在第一个实验中将一台实验箱的RXD和TXD相连,用P1.0连接发光二极管。波特率定为600,SMOD=0。 在第二个实验中,将两台实验箱的RXD和TXD交叉相连。编写收发程序,一台实验箱作为发送方,另一台作为接收方,编写程序,从内部数据存储器20H~3FH单元中共32个数据,采用方式1串行发送出去,波特率设为600。通过运行程序观察存储单元内数值的变化。 四、程序 甲方发送程序如下: ORG 0000H LJMP MAIN ORG 0023H LJMP COM_INT ORG 1000H MAIN: MOV SP,#53H MOV 78H,#20H MOV 77H,00H MOV 76H,20H MOV 75H,40H ACALL TRANS HERE: SJMP HERE TRANS: MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H MOV PCON,#80H SETB TR1 MOV SCON,#40H MOV IE,#00H CLR F0 MOV SBUF,78H WAIT1: JNB TI,WAIT1 CLR TI MOV SBUF,77H WAIT2: JNB TI,WAIT2 CLR TI MOV SBUF,76H WAIT3: JNB TI,WAIT3 CLR TI 8251串行通讯实验 一.基本实验内容: 实现二台PC机之间的双机通讯。即甲机输入的键值发送到乙机CRT上显示,反之亦然。二原理图及连线: 1.8251CS连208~20FH (波特率2400) 2.9芯电缆对接二机的RS-232口 三.参考程序 D8251 EQU 208H Z8251 EQU 20aH DATA SEGMENT MESS DB '按下!后返回DOS.',0DH,0AH,'$' DATA ENDS STACK SEGMENT STA DW 32 DUP() TOP DW STACK ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV DX,Z8251 ;初始化8251 MOV AL,40H OUT DX,AL MOV CX,1000h LOOP $ MOV AL,0CEH ;设置为8个数据位,两个停止位波特率因子为16 OUT DX,AL ;无奇偶校验位 MOV CX,1000h LOOP $ MOV AL,25H ;设为请求发送,允许发送,允许接收状态 OUT DX,AL MOV CX,1000h LOOP $ ;NIT 8251 END REC: MOV DX,Z8251 MOV AH,02H WAIT9: IN AL,DX ;有数据送到吗 AND AL,AH JZ SEND ;没有数据送到则跳转至发送 MOV DX,D8251 ;有数据送到则从数据缓冲区读入 IN AL,DX MOV DL,AL MOV AH,02H ;显示在屏幕上 INT 21H CMP AL,'!' JE ED ;接收到结束符则返回DOS JMP REC ;不是结束符则继续接收 ED: MOV AX,4C00H INT 21H SEND: MOV CX,1000h LOOP $ MOV DX,Z8251 MOV AH,01H WAIT8: IN AL,DX AND AL,AH JZ WAIT8 ;发送缓冲器不空则等待 MOV DL,0FFH MOV AH,06H INT 21H JZ REC ;无键按下则跳回"接收"处 MOV DX,D8251 ;有键按下则发送相应字符 OUT DX,AL CMP AL,'!' ;是结束字符则返回DOS JE ED1 JMP REC ;不是结束字符则跳回"接收"处ED1: MOV AX,4C00H INT 21H MAIN ENDP CODE ENDS 单片机实验报告 实验名称:串行通信实验 姓名:高知明 学号:110404320 班级:通信3 实验时间:2014-6-11 南京理工大学紫金学院电光系 一、实验目的(四号+黑体) 1、理解单片机串行口的工作原理; 2、学习使用单片机的TXD\RXD口; 3、了解MAX232芯片的作用; 二、实验原理 MCS-51单片机内部集成有一个UART,用于全双工方式的串行通信,可以发送、接收数据。他有两个相互独立的接收、发送缓冲器,这两个缓冲器同名(SBUF),共用一个地址号(99H)。发送缓冲器只能写入,不能读出,接受缓冲器只能读出,不能写入。要发送的字节数据直接写入发送缓冲器。SBUF=a;当UART接收到数据后,CPU从接收缓冲器中读取数据,a=SBUF;串行口内部有两个移位寄存器,一个用于串行发送,一个用于串行接收。定时器T1作为波特率发生器,波特率发生器的溢出信号昨接受或发送移位寄存器的位移时钟。TI与RI分别为发送完数据的中断标志,用来想CPU发中断请求。 三、实验内容 1、发送信号 1)C51程序: #include串口通信实验讲解
串行通信实验报告
8251串行通讯实验
单片机串行通信实验