实验5定时器计数器实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机实验五定时器/计数器设计实验报告

一、实验内容

1、采用12MHZ时钟频率的单片机,通过一个开关输入,触发定时计数。按下开关10次,计算按键的平均时间,并通过数码管显示出来。

二、实验目的

1、了解定时器的各种工作方式。

2、掌握定时器/计数器的使用和编程方法。

三、实验设备

win7系统下的proteus7.8和ceil4联调

四、实验电路图

五、程序代码

#include

sbit P1_0=P1^0;

unsigned char numcode[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88}; unsigned char seqcode[4]={0x01,0x02,0x04,0x08};

unsigned int num=0;

void int1() interrupt 1

{

num++;

TL0=0xb0;

TH0=0x3c;

}

void DelayMS(unsigned int ms)

{

unsigned char i;

while(ms--) for(i=0;i<120;i++);

}

void main()

{

unsigned char i=0;

unsigned char dspcode[4];

unsigned long t;

P3=numcode[i];

ET0=1;

EA=1;

TH0=0x3c;

TL0=0xb0;

TMOD=0x01;

while(1)

{

if(P1_0==0)

{

TR0=1;

i++;

P3=numcode[i];

while(P1_0==0);

TR0=0;

if(i==10)

{

t=((TH0<<8)+TL0)/1000;

t=(t+50*num)/10;

dspcode[0]=numcode[(t/1000)%10]^0x80;

dspcode[1]=numcode[(t/100)%10];

dspcode[2]=numcode[(t/10)%10];

dspcode[3]=numcode[t%10];

break;

}

}

}

while(1)

{

for(i=0;i<4;i++)

{

P2=seqcode[i];

P0=dspcode[i];

DelayMS(5);

}

}

}

六、实验结果

七、实验小结

通过实验,我了解了定时器的各种工作方式和定时器/计数器的使用和编程方法,为进一步学习打下基础。

相关文档
最新文档