標(biāo)題:
基于51單片機(jī)的吉他校音器程序源碼
[打印本頁]
作者:
xinghe280
時(shí)間:
2018-7-25 11:46
標(biāo)題:
基于51單片機(jī)的吉他校音器程序源碼
基于51的吉他校音器源碼
單片機(jī)源程序如下:
//電子校音器源程序
#include <reg51.h>
unsigned char n,i,DelayTime;
unsigned long int f,t,m;
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
sbit P1_3=P1^3;
sbit P1_4=P1^4;
sbit P1_5=P1^5;
sbit P1_6=P1^6;
sbit P1_7=P1^7;
sbit P3_7=P3^7;
sbit P3_5=P3^5;
void delay(DelayTime);
main() //主程序
{
TMOD=0x01; //定時(shí)器T0工作于方式1
TH0=0;
TL0=0;
IE=0X81; //開中斷
IT0=1; //外部中斷0為邊沿觸發(fā)方式
TR0=1; //開定時(shí)器T0
t=1;
f=1;
for(;;) //顯示輸出部分
{
delay(50); //延時(shí)50mS
P1=0xff;
P3_7=1;
if(P3_5==0) //校音顯示輸出
{
m=1000000000/t;
m=m*10000;
m=m/f; //計(jì)算頻率比
if(m>=9715&&m<9885) //誤差在-50音分與-20之間
P1_7=0; //發(fā)光二極管VD2點(diǎn)亮
else if(m>=9885&&m<9942)
P1_6=0;
else if(m>=9942&&m<9971)
P1_5=0;
else if(m>=9971&&m<9988)
P1_4=0;
else if(m>9988&&m<=10012)
P1_3=0;
else if(m>10012&&m<=10029)
P1_2=0;
else if(m>10029&&m<=10058)
P1_1=0;
else if(m>10058&&m<=10116)
P1_0=0;
else if(m>10116&&m<=10293)
P3_7=0;
}
else //設(shè)置顯示輸出
{
m=1000000000/t;
if(m>19208&&m<19992) //LM567振蕩頻率在g音附近,即頻率在196Hz附近
{
P1_7=0; //發(fā)光二極管VD2點(diǎn)亮
f=19600; //給標(biāo)準(zhǔn)頻率賦值
}
else if(m>28779&&m<29953)
{
P1_6=0;
f=29366;
}
else if(m>43120&&m<44880)
{
P1_5=0;
f=44000;
}
else if(m>64607&&m<67245)
{
P1_4=0;
f=65926;
}
}
}
}
external0() interrupt 0 //外部中斷服務(wù)程序
{
n++;
if(n==10)
{
TR0=0;
t=TL0|(TH0<<8); //取計(jì)數(shù)值
TH0=0;
TL0=0;
n=0;
TR0=1;
t=t+18; //程序誤差修正
}
}
void delay(DelayTime) //延時(shí)子程序
{
for(;DelayTime>0;DelayTime--)
{
for(i=0;i<250;i++);
}
}
復(fù)制代碼
所有資料51hei提供下載:
程序.zip
(26.24 KB, 下載次數(shù): 22)
2018-7-25 11:46 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
t260161851
時(shí)間:
2019-8-8 19:37
多謝樓主分享
作者:
yhbyhb
時(shí)間:
2019-8-10 00:05
你好,這個(gè)有實(shí)物嗎
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1