我要发布
仪器网/ 仪器社区/ 频率计/ 【求指点】关于51系列单片机类似频率计的问题。见补充

【求指点】关于51系列单片机类似频率计的问题。见补充

玩心的爱啊    2011-03-22    频率计    浏览 577 次

【求指点】下面的程序目的是实现从P3.4口输入一个频率信号,然后从数码管上显示500ms内累计的脉冲数。但我下载到单片机后,数码管总显示8.8.8.8. 我的硬件是没问题的,因为用其他简单的程序测试过。求方外高人指点。 #include #define uint unsi... 【求指点】下面的程序目的是实现从P3.4口输入一个频率信号,然后从数码管上显示500ms内累计的脉冲数。但我下载到单片机后,数码管总显示8.8.8.8. 我的硬件是没问题的,因为用其他简单的程序测试过。求方外高人指点。
#include
#define uint unsigned int
#define uchar unsigned char
uint count,opt;
uchar aa,qian,bai,shi,ge,flag;
sbit dula=P2^4;
sbit wela=P2^5;
uchar code table[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
uchar code table1[]={
0x40,0x79,0x24,0x30,
0x19,0x12,0x02,0x78,
0x00,0x10,0x08,0x03,
0x46,0x21,0x06,0x0e};
void display(uchar qian,uchar bai,uchar shi,uchar ge);
void measure();
void delay(uint z);

void main()
{
while(1)
{
measure();
opt=count;
display(qian,bai,shi,ge);
qian=table[opt/1000];
bai=table1[opt%1000/100];
shi=table[opt%100/10];
ge=table[opt%10];
flag=0;
}

}

void measure()
{
IE=0x8a;//开中断
TMOD=0x51;//T1计数,T0定时
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=0,TL1=0;
TR0=1,TR1=1;
}

void Timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(flag!=1)
{
if(++aa==10)
{aa=0;
flag=1;
TR1=0,TR0=0;
DPL=TL1;
DPH=TH1;
count=DPH*256+DPL;
}
}
}

void display(uchar qian,uchar bai,uchar shi,uchar ge)
{
dula=1;
P1=table[qian];
dula=0;
P1=0x00;
wela=1;
P1=0x01;
wela=0;
delay(1);

dula=1;
P1=table1[bai];
dula=0;
P1=0x00;
wela=1;
P1=0x02;
wela=0;
delay(1);

dula=1;
P1=table[shi];
dula=0;
P1=0x00;
wela=1;
P1=0x04;
wela=0;
delay(1);

dula=1;
P1=table[ge];
dula=0;
P1=0x00;
wela=1;
P1=0x08;
wela=0;
delay(1);
}

void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

精彩问答
PBFDWDC 发布日期:2011-03-23
老大T1计数应该从P3_5输入,另外不要来回初始化,在主函数里把显示部分做完了就再次启动TR0\TR1.................
另外看不出你程序什么问题。

可以先给你的qian\shi\bai\ge赋值测试一下你的显示函数有什么问题没~
全部评论
xxorockxxo 发布日期:2011-03-23
你难道没有发现,你的程序一遍又一遍地对定时器进行初始化?
最新主题
相关版块
我要评论
X您尚未登录
账号登录
X您尚未登录
手机动态密码登录
X您尚未登录
扫码登录
官方微信

仪器网微信服务号

扫码获取最新信息


仪器网官方订阅号

扫码获取最新信息

在线客服

咨询客服

在线客服
工作日:  9:00-18:00
联系客服 企业专属客服
电话客服:  400-822-6768
工作日:  9:00-18:00
订阅商机

仪采招微信公众号

采购信息一键获取海量商机轻松掌控