实验二 单片机定时器/计数器编程
一、实验目的
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=0x3c,TL1=0xb0。interrupt 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;
}
}
更多推荐
单片机定时器/计数器编程
发布评论