wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 8957|回復(fù): 4
收起左側(cè)

51單片機(jī)xmodem協(xié)議程序—接收部分的代碼及rs232.h頭文件

[復(fù)制鏈接]
ID:75263 發(fā)表于 2015-3-25 00:12 | 顯示全部樓層 |閱讀模式
本帖最后由 niuniu 于 2015-3-25 00:13 編輯

#include "..\include\AT89X52.H"
#include "..\include\rs232.h"

uchar RS232_Rec;
static bit RS232_Rec_flag=0;
static bit RS232_Trn_flag=1;
//----------------------------------------------------------
// 函數(shù)名稱 RS232_Init()
// 函數(shù)功能 串口初始化,設(shè)置默認(rèn)通信速率為9600bps
//          單片機(jī)主振頻率11.0592MHz,主頻為其它值時(shí)
//          通信速率按比例變化。
// 入口參數(shù):無
// 函數(shù)返回:無
// 函數(shù)引用:無
// 變量引用:無
// 變量修改:TMOD:設(shè)置T1為串口波特率發(fā)生器
//          TH1,TL1:設(shè)置波特率為9600bps(以11.0592MHz晶體為基準(zhǔn))
//          TR1,RI,TI:啟動(dòng)T2,清除TI、RI標(biāo)志
//          REN,SM0,SM1:使能串口接收,1位起始8位數(shù)據(jù)1位停止模式
//          ES,EA:使能串口中斷,使能總中斷
//          RS232_Trn_flag:設(shè)置發(fā)送完成標(biāo)志
// 函數(shù)作者:周大茍
// 創(chuàng)建時(shí)間:10/01/2009
// 修改歷程:10/01/2009:創(chuàng)建本函數(shù)
//          10/29/2009:格式規(guī)范
//----------------------------------------------------------
void RS232_Init(void)
{
    uchar i;
    RS232_Trn_flag = 1;
    TMOD &= 0x0f;
    TMOD |= 0x20;
    TH1   = 0xfd;
    TL1   = 0xfd;
    TR1   = 1;
    REN   = 1;
    SM0   = 0;
    SM1   = 1;
    RI    = 0;
    TI    = 0;
    EA    = 1;
    ES    = 1;
}
//----------------------------------------------------------
// 函數(shù)名稱:RS232_ISR()
// 函數(shù)功能:串口中斷服務(wù)函數(shù)
// 入口參數(shù):無
// 函數(shù)返回:無
// 函數(shù)引用:無
// 變量引用:RI:串口接收標(biāo)志
//          SBUF:串口接收緩沖寄存器
// 變量修改:RI,TI:清除TI、RI標(biāo)志
//          RS232_Rec:接收串口收到的字節(jié)
//          RS232_Rec_flag:設(shè)置成功接收標(biāo)志
//          RS232_Trn_flag:設(shè)置發(fā)送完成標(biāo)志
// 函數(shù)作者:周大茍
// 創(chuàng)建時(shí)間:10/01/2009
// 修改歷程:10/01/2009:創(chuàng)建本函數(shù)
//          10/29/2009:格式規(guī)范
//----------------------------------------------------------
void RS232_ISR(void) interrupt 4
{
    if(RI)
    {
        RS232_Rec  = SBUF;
        RS232_Rec_flag = 1;
    }
    else RS232_Trn_flag = 1;
    RI = 0;
    TI = 0;
}
//----------------------------------------------------------
// 函數(shù)名稱:RS232_Tran_Chr(...)
// 函數(shù)功能:串口單個(gè)字符發(fā)送函數(shù)
// 入口參數(shù):chr:待發(fā)送的字符
// 函數(shù)返回:無
// 函數(shù)引用:無
// 變量引用:RS232_Trn_flag,自定義串口發(fā)送成功標(biāo)志
// 變量修改:
//          SBUF:賦值串口發(fā)送緩沖寄存器
//          RS232_Trn_flag:清除自定義串口發(fā)送成功標(biāo)志
// 函數(shù)作者:周大茍
// 創(chuàng)建時(shí)間:10/01/2009
// 修改歷程:10/01/2009:創(chuàng)建本函數(shù)
//          10/29/2009:格式規(guī)范,解決發(fā)送偶爾死循環(huán)不返回問題
//----------------------------------------------------------
void RS232_Tran_Chr(uchar chr)
{
    uint tryit = 5000;
    while((!RS232_Trn_flag) && (tryit--)) ;
    RS232_Trn_flag = 0;
    SBUF = chr;
}
//----------------------------------------------------------
// 函數(shù)名稱:RS232_Rec_Xmodem()
// 函數(shù)功能:Xmodem協(xié)議接收部分,128字節(jié)緩沖區(qū)
// 入口參數(shù):無
// 函數(shù)返回:無
// 函數(shù)引用:RS232_Tran_Chr(...)
// 變量引用:RS232_Rec_flag:串口收到字符的標(biāo)志
//          RS232_Rec:串口收到的字符
//          Xmodem_Buffer[]:Xmodem接收緩沖區(qū)
//          Xmodem_Buffer_Ptr:Xmodem緩沖區(qū)指針
// 變量修改:RS232_Rec_flag:串口收到字符的標(biāo)志
//          Xmodem_Buffer_Ptr:Xmodem緩沖區(qū)指針
//          Xmodem_Buffer[]:環(huán)形緩沖區(qū)
// 函數(shù)作者:周大茍
// 創(chuàng)建時(shí)間:10/01/2009
// 修改歷程:10/01/2009:創(chuàng)建本函數(shù)
//          10/29/2009:格式規(guī)范

