- 打卡等级:常住居民III
- 打卡总天数:167
- 最近打卡:2025-05-02 15:27:34
已绑定手机
金牌会员
- 积分
- 1181
|
发表于 2025-3-16 21:28:10
|
显示全部楼层
第15集学习内容
定时器计数器的应用领域简介
定时器计数器的配置方法
C/T=1,定时器/计数器T0是对外部脉冲输入(P3.4/T0)计数.
定时器0/1模式寄存器(TMOD)的配置方法
T0-T4,T11 8051可以提供5个计数器输入引脚
双击选中TMOD,点击搜索按钮,搜索类型:当前项目,勾选区分大小写,匹配全部.点搜索全部.搜索栏会显示TMOD所有位的配置信息.
65536-计数周期,右移8位=TH TL直接赋值
使用外部输入计数的引脚要打开外部上拉电阻(准双向模式)
频繁进入中断,会降低系统稳定性.
TH1,TL1是8位的数据,左移时注意防止溢出.(u16)强制转换到16位.
测量引脚电平时间
void Timer1_Isr(void) interrupt 3
{
static u32 count_p33 = 0;
if( P33 == 0 ) //按键按下开始计数
{
count_p33 ++ ;
}
else
{
if( count_p33>0 ) //表示之前按下了这个按键
{
Count_T1 = count_p33;
}
count_p33 =0;
}
}
void Timer1_Init(void) //100微秒@24.000MHz
{
AUXR &= 0xBF; //定时器时钟12T模式
TMOD &= 0x0F; //设置定时器模式
TL1 = 0x38; //设置定时初始值
TH1 = 0xFF; //设置定时初始值
TF1 = 0; //清除TF1标志
TR1 = 1; //定时器1开始计时
ET1 = 1; //使能定时器1中断
}
void T1_RunTask(void)
{
SEG7_ShowString("%07.01f",((float)Count_T1)/10);
}
|
|