音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

老話題:串口通信的單片機(jī)程序(轉(zhuǎn)貼)

作者:lingyun002 欄目:單片機(jī)
串口通信的單片機(jī)程序

beep    bit   p3.7                ;蜂鳴器定義

        org 00h
      jmp main
        org 23h                       ;串行中斷入口地址
      jmp com_int                     ;串行中斷服務(wù)程序

;***********  主程序開(kāi)始    *******************
        org 30h
  main:  mov sp,#30h                ;設(shè)置堆棧
             lcall rest             ;初始化
             lcall comm             ;串口初始化
             jmp $                  ;原地等待

;  *************   初始化   *********************
   rest:      mov p0,#00h             ;禁止數(shù)碼管顯示
             mov p2,#255
             clr  beep                ;禁止蜂鳴器
             mov p1,#255              ;禁止LED顯示
             RET                      ;返回

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

comm:         mov tmod,#20h          ;設(shè)置定時(shí)器T1工作方式2
              mov tl1,#0f3h             ;定時(shí)器計(jì)數(shù)初值,波特率 2400
              mov th1,#0f3h            ;定時(shí)器重裝值
              setb ea                       ;允許總的中斷
              setb es                       ;允許串行中斷
              mov pcon,#00h          ;波特率不倍增
              mov scon,#50h          ;設(shè)置串口工作方式1,REN = 1 允許接收
              setb tr1                       ;定時(shí)器開(kāi)始工作
              ret                               ;返回
;***************  串口中斷服務(wù)程序   ***********
;  如果接收  0FF  表示上位機(jī)需要聯(lián)機(jī)信號(hào),單片機(jī)發(fā)送 0FFH作為
;  應(yīng)答信號(hào),如果接收到 數(shù)字 1~ n,表示相應(yīng)的功能;
;  這里,如果收到 1 ,則單片機(jī)向計(jì)算機(jī)發(fā)送字符  'H';
;            如果收到 2 ,則單片機(jī)向計(jì)算機(jī)發(fā)送字符  'e';
;            如果收到其他的數(shù)據(jù),則發(fā)送    'J';
com_int:  clr es                        ;禁止串行中斷
                clr ri                          ;清除接收標(biāo)志位
                mov a,sbuf               ;從緩沖區(qū)取出數(shù)據(jù)
                mov p1,a
                mov dptr,#tab
                cjne a,#0ffh,in_1      ;檢查數(shù)據(jù)
                mov sbuf,#255          ;收到聯(lián)機(jī)信號(hào),發(fā)送聯(lián)機(jī)信號(hào)
                jnb ti,$                      ;等待發(fā)送完畢
                clr ti                          ;清除發(fā)送標(biāo)志
                setb es                     ;允許串行中斷
                reti                            ;中斷返回
      in_1: cjne a,#1H, in_2         ;如果收到1
                movc a,@a+dptr
                mov sbuf,a             ;發(fā)送 'h'
                jnb ti,$      &nb
參與討論
昵稱(chēng):
討論內(nèi)容:
 
 
相關(guān)帖子
挑戰(zhàn)自我!幫助他人!算法問(wèn)題!
8051和C51的區(qū)別
[求助]關(guān)于數(shù)碼管
有沒(méi)有誰(shuí)用過(guò)EPROM芯片啊?
CF卡的容量與尋址空間及地址線
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)