//          11/09/2009:修改原因:在包頭部分發(fā)現(xiàn)錯(cuò)誤,不應(yīng)該立即發(fā)NAK,而是應(yīng)該等這個(gè)包收完了再發(fā)NAK
//                               即將修改:接收過程中應(yīng)做延時(shí)檢查,防止斷線進(jìn)入死循環(huán)。
//----------------------------------------------------------
// #define SOH             0x01
// #define STX             0x02
// #define EOT             0x04
// #define ACK             0x06
// #define NAK             0x15
// #define CAN             0x18
// #define CTRLZ           0x1A
//enum TXmoden_STate {IDLE, WSTART, START, SEQ, CSEQ, DATA, DEND};
enum TXmoden_STate Xmoden_STate = IDLE;
xdata uchar Xmodem_Buffer[128];
uchar Xmodem_Buffer_Ptr=0;
uchar ChkSum=0;
uchar PSer=1, PT=0;
uchar xerror;
void RS232_Rec_Xmodem(void)
{
    if(Xmoden_STate == IDLE) return;
    if(RS232_Rec_flag)
    {
        switch(Xmoden_STate)
        {
            case WSTART:      //當(dāng)前正等待接收主機(jī)發(fā)送起始符號(hào)SOH
                if(RS232_Rec == SOH)      //收到主機(jī)發(fā)送的SOH符號(hào)
                {
                    Xmoden_STate = START; //進(jìn)入"SOH已經(jīng)收到"狀態(tài)
                    xerror=0;
                }
                else
                if(RS232_Rec == EOT)      //收到主機(jī)發(fā)送的EOT符號(hào)
                {
                    RS232_Tran_Chr(ACK);
                    Xmoden_STate = IDLE;         //進(jìn)入"空閑"狀態(tài)
                }
                break;
            case START://SOH已經(jīng)收到,當(dāng)前正等待接收期望的包序列號(hào)
                Xmoden_STate = SEQ;    //進(jìn)入"序列號(hào)已經(jīng)收到"狀態(tài)
                if(RS232_Rec != PSer)        //不是期望的包序列號(hào)
                    xerror=1;                      //設(shè)置出錯(cuò)標(biāo)志
                break;
            case SEQ:       //包號(hào)已經(jīng)收到,當(dāng)前正等待接收包號(hào)補(bǔ)碼
                Xmoden_STate = CSEQ;     //進(jìn)入"包號(hào)補(bǔ)碼已收"狀態(tài)
                if(RS232_Rec != (0xff-PSer)) //不是期望的包號(hào)補(bǔ)碼
                    xerror=1;                      //設(shè)置出錯(cuò)標(biāo)志
                break;
            case CSEQ:      //包號(hào)補(bǔ)碼已經(jīng)收到,當(dāng)前正等待接收數(shù)據(jù)
                Xmodem_Buffer[0] = RS232_Rec;
                ChkSum = RS232_Rec;
                Xmodem_Buffer_Ptr = 1;
                Xmoden_STate = DATA;
                break;
            case DATA:                       //當(dāng)前正等待接收數(shù)據(jù)
                if(Xmodem_Buffer_Ptr<128)
                {
                    Xmodem_Buffer[Xmodem_Buffer_Ptr++] = RS232_Rec;
                    ChkSum += RS232_Rec;
                    if(Xmodem_Buffer_Ptr==128)
                    Xmoden_STate = DEND;
                }
                break;
            case DEND:      //數(shù)據(jù)包接收結(jié)束,當(dāng)前正等待接收校驗(yàn)和
                if((ChkSum == RS232_Rec)&&(xerror==0))
                {
                    KS108_Disp_uint_Dec(0,0,PSer,0);
                    Flash_Write(((ulong)(PSer-1+(PT<<8))<<7), Xmodem_Buffer, 128);
                    PSer++;
                    if(PSer==0) PT++;
                    RS232_Tran_Chr(ACK);         //給主機(jī)正確應(yīng)答
                    Xmoden_STate = WSTART;
                }
                else
                {
                    RS232_Tran_Chr(NAK);    //要求主機(jī)重發(fā)SOH符號(hào)
                    Xmoden_STate = WSTART;//回到"等待接收SOH"狀態(tài)
                }
                break;
            default:break;
        }
        RS232_Rec_flag = 0;
    }
}
//本函數(shù)的調(diào)用方式如下:
//  Xmoden_STate = WSTART;
//  RS232_Tran_Chr(NAK);
//  while(Xmoden_STate != IDLE) RS232_Rec_Xmodem();

