3.12单片机实验 定时计数器
程序员文章站
2022-06-09 09:36:03
...
include<reg51.h> // 将8051单片机头文件包含到文件中
main(void )
{
unsigned char counter; //设置无符号字符型变量,存储定时器中断次数。
TMOD=0x01; //设T0为定时模式,由TR0控制启动和停止,且工作于方式1
TH0=(65536-46083)/256; //初始化T0的高8位
TL0=(65536-46083)%256; //初始化T0的低8位
TF0=0; //初始化定时器溢出标志
P0=0xff; //关闭LED
counter=0; //从0开始计数
TR0=1; //启动定时器0
while(1)
{
while(TF0==1) //如果定时器溢出
{
counter++; //计时次数加1
if(counter==20) //计时时间达到1s
{
P0=~P0; // P0所有位取反,使LED闪烁
counter=0; //重新从0开始计数
}
TH0=(65536-46083)/256; //重新初始化T0的高8位
TL0=(65536-46083)%256; //重新初始化T0的低8位
TF0=0; //重新初始化定时器溢出标志
}