|
最近在做一个电子琴,用的是51的芯片,但是老是调不出来对应的音调,请达人相助,是电路有问题还是程序不对!
我的思想是在P1口产生对应频率的方波,谢谢
下面附程序(只产生最简单的do):
C:
#include
sbit P1_0= P1^0;
void change() interrupt 3 using 0 //中断服务,从新设置初值并改变P1.0口的状态
{
T1 = 0xFC44;
if(P1_0)
{
P1_0 = 0;
return;
}
P1_0 = 1;
return;
}
void main()
{
TMOD = 0x10;//置T1为方式1
TR1 = 1; //计数允许
EA = 1; //CPU允许
ET1 = 1; //开中断
T1 = 0xFC44;
while(1)
{
;
}
}
汇编:
ORG 0000H
LJMP MAIN
ORG 0400H
MAIN: MOV P1,0H
LCALL DELY
MOV P1,#0FFH
LCALL DELY
AJMP MAIN
DELY: MOV R3,100
DLY: NOP
DJNZ R3,DLY
RET
END
|
|