收藏 分销(赏)

单片机-串行口通信1.doc

上传人:人****来 文档编号:4809897 上传时间:2024-10-13 格式:DOC 页数:4 大小:708.45KB 下载积分:5 金币
下载 相关 举报
单片机-串行口通信1.doc_第1页
第1页 / 共4页
单片机-串行口通信1.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
安徽文达信息工程学院学生实验报告 学年第 学期 课程名称《 单片机原理与应用 》 实验日期: 院部 班级 姓名 学号 实验项目名称: 实验九 串行口通信实验 指导老师: 实验类型: 编程仿真 成绩: 一、【实验目的】 1. 掌握MCS-51单片机的串行口工作原理。   2.学习编程实现MCS-51的UART通讯。  3.掌握CPU利用串口通讯的方法  二、【实验原理及内容】 (一) 串行口控制寄存器 与串行通信有关的控制寄存器主要是串行通信控制寄存器SCON。SCON是8051的一个可以位寻址的专用寄存器,用于串行数据通信的控制。SCON的单元地址98H,位地址9FH—98H。寄存器内容及位地址表示如下: 电源控制寄存器PCON中SMOD位可影响串行口的波特率。SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。系统复位默认为SMOD=0。实验中我们一般了不设置电源控制寄存器。 PCON (二) 四种工作方式 1.串行工作方式0   串行口为同步移位寄存器方式,波特率固定为f晶振/12。该方式主要用 于I/O口扩展等,方式0传送数据时,串行数据由RXD(P3.0)端输入或输出,而TXD(P3.1)此时仅作为同步移位脉冲发生器发出移位脉冲。 2.串行工作方式1  (1) 方式1传送的数据格式  方式1传送一帧为10位的串行数据,包括1位起始位,8位数据位和1位停止位。 数据发送由一条写入单片机发送寄存器SBUF指令启动。8位数据在串行口由硬件自动加入起始位和停止位组成完整的帧格式。在内部移位脉冲作用下,由TXD端串行输出。发送完一帧数据后,使TXD输出端维持”1”状态并置使TI标志位置1以通知CPU发送下一个字符。 接收数据由接收单片机SCON中的REN置1开始,随后串行口不断采样RXD端电平,当采样到RXD端电平从1向0跳变时,就认定是接收信号并开始接收从RXD端输入的数据,并送入内部接收寄存器SBUF中,直到停止位到来之后,并使RI位置1,通知CPU从SBUF中取走接收到的一帧字符。  方式1传送数据时发送前应先清TI,接收前应先清RI。 3.串行工作方式2  方式2是11位为一帧的串行通信方式,即1位始位,9位数据位和1位停止位。其中第9位数据既可作奇偶校验位,也可作控制位使用。其帧格式为: 4.串行工作方式3  方式3通信过程与方式2完全相同。区别仅在于方式3的波特率可通过设置定时的工作方式和初值来设定(与串行工作方式1波特率设定方法相同)。顺便指出,由于方式1和方式3的波特率设置较为灵活,在单片机串行通信中得到广泛应用。 三、【实验器材】 PC机、Proteus仿真软件、Keil c51仿真软件 四、【实验步骤】 1、基础实验: 如下图,控制8个发光二极管流水点亮。图中74LS164的8脚(CLK端)为同步脉冲输入端,9脚为控制端,9脚电平由单片机的P1.0控制,当9脚为0时,允许串行数据由RXD端(P3.0)向74LS164的串行数据输入端A和B(1脚和2脚)输入,但是74LS164的8位并行输出端关闭;当9脚为1时,A和B输入端关闭,但是允许74LS164中的8位数据并行输出。当串行口将8位串行数据发送完毕后,申请中断,在中断服务程序中,单片机向通过串行口输出下一个8位数据。 2扩展实验 串口外接一片8位并行输入、串行输出同步移位寄存器74LS165,扩展一个8位并行输入口的电路,可将接在74LS165的8个开关S0~S7的状态通过串行口的方式0读入到单片机内。 五、【实验过程原始记录】(可附页) 基础实验: 4 / 4 #include <reg51.h> #include <stdio.h> sbit P1_0=0x90; unsigned char nSendByte; void delay(unsigned int i)   {   unsigned char j;   for(;i>0;i--)    for(j=0;j<125;j++);   }   main( )   { SCON = 0x00;    EA=1; ES=1;   nSendByte=1;   SBUF=nSendByte;   P1_0=0;   while(1)    {;}   } void Serial_Port( ) interrupt 4 using 0   {   if(TI)   {    P1_0=1;    SBUF=nSendByte;    delay(500);    P1_0=0;    nSendByte=nSendByte<<1; if(nSendByte==0) nSendByte=1;    SBUF=nSendByte;   }   TI=0;RI=0; } 扩展实验: #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit shft=P1^1; void delay(){ uint j; for(j=0;j<32000;j++); } void main(){ while(1){ shft=0; shft=1; SCON=0x10; while(!RI); P2=SBUF; RI=0; delay(); } } 六、【实验结果分析】 实验结果符合预期。本次试验巩固了课堂上所学的串行口通信的知识(SCON和PCON各位的作用及串行口四种工作方式的原理及区别),同时复习了前面学习的中断系统的程序的编写、keil C51的使用,收获颇丰。 教师评语:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服