- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
简易数字频率计程序
#include reg52.h
#include stdio.h
#include intrins.h
sbit Pa=P1^2;
sbit Pb=P1^3;
sbit Pc=P1^4;
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_5=P1^5;
sbit P1_6=P1^6;
sbit P1_7=P1^7;
sbit P2_3=P2^3;
sbit P2_4=P2^4;
sbit P2_5=P2^5;
sbit P2_6=P2^6;
sbit P2_7=P2^7;
sbit P3_1=P3^1;
sbit P3_5=P3^5;
sbit RS=P2^0;
sbit RW=P2^1;
sbit EN=P2^2;
#define uchar unsigned char
#define uint unsigned int
extern uchar m[9]={0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe};
extern uchar flag1=0;
uint flag2=0;
uchar flag3=0;
uchar count2=0;
uint count3=0; /*flag1记录频段划分,flag2用来标识测量是否完成 */
uchar count1=0;/*count1 用于记录T0里的脉冲个数*/
unsigned long count4=0;
/******************************************************/
/* 中断程序初始化 */
/******************************************************/
/*T0的初始化,工作模式是方式2,外部计数方式,计数个数是250个*/
void t0init()
{TMOD=0x06;
TH0=6;
TL0=6;
ET0=1;
EA=1;/*TR0没有开*/
}
/******************************************************/
/*T1的初始化 工作于定时模式*/
void t1init()
{TMOD=0x10;
ET1=1;
TH1=63436/256;/*定时时间是2.1ms*/
TL1=63436%256;
EA=1;/*TR1没有开*/
count1=0;
}
/******************************************************/
/*T2的初始化 工作于捕获模式*/
void t2init()
{T2CON=0x01;
ET2=1;
EA=1;
TH2=0;
TL2=0;/*TR2,EXEN2 没有开*/
RCAP2H=0;
RCAP2L=0;
}
/******************************************************/
/*int1的初始化 工作于下降沿响应模式*/
void int1init()
{EX1=1;
EA=1;
IT1=1;
}
/******************************************************/
/*int0的初始化 工作于下降沿响应模式*/
//void int0init()
//{EX0=1;
//EA=1;
///IT0=1;
//PT0=1;
//}
/******************************************************/
/*T2工作于频段2和3,测周,测频,测占空比*/
/*只是求得测量值*/
void t2cx()
{ flag2=0;
while (P1_1==1);
EXEN2=1;
while (P1_1==0);
TR2=1;
/*flag2 判断是否测量完成,不是继续等待*/
}
/******************************************************/
/* 中断程序 */
/******************************************************/
/*T2的中断响应程序*/
void T2xy() interrupt 5
{ EXF2=0;
count2=RCAP2L-count2;/*低位*/
count3=RCAP2H-count3;/*高位*/
flag2+=1;/*完
文档评论(0)