C実習 プログラムによる8255a制御
 * busyの確認:
                             
i/oアドレス($h42)を読み込み         
2ビット目を調べる 
                               
busyがh(5v)であれば "0"となり
l(0v)であれば "1"となる。             

 



* pa0〜pa7(da0〜da7)の確認
                                 
  i/oアドレス(&h40)にデータを
   書き込む。                                       
  







    例 mov al,3 out $40,al      
          1ビット目と2ビット目がh(5v)になる。                                   

    例 モニタledの点灯
          out命令とモニタledの関係から10進数,2進数,16進数の関係が
      わかる。
                    表 モニタledの点灯とデータの書き込み

              



* ボタンを押すとモニタledが全部つく(消える)プログラム
              開発言語 delphi

   unit unit1;
interface
uses
  windows, messages, sysutils, classes, graphics, controls, forms, dialogs;
type
  tform1 = class(tform)
    button1: tbutton;
    procedure button1click(sender: tobject);
  private
    { private 宣言 }
  public
    { public 宣言 }
  end;
 var
  form1: tform1;
implementation
{$r *.dfm}
 procedure tform1.button1click(sender: tobject);
begin
asm                 {アセンブラの始まり}
   mov al,$ff       {$ffの代わりに$00とすると全部消える}
   out $40,al        {ポート40にalつまり$ffを出力する}
 end;                {アセンブラの終わり}
end;
end.

        

               プログラムの起動画面


   次へ進む       前に戻る   理科におけるコンピュータの活用へ