使用串口可以方便的让单片机与高速设备之间通信,虽然速度比不上USB,但简单容易实现,而且.Net提供了串口通信接口,编写上机位十分方便:
单片机与电脑通信接收数据实例
单片机串口收发是采用中断机制,单片机中有一个寄存器可以接收串口上发来的一个字节数据,位数用户可以设置,接收完成后单片机触发中断。
所以在中断函数中处理接收的那个字节就可以了,一般将其缓存入数组或者变量,以免接收下一个字节时被覆盖。
而主函数中,只需要从缓存中读取已接受的数据就可以了:
如下示例:
serial.h
#ifndef SERIAL_H
#define SERIAL_H
#define uchar unsigned char
//#define FOSC 11059200L //晶振频率
#define FOSC 22118400L //晶振频率
#define BAUD 9600L //波特率
extern uchar recData;//接受到的数据
extern uchar flag;//标志位,标志是否收到数据
extern void uartInit();
extern void sendByte(uchar dat);
#endif
serial.c
#include <reg51.h>
#include "serial.h"
uchar recData;
uchar flag;
void uartInit() {
TMOD = 0x20;//定时器一方式二
TH1 = TL1 = -(FOSC/12/32/BAUD);//设置装入初值
TR1 = 1;//启动定时器1
SM0 = 0;
SM1 = 1;//设置串口为方式一
REN = 1;//接收使能
EA = 1;
ES = 1;//打开中断
flag = 0;
}
static void serial() interrupt 4 {
recData = SBUF;
RI = 0;//清除中断
flag = 1;
}
void sendByte(uchar dat) {
ES = 0;//关闭中断
SBUF = dat;//写入数据
while(!TI);//等待数据发送结束
TI = 0;//手动置0
ES = 1;//打开中断
}
/*
void sendString(uchar *str) {
while(*str) {
sendByte(*str++);
}
}*/
main.c
#include "serial.h"
void main(){
uartInit();
while(1) {
if(flag) {
sendByte(recData);//如果收到数据,将数据原样返回
flag = 0;
}
}
}
如果所需的晶振和波特率不相同,在头文件中直接修改就行了
- 大小: 52.1 KB
- 大小: 40.2 KB
分享到:
相关推荐
51单片机串口通信C++源程序 含有程序中文注释
本文对51单片机串口通信中字符发送进行了总结。
51单片机串口通信计算器 www.dk1st.org.ru
51单片机串口通信程序, 确认调式通过。
51单片机串口通信实例。PC机发送什么,单片机的接收什么,然后把数据再发送到PC机
详细介绍了51单片机串口通信原理以及程序流程图,对于初学者有很大帮助
本文主要为51单片机串口通信点亮led灯程序,下面一起来学习下
51单片机与电脑串口通信,电脑给单片机发送一个字符,单片机收到以后在数码管上进行显示,并且将此字符返回给电脑程序对应的电路图:
51单片机串口通讯中断应用
51单片机串口通讯C语言源码,其中串口测试程序完成串口发送任意字符到单片机,单片机通过P0口LED灯显示。比如 发送16进制的 00 单片机的LED灯全亮 发送FF灯全灭 首先 烧写程序到单片机 晶振 11.0592MHZ 连接好串口...
这是我自己写的51单片机串口通信的c#界面代码,供学习使用,有兴趣的可以下下研究研究!
51 单片机 串口通信 计算器 51 单片机 串口通信 计算器
51 单片机串口通信程序,RS232串口通信 含详细例子。 含详细例子,RS232串口通信单片机接收发送数据的 C51程序,手把手教你用增强型51 实验板实现RS232 串口通信 51串口通信
51单片机 串口通讯源码 基于8051单片机 11.0592MHZ晶振开发的源码 十分实用的
Linux与51单片机串口通信以及温度测量,代码详情。温度传感器为DS18B20
通过数码管将51单片机从电脑上接收来的数据进行转换并显示出来!
51单片机与电脑通过串口通信的例子,包括单片机程序和电脑主机程序(VC),主机程序使用CSerialPort串口类。数据包格式是自定义的一个简单格式,格式如下: ●下位机返回数据格式:1字节导引头 + 5字节命令 + 1字节...
51单片机串口通信详细教程,适用于51单片机,希望对初学者有所帮助。
51单片机串口通信模拟实验,RS232串口通信
STC串口通讯\51单片机的串口通信程序,适用于新手同学!