STC89S52单片机定时器T2捕获_第1页
STC89S52单片机定时器T2捕获_第2页
STC89S52单片机定时器T2捕获_第3页
STC89S52单片机定时器T2捕获_第4页
STC89S52单片机定时器T2捕获_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、*帮只显示捕获的低八位,经验说明:定时器2捕获功能的使用。由于只有三个三个数码管,证,当 P1.1 (T2EX)用定时器0控制发出一个下降沿,用 T2的P1M;弓I脚进行捕获,从而得到高电平时间用以 测量波形的宽度跳变时,数据被捕获/*/ /*/#include<reg52.h>常用的头文件,52单片机包含定时器2#include <intrins.h> /51 基本运算(包括 _nop_空函数)#define uchar unsigned char#define ulong unsigned long#define uint unsigned int sbit STC

2、_WR=P3A6;sbit IC138_C=P2A7;sbit IC138_B=P2A6;sbit IC138_A=P2A5;sbit p10=P1A0;有定时器0控制从P2.0 口输出一个信号bit flag=0;#define Port_Data P0uint tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;uchar count=0; 注,使用扩展 RAM时一定要注意初始化uchar temp=0,0,0,0,0,0,0,0;用于赋捕获值/* */ void delay(uint z) /ms 级延时函数 uint x,y;fo

3、r(x=z;x>0;x-)for(y=110;y>0;y-);/* */ void BUZZ_Y5C() STC_WR=0;IC138_C=1;IC138_B=0;IC138_A=1;void we_Y6C()(STC_WR=0;IC138_C=1;IC138_B=1;IC138_A=0;void du_Y7C()(STC_WR=0;IC138_C=1;IC138_B=1;IC138_A=1; void up_we_Y6C() (STC_WR=1;IC138_C=1;IC138_B=1;IC138_A=0;void up_du_Y7C()(STC_WR=1;IC138_C=1;IC

4、138_B=1;IC138_A=1; void display() 显示程序 (du_Y7C();Port_Data=tabtemp0;up_du_Y7C();we_Y6C();Port_Data=0x01;up_we_Y6C();delay(1);du_Y7C();Port_Data=tabtemp1;up_du_Y7C();we_Y6C();Port_Data=0x02;up_we_Y6C();delay(1);du_Y7C();Port_Data=tabtemp2;up_du_Y7C();we_Y6C();Port_Data=0x04;up_we_Y6C();delay(1);du_Y7

5、C();Port_Data=tabtemp3;up_du_Y7C();we_Y6C();Port_Data=0x08;up_we_Y6C();delay(1);du_Y7C();Port_Data=tabtemp4;up_du_Y7C();we_Y6C();Port_Data=0x10;up_we_Y6C();delay(1);du_Y7C();Port_Data=tabtemp5;up_du_Y7C();we_Y6C();Port_Data=0x20;up_we_Y6C();delay(1);du_Y7C();Port_Data=tabtemp6;up_du_Y7C();we_Y6C();P

6、ort_Data=0x40;up_we_Y6C();delay(1);du_Y7C();Port_Data=tabtemp7;up_du_Y7C();we_Y6C();Port_Data=0x80;up_we_Y6C();delay(1);void gaibian()uint x;x=RCAP2H*256+RCAP2L;temp7=x%10;x=x/10;temp6=x%10;x=x/10;temp5=x%10;x=x/10;temp4=x%10;x=x/10;temp3=x%10;x=x/10;temp2=x%10;x=x/10;temp1=x%10;temp0=x/10;RCAP2H=0;

7、RCAP2L=0;TH2=0;TL2=0;flag=0;/* */void time2_init(void)/捕获模式,当 EXEN2=1 ,外部T2EX为负跳变时,则将定时器中的值捕获到RCAP2L和RCAP2HTH2=0;/初值为0,不断自加,当溢出时中断,或者外部T2EX由1到0时产生中断TL2=0;RCAP2L=0;RCAP2H=0;/允许T2定时器中断T2CON=0x09;必须将T2CON.7位置1才能进行外部捕获/或者外部T2EX由1到0时产生中断 void time_init()TMOD=0X12;TH0=256-12;TL0=256-12;TH1=(65536-50000)/2

8、56;TL1=(65536-50000)%256;EA=1;ET0=1;ET1=1;ET2=1;TR0=1;TR1=1;TR2=1;*/void main()(time2_init();time_init();BUZZ_Y5C();Port_Data=0X00;while(1)(if(flag=1)gaibian();display(); /只用来显示低八位void timer2(void) interrupt 5(if(TF2)(TF2=0;/若定时器溢出则产生中断清 0RCAP2H=0;RCAP2L=0;TH2=0;TL2=0;else(TR0=0;TR2=0;flag=1;EXF2=0;/若外部负跳变时产生中断清0void timer0() interrupt 1(p10=p10;void timer1() int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论