1.実験の目的
- タイマー/カウンターの4つの動作モードの動作特性とアプリケーションを習得する
- 長期間のタイミングの実現方法をマスターする
- クエリ制御のタイマー/カウンタープログラミングをマスターする
2.実験内容
- 知識ポイント
(1)8051内には2つのタイマー/カウンターT0とT1があり、どちらもシステム内のマシンサイクル(タイミングモード)とチップ外のパルス信号(カウントモード)をカウントできます。4つの動作モードがあります。 、違いは、カウント値の幅(13ビット/ 16ビット/ 8ビット)と、カウントの初期値を自動的にリロードできるかどうかにあります。
(2)タイマ/カウンタに関連する制御ワードと制御ビットには、主にTMOD、TH0 / TH1、TL0 / TL1、TCONが含まれます。
(3)シングルチップ水晶発振器の周波数は6MHzです。 - 実験内容
(1)8051タイマー/カウンターコントロールを使用して、ポートP1に接続されているすべてのLEDを点灯させます。照明サイクルは自己設計する必要があります。(達成するにはモード0を使用します)
#include<reg51.h>
char t;
char i=0;
void main(){
char led[]={
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
TMOD=0x01;
TH0=0x3C;
TL0=0xB0;
TR0=1;
while(1){
if(TF0){
i=i%8;
TF0=0;
t++;
if(t%20==0){
P1=led[i];
i++;
TH0=0x3C;
TL0=0xB0;
}
}
}
}
(2)8051カウンタを使用して外部パルスをカウントし、P1ポートを介してカウント時間を出力します。
#include<reg51.h>
int t=0;
void main(){
TMOD=0x05;
TH0=0xff;
TL0=0xff;
TR0=1;
EA=1;
ET0=1;
while(1);
}
timer() interrupt 1{
t++;
P1=~t;
TH0=0xff;
TL0=0xff;
TF0=0;
}
上記の2つの質問は回路図を共有しています