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

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

?? 通用同步和異步串行接收器和轉發器(usart).txt

?? USART在單片機里的通用c程序
?? TXT
?? 第 1 頁 / 共 5 頁
字號:
    ldi ZL,USARTAI_RCOMI            ;置接收命令作業標志值
    sts USARTAI_RXCOM,ZL
    rcall USART_RXData_Process      ;調用接收數據處理子程序
    clr ZL                          ;清除接收作業己更新標志
    sts USARTAI_RXUPD,ZL
    clr ZL                          ;清除允許處理接收數據標志
    sts DataUPD_RXALW,ZL
    rjmp USART_RXD_Data_RET         ;返回
USART_RXD_Data_Error:
    rcall USART_RXD_Error           ;調用接收錯誤處理子程序
USART_RXD_Data_RET:
    ret                             ;子程序返回

;*** 此段程序用于對從 USART 端口上接收到的數據進行處理操作
USART_RXData_Process:


;此處插入接收數據處理程序


    ret                             ;子程序返回


;*******************************************************************************
;*
;* 向 USART 端口上發送數據更新子程序 - “USART_TXD_Data”
;*
;* 說明:
;*   本子程序用于更新向 USART 端口上上發送數據,本子程序中包含有數據循環
;* 冗余檢測校驗子程序。
;*   本子程序要在主程序中不間斷循環查詢運行。
;*
;* SRAM 中標志字節用法:
;*   入口標志:本子程序將檢查這個標志,只有這個標志置值后才允許更新數據。
;*               允許更新發送數據(DataUPD_TXALW)= $c0(DataUPD_TALWI)
;*   出口標志:更新發送數據操作得到執行后,將對下面這個標志置值。
;*               允許更新發送數據(DataUPD_TXALW)= $00
;*
;*******************************************************************************
USART_TXD_Data:
    lds ZL,DataUPD_TXALW            ;檢查是否允許更新發送數據?
    cpi ZL,DataUPD_TALWI              ;是,則繼續
    brne USART_TXD_Data_RET           ;否,直接返回
    lds ZL,USARTAI_TXEnd            ;發送作業是否全部結束?
    cpi ZL,USARTAI_TEndI              ;是,繼續
    brne USART_TXD_Data_RET           ;否,返回,等待發送作業結束
    rcall USART_TX_COMM_AskTX       ;發送“向對方請求發送”命令
    rcall USART_TXData_Process      ;調用更新發送數據子程序
USART_TXD_Data_Check:
    lds ZL,USARTAI_TXDAA            ;取發送的數據長度值
    adiw ZL,$03                       ;發送的總長度=發送的數據長度值+
    sts USARTAI_TXDAA,ZL              ;1 個長度字符字節+ 2 個校驗字節
    mov USARTAI_TEMP2,ZL
    ldi ZL,Low(USARTAI_TXDAA-2)     ;發送數據的校驗字節在發送數據序列
    ldi ZH,High(USARTAI_TXDAA-2)      ;尾部后兩個字節
    clr USARTAI_TEMP
    add ZL,USARTAI_TEMP2            ;Z 指針指向發送數據的校驗字節
    adc ZH,USARTAI_TEMP
    clr USARTAI_TEMP
    st Z+,USARTAI_TEMP              ;清除發送數據的尾部后兩個字節
    st Z+,USARTAI_TEMP                ;的校驗字節值
    ldi ZL,Low(USARTAI_TXDAA)       ;Z 指針指向發送數據首個字節
    ldi ZH,High(USARTAI_TXDAA)
    lds DCRC2B_DLength,USARTAI_TXDAA;置校驗的數據長度初值
    call DataCheck_CRC2B            ;生成發送數據序列的 CRC 碼
    clr ZL                          ;清除允許更新發送數據標志
    sts DataUPD_TXALW,ZL
USART_TXD_Data_RET:
    ret                             ;子程序返回

;*** 此段程序用于向 USART 端口上發送數據的更新操作
USART_TXData_Process:


;此處插入更新發送數據程序


