欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機串口和計算機通信_匯編語言 [打印本頁]

作者: admin    時間: 2010-4-11 01:38
標題: 單片機串口和計算機通信_匯編語言

;晶振是11.0592M不可搞錯
;下載程序以后,聯接好串口線
;然后打開串口調試軟件,按照您連接的串口,設置好串口特性(注意波特率設置2400)
;然后發送數據給下面的機器,并接受下面發送上來的數據!
;勾選下面的"16進制發送",輸入01 ,02 ,FF等 然后點手動發送


      beep    bit   p2.2              ;蜂鳴器定義

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

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

;  *************   初始化   *********************
   rest:     ;mov p0,#00h              ;禁止數碼管顯示
             ;mov p2,#255
             setb  beep                ;禁止蜂鳴器
             setb  p1.4                 ;禁止LED顯示
             RET                      ;返回

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

comm:         mov tmod,#20h          ;設置定時器T1工作方式2
              mov tl1,#0f4h          ;定時器計數初值,波特率 2400
              mov th1,#0f4h          ;定時器重裝值
              setb ea                ;允許總的中斷
              setb es                ;允許串行中斷
              mov pcon,#00h          ;波特率不倍增
              mov scon,#50h          ;設置串口工作方式1,REN = 1 允許接收
              setb tr1               ;定時器開始工作
              ret                    ;返回
;***************  串口中斷服務程序   ***********
;  如果接收  0FF  表示上位機需要聯機信號,單片機發送 0FFH作為
;  應答信號,如果接收到 數字 1~ n,表示相應的功能;
;  這里,如果收到 1 ,則單片機向計算機發送字符  'H';
;  如果收到 2 ,則單片機向計算機發送字符  'e';
;  如果收到其他的數據,則發送    'J';
com_int:  clr es                        ;禁止串行中斷
                clr ri                  ;清除接收標志位
                mov a,sbuf              ;從緩沖區取出數據
                mov p1,a
                mov dptr,#tab
                cjne a,#0ffh,in_1       ;檢查數據
                mov sbuf,#255           ;收到聯機信號,發送聯機信號
                jnb ti,$                ;等待發送完畢
                clr ti                  ;清除發送標志
                setb es                 ;允許串行中斷
                reti                    ;中斷返回
      in_1: cjne a,#1H, in_2            ;如果收到1
                movc a,@a+dptr
                mov sbuf,a              ;發送 'h'
                jnb ti,$                ;等待發送完畢
                clr  ti                 ;清除發送中斷標志
                setb es                 ;允許串行中斷
                reti                    ;中斷返回
      in_2: cjne a,#2,in_3              ;接收到  2
                movc a,@a+dptr
                mov sbuf,a              ;發送 'e'
                jnb ti,$                ;等待發送完畢
                clr  ti                 ;清除發送中斷
                setb es                 ;允許串行中斷
                reti                    ;中斷返回
      in_3:     mov a,#03h
                movc a,@a+dptr
                mov sbuf,a              ;發送 'j'
                jnb ti,$                ;等待發送完畢
                clr ti                  ;清除發送中斷標志
                setb es                 ;允許串行中斷
                reti                    ;返回
tab:    db '2','h','e','j'
  end

 

下載地址:http://www.raoushi.com/ziliao/51hei-5/串口和計算機通信_asm.rar

[此貼子已經被作者于2010-4-11 1:40:17編輯過]

作者: ruya3699    時間: 2014-6-15 16:26
謝謝分享                           
作者: 雪中梅花    時間: 2014-6-20 07:34
謝謝樓主的奉獻。
作者: 場效應    時間: 2014-6-23 15:16
認真預讀了,
作者: 無罪之賓    時間: 2014-7-2 00:44
學習了,謝謝誒




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1