⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 r.c

📁 这是《Keil Cx51 V7.0单片机高级语言编程与uVision2应用实践》教材各章中列出的全部程序例子。
💻 C
字号:
    #include <reg51.h>
    #define COUNT 10                         /* 定义接收缓冲区大小 */
    #define NODE_ADDR 64                     /* 定义本节点地址 */
    /* 定义接收缓冲区和当前位置指针 */
    unsigned char buffer[COUNT];
    int pointer;
    main() {
    /* 初始化串行口和波特率发生器, 并允许串行口接收地址帧 */
       SCON=0xf0;                            /* MODEL 3, REN=1, SM2=1 */
       TMOD=0x20;
       TH1=0xfd;
       TR1=1;
       ET1=0;
       ES=1;
       EA=1;
    /* 等待接收地址帧和全部数据帧 */
       pointer=0;
       while(pointer<COUNT);
         /* ...... */
    }

    /* 接收中断服务函数 */
    void receive(void) interrupt 4 using 3 {
       RI=0;                                 /* 清接收中断标志 */
    /* 如果为本节点地址帧, 则置SM2=0以便接收数据帧 */
       if(RB8==1) {
      	  if(SBUF==NODE_ADDR) SM2=0;
	      return;
       }
    /* 将接收到的数据帧送接收缓冲区并修改当前位置指针 */
       buffer[pointer++]=SBUF;
    /* 如果已接收完全部数据帧, 则此次通信结束, 置SM2=1准备下一次通信 */
       if(pointer>=COUNT) SM2=1;
}    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -