拡張命令1:ACALL addr11
指令执行过程:
ACALL addr11 ;(PC)+2 -> PC
;(SP)+1 -> SP, PC7-0 -> (SP)
;(SP)+1 -> SP, PC15-8 -> (SP)
;addr11 ->PC10-0,PC15-11不变
集中的な命令1試験問題練習:
既知(SP)= 60H、サブルーチンSUBTRNの最初のアドレスは0345Hであり、ACALL SUBTRNを0123Hで実行します。
2バイト命令の後、(PC)= ___、(61H)= ___、(62H)= ____。
回答:
(PC)=0345H (61H)=25H (62H)=01H
シミュレーション図:
拡張命令1試験問題拡張演習:
既知(SP)= 50H、サブルーチンSUBTRNの最初のアドレスは2620Hで、20F6HでACALL SUBTRNが実行されます。
2バイト命令の後、(PC)= ___、(51H)= ___、(52H)= ____。
回答:
(PC)=2620H (51H)=F8H (52H)=20H
補足5:
1,寻址实质就是如何确定操作数的单元地址
2,存储器映象是存储器在整个存储空间的地址范围
3,MCS —51 布尔处理机的存储空间是00H~ 7FH
4,定时器中断请求发生在定时时间到
5,中断响应时间是指从查询中断请求标志位到转向中断服务程序地址区入口地址所需的机器周期数(3-8个机器周期)
6,8051 的堆栈区一般开辟在用户RAM 区
問題40
一度上下にトグルすることで発生するパルス信号を外部割り込み0の割り込み要求信号として使用し、8個のLEDの点灯・消灯を制御するプログラムを記述します(点灯・消灯の方法はお客様ご自身で定義してください)。
注:割り込みソースとは、CPU割り込みを引き起こしたイベントを指します。
分析:関連する割り込みレジスタの説明については、前の記事を参照してください
プログラムのソースコード:
ORG 0000H
LJMP START
ORG 0003H
LJMP INT0ADDR
ORG 0030H
START:
MOV SP,#60H
MOV P1,#0FFH
MOV IE,#81H
MOV IP,#01H
MOV TCON,#01H
MOV A,#0FEH
MOV R6,#8
MOV R7,#8
CLR C
SJMP $
INT0ADDR:
CJNE R6,#00H,L1
AJMP L2
L1:
DEC R6
CLR C
MOV P1,A
RLC A
AJMP L4
L2:
CJNE R7,#00H,L3
MOV R6,#8
MOV R7,#8
MOV A,#0FEH
MOV P1,A
AJMP L4
L3:
SETB C
RRC A
MOV P1,A
DEC R7
L4: RETI
END
シミュレーション効果のビデオ:
https : //www.bilibili.com/video/BV1hp4y1X7aV/
「SCMコンパイル」最終試験、一般的な試験の質問と演習、質問タイプの要約(14)、中断
少し知識ポイント補足6:
オープンコレクター回路(英語:オープンコレクター、一般に「オープンコレクターゲート」または「OCゲート」として知られている)は、集積回路の出力デバイスです。OCゲートは実際には単なるNPNトランジスタであり、特定の電圧または電流値を出力しません。OCゲートは、トランジスタのベースが接続されている(トランジスタのエミッタが接地されている)集積回路によって決定され、トランジスタのコレクタが開いて出力されます。出力デバイスが電界効果トランジスタ(MOSFET)の場合は、オープンドレイン(英語:オープンドレイン、通称 "ODゲート")と呼ばれ、動作原理は似ています。OCゲートデバイスを介して、論理ゲートの出力端子を直接並列で使用できます。2つのOCゲートの並列接続は、「ワイヤーAND」と呼ばれる論理AND関係を実現できますが、電源に接続するには、出力ポートにプルアップ抵抗を追加する必要があります。
小さな知識ポイント補足7:
外部割り込みソースの51 SCM拡張メソッド:
1、タイマーオーバーフロー拡張の
使用2、割り込みクエリメソッド拡張の
使用3、拡張チップの使用
問題41
以下に示すキースイッチを使用して、8つのLEDのオンとオフを制御するプログラムを作成します。ボタン1を押すと、8つのLEDが同時に点灯し、ボタン2を押すと、8つのLEDが同時に消灯します。8つのLEDのデフォルトの状態は最初の4つのライトです(ボタン2が最も優先されます)。
プログラムのソースコード:
ORG 0000H
LJMP START
ORG 0003H
LJMP INT0ADDR
ORG 0013H
LJMP INT1ADDR
ORG 0030H
START:
MOV SP,#60H
MOV P1,#0FFH
MOV IE,#85H
MOV IP,#04H
MOV TCON,#05H
MOV P1,#0F0H
SJMP $
INT0ADDR:
MOV P1,#00H
RETI
INT1ADDR:
MOV P1,#0FFH
RETI
END
備考:実際のアプリケーションでは、デバウンスのキー検出のために約10msの遅延を増やすことが最善です。
シミュレーション図:
電源投入時のデフォルト状態
ボタン1が押された
ボタン2が押され
て少し知識ポイントを追加する8:
割り込み定義:CPUが実行中のプログラムを一時的に停止し、CPUが提供する内部および外部イベントを要求するサービスプログラムの実行に転送するサービスプログラムの実行が完了すると、一時停止したプログラムの処理に戻り、実行を継続します。
** NANDゲート(英語:NANDゲート)**は、デジタル回路の基本的な論理回路です。複数の入力と1つの出力を持つ、ANDゲートとNOTゲートの重ね合わせです。入力が高レベル(1)の場合、出力は低レベル(0)になり、入力の少なくとも1つが低レベル(0)の場合、出力は高レベル(1)になります。NANDゲートは、ANDゲートとNANDゲートの重ね合わせと見なすことができます。