实验二  单片机定时器/计数器编程

一、实验目的

1、掌握单片机定时器/计数器的工作方式;

2、掌握单片机定时器/计数器的编程方法。

二、实验内容

1、学习单片机定时器/计数器的工作方式、初始化以及应用等;

2、利用单片机定时器/计数器编写程序驱动开发板上的LED灯按一定规律工作。

基本要求:

单号:利用定时器0控制LEDB闪烁,闪烁频率为1Hz。

双号:利用定时器1控制LEDG闪烁,闪烁频率为2Hz。

三、实验设备

1、STC单片机开发板;

2、PC机以及串口线。

四、实验分析及关键代码

1、实验分析:定时器1控制LEDG灯,LEDG灯既实验一做过的实验,接口为P2^5,闪烁频率为2Hz既0.5秒。定时器的工作方式选择方式1,计数初值的确定:我为双号的同学,所以我的程序的闪烁频率为2Hz既0.5秒,也就是500ms。所以我设置初值为50ms,然后循环10次。TH1存取高八位,TL1存取低八位,晶振频率以12MHz计算。经过计算,TH1=0x3cTL1=0xb0interrupt n,n=3时中断源为定时/计数器1

2.关键代码:

#include <reg52.h>
#define uint unsigned int;
uint i;
sbit LEDG=P2^5;
main()
{ 
	LEDG=0;
     TMOD=0x01;  //T1为方式1,16位定时器
     TH1=0x3c;
     TL1=0xb0;   //初值
     EA=1;       //总中断打开
     ET1=1;	     //定时器中断打开
     TR1=1;      //启动定时
     while(1);   //等待中断
}
void INTT0() interrupt 3 using 2  //定时器中断函数
{
  TH0=0x3c;
  TL0=0xb0;
  i++;
if(i==10){
 	LEDG=!LEDG;   //输出取反
    i=0;
 }
}

更多推荐

单片机定时器/计数器编程