找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6711|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

單片機串口和計算機通信_匯編語言

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1 發(fā)表于 2010-4-11 01:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

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


      beep    bit   p2.2              ;蜂鳴器定義

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

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

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

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

comm:         mov tmod,#20h          ;設(shè)置定時器T1工作方式2
              mov tl1,#0f4h          ;定時器計數(shù)初值,波特率 2400
              mov th1,#0f4h          ;定時器重裝值
              setb ea                ;允許總的中斷
              setb es                ;允許串行中斷
              mov pcon,#00h          ;波特率不倍增
              mov scon,#50h          ;設(shè)置串口工作方式1,REN = 1 允許接收
              setb tr1               ;定時器開始工作
              ret                    ;返回
;***************  串口中斷服務(wù)程序   ***********
;  如果接收  0FF  表示上位機需要聯(lián)機信號,單片機發(fā)送 0FFH作為
;  應(yīng)答信號,如果接收到 數(shù)字 1~ n,表示相應(yīng)的功能;
;  這里,如果收到 1 ,則單片機向計算機發(fā)送字符  'H';
;  如果收到 2 ,則單片機向計算機發(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)機信號,發(fā)送聯(lián)機信號
                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,$                ;等待發(fā)送完畢
                clr  ti                 ;清除發(fā)送中斷標(biāo)志
                setb es                 ;允許串行中斷
                reti                    ;中斷返回
      in_2: cjne a,#2,in_3              ;接收到  2
                movc a,@a+dptr
                mov sbuf,a              ;發(fā)送 'e'
                jnb ti,$                ;等待發(fā)送完畢
                clr  ti                 ;清除發(fā)送中斷
                setb es                 ;允許串行中斷
                reti                    ;中斷返回
      in_3:     mov a,#03h
                movc a,@a+dptr
                mov sbuf,a              ;發(fā)送 'j'
                jnb ti,$                ;等待發(fā)送完畢
                clr ti                  ;清除發(fā)送中斷標(biāo)志
                setb es                 ;允許串行中斷
                reti                    ;返回
tab:    db '2','h','e','j'
  end

 

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

[此貼子已經(jīng)被作者于2010-4-11 1:40:17編輯過]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:62967 發(fā)表于 2014-6-15 16:26 | 只看該作者
謝謝分享                           
回復(fù)

使用道具 舉報

板凳
ID:61875 發(fā)表于 2014-6-20 07:34 | 只看該作者
謝謝樓主的奉獻(xiàn)。
回復(fù)

使用道具 舉報

地板
ID:36319 發(fā)表于 2014-6-23 15:16 | 只看該作者
認(rèn)真預(yù)讀了,
回復(fù)

使用道具 舉報

5#
ID:61840 發(fā)表于 2014-7-2 00:44 | 只看該作者
學(xué)習(xí)了,謝謝誒
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表