在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)串口通信試驗(yàn)匯編程序

            51單片機(jī)串口通信試驗(yàn)匯編程序

            作者: 時(shí)間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
            (今天是硬生生的把它給摳出來了):PC 通過串口助手向單片機(jī)系統(tǒng)傳遞命令和數(shù)據(jù):以A5開始,以5A結(jié)束;中間是數(shù)據(jù),長(zhǎng)度不一,要求把數(shù)據(jù)部分用led燈顯示出來;并且要求循環(huán)顯示;

            //This is my x_Edprogramcode
            //we use it as the pc communicated with themcu
            //At the same time,we want to see the result by LCD;
            STFLAG BIT 00H //收到起始碼標(biāo)志,1為收到起始碼
            EDFLAG BIT 01H //到結(jié)束碼標(biāo)志,1為收到結(jié)束碼
            TMFLAG BIT 02H //定時(shí)時(shí)間到標(biāo)志,1為定時(shí)時(shí)間到
            ORG 0000H
            SJMP Initialize//主程序入口 (初始化程序)
            ORG 000BH //定時(shí)器0入口
            LJMP TIMER0 //定時(shí)器0中斷
            ORG 0023H //串口中斷程序的入口地址
            LJMP Transfer //跳轉(zhuǎn)到接受中斷入口
            ///////////////////////////////////////////////////////////////
            ORG 0050H
            Initialize:
            MOV SP,#70H //設(shè)置堆棧
            MOV TMOD,#21H //T1工作方式2 T0工作
            MOV TH1,#0FDH //波特率9600
            MOV TL1,#0FDH //波特率9600 自動(dòng)重裝載
            MOV TH0,#3CH //定時(shí)50ms
            MOV TL0,#0BH //定時(shí)50ms
            MOV SCON,#50H //串口工作方式1
            MOV R6,#00H //定時(shí)次數(shù)計(jì)數(shù)器20一秒
            MOV R5,#00H //接收數(shù)據(jù)長(zhǎng)度計(jì)數(shù)器
            MOV R4,#00H //控制輸出控制寄存器
            MOV R0,#30H //數(shù)據(jù)存儲(chǔ)地址
            MOV R1,#30H //控制輸出的數(shù)據(jù)緩存
            CLR STFLAG //清起始標(biāo)志位
            CLR EDFLAG //清結(jié)束標(biāo)志位
            CLR TMFLAG //清時(shí)鐘標(biāo)志位
            SETB PS //提高串口中斷的優(yōu)先級(jí)
            SETB TR1 //打開定時(shí)器1;
            SETB ES //打開串口中斷允許位
            SETB ET0 //定時(shí)器0中斷允許位
            SETB EA //打開全局中斷允許位
            /////////////////等待接受命令////////////////////////
            Main: JB STFLAG,NODE3 //已經(jīng)收到起始位
            SJMP Main //未起始繼續(xù)等待
            NODE3: JB EDFLAG,NODE4 //已經(jīng)收到結(jié)束位
            SJMP Main //未結(jié)束繼續(xù)等待
            NODE4: SETB TR0 //打開定時(shí)器0;
            NODE5: JB TMFLAG,OUTPUT
            SJMP NODE5
            ///////////////////等待上位機(jī)傳送數(shù)據(jù)并記錄////////
            Transfer: CLR ES
            MOV A,SBUF
            CJNE A,#0A5H,NODE0 //檢測(cè)到起始位
            SETB STFLAG
            SJMP JIEDIAN
            NODE0: CJNE A,#05AH,NODE1 //檢測(cè)到結(jié)束位
            SETB EDFLAG
            MOV DPH,R5
            MOV R4,DPH
            clr ES //打開串口中斷允許位
            SJMP ret00
            NODE1: MOV @R0,A //既非起始碼,又非結(jié)束碼,則為數(shù)據(jù)
            INC R0
            INC R5
            MOV SBUF,#055H
            JIEDIAN: CLR TI
            CLR RI
            SETB ES
            ret00: RETI
            TIMER0: CLR TR0
            MOV TH0,#3CH
            MOV TL0,#0B0H
            INC R6
            CJNE R6,#20,RTN
            SETB TMFLAG
            MOV R6,#00H
            RTN: SETB TR0
            RETI

            本文引用地址:http://www.biyoush.com/article/201612/324121.htm

            OUTPUT: CLR TR0
            clr TMFLAG
            MOV A,@R1
            MOV P1,A
            INC R1
            DJNZ R4,NODE4
            MOV R1,#30H
            CLR TMFLAG
            MOV DPH,R5
            MOV R4,DPH
            SJMP NODE4
            RETI
            END



            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