//需要進(jìn)一步完善/優(yōu)化。已經(jīng)成功用于PC--->51單片機(jī)管理下的2M字節(jié)串行Flash芯片AT45DB161D下載16點(diǎn)陣漢字庫。
//每個(gè)包都人為設(shè)置多個(gè)錯(cuò)誤,測(cè)試通過

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:75263 發(fā)表于 2015-3-25 00:13 | 顯示全部樓層
下面是頭文件rs232.h的內(nèi)容:
  1. #ifndef __RS232_H__
  2. #define __RS232_H__

  3. #define uchar unsigned char
  4. #define uint  unsigned int
  5. #define ulong unsigned long

  6. #define SOH             0x01
  7. #define STX             0x02
  8. #define EOT             0x04
  9. #define ACK             0x06
  10. #define NAK             0x15
  11. #define CAN             0x18
  12. #define CTRLZ           0x1A
  13. enum TXmoden_STate {IDLE, WSTART, START, SEQ, CSEQ, DATA, DEND};

  14. extern uchar RS232_Rec;
  15. extern idata uchar RS232_Rec_Buf[];
  16. extern uchar RS232_Rec_Buf_Index;
  17. extern enum TXmoden_STate Xmoden_STate;

  18. void RS232_Init(void);
  19. void RS232_ISR(void);
  20. void RS232_Tran_Chr(uchar chr);
  21. // void RS232_Tran_Str(const uchar* str);
  22. //uchar* RS232_Rec_Str(void);
  23. void RS232_Rec_Xmodem(void);
  24. #endif
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

ID:128605 發(fā)表于 2016-6-29 20:34 | 顯示全部樓層
感謝 正好要用到
回復(fù)

使用道具 舉報(bào)

ID:17809 發(fā)表于 2020-8-15 08:07 | 顯示全部樓層
謝謝, 程序?qū)懙煤芎?br />
回復(fù)

使用道具 舉報(bào)

