|
#include <reg51.h>
#define yy unsigned char //8位无符号字符型
yy win; //声明win
sbit d=P2^4;
void main() //主函数
{
P2=0;
TMOD=0x01; //设置定时器工作方式为01
TH0=(65536-50000)/256; //装初值12.0000M晶振定时50ms数为50000 求模
TL0=(65536-50000)%256; //求余
EA=1; //打开总中断
IT0=1; //设置为电平触发方式
ET0=1; //打开定时器0中断
TR0=1; //启动定时器0
while(1); //程序在这里等待中断发生
}
void dsq0() interrupt 1 //中断服务程序
{
TH0=(65536-50000)/256; //重装初值
TL0=(65536-50000)%256;
win++; //win自加1
if(win==20) //如果win加到20那么执行if语句
{
win=0; //给win清零
d=~d; //让发光管状态取反
}
}
定时器中断实验————注释,解释都已写好
定时器/计数器————是单片重要功能之一!这可比延时函数精度高的多得多!一般精度可以高达几微秒!
(本程序设置的是间隔一秒闪烁>>精度非常高)
设计者:薛yh
|
|