资源简介
串口通信程序,附带详细说明!
//程序功能:接收串口发过来的字符,当字符分别为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对飞机位置进行滤波
相关资源
- VC++ 编写的 Modbus 协议类 并附带串口通
- 完整串口通信程序(发送和接受)V
- 串口调试助手源代码(MFC+SComm)
- 非常有用的单片机C语言程序.rar
- VC++串口通信20个经典源码合集.zip
- VC++串口通信20个经典源码合集
- 单片机串口通信(方式1)
- 蓝牙串口通信(源码+视频)
- qt 串口通信
- stm32串口通信
- arduino 舵机控制 串口通信 超声波传感
- 设备老化测试工具
- C++ PC_PC串口通信.pdf(图文教程)
- hal 串口通信
- c++ 串口通信程序
- vc实现串口通信的完整代码
- linux嵌入式串口通信程序
- C++ 串口通信源代码完整工程,亲测可
- 用com组件方式写windows串口通信接口
- SerialPort.rar
- 用MFC实现串口通信,控制电机
- VS2012+MFC+串口通信的实现.
- C语言利用串口实现两套电脑的聊天
- CommTone6串口调试精灵/WEB串口通信
- Visual C++实现PC与西门子S7-200 PLC串口通
- VC++VS2010串口通信调试源码
- MFC串口RS232编程简单数据发送与接收
评论
共有 条评论