#include "reg51.h"
/*
定时器1 工作模式2
8 位自动重装定时(计数)器
定时: 1ms
晶振:12MHz
*/
unsigned int count;
void main()
{
TMOD |= 0x20;
TH1 = (256 - 100); // 0X9C
TL1 = (256 - 100); // 0X9C
TR1 = 1;
EA = 1;
ET1 = 1;
while (1);
}
void time1() interrupt 3
{
count++;
if (count >= 10)
{
count = 0;
P1 = ~P1;
}
}
/*
定时器1 工作模式1
16 位定时(计数)器,TH高8位,TL低8位
定时: 1ms
晶振:12MHz
*/
void main()
{
TMOD |= 0x10;
TH1 = (65536 - 1000) / 256; // 0XFC
TL1 = (65536 - 1000) % 256; // 0X18
TR1 = 1;
EA = 1;
ET1 = 1;
while (1);
}
void time1() interrupt 3
{
TH1 = (65536 - 1000) / 256;
TL1 = (65536 - 1000) % 256;
P1 = ~P1;
}
/*
定时器1 工作模式0
13 位定时(计数)器,TH高8位,TL低5位
定时: 1ms
晶振:12MHz
*/
void main()
{
TMOD |= 0x00;
TH1 = (8192 - 1000) / 32; // 0XE0
TL1 = (8192 - 1000) % 32; // 0XC0
TR1 = 1;
EA = 1;
ET1 = 1;
while (1);
}
void time1() interrupt 3
{
TH1 = (8192 - 1000) / 32;
TL1 = (8192 - 1000) % 32;
P1 = ~P1;
}
/*
定时器0 工作模式3
双8 位定时(计数)器,TH高8位,TL低8位
定时: 1ms
晶振:12MHz
*/
unsigned int count;
void main()
{
TMOD |= 0x03;
TL0 = (256 - 100); // 0X9C
TR0 = 1;
EA = 1;
ET0 = 1;
while (1);
}
void time0() interrupt 1
{
TL0 = (256 - 100);
count++;
if (count >= 10)
{
count = 0;
P1 = ~P1;
}
}
/*
定时器0 工作模式2
8 位自动重装定时(计数)器
定时: 1ms
晶振:12MHz
*/
unsigned int count;
void main()
{
TMOD |= 0x02;
TH0 = (256 - 100); // 0X9C
TL0 = (256 - 100); // 0X9C
TR0 = 1;
EA = 1;
ET0 = 1;
while (1);
}
void time0() interrupt 1
{
count++;
if (count >= 10)
{
count = 0;
P1 = ~P1;
}
}
/*
定时器0 工作模式1
16 位定时(计数)器,TH高8位,TL低8位
定时: 1ms
晶振:12MHz
*/
void main()
{
TMOD |= 0x01;
TH0 = (65536 - 1000) / 256; // 0XFC
TL0 = (65536 - 1000) % 256; // 0X18
TR0 = 1;
EA = 1;
ET0 = 1;
while (1);
}
void time0() interrupt 1
{
TH0 = (65536 - 1000) / 256;
TL0 = (65536 - 1000) % 256;
P1 = ~P1;
}
/*
定时器0 工作模式0
13 位定时(计数)器,TH高8位,TL低5位
定时: 1ms
晶振:12MHz
*/
void main()
{
TMOD |= 0x00;
TH0 = (8192 - 1000) / 32; // 0XE0
TL0 = (8192 - 1000) % 32; // 0XC0
TR0 = 1;
EA = 1;
ET0 = 1;
while (1);
}
void time0() interrupt 1
{
TH0 = (8192 - 1000) / 32;
TL0 = (8192 - 1000) % 32;
P1 = ~P1;
}
51全部定时器各个模式,定时1ms代码
最新推荐文章于 2025-02-26 15:48:16 发布