第1个回答 2009-12-17
t1和t2的时间大约是多长?
-------------------------------
//a和b是两个开关。
//当a接通后,t1开始计时,至b接通t1停止计时,t2开始计时,当a断开,t2停止计时
//===============================
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit akey = P1^2;
sbit bkey = P1^1;
uint t1, t2, t3;
//-------------------------------
void T0_time() interrupt 1 //T0中断.
{
TH0 = (65536-10000)/256; //初值, 定时10ms @ 12MHz
TL0 = (65536-10000)%256;
t3++;
}
//-------------------------------
void main() //主函数.
{
TMOD = 0x01; //定时器0 工作方式1
TH0 = (65536-10000)/256; //初值, 定时10ms @ 12MHz
TL0 = (65536-10000)%256;
ET0 = 1; //开T0中断.
EA = 1; //开总中断.
while(akey); //等待a键按下.
TR0 = 1; //T0启动.
while(bkey); //等待b键按下.
t1 = t3;
t3 = 0;
while(!akey); //等待a键释放.
TR0 = 0; //T0关闭.
t2 = t3;
//用这种方法测量时间,分辨率是0.01s.
//t1、t2中的一个数,代表0.01s.
//t1、t2中的100,代表1s.
//t1、t2中的最大值65535,代表655.35s,即10分多钟.
while(1); //无尽循环.
}
//===============================