51单片机

您所在的位置:网站首页 8251a串口自发自收实验 51单片机

51单片机

2023-12-24 07:14| 来源: 网络整理| 查看: 265

一、实验任务

1.用中断方式串口循环发送学号到PC并用串口助手显示;

2.串口接收PC发送数据(0-F)并发回PC,同时用单个数码管显示接收到的数据。

二、实验目的及原理

1.实验目的:掌握串行口接收、发送数据的原理及编程方法,掌握定时器产生波特率的原理,掌握串行中断服务程序。

2.实验原理:串行通信通过将数据存储在SBUF,再进一步进行发送与接收。发送、接收的速率由波特率控制,其值由定时器产生。当发送、接收完后发送、接收标志位会置1,传输停止,执行串行中断程序,将发送、接收标志位置0,方便下次传输。

三、实验中使用的仪器与材料

Keil、PZ-ISP、普中科技51单片机、串行口、定时器

四、实验方案、步骤及原始记录(数据、图表、计算等)

1.任务一:用中断方式串口循环发送学号到PC并用串口助手显示

(1)用keil编写程序,输出.hex文件

/*----------------------------------------------- 功能: 连接串口到电脑,下载该程序,打开电源 打开串口调试助手,将波特率设置为9600,无奇偶校验 晶振12MHz,发送和接收使用的格式相同,如都使用 字符型格式,设置正确后接受框可以显示出: The UART test, 请在发送区输入信息 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 /*------------------------------------------------ 函数声明 ------------------------------------------------*/ void SendStr(unsigned char *s); /*------------------------------------------------ 串口初始化 ------------------------------------------------*/ void InitUART (void) { SCON = 0x50; // SCON:设定工作方式1, 8-bit, 打开REN(允许串行接收位) TMOD = 0x20; // TMOD:设定定时器中断方式2, 8-bit 自动重装初值 //定时器T1产生波特率 TH1=0xfa; //存放备用初值,自动重装给TL1 TL1=0xfa; //定时器初值-----11.0592MHZ晶振+4800波特率-->对应应装初值 EA = 1; //打开总中断 ET1=0; // 关闭定时器中断,因为其优先级比串行高,且实际不需要它 TR1=1; // TR1:启动定时器 // ES = 1; //这里暂不打开串行发送中断的原因是,一般在发送数据是不会 //对数据进行处理的,不需要中断 } /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { int i,j; InitUART(); while(1) //循环发送 { SendStr("2022210491 "); for(i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3