资源简介
串口通信程序,附带详细说明!
//程序功能:接收串口发过来的字符,当字符分别为12345的时候分别返回OKMCU字母,当为其他字符的时候,把接收内容返回。
#include
#include //内部包含延时函数 _nop_();
typedef unsigned char u8;
typedef unsigned int u16;
sbit SER_595 =P1^0; //串行数据输入
sbit SCK_595 =P1^1; //移位时钟脉冲
sbit RCK_595 =P1^2; //输出锁存器控制脉冲
u8 i,j,k;
u8 code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, //数码管编码
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
u8 temp,buf;
//u8 disbuf[2]={0x00,0x00};
void sdelay(u8 n) //延时程序
{
u8 i;
for(i=n;i>0;i--);
}
/*******************************************************
* *
* 驱动函数 595 *
* *
*******************************************************/
void smg595(u8 byte)
{
u8 num,c;
num=byte;
for(c=0;c<8;c++)
{
SCK_595=0;
num=num<<1;
SER_595=CY;
SCK_595=1;
}
for(c=0;c<8;c++)
{
SCK_595=0;
SER_595=0;
SCK_595=1;
}
RCK_595=0;
RCK_595=1;
}
void dis8(u8 r,u8 c) //数码管显示程序(第c个数码管显示r)
{
smg595(~(1<<c)); //数码管位信号输出
P0=table[r]; //数码管段信号输出
sdelay(10);
P0=0;
}
/*********************************************************
发送数据函数
*********************************************************/
void senddata(u8 dat)
{
SBUF =dat;
while(!TI);
TI = 0;
}
/*********************************************************
串行中断服务函数
*********************************************************/
void serial() interrupt 4
{
RI = 0; //清除串行接受标志位
ES = 0; //关闭串行中断
buf = SBUF; //从串口缓冲区取得数据
switch(buf)
{
case 0x31: senddata('O');break; //接受到1,发送字符'O'给计算机
case 0x32: senddata('K');break; //接受到2,发送字符'K'给计算机
case 0x33: senddata('M');break; //接受到3,发送字符'M'给计算机
case 0x34: senddata('C');break; //接受到4,发送字符'C'给计算机
case 0x35: senddata('U');break; //接受到5,发送字符'U'给计算机
default: s
代码片段和文件信息
//程序功能:接收串口发过来的字符,当字符分别为12345的时候分别返回OKMCU字母,当为其他字符的时候,把接收内容返回。
#include
#include //内部包含延时函数 _nop_();
typedef unsigned char u8;
typedef unsigned int u16;
sbit SER_595 =P1^0; //串行数据输入
sbit SCK_595 =P1^1; //移位时钟脉冲
sbit RCK_595 =P1^2; //输出锁存器控制脉冲
u8 ijk;
u8 code table[]={0x3f0x060x5b0x4f0x660x6d0x7d //数码管编码
0x070x7f0x6f0x770x7c0x390x5e0x790x71};
u8 tempbuf;
//u8 disbuf[2]={0x000x00};
void sdelay(u8 n) //延时程序
{
u8 i;
for(i=n;i>0;i--);
}
/*******************************************************
* *
* 驱动函数 595 *
* *
*******************************************************/
void smg595(u8 byte)
{
u8 numc;
num=byte;
for(c=0;c<8;c++)
{
SCK_595=0;
num=num<<1;
SER_595=CY;
SCK_595=1;
}
for(c=0;c<8;c++)
{
SCK_595=0;
SER_595=0;
SCK_595=1;
}
RCK_595=0;
RCK_595=1;
}
void dis8(u8 ru8 c) //数码管显示程序(第c个数码管显示r)
{
smg595(~(1< P0=table[r]; //数码管段信号输出
sdelay(10);
P0=0;
}
/*********************************************************
发送数据函数
*********************************************************/
void senddata(u8 dat)
{
SBUF =dat;
while(!TI);
TI = 0;
}
/*********************************************************
串行中断服务函数
********************
- 上一篇:继承和派生向量类模板和字符串类
- 下一篇:ekf对飞机位置进行滤波
相关资源
- Qt5串口通信-windows
- 串口数据采集及显示
- Visual_C++_数据采集与串口通信测控应用
- 串口通信数据库:基于RFID的电子票证
- Visual C++数据采集与串口通信测控应用
- Visual C++串口通信技术详解.(机械工业
- VC6.0经典串口通信源程序C++
- VC++ MFC 串口通信20个经典源码合集
- 一个MFC做的串口通信的好,是我单位
- UART串口通信论文参考
- Visual C++串口通信及测控应用详解--源
- VS2010 C++ 串口通信软件包含mscomm控件和
- stm32F103zet6开串口通信2 C语言
- 龚建伟MFC串口通信
- C++ 写的串口通信 DLL文件
- VC++串口通信编码
- C++Builder 串口通信调试
- VC++串口通信20个经典源码
- VS2010之MFC串口通信的编写教程
- 一个牛人写的串口通信mfc源代码
- VC++ 串口通信modbus协议源代码
- VC++串口通信源代码VC6.0
- 基于vc++6.0的rs232串口通信课程设计
- Qt5.11.1+VS2017 X64 C++动态编译 串口通讯
- VC++编写上位机串口通信界面
- MFC串口通信源码
- vc6.0编写的基于API的串口通信程序
- MFC实现RS232串口通信程序和辅助程序
- Visual C++串口通信技术详解.配套源码
- VS2010+MFC 使用WinAPI实现串口通信
评论
共有 条评论