当前位置:首页 >> 信息与通信 >>

51串口发送和接收程序


/******************************************************************** * 文件名 : 串口发送试验.c * 描述 : 该文件实现通过串口把数据从单片机发送到电脑,通过串口调试助手显示出 来。 ************************************************************

***********/ #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int /******************************************************************** * 名称 : Com_Init() * 功能 : 初始化串口程序,晶振 11.0592, 波特率 9600 * 输入 : 无 * 输出 : 无 ***********************************************************************/ void Com_Init(void) { TMOD = 0x20; PCON = 0x00; SCON = 0x50; TH1 = 0xFd; TL1 = 0xFd; TR1 = 1;

} /******************************************************************** * 名称 : Main() * 功能 : 主函数 * 输入 : 无 * 输出 : 无 ***********************************************************************/ void Main() { uchar i = 0; uchar code Buffer[] = "当前时间"; //所要发送的数据 uchar *p; Com_Init(); P2 = 0x00; p = Buffer; while(1) { SBUF = *p; while(!TI) { _nop_(); } p++; if(*p == '\0') break; TI = 0; } while(1); } //如果发送完毕,硬件会置位 TI

//在每个字符串的最后,会有一个'\0' //TI 清零

/******************************************************************** * 文件名 : 串口接收试验.c * 描述 : 该文件实现通过单片机从电脑接收数据。通过数码管显示 该试验使用的晶振是 11.0592,如果使用 12M 晶振,会出现串口接收 不正常的情况。原因是用 12M 晶振,波特率 9600 时的误差率达 8% 当下载这个程序到单片机时,单片机的最高为为乱码,是正常现象, 按一下复位键便可。是由于单片机下载也是通过串口下载引起的。 ***********************************************************************/ #include<reg52.h>

#include<intrins.h> #define uchar unsigned char #define uint unsigned int uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar LED_Buffer[8] = {0}; //从串口接收的数据

/******************************************************************** * 名称 : Delay_1ms() * 功能 : 延时子程序,延时时间为 1ms * x * 输入 : x (延时一毫秒的个数) * 输出 : 无 ***********************************************************************/ void Delay_1ms(uint i)//1ms 延时 { uchar x,j; for(j=0;j<i;j++) for(x=0;x<=148;x++); } /******************************************************************** * 名称 : Com_Int() * 功能 : 串口中断子函数 * 输入 : 无 * 输出 : 无 ***********************************************************************/ void Com_Int(void) interrupt 4 { static uchar i = 7; //定义为静态变量, 当重新进入这个子函数时 i 的值不会发生改变 EA = 0; if(RI == 1) //当硬件接收到一个数据时,RI 会置位 { LED_Buffer[i] = SBUF - 48; //这里减去 48 是因为从电脑中发送过来的数据是 ASCII 码。 RI = 0; if(i==0) i = 8; i--; } EA = 1; } /******************************************************************** * 名称 : Com_Init() * 功能 : 串口初始化,晶振 11.0592,波特率 9600,使能了串口中断

* 输入 : 无 * 输出 : 无 ***********************************************************************/ void Com_Init(void) { TMOD = 0x20; PCON = 0x00; SCON = 0x50; TH1 = 0xFd; TL1 = 0xFd; TR1 = 1; ES = 1; EA = 1; } /******************************************************************** * 名称 : Main() * 功能 : 主函数 * 输入 : 无 * 输出 : 无 ***********************************************************************/ void Main() { uchar i = 0; Delay_1ms(100); Com_Init(); P2 = 0x80; //这里把 P2 口的最高为置 1, 进入循环后 循环左移 一位正好是 P2 最低为 置1 while(1) { P0 = table[LED_Buffer[i]]; P2 = i++; Delay_1ms(1); if(i == 8) i=0; } } //设置波特率 9600 //启动定时器 1 //开串口中断 //开总中断


相关文章:
单片机串口通信的发送与接收
china.com/BLOG_ARTICLE_3007162.HTM 串口接收程序是基于串口中断的, 单片机串口每次接收到一字节数据产生一次中断, 然后 再读取某个寄存器就可以得到串口接收的...
单片机C51串口中断接收和发送范例
单片机C51串口中断接收和发送范例_信息与通信_工程科技_专业资料。单片机C51串口...因为程序的开销是一样 #include <reg52.h> #include <string.h> #define ...
串口接收程序(51汇编)
串口接收程序(51汇编)_信息与通信_工程科技_专业资料。单片机串口接收程序(51汇编...存放接受的数据---;MOV R0,#80H;置发送字节数初值 MOV R1,#0FH;我们放...
51 串口中断发送程序
51 串口中断发送程序 2012-04-17 17:18:22| 分类: 51 单片机|字号 订阅 ...接收中断略; //定义发送数据量 //取首地址 //发送第一个数据,启动发送中断 ...
单片机串口通信发送、接收C语言编程程序
单片机串口通信发送接收C语言编程程序_电子/电路_工程科技_专业资料 暂无评价|0人阅读|0次下载|举报文档单片机串口通信发送接收C语言编程程序_电子/电路_工程...
单片机串口收发数据c程序
*** 程序功能: 计算机通过串口单片机发送数据,单片机接受后会将接受到 的数据重新发送给计算机。 本程序需用到串口调试助手软件,下载程序后,在发送发送 数据后...
汇编语言串口通信接收发送的程序题
串行口方式 1 的发送和接收 例 7-4:89C51 串行口按双工方式收发 ASCII ...解:设计一个发送程序,将片内 RAM 50H~5FH 中的数据串行发送;串口设定为方...
51单片机简单串口程序
51 单片机简单串口程序 2008-4-26 12:26:11 收藏 | 打印 | 投票(2) | 评论(0) | 阅读(5499) ◇字体:[大中小] 51 单片机串口程序,采用查询方式发送接收...
51单片机串口通信程序(方式2)
51单片机串口通信程序(方式2)_信息与通信_工程科技_...// 要求:1、单片机没隔 40ms 发送一组数据 //...//串口方式 2,不允许接收 TH0 = 0xB1;// 定时...
串口发送程序(51汇编)
串口发送程序(51汇编)_信息与通信_工程科技_专业资料。单片机串口发送程序(51汇编...LCALL DL10MS;调用延时子程序,好让上位机有反应的时间,来接受单片机的数据。 ...
更多相关标签:
串口发送接收程序 | 51串口中断接收程序 | 51串口接收字符串程序 | 51串口接收程序 | 51串口发送程序 | 串口通信的接收与发送 | 串口只能发送不能接收 | 串口发送0x00不被接收 |