モノリシックマシンサイクルの計算

5305 ワード

             ?       TF0 1   ,     11。0592MHz                ,    ,             ?
                   ,11.0592      ,      1/11.0592M            12/11.0592    51    12   
    ......
      C       
TMOD=0X01//    0  1
TH0=(65535-50000)/256;//   16          12MHZ  11.0592  4600  ,    ...
TL=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
          50000             50000               (   50MS)  
      :       TF0 1          TF0   CPU       
  
12            ,(     12   
 
                ,          (       ,                ,  12M   ,        1/12 us),         、       。
 
               ,CPU           。       ,    1MHZ     ,      1us;   4MHZ     ,      250us。                 ,            (                  )。  ,          ,      ,           。
 
    8051                 ( P  ),             ( S  )。
 
 
 
         ,      ,                   ,          。  ,   、    、     ,              。                    。     ,          S  (    )  。
 
    8051             6  S  (    )  。                  ( P  ),             ( S  ),8051         6       ,          =6     =12     。 
        24M      ,        =12/24M  ;
 
 
 
 
                ,            。    ,          。   
                 ,       ,           ,      ,           。           ,      、    ,                。
                       ,                  。
 
 
 
          I/O          ,CPU     I/O     ,        。   CPU           (     I/O  )                  。
 
 
    ,         ,      1        ,      1        ;                  ,                ,        ,             ,  ,            。
 
    : CPU     ,             。          ,        、        。            (ARM、DSP)          。
    :             ,     、    。
    :CPU           。
( )
 
 
    51  ,  11.0592M,    (    )  (1/11.0592)μs,        12     (6     ),         1μs。                  ,    2        ,DJNZ,      . 

 
 
 
モノリシックタイマタイミング算出方法
12 MHz 1マシンサイクル1 us 12/fosc=1 us方式0 13ビットタイマ最大時間間隔=2^13=8.192 ms方式1 16ビットタイマ最大時間間隔=2^16=65.536 ms方式2 8ビットタイマ最大時間間隔=2^8=0.256 ms=256 usタイミング5 ms、計算タイマ初期値M=2^K-X*Fosc/12 MHz方式0:K=13、X=5 ms、Fosc=12 MHzではM=2^13-5*10^(-3)*12*10^6/12=3192=0 xcc 78 THx=0 CH,TLx=78 H,方式1:K=16,X=5 ms,Fosc=12 MHzではM=2^16-5*10^(-3)*12*10^6/12=60536=0 xEC 78 THx=ECH,TLx=78 H,50 ms 12 MHz THx=3 CH,TLx=B 0 H,10 ms THx=D 8 H,TLx=F 0 H,方式2:最大時間2^8 Fosc/12=0.256 ms 10進数はどうやって来たのですか?6 MHz 1マシンサイクル12/6=2 usタイミング1 msカウント初期値x(2^16-x)*2 us=1000 us x=2^16-500,TH,TL可置-500 12 MHz 1マシンサイクル12/12=1 us 12 MHz 1マシンサイクル12/12=1 usタイミング50 msカウント初期値x(2^16-x)*1 us=50000 us x=2^16-50000,TH,TL可置-500タイマ内部結晶振動数カウンタ外部入力CPU脚上のパルス個数P 3.4(T0)  P3.5(T 1)負ホッピングプラス1結晶振動数が6 MHzの場合、最高カウント周波数500 KHzレジスタ1 TH TL 2 TCON TR 0 TR 1他のビットは割り込み制御ビットTMOD GATE C/T 1 M 1 M 0 GATE C/T 0 M 1 M 0 2009年2月26日C 8051 F 00 Xタイマ:クロックごとに1クロックを加えるシステムクロックまたはシステムクロックの1/12 CKCONとすることができ、ピンに電気が現れた場合、通常起動T 0が満たされない場合、T 0を停止し、読み出し後にクリアする
 
 
 
 
51単片機指令周期、機械周期、クロック周期の詳細
51単片機には指令周期、機械周期、クロック周期という説があり、近いように見えますが、あまり同じではなく、混同しやすいです.やはり詳しく分析してみましょう.
クロック周期:単片機外接の結晶振動の振動周期がクロック周期であり、クロック周期=振動周期である.例えば、80 C 51単片機は11.0592 Mの結晶発振器を外部に接続しており、この単片機システムのクロック周期は1/11.0592 Mであり、ここでは11.0592 Mが周波数であり、周期は周波数の逆数であることに注意しなければならない.
マシンサイクル:シングルチップマシンが命令を実行するのに消費する最小時間単位.51チップマシンで採用されているCISC(複雑な命令命令セット)はよく知られているので、多くの命令があり、各命令の実行時間も異なる可能性がありますが(同じですよ)、それらの実行時間はマシンサイクルの整数倍でなければなりません.これがマシンサイクルの意味です.8051シリーズの単片機はまたこの基礎の上で細分化を行って、1つの機械の周期を6つの状態の周期に分けて、つまりS 1-S 6で、各状態の周期はまた2つの拍子から構成して、P 1とP 2、P 1=P 2=クロックの周期.つまりよく言われる8051系モノリシック機のクロック周波数は、結晶振動数の12分周、あるいは1/12という意味です.現在(2012年現在)新しい単片機は分周しないことができ、機械周期=クロック周期である.
命令周期:命令周期が1つの命令を実行するのに要する時間で、機械周期の整数倍に等しい.従来の80 C 51チップマシンの命令周期の多くは単周期命令、すなわち命令周期=機械周期であり、少ない部分は二周期命令である.現在(2012年現在)新しい単片機は分周せずにできるようになり、できるだけ単指令周期、すなわち指令周期=機械周期=クロック周期である.
 
 
       
この8051単片機の外部データを見ると、ここでALEと$PSEN$の変化周波数はすでに1つの機械周期より小さく、C言語でこの信号をシミュレートすると1つ1つの対応ができないので、できるだけ上のタイミングと同じで、周期が延長されるしかない.