首頁>Club>
9
回覆列表
  • 1 # 使用者7744992489391

    ORG 00H 程式開始地址,由微控制器的硬體決定的, AJMP START 跳轉到START處。進入程式段START:MOV SP,#06H 將6送到SP指標暫存器 MOV SCON,#50H 將50H送到SCON暫存器 MOV TMOD,#20H 將20H送到TMOD暫存器,這裡是設定定時器模式 MOV TH1,#0E6H 將0E6H送到TH1暫存器,這裡是設定定時器的定時引數, SETB TR1 開啟定時器1計數 MOV 30H,#0FFH 將0FFH送到30H緩衝(RAM) READ:MOV A,P1 將微控制器的P1埠讀到累加器當中去 CJNE A,30H,SAVE 比較累加器與30H緩衝是否相等,不相等則跳轉到SAVE,如果相等,則執行下一句。 JMP READ 跳轉到READ段 SAVE:MOV 30H,A 將累加器A的資料存入30H緩衝當中去 MOV SBUF,A 將累加器A的資料送入UART串列埠快取SBUF內傳送出去 WAIT:JBC TI,READ 判斷TI標誌是否為1,如果為1則跳轉到READ段, AJMP WAIT 跳轉到WAIT段 END 程式結束這是一個按鍵檢測程式,當檢測到有按鍵後,透過UART串列埠將資料傳送出去。前面有初始化,將UART串列埠引數進行了設定,採用定時器1做為波特率發生器,具體的波特率與晶振有關。自己看看書就知道如何計算了!這也是一種常見的除錯手段,透過串列埠檢視具體的資料。2、 ORG 00H 程式開始地址,由微控制器的硬體決定的, AJMP START 跳轉到START處。進入程式段START:MOV SP,#06H 將6送到SP指標暫存器 MOV SCON,#50H 將50H送到SCON暫存器 MOV TMOD,#20H 將20H送到TMOD暫存器,這裡是設定定時器模式 MOV TH1,#0E6H 將0E6H送到TH1暫存器,這裡是設定定時器的定時引數 SETB TR1 開啟定時器1計數 READ:JB RI,UART 判斷RI是否為1,如果為1則跳轉到UART段 AJMP READ 跳轉到READ段 UART:MOV A,SBUF 將UART資料從SBUF從取出來,送到累加器A當中 MOV P1,A 將累加器A的資料送到P1埠。 CLR RI 清除RI標誌, AJMP READ 跳轉到READ段 END 程式結束這個程式是一個讀取UART接收的程式,接收到的資料能過P1埠輸出。這兩個程式一個是透過UART傳送按鍵鍵值,一個是接收UART資料,並透過P1埠輸出。建議直接學習C語言,沒有這些跳轉指令學習起來會十分輕鬆!

  • 中秋節和大豐收的關聯?
  • 兩棲登陸什麼意思?