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

📄 receive.lst

📁 一个通用的RS232串口程序
💻 LST
字号:
     1: //*******************introduction******************************

     2: /*下面程序主要目的是PC机向MCU发送一字符串,MCU把其中以0x55

     3:   开始以0xAA结束,连续少于五个的且中间无0x55、0xAA的字符串返回,

     4:   下面这段程序未完成若0xAA之前数大于五则这段字符不回传这个任务*/

     5: //*************************************************************

     6: #include <pic.h>

     7: /////////////////////////////////////////////////

     8:        /*下面是对PIC状态字进行设置*/

     9: __CONFIG(HS&UNPROTECT&PWRTDIS&BORDIS&WDTDIS&LVPDIS);

    10: /////////////////////////////////////////////////

    11: unsigned char data[10];           //接收与发送数据存取处

    12: unsigned char in;                 //本次数据接收起始位置

    13: unsigned char counter;            //本次数据存储位置

    14: unsigned char svnumber;           //已存数据数

    15: unsigned char renumber;           //本次已接收数据个数

    16: unsigned char out;                //发送数的位置

    17: unsigned char txendadd;           //发送结束标志位

    18: bit save;                         //数据接收状态标志位

    19: bit send;                         //数据发送状态标志位

    20: bit over;                         //存满一转标志位

    21: /*下面一个函数是对各中断标志的设定*/

    22: void initial()

    23: {

    24:  TRISC=0x80;             //RC端口RC6与RC7分别为输出与输入

    25:  TXSTA=0x24;             //异步方式,高波特率,发送使能

    26:  SPBRG=0x19;             //设定波特率为9600,系统时钟4MHZ

    27:  PIE1=0x30 ;             //允许接收与发送中断

    28:  RCSTA=0x90;             //设置连续接收数据

    29:  INTCON=0x00;            //清除所有中断标志

    30:  INTCON=0xc0;            //开总中断与外围设备中断 

    31: }

    32: 

    33: 

    34: void main ()

    35: {

    36:    initial();

    37:    TXREG=0;

    38:    save=0;

    39:    send=0;

    40:    in=0;

    41:    svnumber=0;

    42:    counter=0;

    43:    out=0;

    44:    while(1);

    45: }

    46: 

    47: void interrupt uasrt(void)

    48: {

    49:  if(RCIE&RCIF==1)                  //是接收中断

    50:      {

    51:       if(save==0)                  //未进入接收状态

    52:          {if(RCREG==0x55)          //判是否为0x55

    53:              save=1;               //是则进入接收态

    54:          }     /**********以下是接收态***************/

⌨️ 快捷键说明

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