方波频率的检测和倍频的程序

来源:本站
导读:目前正在解读《方波频率的检测和倍频的程序》的相关信息,《方波频率的检测和倍频的程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《方波频率的检测和倍频的程序》的详细说明。
简介:这里给大家分享一个AT89S52语言常用程序——方波频率的检测和倍频的程序

#include <reg52.h>#include <absacc.h>#define uchar unsigned char#define uint unsigned int/*输出给舵机的控制信号:周期18ms,脉宽由原始控制信号输入脉宽和陀螺反馈输入脉宽计算得到的方波*/sbit P1_2=P1^2; //sbit EXF2=T2CON^6;/*T2外中断标志位*/uchar flag_int0;// 外中断输入的标志位uint HELMNUM=0;/*存放输出给舵机的控制信号的脉宽时间*/uchar N;// 定时器溢出次数uchar time_sgn;// 输入方波的周期变量uchar T1H,T1L;// 定时器T1的高低位变量main(){/*初始化:打开INT0、INT1和T2,设置T2的优先级为最高*/// 这是因为T2所记录的中断是输出信号的控制周期,所以其优先有必要设为最高。EA=1;  IT0=1; IT1=1; EX0=1; EX1=1; ET2=1;T2CON=0x08;/*设置T2工作方式:允许接收P1.1引脚的下降沿中断,计数器停止*/TMOD=0x99;/*设置T0、T1工作方式:门控方式1定时*/TR0=1; TR1=1;for (;;); }// 外中断0的控制T1计数子程序void int0svr(void) interrupt 0 using 1 {if (flag_int0==1){flag_int0=0;T1H=TH1;T1L=TL1;time_sgn=N*65536+T1H*256*T1L;TH1=0;TL1=0;}if (flag_int0==0){flag_int0=1;TH1=0;TL1=0;TR1=1;}}// T1计数子程序void timer1(void)  interrupt 3 using 1{TH1=0;// 定时器T1的高四位赋值TL1=0; // 定时器T1的低四位赋值N=N+1; // 定时器的溢出次数}/* 定时计数器2的中断服务子程序 */void timer2(void) interrupt 5 using 3{// 判断中断类型:EXF2=1时为P1.1引脚下降沿触发的中断;TF2=1为T2定时时间到触发的中断if (TF2){TF2=0;TH2=- (time_sgn /4)/256;TL2=- (time_sgn /4)%256;T2CON=0x0c;}P1_2=!P1_2;} 

提醒:《方波频率的检测和倍频的程序》最后刷新时间 2024-03-14 01:02:27,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《方波频率的检测和倍频的程序》该内容的真实性请自行鉴别。