概述
#include <REGX51.H>//HHY 2022/10/30
#define chuar unsigned char;
#define uint unsigned int ;
int cnt0 = 0;
int cnt1 = 0;
sbit LED0 = P1^7;
sbit LED1 = P1^0;
void Timer1_init() //定时器T1
{
TMOD|=0x10; //定时器T1方式1 方式1 16位 需要软件重新装初始值
EA=1;
TR1=1; //启动 T1 定时器
ET1=1; //打开 T1 中断
TH1=(65536-50000)/256; //为 T1 赋初值 ,定时 定时 50000us=50ms
TL1=(65536-50000)%256;
}
void Timer0_init() //定时器T0
{
TMOD|=0x02; //定时器T0方式2 方式2 8位 不需要软件重新装初始值
EA=1;
TR0=1; //启动 T0 定时器
ET0=1; //打开 T0 中断
TH0=256-250; //为 T0 赋初值,定时 25us 6到256需要 250us
TL0=256-250;
}
void t1_int(void) interrupt 3 //定时器T1 工作方式1 1s
{
TH1=(65536-50000)/256; //为 T1 重装赋初值 ,定时 50000us=50ms
TL1=(65536-50000)%256;
cnt1++;
if(cnt1==20)
{
cnt1=0;
LED1=~LED1;
}
}
void t0_int(void) interrupt 1 //定时器T0 工作方式2 0.5s
{
cnt0++;
if(cnt0==2000)
{
cnt0=0;
LED0=~LED0;
}
}
void main(void)
{
Timer0_init();
Timer1_init();
while(1);
}
最后用仿真图验证,用示波器观察周期。
最后
以上就是害羞皮卡丘为你收集整理的定时/计数器的应用实验(T1 工作方式 1 , T0 工作方式 2 )的全部内容,希望文章能够帮你解决定时/计数器的应用实验(T1 工作方式 1 , T0 工作方式 2 )所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复