; 此段程序為示例數據的更新操作
    mov USARTAI_TEMP,r3
    ldi USARTAI_TEMP2,$fc
    sts USARTAI_TXDAA,USARTAI_TEMP2
    ldi YL,Low(USARTAI_TXDAA+1)       ;置接收作業地址指針為
    ldi YH,High(USARTAI_TXDAA+1)        ;首個接收數據地址指針
USART_TXData_Process1:
    st Y+,USARTAI_TEMP
    inc USARTAI_TEMP
    dec USARTAI_TEMP2
    brne USART_TXData_Process1
    inc r3
; 示例程序結束

    ret                             ;子程序返回


;*******************************************************************************
;*
;*  USART 通信發生錯誤處理子程序 - “USART_Error”
;*
;* 說明:
;*   本子程序用于當 USART 通信發生錯誤時的處理。
;*
;*******************************************************************************
USART_Error:
    push ZL                         ;壓入寄存器中的數值到堆棧
    push ZH
    in ZL,SREG                      ;壓狀態寄存器中的標志值到堆棧
    push ZL
    ldi ZH,(1<<RXCIE)|(1<<UDRIE)|(1<<RXEN)|(1<<TXEN)
    com ZH                          ;禁止接收器和發送器,禁止 USART 
    in ZL,UCSRB                       ;接收結束中斷和數據寄存器空中斷
    and ZL,ZH
    out UCSRB,ZL


;此處插入錯誤處理程序
;此處插入從頭開始重新進行數據處理操作程序


    ldi ZH,(1<<FE)|(1<<DOR)|(1<<PE)
    com ZH                          ;清除幀錯誤(FE)、數據溢出(DOR)
    in ZL,UCSRA                       ;及奇偶校驗錯誤(UPE)標志
    and ZL,ZH
    out UCSRA,ZL
    ldi ZH,(1<<UDRE)
    in ZL,UCSRA                     ;置數據寄存器空(UDRE)標志
    or ZL,ZH
    out UCSRA,ZL
    call USART_AINT_INI             ;重新初始化 USART 異步中斷接收和發送
    call USART_TX_COMM_REPINI       ;向對方發送“要求其重新初始化”命令
USART_Error_RET:
    pop ZL
    out SREG,ZL                     ;彈出堆棧中的標志值到狀態寄存器
    pop ZH                          ;彈出堆棧中的數值到寄存器
    pop ZL
    ret                             ;子程序返回


;*******************************************************************************
;*
;* 所有通信協議命令開頭標識字符串 - “COMAgreement_Head”
;*
;*******************************************************************************
COMAgreement_Head:
.DB $03,"COM"                       ;通信協議命令開頭標識字符(COM)
;   │   │
;   │   通信協議命令開頭標識字符(COM)
;   本指令字符串字符長度數值(不包括自已在內共 3 個字符)


;*******************************************************************************
;*
;* 向對方請求發送命令字符串 - “USART_AskTX”
;*
;*******************************************************************************
USART_AskTX:
.DB "ATX"                           ;向對方請求發送命令字符串(ATX)

;*******************************************************************************
;*
;* 允許對方發送命令字符串 - “USART_OKRX”
;*
;*******************************************************************************
USART_OKRX:
.DB "YET"                           ;允許對方發送命令字符串(YET)

;*******************************************************************************
;*
;* 要求對方重新發送命令字符串 - “USART_REPTX”
;*
;*******************************************************************************
USART_REPTX:
.DB "RPT"                           ;要求對方重新發送命令字符串(RPT)

;*******************************************************************************
;*
;* 接收數據正確命令字符串 - “USART_DataOK”
;*
;*******************************************************************************
USART_DataOK:
.DB "OKD"                           ;接收數據正確命令字符串(OKD)

;*******************************************************************************
;*
;* 要求對方發送指定數據的命令字符串 - “USART_DCOMTX”
;*
;*******************************************************************************
USART_DCOMTX:
.DB "STD"                           ;要求對方發送指定數據的命令字符串(STD)

;*******************************************************************************
;*
;* 要求對方重新初始化 USART 端口狀態命令字符串 - “USART_REPINI”
;*
;*******************************************************************************
USART_REPINI:
.DB "RII"                           ;要求對方重新初始化狀態命令字符串(RII)

