利用555定时器产生一个1KHz的方波,并利用51单片机的定时器/计数器0 1 进行测频,并利用数码管进行显示

#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbi... #include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit CP=P2^1;sbit R=P2^0;sbit T=P3^2;uint num,tt,vollce,flog;uchar wx[8]={0x00,0x20,0x40,0x60,0x80,0xa0,0xc0,0xe0 };//共阴数码管位选uchar dx[10]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};//共阴数码管段选uchar table[4]={0,0,0,0}; void delay()//延时函数 { uchar i,j; for(i=1;i>0;i--) for(j=110;j>0;j--); } void pro()//分离函数 { table[0]=vollce/1000; table[1]=(vollce%1000)/100; table[2]=(vollce%100)/10; table[3]=vollce%10; } void display()//显示函数 { uchar i; for(i=0;i<4;i++) { P1=0x00; P2=dx[table[i]]; P1=wx[i]; delay(); } } void pz()//中断配置函数 { R=0; _nop_(); CP=0; _nop_(); R=1; _nop_(); CP=1; _nop_(); T=1; TMOD=0x1e; TH1=(65536-49702)/256; TL1=(65536-49702)%256; IE=0x8a; IT0=1; TR0=1; TR1=1; } void main() { while(1) { pz(); while(flog!=1); TR0=0; TR1=0; pro(); display(); } } void timer1() interrupt 1 //定时器中断 { TH1=(65536-49702)/256; TL1=(65536-49702)%256; tt++; if(tt==20) { tt=0; flog=1; } }最近在看单片机,要求用555定时器产生一个频率为1KHz的方波,然后利用51单片机的定时器T0计数,T1定时,然后用共阴数码管显示出该方波的频率,我们的程序哪里有问题?为什么会无法显示?求大神告诉我原因,最好能帮我改一下,谢谢! 展开
 我来答
园绮诗音
2016-05-28 · TA获得超过411个赞
知道小有建树答主
回答量:349
采纳率:71%
帮助的人:210万
展开全部
我看你这个程序有多个问题
1、 while(flog!=1); 就是说定时还没到时直接跳过 然后就TR0=0; TR1=0;关闭定时器?关了定时器你还怎么工作啊pz()一直打开定时器 就是说你一个循环就在打开关闭定时器并没有什么软用
2、看不懂你的vollce 在那里工作
3、flog没有清0
4、就算能工作到flog==1时无法运行while下面的程序了
还有很多问题我就不说了 你先一步步来先是1、程序框图 2、正常显示 3、在是计数器定时器

main()
{
同时打开计数器定时器
计数器开始计数
while()
{
display();
}
}
定时器1秒钟到
{
关闭定时器 和计数器
计算频率 计数直应该是TLx+THx*256;
同时打开计数器定时器
}
追问
我在里面设置的flog是标志位,进入中断后标志位变1,如果flog不等于1,就等待直到flog=1后再向下进行
追答
少年你没弄明白吧         while(条件) 满足条件运行while循环  flog默认是0 当flog不等于1 满足条件往下执行

算了当我说这么多白说
僧闳利00b
2020-05-27
知道答主
回答量:2
采纳率:0%
帮助的人:1124
展开全部
你好,请问问题解决了吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式