標(biāo)題:
51單片機(jī)測(cè)頻率和占空比程序 求修改一下漏洞
[打印本頁]
作者:
Maryzy
時(shí)間:
2018-7-10 07:44
標(biāo)題:
51單片機(jī)測(cè)頻率和占空比程序 求修改一下漏洞
初學(xué)者參加比賽,需要設(shè)計(jì)一個(gè)數(shù)字頻率計(jì)測(cè)頻率和占空比,代碼已寫好一部分,請(qǐng)大神們修改一下漏洞(或者有更好的方法請(qǐng)指教),時(shí)間緊急,菜鳥謝謝各位大神
單片機(jī)源程序:
#include <reg52.h>
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
sbit K1=P3^1;
sbit ky=P3^5;
unsigned int i=0,n=0,m=0,x=0,y=0;
unsigned long fred,zhan;
unsigned char DisplayData[8]=0;
unsigned char DisTable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void Display();
void delay(unsigned int i);
void main()
{
TMOD=0x62;
TH0=6;
TL0=6;
TH1=56;
TL1=56;
TR0=1;
TR1=1;
EA=1;
ET1=1;
ET0=1;
while(1)
{
if(ky==1)
{
x++;
}
else
{
y++;
}
if(x+y==60000)
{
zhan=x/60;
x=0;
y=0;
}
if(K1==0)
{
DisplayData[0]=DisTable[0];
DisplayData[1]=DisTable[0];
DisplayData[2]=DisTable[zhan/1000];
DisplayData[3]=DisTable[zhan%1000/100];
DisplayData[4]=DisTable[zhan%100/10]|0x80;
DisplayData[5]=DisTable[zhan%10];
}
Display();
}
}
void time1_int() interrupt 3
{
TH1=56;
TL1=56;
TR1=1;
n++;
}
void timer0_int() interrupt 1
{
i++;
if(i==2000)
{
TR1=0;
fred=n*200+TL1-56;
DisplayData[0]=DisTable[fred*2/100000];
DisplayData[1]=DisTable[fred*2%100000/10000];
DisplayData[2]=DisTable[fred*2%10000/1000];
DisplayData[3]=DisTable[fred*2%1000/100];
DisplayData[4]=DisTable[fred*2%100/10];
DisplayData[5]=DisTable[fred*2%10];
n=0;
i=0;
TH1=56;
TL1=56;
TR1=1;
}
}
void Display()
{
int i;
for(i=0;i<6;i++)
{
switch(i)
{
case(0):
LSA=0;LSB=0;LSC=0; break;//ÏÔê¾μú0λ
case(1):
LSA=1;LSB=0;LSC=0; break;//ÏÔê¾μú1λ
case(2):
LSA=0;LSB=1;LSC=0; break;//ÏÔê¾μú2λ
case(3):
LSA=1;LSB=1;LSC=0; break;//ÏÔê¾μú3λ
case(4):
LSA=0;LSB=0;LSC=1; break;//ÏÔê¾μú4λ
case(5):
LSA=1;LSB=0;LSC=1; break;//ÏÔê¾μú5λ
}
P0=DisplayData[5-i];
delay(10);
P0=0x00
}
}
void delay(unsigned int i)
{
while(i--);
}
復(fù)制代碼
作者:
clerisy
時(shí)間:
2021-5-21 15:40
兄弟你這個(gè)現(xiàn)在看出來有什么問題了嗎,求求你跟我說說吧
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1