ID:137736 發(fā)表于 2020-11-9 19:49 | 顯示全部樓層
編譯通不過,請(qǐng)上傳文件
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
国产精品亚洲一区二区三区妖精| 一级黄色在线视频| 亚洲一区二区三区自拍| 国产在线网站| 美女搡bbb又爽又猛又黄www| 久久久久久久久久久91| 久久久久久久久岛国免费| 高清在线一区二区| wwwwww色| 黄色a级片在线观看| 欧美亚洲另类激情另类| 久久精品视频在线看| 黄色网址免费看| 欧美精品欧美极品欧美激情| 国产丝袜在线| 国产精品视频久久久久久久| 中文字幕av日韩精品| 亚洲国产精品va在线观看黑人| 日韩电影在线观看网站| 国产网红在线观看| 最新国产麻豆精品| 国产精品国产三级国产专业不 | 草莓视频性福宝| 精品视频在线一区二区在线| 日韩国产伦理| 欧美日韩精品欧美日韩精品| 亚洲东热激情| 麻豆网站在线看| 四虎永久在线精品免费网址| 小泽玛利亚视频在线观看| 欧美在线视频在线播放完整版免费观看 | 久久一区免费| 亚洲欧美日韩直播| 黄频视频在线观看| jizz性欧美2| 国产成人福利| 午夜在线观看一区| 热久久久久久久| xfplay每日更新av资源| avove在线播放| 国产一区二区四区| 777精品视频| 欧美一卡二卡三卡四卡| 国产在线精品一区二区三区不卡| 欧美中文字幕精在线不卡| 久久国产美女视频| 国产ts一区二区| 一区二区三区四区亚洲| 亚洲视频综合| xxxxx.日韩| 日韩二区三区| luxu259在线中文字幕| 成人在线观看免费高清| 黄色一级片国产| 国产精品久久二区| 久久国产福利| 日韩精品麻豆| 久久一卡二卡| 国产69精品久久久久久| 一区二区在线观看免费视频播放| 成人av一区二区三区| 一区二区导航| 青春草在线视频| www黄在线观看| 可骚可骚的黄视频网站| 国产免费黄色大片| 久久美女免费视频| 黄色a一级视频| 99视频精品免费| 乱一区二区三区在线播放| 91丨九色丨国产在线| 日韩视频欧美视频| 日韩欧美中字| 毛片激情在线观看| av播放在线观看| www成人免费观看网站| 亚洲图片小说综合| 亚洲网站在线免费观看| 中文字幕免费在线看线人动作大片| 免费国偷自产拍精品视频| 久久久99精品视频| 国产九区一区在线| 8090成年在线看片午夜| 91精品国产91久久久久久不卡| 亚洲制服丝袜在线播放| 日韩欧美国产三级电影视频| 波多野结衣一区二区三区| 精品一区二区免费看| 亚洲影视一区| 老牛影视av一区二区在线观看| 9765激情中文在线| 国产在线观看精品一区| 成年在线电影| 色在线视频网| 麻豆导航在线观看| 丁香婷婷自拍| 三年片免费观看大全| 成人知道污网站| 亲爱的老师6电影韩剧| 日本少妇在线观看| 好吊日免费视频| 日本美女久久久| 免费看国产曰批40分钟| 亚洲一区二区精品在线| 国产青春久久久国产毛片| 国产精品视频一区二区三区四| 欧美精品18videosex性欧美| 26uuu久久噜噜噜噜| 91视频-88av| 日韩在线电影一区| 久久夜色精品国产欧美乱极品| 仙踪林久久久久久久999| 乱亲女h秽乱长久久久| 久久不见久久见中文字幕免费| 亚洲高清国产拍精品26u| 绿色成人影院| 主播国产精品| 国产一二区在线观看| 欧美xx视频| 亚洲激情77| 性久久久久久| 免费亚洲婷婷| 福利电影一区二区| 99久久伊人久久99| 国产ts人妖一区二区| 中文字幕一区三区| 亚洲欧洲av另类| 中文字幕一区视频| 九一在线免费观看| 欧美色老头old∨ideo| 亚洲免费观看高清完整版在线观看熊 | 午夜影院免费体验区| 午夜美女福利视频| 69av影院| 天天色天天射天天干| 国产网站av| 在线麻豆国产传媒1国产免费| 羞羞的视频免费| 黄色一级片播放| 欧美裸体网站| 日本高清视频一区二区三区| 日韩高清专区| 日韩精品你懂的| 国产伦精品一区二区三区88av| 女人被狂躁c到高潮| 国产成人无码精品久久久久| 欧美性猛交bbbbb精品| 成人黄色激情视频| 亚洲精品久久久久久久久久久久久久| 69xxxx视频| 香港日本韩国三级| 一区 二区 三区| 91精品国产综合久久久久久豆腐| 亚洲ww精品| 天堂午夜影视日韩欧美一区二区| 久久99久久99小草精品免视看| 国内高清免费在线视频| 国产一区二区三区在线观看| 天天操中文字幕| 五十路中文字幕| 老司机午夜激情| 九色在线视频| 成人污污www网站免费丝瓜| 久久久久久久久久久妇女| 99久久精品免费看| 91精品国产综合久久精品app| 国产精品久久久久久久裸模| 风间由美性色一区二区三区四区| 国语一区二区三区| 美女网站久久| 激情六月综合| 久久久久久亚洲综合影院红桃| 欧美电影一区二区| 亚洲天堂av在线播放| 久久国产精品久久精品| 66m—66摸成人免费视频| 日韩免费电影一区二区| 成人三级做爰av| 中文字幕码精品视频网站| 天堂在线观看免费视频| 自由色视频.| 91中文在线| 精品久久久亚洲| 日本v片在线高清不卡在线观看| 夜夜精品视频一区二区| 精品国产乱码久久久久久久| 欧美第一黄色网| 国产一区高清视频| 日本黄色www| www国产一区| 粉嫩av在线播放| 四虎在线精品| 亚洲精品v日韩精品| **爰片久久毛片| 天堂日韩电影| 石原莉奈在线亚洲二区| 欧美日韩国产中文精品字幕自在自线| 欧美挠脚心视频网站| 国产精品第二页| 最新天堂中文在线| 国产女人18毛片18精品| 在线看视频你懂得| 九九免费精品视频在线观看| 国产精品美女视频| 久久久久久网站| 91看片就是不一样| 国产精品1区2区在线观看| 国产在线精品一区二区中文| 亚洲精品久久一区二区三区777 | 欧洲精品视频在线| 国产精品suv一区二区三区| 日本视频一二区| 日本不卡电影| caoporn国产一区二区| 精品亚洲男同gayvideo网站| 国产欧美精品在线| 屁屁影院ccyy国产第一页| 欧美成人国产精品一区二区| 思99热精品久久只有精品| 欧美gv在线观看| 紧缚奴在线一区二区三区| 色综合咪咪久久| 欧美国产在线电影| 91n.com在线观看| www.com亚洲| 999www成人| 女厕嘘嘘一区二区在线播放 | 免费a级片在线观看| 日本粉色视频在线观看| 国产精品一区二区99| 99久久精品久久久久久清纯| www.日韩不卡电影av| 日本日本19xxxⅹhd乱影响| 亚洲爆乳无码一区二区三区| jizzjizz中国精品麻豆| 成人av一区二区三区| 性欧美xxxx| 国产亚洲综合视频| 久草手机在线观看| 国产中文在线| 日本三级亚洲精品| 中文字幕欧美日韩精品| 日本高清一区| 国产无遮挡呻吟娇喘视频| 在线观看麻豆| 国内精品视频一区二区三区八戒| 一区二区三区在线观看网站| 热门国产精品亚洲第一区在线| 野外性满足hd| 男女午夜视频在线观看| 一区视频在线看| 精品偷拍各种wc美女嘘嘘| 国产精品-区区久久久狼| 日韩不卡高清视频| 三级国产三级在线| 国产女人18毛片水真多18精品| 亚洲精品乱码久久久久久黑人| 91精品婷婷国产综合久久蝌蚪| 国产免费又粗又猛又爽| 欧美特级xxxxbbbb毛片| 蜜桃成人365av| 成人在线视频一区二区| 日韩精品极品在线观看播放免费视频| 欧美激情www| 97超碰人人模人人人爽人人爱| 牛牛精品视频在线| 国产亚洲欧美日韩日本| 精品国产一区二区三区久久狼黑人 | 久久影院朴妮唛| 黄色小说在线播放| 久久蜜臀精品av| 91免费在线视频网站| 日韩av免费网址| bl在线肉h视频大尺度| 中文字幕久久午夜不卡| 国内精品久久久久久| 第四色婷婷基地| 99久久国产综合精品女小说 | 怡红院在线播放| 91蜜桃传媒精品久久久一区二区| 欧美成人手机在线| 少妇精品一区二区三区| 在线看视频你懂的| 成人免费va视频| 91一区二区三区| 77777少妇光屁股久久一区| 国产免费xxx| 亚洲 欧美 日韩 综合| av免费在线网站| 国产亚洲精品资源在线26u| 国产精品av一区| 久久精品www人人爽人人| 男女午夜视频在线观看| 蜜桃精品视频在线观看| 最近2019年手机中文字幕| 日韩精品视频在线观看视频 | 蜜臀av一区二区三区有限公司| 日夜干在线视频| 成人高清在线视频| 国产精品亚洲不卡a| 国产18精品乱码免费看| 91精品论坛| av一区二区三区黑人| www.一区二区三区| 中文字幕第15页| 粉嫩av一区二区三区四区五区| 91福利在线免费观看| 一区二区三区不卡在线| 日日夜夜国产| 亚洲小说欧美另类社区| 欧美四级电影在线观看| 欧美日韩最好看的视频| 男女一区二区三区免费| 亚洲最新av| 97精品伊人久久久大香线蕉| 奇米影视第四色777| 日本成人在线网站| 欧美不卡在线视频| 六月丁香婷婷在线| 美女胸又www又黄的网站| 成人亚洲一区二区一| 欧美福利精品| xxxxxx国产精品视频| 免费人成在线不卡| 国产传媒一区二区| 亚洲欧美精选| 久久激情综合| 18成人在线| 最新国产麻豆精品| 日产国产欧美视频一区精品| 不卡视频一区| 户外露出精品视频国产| 婷婷亚洲综合| 亚洲日韩欧美视频| 69av视频在线| 综合激情网...| 视频一区视频二区国产精品| 国产污视频在线观看| 蜜臀久久精品| 欧美成人激情| 亚洲成人精品久久| 日韩福利在线视频| 欧美一区二区三区婷婷| 亚洲精品中文字| 日本一级黄色大片| 亚洲区小说区| 2019精品视频| 亚洲三级中文字幕| 久久欧美肥婆一二区| 精品国产第一页| 先锋资源一区二区| 日韩福利视频网| 清纯唯美一区二区三区| 成人蜜桃视频网站网址| 中文字幕精品一区二区精品绿巨人| 国产97在线 | 亚洲| 国产女主播在线写真| 色婷婷久久综合| 法国伦理少妇愉情| 经典三级久久| 亚洲高清福利视频| 黄色一级视频免费观看| 麻豆精品av| 欧洲亚洲在线视频| 欧美色欧美亚洲另类二区精品| 精品一区二区在线播放| 国产成年人在线观看| 成年网站在线看| 久久九九国产精品| 91高清国产视频| 成人在线免费公开观看视频| 欧洲国产伦久久久久久久| 99国产精品久久久久久| 香蕉网站在线| 国产精品久久久久婷婷| 日本肉体xxxx裸体xxx免费| 性爽视频在线| 欧美精品一二三区| 欧美人妻精品一区二区免费看| 精品在线99| 91人成网站www| h在线视频免费观看完整版| 亚洲视频精选在线| 四季av一区二区| av手机免费在线观看| 亚洲精品av在线播放| 国产尤物在线播放| 台湾亚洲精品一区二区tv| 国产精品视频1区| jizz视频18| 精品国产乱码久久久久久天美| 五月天激情播播| 高清av一区二区三区| 九九色在线视频| 国产精品日韩成人| 亚洲精品乱码久久久久久9色| 日韩一级二级| 欧美在线欧美在线| 免费看污片的软件| 亚洲va欧美va人人爽午夜 |