51单片机定时器应用实例 - C语言

F:\学习\单片机练习\Timer\Timer.c

/******************************************/

/* 设单片机的振荡频率为12MHz, */

/* 用定时器/计数器0的模式1编程, */

/* 精确定时1s,控制LED闪烁 */

/* 定时器T0采用中断的处理方式。 */

/******************************************/

/******************************************************/ /* 定时器/计算器的工作模式 */ /* M1M0=00,工作模式0,13位定时/计数器 */ /* M1M0=01,工作模式1,16位定时/计数器 */ /* M1M0=10,工作模式2,8位自动装载初值定时/计数器 */ /* M1M0=11,工作模式3,定时器0:TL0为8位定时器/计数器,*/ /* TH0为8位定时器。定时器1无此工作方式 */ /******************************************************/ /******************************************************/ /* 设定时/计数初值为X,计算值为N */ /* 因为 X + N = 2^8或2^13或2^16, */ /* 所以X = (2^8或2^13或2^16)-N。 */ /* 对定时器,设定时为t,则 N=T/机器周期, */ /* 所以定时初值 X= (2^8或2^13或2^16)-t/机器周期。 */ /* 对计数器,初值 X=(2^8或2^13或2^16)-N。 */ /******************************************************/ /******************************************************/ /* 特殊功能寄存器,除了TMOD,其他可以位寻址 */ /* IP:-- -- PT2 PS PT1 PX1 PT0 PX0 :0B8H */ /* IE:EA -- ET2 ES ET1 EX1 ET0 EX0 :0A8H */ /* TMOD:GATE C/T M1 M0 GATE C/T M1 M0 :89H */ /* TCON:TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 :88H */ /******************************************************/ /******************************************************/ /* 机器周期由晶振频率12分频得到,即机器频率F=fosc/12, */ /* 所以机器周期 T=1/F=1/(1/fosc)=12/fosc */ /* 所以机器周期 T=12/12=1us */ /*****************************************************/ #include < reg52.h>

unsigned char i=0;

unsigned char j=0;

Page: 1 F:\学习\单片机练习\Timer\Timer.c

unsigned int k=0;

unsigned int h=0;

void main(void)

{

TMOD= 0x01; //设置T0定时模式1

你可能喜欢

  • 单片机c语言实例
  • 单片机C语言程序
  • 单片机定时器程序
  • 单片机计数器
  • 工程电路

51单片机定时器应用实例 C语言相关文档

最新文档

返回顶部