A. c51单片机的定时器计数器怎么用最好用例子
方法有很多的,给你一个,你可以调试一下,你可以通过不同的晶振去计算定时器初值,如果你懂定时器这部分很好调通的
#include <reg52.h>
sbit p1_0=P1^0;
int i; //全局变量
void timing(void) //晶振为3.6864M
{
TMOD|=0x01; //定时器T0,工作方式1
TH0=0xC3;
TL0=0xC7; //这两个寄存器存的是计数器的计数开始的值,这两个值累加至溢出后正好是50ms
ET0=1; //使T0中断可以溢出
EA=1; //开启总中断
TF0=0; //溢出位清零
TR0=1; //开启T0
}
/********定时中断函数*********/
void time0_int () interrupt 1 //定时中断函数
{
TH0=0xC3;
TL0=0xC7;
i++;
}
main()
{
i=0;
timing();
while(;)
{
if(i==20)
{
p1_0=~p1_0; //p1.0口状态翻转
i=0;
}
}
B. 51单片机中断中的寄存器TMOD和TCON怎么理解,他们有没有功能上重复
重复?没有啊!tmod 是运行定时器/计数器的运行条件(tmod。7和tmod。3)采用计时器还是定时器(tmod。6和tmod。2)定时器/计数器运行模式选择(d5+d4和d1+d0)。至于tcon是各种中断标志(除了tcon。6和tcon。4,它们是启动计数器/计时器,必备条件之一。。这个和tmod有一些关系)
C. 51单片机定时器控制方式TMOD问题
可以理解为
同时设置了两个定时器的工作方式。但要看t1是否有启动,如果系统中没有用到t1,
没有启动,设置了也没关系。如果两个都需要使用,需要分别设置,标准的做法是tmod
|=
0x01,
这样就只设置了
t0,
t1保留原来的状态。
D. 51单片机定时器TMOD其位的含义
tmod是管理定时器t0和t1的不是t1和t2的。
高四位是t1第四位是t0
左起第二位管定时或计数,0是定时1是计数,然后后两位依旧是模式。
E. c51单片机的定时器计数器怎么用
//用定时器T0查询方式P0口8位控制LED闪烁
#include
#define uchar unsigned char
#define uint unsigned int
/**************************************************************
函数功能:主函数
**************************************************************/
void main(void)
{
TMOD=0x01; //使用定时器T0的模式1
TH0=(65536-50000)/256; //定时器T0的高8位赋初值
TL0=(65536-50000)%256; //定时器T0的高8位赋初值
TR0=1; //启动定时器T0
TF0=0; //溢出标志位 先清零
P0=0xff; //关闭LED灯
while(1)//无限循环等待查询
{
while(TF0==1)
{
TF0=0;
P0=~P0;
TH0=(65536-50000)/256; //定时器T0的高8位赋初值否则会从0开始计数
TL0=(65536-50000)%256; //定时器T0的高8位赋初值
}
}
}
F. 自学单片机reg51.h定时程序是里面的TH1、TL1、TR1、TMOD是什么意思没有在程序上看到定义这样的变量。
TH1,TL1、TR1、TMOD是单片机的特殊寄存器 ,是用来控制计数/中断器的.TMOD(工作方式控制寄存器);TH1/TL1是定时器/计数器1;
TR1=1是启动定时器1。