51单片机定时器实验报告51单片机定时器实验报告
51单片机定时实验
实验内容:
实验内容:
编制程序,使计时器0或计时器1以模式1动作,以计时器50ms发出蜂鸣器。
c语言程序
#包含
#定义uint unsigned int
#define ucahr unsigned char
sbit FM=P0^0;
Void主() )
{
TMOD=0x01;
th0=(65535-50000 )/256;
th0=(65535-50000 ) 6;
EA=1; //总中断
ET0=1; //接通定时器0中断
TR0=1;
wile(1;
}
voidT0_time(interrupt1
{
th0=(65535-50000 )/256;
th0=(65535-50000 ) 6;
调频=~调频;
}
汇编程序
ORG 0000H
JAMP MAIN
ORG 000BH
LJMP INT0_INT
ORG 0100H
MIAN:SETB EA
SETB ET0
AJMP $
INT0_INT:MOV R2,#0FAH
MOV R3,#0C8H
DJNZ R3,$
DJNZ R2,INT0_INT
雷蒂
编制程序,使计时器0或计时器1在模式1下动作,在计时器500ms下,每00、01、02……98、99到500ms递增1来显示2位的代码管。
#包含
#定义uint unsigned int
#define ucahr unsigned char
uint num,num1;
sbit FM=P0^7;
int shi,ge,a;
语音延迟(uint;
void shumaguan (;
unsignedcharcodetable [ ]={0xc 0,0x F9,0x a4,0xb 0,0x 99,0x 92,0x 82,0x F8,
0x 80,0x 90,0x 88,0x 83,0xc 6,0x a1,0x 86,0x8e }; //共阳极编码管0-F编码表
Void主() )
{
TMOD=0x01;
th0=(65535-50000 )/256;
th0=(65535-50000 ) 6;
EA=1; //总中断
ET0=1; //接通定时器0中断
TR0=1;
while(1)。
{
shumaguan (;
}
}
voidT0_time(interrupt1
{
th0=(65535-50000 )/256;
th0=(65535-50000 ) 6;
num1;
if(num1==10 ) ) ) )。
{
num1=0;
num;
shi=num/10;
ge=num;
if(num==100 ) ) ) )。
{
num=0;
}
}
}
void shumaguan (
{
P3=0x01;
P2=table[shi];
dlay(5;
P3=0x02;
P2=table[ge];
dlay(5;
}
void zuoyi () ) )
{
a=~P3;
a=a1;
P3=~a;
if(P3==0xFB ) ) ) ) )。
{
P3=0xfe;
}
}
欢跃延迟(uintx )。
{
int i,j;
for(I=0; I
for(j=0; j110; j;
}
)3)编写程序,使计时器0或计时器1在模式2下动作,进入自动重装模式,在计时器500ms下,每00、01、02……98、99递增500ms显示两位数码管。
#包含
#定义uint unsigned int
#define ucahr unsigned char
uint num,num1;
int shi,ge,a;
语音延迟(uint;
void shumaguan (;
void zuoyi (;
unsignedcharcodetable [ ]={0xc 0,0x F9,0x a4,0xb 0,0x 99,0x 92,0x 82,0x F8,
0x 80,0x 90,0x 88,0x 83,0xc 6,0x a1,0x 86,0x8e }; //共阳极编码管0-F编码表
Void主() )
{
TMOD=0x02;
TH0=255-200;
TH0=255-200;
EA=1; //总中断
ET0=1; //接通定时器0中断
TR0=1;
P3=0x01;
while(1)。
{
shumaguan (;
}
}
voidT0_time(interrupt1
{
num1;