打印
[疑难问答]

求大神看看 为啥实现不了 测函数信号发生器的方波信号周期

[复制链接]
758|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#include<reg52.h>
#define int unsigned int
#define char unsigned char
char code smgd[]={0x3f,0x06,0x5b,0xb0,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
char code smgw[]={0x08,0x04,0x02,0x01};
int count,n,prd;
int read()
{char tl1,th1;
int t1;
tl1=TL1;
TL1=0;
th1=TH1;
TH1=0;
t1=th1*256+tl1;
return t1;
}
void delayms(int t)
{int x,y;
for(x=t;x>0;x--)
{for(y=114;y>1;y--);}
}
void T0timer()interrupt 1
{n=n+1;
if(n==10000)
{n=0;
count=read();
prd=2000000/count;
}
}
void smgdisplay(int smgdata)
{char s0,s1,s2,s3;
s3=smgdata/1000;
if(s3>15)
{s3=15;}

s2=smgdata%1000/100;
s1=smgdata%100/10;
s0=smgdata%10;
P1=smgw[0];
P0=smgd[s0];
delayms(5);
P1=smgw[1];
P0=smgd[s1];
delayms(5);
P1=smgw[2];
P0=smgd[s2];
delayms(5);
P1=smgw[3];
P0=smgd[s3];
delayms(5);
}
void EXint0() interrupt 0
{
ET0=1;
}
void EXint1() interrupt 2
{ET0=0;
prd=0;
}
void main()
{EA=1;
EX0=1;
IT0=1;
EX1=1;
IT1=1;
ET0=1;
ET1=1;
TMOD=0x52;
TH0=56;
TL0=56;
TH1=0;
TL1=0;
TR0=1;
TR1=1;
while(1)
{smgdisplay(prd);}
}
沙发
小小财迷| | 2015-10-6 13:25 | 只看该作者
很简单   你要软硬结合

使用特权

评论回复
板凳
xia00| | 2015-10-8 18:03 | 只看该作者
是不是干扰太大了,有没有相应的虑波电路呀?

使用特权

评论回复
地板
bbapple| | 2015-10-8 18:11 | 只看该作者
这个还是要结合电路来看吧

使用特权

评论回复
5
会飞の鱼| | 2015-10-8 21:55 | 只看该作者
楼主,你这个程序可以稍微讲解哈么,表示看的不懂。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

27

帖子

0

粉丝