#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代码
最新推荐文章于 2024-06-08 17:30:09 发布
本文展示了STM32和51单片机使用不同工作模式下的定时器配置,实现1ms定时功能,并通过翻转P1口实现周期性信号。涵盖了定时器模式2、1、0的设置及中断处理,适用于嵌入式系统开发中的时间控制应用。
2308

被折叠的 条评论
为什么被折叠?



