色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

          串口通信的單片機(jī)程序

          作者: 時間:2013-12-04 來源:網(wǎng)絡(luò) 收藏

          beepbitp3.7;蜂鳴器定義

          org00h
          jmpmain
          org23h;串行中斷入口地址
          jmpcom_int;串行中斷服務(wù)程序

          ;***********主程序開始*******************
          org30h
          main:movsp,#30h;設(shè)置
          lcallrest;初始化
          lcallcomm;串口初始化
          jmp$;原地等待

          ;*************初始化*********************
          rest:movp0,#00h;禁止數(shù)碼管顯示
          movp2,#255
          clrbeep;禁止蜂鳴器
          movp1,#255;禁止LED顯示
          RET;返回

          ;**************串口初始化*****************
          ;設(shè)置串行口工作方式1,定時器1作為波特率發(fā)生器
          ;波特率設(shè)置為2400;

          comm:movtmod,#20h;設(shè)置定時器T1工作方式2
          movtl1,#0f3h;定時器計(jì)數(shù)初值,波特率2400
          movth1,#0f3h;定時器重裝值
          setbea;允許總的中斷
          setbes;允許串行中斷
          movpcon,#00h;波特率不倍增
          movscon,#50h;設(shè)置串口工作方式1,REN=1允許接收
          setbtr1;定時器開始工作
          ret;返回
          ;***************串口中斷服務(wù)程序***********
          ;如果接收0FF表示上位機(jī)需要聯(lián)機(jī)信號,單片機(jī)發(fā)送0FFH作為
          ;應(yīng)答信號,如果接收到數(shù)字1~n,表示相應(yīng)的功能;
          ;這里,如果收到1,則單片機(jī)向計(jì)算機(jī)發(fā)送字符'H';
          ;如果收到2,則單片機(jī)向計(jì)算機(jī)發(fā)送字符'e';
          ;如果收到其他的數(shù)據(jù),則發(fā)送'J';
          com_int:clres;禁止串行中斷
          clrri;清除接收標(biāo)志位
          mova,sbuf;從緩沖區(qū)取出數(shù)據(jù)
          movp1,a
          movdptr,#tab
          cjnea,#0ffh,in_1;檢查數(shù)據(jù)
          movsbuf,#255;收到聯(lián)機(jī)信號,發(fā)送聯(lián)機(jī)信號
          jnbti,$;等待發(fā)送完畢
          clrti;清除發(fā)送標(biāo)志
          setbes;允許串行中斷
          reti;中斷返回
          in_1:cjnea,#1H,in_2;如果收到1
          movca,@a+dptr
          movsbuf,a;發(fā)送'h'
          jnbti,$;等待發(fā)送完畢
          clrti;清除發(fā)送中斷標(biāo)志
          setbes;允許串行中斷
          reti;中斷返回
          in_2:cjnea,#2,in_3;接收到2
          movca,@a+dptr
          movsbuf,a;發(fā)送'e'
          jnbti,$;等待發(fā)送完畢
          clrti;清除發(fā)送中斷
          setbes;允許串行中斷
          reti;中斷返回
          in_3:mova,#03h
          movca,@a+dptr
          movsbuf,a;發(fā)送'j'
          jnbti,$;等待發(fā)送完畢
          clrti;清除發(fā)送中斷標(biāo)志
          setbes;允許串行中斷
          reti;返回
          tab:db'2','h','e','j'
          end

          蜂鳴器相關(guān)文章:蜂鳴器原理


          評論


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

          關(guān)閉