point-to-point.rar

  • zhuoyue0407
    了解作者
  • C/C++
    开发工具
  • 30KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 8
    下载次数
  • 2009-08-20 10:35
    上传日期
单片机实现点对点的数据传输,初学者学习有帮助。
point-to-point.rar
  • 单片机实现点对点的数据传输
  • 电路原理图
  • PPDATATR.SCH
    10.9KB
  • PROC
  • PPDATARPRO.LNP
    49B
  • PPDATATPRO_UV2.BAK
    1.8KB
  • PPDATARPRO.UV2
    1.8KB
  • PPDATATPRO.LNP
    49B
  • PPDATARPRO.M51
    6.4KB
  • PPDATATPRO.UV2
    1.8KB
  • PPDATATPRO.PLG
    389B
  • PPDATAT.LST
    5.5KB
  • PPDATARPRO.PLG
    389B
  • PPDATARPRO.OPT
    1.3KB
  • PPDATATPRO.OPT
    1.3KB
  • PPDATATPRO.M51
    7KB
  • PPDATAR.C
    2KB
  • PPDATAT.C
    1.9KB
  • PPDATAR.H
    638B
  • PPDATATPRO_OPT.BAK
    1.3KB
  • PPDATAT.H
    638B
  • PPDATARPRO_OPT.BAK
    1.3KB
  • PPDATAR.OBJ
    6.1KB
  • PPDATATPRO
    6.4KB
  • PPDATARPRO
    5.9KB
  • PPDATARPRO_UV2.BAK
    1.8KB
  • PPDATAR.LST
    6KB
  • PPDATAT.OBJ
    6.8KB
内容介绍
/*****************************************/ /* Copyright (c) 2005, 通信工程学院 */ /* All rights reserved. */ /* 作 者:戴 佳 */ /*****************************************/ #include "PPDataR.h" /* 发送数据函数 */ uchar recvdata(uchar *buf) { uchar i,tmp; uchar len; // 保存数据长度 uchar ecc; // 保存校验字节 /* 接收数据长度字节 */ RI = 0; while(!RI); len = SBUF; RI = 0; /* 使用len的值为校验字节ecc赋初值 */ ecc = len; /* 接收数据 */ for (i=0;i<len;i++) { while(!RI); *buf = SBUF; ecc = ecc^(*buf); // 进行字节校验 RI = 0; buf++; } *buf = 0; // 表示数据结束 /* 接收校验字节 */ while(!RI); tmp = SBUF; RI = 0; /* 进行数据校验 */ ecc = tmp^ecc; if (ecc!=0) // 如果校验错误 { *(buf-len) = 0; // 清空数据缓冲区 /* 发送校验错误信号ERR */ TI = 0; SBUF = ERR; while(!TI); TI = 0; return 0xff; // 返回0xff表示校验错误 } /* 发送校验成功信号SUCC */ TI = 0; SBUF = SUCC; while(!TI); TI = 0; return 0; // 校验成功,返回0 } void init_serial() { TMOD = 0x20; // 定时器T1使用工作方式2 TH1 = 250; TL1 = 250; TR1 = 1; // 开始计时 PCON = 0x80; // SMOD = 1 SCON = 0x50; // 工作方式1,波特率9600kbit/s,允许接收 } /* 主程序 */ void main() { uchar tmp = 0; /* 串口初始化 */ init_serial(); EA = 0; // 关闭所有中断 while(1) { /* 如果接收到的数据不是CALL,则继续等待 */ while (tmp!=CALL) { RI = 0; while(!RI) tmp = SBUF; RI = 0; } /* 检测P0口判断当前是否工作忙,若P0=0xBB,则为忙状态 */ P0 = 0xff; tmp = P0; if(tmp==0xBB) // 如果P0口为0xBB,发送BUSY信号 { TI = 0; SBUF = BUSY; while(!TI); TI = 0; continue; } /* 否则发送OK信号,表示从机可以接收数据 */ TI = 0; SBUF = OK; while(!TI); TI = 0; /* 数据接收 */ tmp = 0xff; while(tmp==0xff) { tmp = recvdata(buf); // 校验失败返回0xff,接收成功返回0 } } }
评论
    相关推荐
    • 数据库课程设计
      一个数据库课程设计,access管理工具实现,用的是窗体!
    • 数据库课程设计
      数据库课程设计十分完整有需要的请下载啊谢谢
    • 数据库课程设计
      广东工业大学数据库课程设计,可视化界面连接数据库,delphi7
    • 数据库课程设计
      数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述
    • 数据库课程设计
      数据库课程设计》由周爱武、汪海威、肖云编著,遵循数据库课程设计的具体要求,独立于具体的数据库教材,从实际应用系统的需求着手,引导读者逐步完成数据库设计全过程,重点讲解数据库系统的需求分析、概念设计、...
    • 数据库课程设计
      数据库课程设计人事管理系统 数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计...
    • 数据库课程设计
      数据库课程设计,基于visual basic自助银行管理系统,界面很清爽,实用。同学都说好,所以就上传了!!!
    • 数据库课程设计
      数据库课程设计 里面有详细的文档资料 包含数据库一切的图 以及生成的数据库表文件 期末得分为优秀
    • 数据库课程设计
      可以作为数据库课程设计,也可以作为Java的课程设计,内容全面。本资源转载的,非本人原创。用于交流学习,特此申明!
    • 数据库课程设计
      数据库课程设计蓝天大学学生管理系统 2.商店信息管理系统 3.实验室机房收费管理系统 4.图书馆资料检索系统 5.企业库存管理系统 6.仓库管理系统 7.工程项目管理系统 8.教材管理系统 9.企业人事管理系统 10.企业财务...