;*******************************************************************************
;*
;* 重新初始化 USART 端口狀態完成命令字符串 - “USART_RINIOK”
;*
;*******************************************************************************
USART_RINIOK:
.DB "YRI"                           ;重新初始化狀態完成命令字符串(YRI)

;*******************************************************************************
;*
;* 從 USART 端口傳送控制操作指令命令字符串 - “USART_CTRLCOM”
;*
;*******************************************************************************
USART_CTRLCOM:
.DB "CIT"                           ;從端口傳送控制操作指令命令字符串(CIT)


;*******************************************************************************
;*
;*  USART 異步通信中斷接收與發送協議命令和數據處理子程序 - “USART_INT_ACOM”
;*
;* 說明:
;*   本子程序用于 USART 異步通信中斷接收與發送協議命令和數據處理。
;*   本子程序要在主程序中不間斷地循環運行。
;*
;*******************************************************************************
USART_INT_ACOM:
    in ZL,SREG                      ;壓狀態寄存器中的標志值到堆棧
    push ZL
    call USART_RXD_COMM             ;接收通信協議命令處理程序
    call USART_RXD_Data             ;調用接收數據處理程序
    call USART_TXD_Data             ;調用更新發送數據程序
    pop ZL                          ;彈出堆棧中的標志值到狀態寄存器
    out SREG,ZL
    ret                        

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费在线观看不卡| 激情图片小说一区| 亚洲天堂成人网| 中文字幕av在线一区二区三区| 久久久精品日韩欧美| 久久久久88色偷偷免费| 国产日产欧产精品推荐色| 久久精品人人做人人综合| 久久久久久**毛片大全| 中文字幕精品综合| 亚洲欧美一区二区在线观看| 亚洲欧洲日产国码二区| 亚洲三级电影网站| 亚洲精品国产高清久久伦理二区| 亚洲精品日韩综合观看成人91| 亚洲六月丁香色婷婷综合久久| 亚洲小说春色综合另类电影| 亚洲国产乱码最新视频| 男女性色大片免费观看一区二区| 久久99久久久久| 国产成人在线免费观看| 99热在这里有精品免费| 日本丶国产丶欧美色综合| 欧美日韩aaaaa| 欧美成人三级在线| 国产精品乱码一区二三区小蝌蚪| 夜夜嗨av一区二区三区网页| 天堂影院一区二区| 国产999精品久久久久久绿帽| 99re视频精品| 日韩欧美卡一卡二| 国产精品免费视频一区| 亚洲va国产天堂va久久en| 九九**精品视频免费播放| 91一区二区三区在线播放| 欧美日韩mp4| 国产精品丝袜一区| 日韩精品91亚洲二区在线观看 | 91香蕉视频在线| 欧美精品欧美精品系列| 国产精品免费人成网站| 日产欧产美韩系列久久99| 国产成人精品aa毛片| 欧美日韩一区久久| 久久免费国产精品 | 欧美日韩一区视频| 国产欧美精品一区| 日本不卡一二三区黄网| 成人av免费网站| 欧美成人伊人久久综合网| 一区二区三区电影在线播| 国产美女娇喘av呻吟久久| 5566中文字幕一区二区电影| 亚洲欧洲99久久| 丁香亚洲综合激情啪啪综合| 欧美一级欧美三级| 亚洲电影一级片| 91在线视频播放| 日本一区免费视频| 久久精品国产一区二区三| 日韩电影在线一区| 91视频com| 国产精品嫩草久久久久| 经典三级视频一区| 7777女厕盗摄久久久| 一区二区三区欧美亚洲| 99久久精品一区| 国产日韩欧美在线一区| 久草中文综合在线| 日韩女优视频免费观看| 首页国产欧美久久| 欧美军同video69gay| 亚洲综合成人在线视频| 91久久一区二区| 亚洲综合免费观看高清完整版在线 | 国产婷婷色一区二区三区 | 久久色视频免费观看| 蜜臀av一区二区在线免费观看 | 日韩电影免费在线看| 色综合久久久久久久| 国产精品美女久久久久aⅴ| 国内成人免费视频| www国产精品av| 国产精品一区二区在线观看网站| 日韩视频一区二区三区在线播放| 日本怡春院一区二区| 在线不卡a资源高清| 美日韩黄色大片| 精品国产91亚洲一区二区三区婷婷| 日本视频一区二区三区| 欧美成人a视频| 91蜜桃在线免费视频| 国产精品美女久久久久久久久久久| 亚洲国产婷婷综合在线精品| 欧美日本在线播放| 美日韩黄色大片| 亚洲国产精品av| 91麻豆免费视频| 亚洲风情在线资源站| 欧美一级午夜免费电影| 国产一区二区电影| 亚洲免费色视频| 欧美人与z0zoxxxx视频| 久久国产尿小便嘘嘘| 欧美韩国日本不卡| 欧美视频一区二区| 国产一区二区三区在线观看精品 | 久久国产视频网| 日本一区二区在线不卡| 欧美视频你懂的| 国产一区二区三区电影在线观看 | 国产精品456露脸| 一区二区三区美女| 日韩精品在线网站| 99久久综合色| 麻豆免费看一区二区三区| 国产精品嫩草影院av蜜臀| 欧美一区二区私人影院日本| a亚洲天堂av| 麻豆精品视频在线| 玉米视频成人免费看| 精品第一国产综合精品aⅴ| 色八戒一区二区三区| 国产精品中文有码| 亚洲国产精品久久人人爱| 国产香蕉久久精品综合网| 精品视频123区在线观看| 国产成人精品亚洲午夜麻豆| 天天影视涩香欲综合网 | 欧美亚洲国产一区二区三区| 国产美女av一区二区三区| 日韩高清在线一区| 亚洲黄色录像片| 国产精品美女久久久久久2018| 精品女同一区二区| 欧美日韩mp4| 91精品福利视频| 成人国产亚洲欧美成人综合网| 久久精品国产99| 男人的j进女人的j一区| 亚洲电影中文字幕在线观看| 亚洲视频免费看| 欧美国产日产图区| 久久―日本道色综合久久| 欧美一级片在线看| 欧美日韩国产成人在线免费| 色综合天天做天天爱| 色偷偷88欧美精品久久久| 国产成人av电影在线观看| 激情另类小说区图片区视频区| 日韩高清在线一区| 日韩精品电影一区亚洲| 日韩精品电影一区亚洲| 日韩高清不卡一区二区| 午夜精品久久久久影视| 视频精品一区二区| 亚洲v精品v日韩v欧美v专区| 三级欧美在线一区| 老司机精品视频在线| 国产资源在线一区| 国产.精品.日韩.另类.中文.在线.播放| 国产综合成人久久大片91| 韩国三级在线一区| 国产精品538一区二区在线| 国产91露脸合集magnet| 成人理论电影网| 色狠狠综合天天综合综合| 欧美体内she精高潮| 欧美日韩成人综合天天影院| 欧美一区二区三区啪啪| 久久精品一区二区三区不卡牛牛| 国产精品美女一区二区| 亚洲一区二区三区在线看| 视频在线在亚洲| 国产999精品久久久久久绿帽| 99久久er热在这里只有精品15| 91福利精品视频| 欧美一级生活片| 国产欧美日韩另类一区| 亚洲一区二区在线视频| 精品制服美女久久| 色综合天天天天做夜夜夜夜做| 欧美性大战久久| 26uuu精品一区二区| 中文字幕中文字幕中文字幕亚洲无线| 欧美日韩你懂得| 欧美精品一区二区久久婷婷| 国产欧美一区二区精品忘忧草| 亚洲乱码国产乱码精品精可以看 | 五月天久久比比资源色| 国模一区二区三区白浆| 91国模大尺度私拍在线视频| 精品国产乱码久久久久久夜甘婷婷 | 在线不卡一区二区| 国产精品短视频| 蜜桃av一区二区三区| 色先锋久久av资源部| 亚洲精品一区二区三区四区高清| 最近中文字幕一区二区三区| 精品中文av资源站在线观看|