亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tstrs485.lst

?? 基于PIC16F873構成485接口的C源碼
?? LST
?? 第 1 頁 / 共 5 頁
字號:
....................       // The number is a decimal number 
....................       if (base == 10) 
....................       { 
....................          while (c >= '0' && c <= '9') 
....................          { 
....................             result = 10*result + (c - '0'); 
....................             c = s[index++]; 
....................          } 
....................       } 
....................       else if (base == 16)    // The number is a hexa number 
....................       { 
....................          while (c = TOUPPER(c), (c >= '0' && c <= '9') || (c >= 'A' && c<='F')) 
....................          { 
....................             if (c >= '0' && c <= '9') 
....................                result = (result << 4) + (c - '0'); 
....................             else 
....................                result = (result << 4) + (c - 'A' + 10); 
....................  
....................             c = s[index++]; 
....................          } 
....................       } 
....................    } 
....................  
....................    if (sign == 1 && base == 10) 
....................        result = -result; 
....................  
....................    return(result); 
.................... } 
....................  
....................  
....................  
.................... signed long atol(char *s) 
.................... { 
....................    signed long result; 
....................    int sign, base, index; 
....................    char c; 
....................  
....................    index = 0; 
....................    sign = 0; 
....................    base = 10; 
....................    result = 0; 
....................  
....................    do 
....................       c = s[index++]; 
....................    while ((c < '0' || c>'9') && c != '+' && c != '-'); 
....................  
....................    // increase index if either positive or negative sign is detected 
....................    if (c == '-') 
....................    { 
....................       sign = 1;         // Set the sign to negative 
....................       c = s[index++]; 
....................    } 
....................    else if (c == '+') 
....................    { 
....................       c = s[index++]; 
....................    } 
....................  
....................    if (c >= '0' && c <= '9') 
....................    { 
....................       if (c == '0' && (s[index] == 'x' || s[index] == 'X')) 
....................       { 
....................          base = 16; 
....................          index++; 
....................          c = s[index++]; 
....................       } 
....................  
....................       // The number is a decimal number 
....................       if (base == 10) 
....................       { 
....................          while (c >= '0' && c <= '9') 
....................          { 
....................             result = 10*result + (c - '0'); 
....................             c = s[index++]; 
....................          } 
....................       } 
....................       else if (base == 16)    // The number is a hexa number 
....................       { 
....................          while (c = TOUPPER(c), (c >= '0' && c <= '9') || (c >= 'A' && c <='F')) 
....................          { 
....................             if (c >= '0' && c <= '9') 
....................                result = (result << 4) + (c - '0'); 
....................             else 
....................                result = (result << 4) + (c - 'A' + 10); 
....................  
....................             c = s[index++]; 
....................          } 
....................       } 
....................    } 
....................  
....................    if (base == 10 && sign == 1) 
....................       result = -result; 
....................  
....................    return(result); 
.................... } 
....................  
.................... signed int32 mult_with10(int32 num) 
.................... { 
....................    return ( (num << 1) + (num << 3) ); 
.................... } 
....................  
.................... signed int32 atoi32(char *s) 
.................... { 
....................    signed int32 result; 
....................    int sign, base, index; 
....................    char c; 
....................  
....................    index = 0; 
....................    sign = 0; 
....................    base = 10; 
....................    result = 0; 
....................  
....................    do 
....................       c = s[index++]; 
....................    while ((c < '0' || c>'9') && c != '+' && c != '-'); 
....................  
....................    // increase index if either positive or negative sign is detected 
....................    if (c == '-') 
....................    { 
....................       sign = 1;         // Set the sign to negative 
....................       c = s[index++]; 
....................    } 
....................    else if (c == '+') 
....................    { 
....................       c = s[index++]; 
....................    } 
....................  
....................    if (c >= '0' && c <= '9') 
....................    { 
....................       if (c == '0' && (s[index] == 'x' || s[index] == 'X')) 
....................       { 
....................          base = 16; 
....................          index++; 
....................          c = s[index++]; 
....................       } 
....................  
....................       // The number is a decimal number 
....................       if (base == 10) 
....................       { 
....................          while (c >= '0' && c <= '9') { 
....................             result = (result << 1) + (result << 3);  // result *= 10; 
....................             result += (c - '0'); 
....................             c = s[index++]; 
....................          } 
....................       } 
....................       else if (base == 16)    // The number is a hexa number 
....................       { 
....................          while (c = TOUPPER(c), (c >= '0' && c <= '9') || (c >= 'A' && c <='F')) 
....................          { 
....................             if (c >= '0' && c <= '9') 
....................                result = (result << 4) + (c - '0'); 
....................             else 
....................                result = (result << 4) + (c - 'A' + 10); 
....................  
....................             c = s[index++]; 
....................          } 
....................       } 
....................    } 
....................  
....................    if (base == 10 && sign == 1) 
....................       result = -result; 
....................  
....................    return(result); 
.................... } 
....................  
....................  
.................... #endif 
.................... 
.................... #include <Rs485.c>    // RS485 packet protocol driver 
....................  //************************************************************************** 
.................... // Rs495.c 
.................... //                      RS485 network protocol 
.................... // 
.................... // Version 1.0 beta 
.................... // 
.................... // Processor: PIC16F87x 
.................... // 
.................... // Network packet protocol: 
.................... // 
.................... // STX ( 0x02 ) 
.................... // NET ADDRESS HIGH   
.................... // NET ADDRESS LOW 
.................... // PAYLOAD LENGTH 
.................... // COMMAND 
.................... // DATA ( Optional ) 
.................... // CRC HIGH 
.................... // CRC LOW 
.................... // 
.................... // 
.................... // 
.................... // 
.................... // 
.................... // By: J.Winpenny 
.................... // j.winpenny@ukonline.co.uk 
.................... // 
.................... //************************************************************************** 
.................... #include <Rs485.h> 
....................  #separate 
.................... char Rs485Process(void); 
.................... void Rs485Initialise(char cAddrHigh, char cAddrLow); 
.................... #separate 
.................... char Rs485Decode( void ); 
.................... void Rs485UpdateCrc(char cVal ); 
.................... void CRC16_Init( void ); 
.................... void CRC16_Update4Bits( char val ); 
.................... void Rs485SendPacket( char cCmd, char cLen, char *cData ); 
.................... void Rs485GetPacket( char *cCom, char *cLen, char *cData ); 
.................... void Rs485SendChar( char c ); 
.................... char PostValidatePacket(void); 
.................... char PacketHasPayload(void); 
.................... void BinToHexAscii( char c ); 
....................  
....................  
.................... #define NULL 0 
....................  
.................... // Configurables 
.................... #define RS485_CONTROL PORTC 
.................... #define OUTPUTS_ON 5 
.................... #define NUM_TX_PREAMBLE 3 
....................  
....................  
.................... // Protocol defines 
.................... #define PKT_START 0x02 
....................  
.................... // States of packet decoder state machine 
.................... #define PKT_WAIT_START      0 
.................... #define PKT_WAIT_ADDR_HIGH  1 
.................... #define PKT_WAIT_ADDR_LOW   2 
.................... #define PKT_WAIT_LEN        3 
.................... #define PKT_CMD             4 
.................... #define PKT_WAIT_DATA       5 
.................... #define PKT_WAIT_CRC_HIGH   6 
.................... #define PKT_WAIT_CRC_LOW    7 
.................... #define PKT_COMPLETE        8 
.................... #define PKT_VALID           9 
.................... #define PKT_INVALID       255 
....................  
.................... // Error codes 
.................... #define BAD_LENGTH 1 
.................... #define BAD_CRC    2 
....................  
....................  
.................... // Packet types 
.................... #define SENSOR_POLL_CMD        0xA1 
.................... #define SENSOR_PING_SYNC       0xA2 
.................... #define SENSOR_CONFIG          0xA3 
.................... #define SENSOR_GET_DATA        0xA4 
....................  
....................  
....................  
.................... #define SENSOR_ACK             0xB0 
.................... #define SENSOR_NAK             0xC0 
....................  
....................  
....................  
....................  
....................  
....................  
....................  
.................... 
.................... #include <lcd2.h> 
....................  /***********************************************/ 
.................... /* LCD.H   Header for LCD routines             */ 
.................... /***********************************************/ 
....................  
....................    void WaitBusyFlag(void); 
....................    void LCDSetup(void); 
....................    void FunctionMode(void); 
....................    void DataMode(void); 
....................    void Write_8_Bit( char dh ); 
....................    void LcdWrite(char dl ); 
....................    void Delay(void); 
....................    void Clear(void); 
....................    void SetPos(char Pos); 
....................    void Line1(void); 
....................    void Line2(void); 
....................    void ClearLine1(void); 
....................    void ClearLine2(void); 
....................    void WriteString( char *lcdptr ); 
....................  
.................... 
.................... // #include <lcd873.h> 
....................  
....................  
....................  
.................... //struct 
.................... //{ 
.................... static char cOurAddrHigh; 
.................... static char cOurAddrLow; 
.................... static char cRs485RxChar; 
.................... static char cRS485State; 
....................  
.................... static char cStart; 
.................... static char cNetAddrHigh, cNetAddrLow; 
.................... static char cLenExpected; 
.................... static char cCommand; 
.................... static char c485Buf[64]; 
.................... static char cRxCrcHigh, cRxCrcLow; 
.................... static char cCalcCrcHigh, cCalcCrcLow; 
.................... static char cBufPtr; 
.................... static char cError; 
.................... static char cCrcTmp, cCrcTmp5, cCrcTmp4, cCrcTmp3, cCrcTmp2; 
.................... //} RS485_Protocol; 
....................  
....................  
.................... //**************************************************************************** 
.................... // void Rs485Initialise(void) 
.................... // 
.................... // Initialise RS485 network driver 
.................... //**************************************************************************** 
.................... void Rs485Initialise(char cAddrHigh, char cAddrLow) 
.................... { 
....................   cOurAddrHigh = cAddrHigh; 
*
025D:  BSF    03,5
025E:  MOVF   32,W
025F:  BCF    03,5
0260:  MOVWF  2E
....................   cOurAddrLow = cAddrLow; 
0261:  BSF    03,5
0262:  MOVF   33,W
0263:  BCF    03,5
0264:  MOVWF  2F
....................   cRS485State = PKT_WAIT_START; 
0265:  CLRF   31
....................   BIT_CLEAR( RS485_CONTROL, OUTPUTS_ON );           // Disable driver 
0266:  BCF    07,5
....................   BIT_SET( PIE1, RCIE );                            // Enable Receive Interrupt 
0267:  BSF    03,5
0268:  BSF    0C,5
0269:  BCF    03,5
026A:  RETLW  00
.................... } 
....................  
....................  
.................... //**************************************************************************** 
.................... // char PacketForUs(void) 
.................... // 
.................... // Decide if packet valid and destined for this node. 
.................... // Ignore invalid packets and packets for other nodes 
.................... // 
.................... //**************************************************************************** 
.................... #separate 
.................... char Rs485Process(void) 
.................... { 
.................... char cOurPkt, cPktReady; 
....................  
....................     cOurPkt = FALSE; 
*
0392:  BSF    03,5
0393:  CLRF   32
....................     cPktReady = FALSE; 
0394:  CLRF   33
....................  
....................     disable_interrupts(GLOBAL); 
0395:  BCF    03,5
0396:  BCF    0B,6
0397:  BCF    0B,7
0398:  BTFSC  0B,7
0399:  GOTO   397
....................  
....................     if ( cRS485State == PKT_COMPLETE ) 
039A:  MOVF   31,W
039B:  SUBLW  08
039C:  BTFSS  03,2
039D:  GOTO   485
....................     { 
....................        	if ( ( cNetAddrHigh == cOurAddrHigh )&&   // Invalid and destined for this node 
.................... 					( cNetAddrLow == cOurAddrLow ) ) 
039E:  MOVF   2E,W
039F:  SUBWF  33,W
03A0:  BTFSS  03,2
03A1:  GOTO   3AC
03A2:  GOTO   3A3
03A3:  MOVF   2F,W
03A4:  SUBWF  34,W
03A5:  BTFSS  03,2
03A6:  GOTO   3AC
.................... 			{ 
.................... 			   cOurPkt = TRUE; 
03A7:  MOVLW  01
03A8:  BSF    03,5
03A9:  MOVWF  32
.................... 			} 
.................... 			else 
03AA:  BCF    03,5
03AB:  GOTO   3C2
.................... 			{ 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品免费在线| 青青草国产精品亚洲专区无| 亚洲一二三四在线观看| 久久国产精品99久久人人澡| 波多野结衣在线一区| 91精品国产综合久久久蜜臀粉嫩| 国产精品私人影院| 久久精品久久99精品久久| 一本大道久久a久久综合婷婷| www久久久久| 日本视频一区二区三区| 欧洲精品中文字幕| 国产精品久久国产精麻豆99网站| 精品在线免费观看| 日韩一区二区三区在线| 亚洲h动漫在线| 欧洲亚洲国产日韩| 一区二区三区四区亚洲| 99视频国产精品| 欧美激情一区二区| 国产福利一区二区三区视频| 亚洲免费av网站| 国产精品一区久久久久| 欧美一区日韩一区| 天天综合日日夜夜精品| 91成人网在线| 亚洲综合精品久久| 91蜜桃传媒精品久久久一区二区| 国产欧美日韩综合| 国产成人在线视频播放| 国产三级久久久| 极品少妇xxxx精品少妇| 2020国产精品久久精品美国| 激情综合网av| 久久精品一区二区三区四区| 国产一二三精品| 国产清纯在线一区二区www| 国产剧情av麻豆香蕉精品| 久久久久久麻豆| 国产成人精品综合在线观看 | 国产 日韩 欧美大片| 26uuu国产在线精品一区二区| 韩国成人精品a∨在线观看| 精品精品国产高清a毛片牛牛| 另类专区欧美蜜桃臀第一页| 久久在线免费观看| www.欧美色图| 一区二区在线观看av| 欧美丰满高潮xxxx喷水动漫| 日本在线不卡视频一二三区| 精品电影一区二区| 9i在线看片成人免费| 亚洲综合自拍偷拍| 日韩欧美一卡二卡| 国产91精品一区二区| 亚洲综合丁香婷婷六月香| 亚洲人成人一区二区在线观看| 欧美午夜片在线看| 久久99精品一区二区三区 | 国产亲近乱来精品视频| 91蜜桃免费观看视频| 亚洲成av人在线观看| 欧美一区二区三区四区在线观看 | 亚洲一区二区三区小说| 91精品国产综合久久小美女| 国产不卡一区视频| 一区二区成人在线| wwwwww.欧美系列| 一本一道久久a久久精品综合蜜臀| 五月婷婷久久综合| 国产欧美一区二区精品秋霞影院 | 福利一区福利二区| 性久久久久久久久| 国产精品美女一区二区在线观看| 欧美在线免费播放| 国产精品一二三在| 午夜不卡在线视频| 久久国内精品视频| 国产精品天天看| 欧美mv和日韩mv的网站| 91原创在线视频| 国产精华液一区二区三区| 亚洲午夜激情av| 国产精品女同互慰在线看| 欧美一区二区视频免费观看| 色综合天天视频在线观看| 久久激五月天综合精品| 一区二区三区日本| 国产精品久久久久aaaa樱花| 日韩一二三区视频| 欧美午夜精品理论片a级按摩| 高清av一区二区| 韩国欧美国产1区| 日韩精品1区2区3区| 亚洲欧美电影一区二区| 国产亚洲一区二区在线观看| 欧美一区午夜视频在线观看| 91官网在线免费观看| 波多野结衣在线一区| 国产精品一二一区| 紧缚奴在线一区二区三区| 日韩影视精彩在线| 亚洲夂夂婷婷色拍ww47| 中文字幕在线观看一区二区| 久久久国产精华| 精品99999| 欧美精品一区二区三区高清aⅴ| 9191成人精品久久| 4438成人网| 91精品黄色片免费大全| 精品婷婷伊人一区三区三| 欧美最新大片在线看| 91久久线看在观草草青青| 日本精品裸体写真集在线观看 | 欧美激情一区在线| 国产偷v国产偷v亚洲高清| 久久精品欧美日韩| 国产精品水嫩水嫩| 中文字幕一区二区三区视频| 国产精品激情偷乱一区二区∴| 欧美国产精品中文字幕| 国产精品久久久久久久午夜片| 国产精品视频一二三区| 国模冰冰炮一区二区| 国产麻豆欧美日韩一区| 成人小视频免费在线观看| 成人黄色大片在线观看| 日本久久电影网| 在线不卡一区二区| 日韩欧美在线综合网| 久久久久久99精品| 欧美国产精品v| 一区二区三区四区亚洲| 五月激情六月综合| 国产一区二区在线视频| 不卡在线视频中文字幕| 在线视频综合导航| 777午夜精品免费视频| 欧美xxxx老人做受| 国产欧美日韩精品a在线观看| 最新高清无码专区| 婷婷亚洲久悠悠色悠在线播放| 秋霞午夜av一区二区三区| 国产成人av自拍| 91国在线观看| 精品成人一区二区三区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 一级中文字幕一区二区| 精品一区二区三区在线播放视频 | 欧美日韩久久一区| 精品裸体舞一区二区三区| 国产精品久久久久久久久免费丝袜| 亚洲精品伦理在线| 久久99久久99精品免视看婷婷 | 欧美日韩中文国产| 国产婷婷色一区二区三区| 亚洲国产视频网站| 风间由美一区二区三区在线观看| 欧美在线观看一区二区| 国产日产精品一区| 日韩精品色哟哟| eeuss鲁片一区二区三区在线观看| 欧美精品vⅰdeose4hd| 久久精品亚洲乱码伦伦中文| 亚洲午夜在线电影| 日韩欧美黄色影院| 综合激情成人伊人| 国产一区二区美女| 欧美久久高跟鞋激| 亚洲免费大片在线观看| 国产一区二区免费看| 欧美一区二区精品在线| 亚洲欧美日韩在线不卡| 国产精品一级片| 精品少妇一区二区三区视频免付费 | 国产精品污网站| 激情欧美一区二区三区在线观看| 欧美日韩视频在线第一区 | 国产成人精品免费| 精品久久久网站| 青青草原综合久久大伊人精品 | 91精品国产色综合久久| 一区二区三区四区亚洲| 成人美女在线视频| 国产日韩成人精品| 国模无码大尺度一区二区三区| 欧美二区三区的天堂| 亚洲免费av观看| 99这里只有精品| 国产三级欧美三级日产三级99| 蜜臀va亚洲va欧美va天堂 | 成人h动漫精品一区二区| 久久久夜色精品亚洲| 久久福利资源站| 日韩欧美一区电影| 免费看日韩精品| 日韩精品一区二区三区视频| 日本sm残虐另类| 日韩三级伦理片妻子的秘密按摩| 日韩激情一二三区|