信息与通信工程学院实验报告

信息与通信工程学院实验报告

ID:34015898

大小:598.77 KB

页数:7页

时间:2019-03-03

信息与通信工程学院实验报告_第1页
信息与通信工程学院实验报告_第2页
信息与通信工程学院实验报告_第3页
信息与通信工程学院实验报告_第4页
信息与通信工程学院实验报告_第5页
资源描述:

《信息与通信工程学院实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、成绩信息与通信工程学院实验报告(软件仿真性实验,)一、实验目的和任务1、进一步掌握利用KeilμVision、STCISP和开发板进行硬件开发;2、掌握串口电路设计;3、掌握串口发送程序设计;4、掌握串口接收程序设计;二、实验内容及原理1)UART原理:UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用来与PC进行通信,包括与监控调试器和其它器件,如EEPROM通信。因为计算机内部采用并行数据,不能直接把数据发到Modem,必须经过UART整理才能进行异步传输,其过

2、程为:CPU先把准备写入串行设备的数据放到UART的寄存器(临时内存块)中,再通过FIFO(FirstInputFirstOutput,先入先出队列)传送到串行设备,若是没有FIFO,信息将变得杂乱无章,不可能传送到Modem。UART首先将接收到的并行数据转换成串行数据来传输。消息帧从一个低位起始位开始,后面是5~8个数据位,一个可用的奇偶位和一个或几个高位停止位。接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。如果选择了奇偶,UART就在数据位后面加上奇偶位。奇偶位可用来帮助错误校验。在接收过程中,UAR

3、T从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从并行转换成串行。UART也产生额外的信号来指示发送和接收的状态。例如,如果产生一个奇偶错误,UART就置位奇偶标志。本次实验我们使串口1工作在模式1下,为异步通信方式。2)串口1的发送过程:当串口1发送数据时,数据从单片机的串行发送引脚TxD发送出去。当主机执行一条写第7页共7页SBUF的指令时,就启动串口1的数据发送过程,写SBUF信号将1加载到发送移位寄存器的第9位,并通知Tx控制单元开始发送。通过16分频计数器,同步发送串行比特流。移位寄存器将数据不断

4、地右移,送到TxD引脚。同时,在左边不断地用0进行填充。当数据的最高位移动到移位寄存器的输出位置,紧跟其后的是第9位1,在它的左侧各位全部都是0,这个条件状态使得TX控制单元进行最后一次移位输出,然后使得发送允许信号SEND失效,结束一帧数据的发送过程,并将中断请求位T1置1,向CPU发送中断请求信号。图1串口1时序第7页共7页图2串口1电路结构三、实验步骤或程序流程1)建立工程;2)编写源程序并保存;3)将源程序添加入源文件;4)编译调试程序;5)软件程序调试没问题生成hex文件;6)用数据线将PC和单片机相连,确定com口;

5、7)打开STCISP软件,选择单片机类型为IAP15W4K58S4,串口选择COM3,最低波特率2400,最高波特率,IRC频率选18.432MHz,点击“打开程序文件”添加目标文件(.hex),再点击“下载/编程”;8)摁下复位键,程序烧写到单片机内;9)调试硬件程序直到,达到要求。四、实验数据及程序代码第7页共7页1、串口查询方式收发数据://串口查询方式收发数据的例子#include"STC15F2K60S2.h"#defineFOSCL//单片机主时钟频率#defineBAUD//波特率常数sfrTH2=0xD6;sfr

6、TL2=0xD7;bitbusy=0;//声明比特位busyunsignedchardata_rec;voidSendData(unsignedchardat)//声明SendData子函数{SBUF=dat;//否则,将数据dat写入SBUF寄存器while(~TI);//判断是否发送完成,没有则等待TI=0;}voidRecData(void)//声明RecData子函数{while(~RI);//判断是否接收完成,没有则等待data_rec=SBUF;//否则,将接收到的数据写入data_recRI=0;}voidmain

7、(){SCON=0x50;//串口1模式1,使能串行接收AUXR=0x40;//辅助寄存器AUXR,定时器1不分频,作为串口1波特率时钟TL1=(65536-((FOSC/4)/BAUD));//定时器1初值计数器低8位TH1=(65536-((FOSC/4)/BAUD))>>8;//定时器1初值计数器高8位TR1=1;//使能定时器1工作ES=0;//关闭串口1中断EA=0;//CPU禁止响应中断请求while(1){RecData();SendData(data_rec);}}2、串口中断方式收发数据://串口中断方式收发数

8、据的例子#include"STC15F2K60S2.h"#defineFOSCL//声明当前单片机主时钟频率#defineBAUD//声明波特率常数sfrTH2=0xD6;第7页共7页sfrTL2=0xD7;bitbusy=0;//声明比特位busyunsign

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。