|
这到底是计算机组成原理还是单片机课啊?
你们学校真奇怪...就拿电子琴来说好了,需要的是通过单片机定时器控制IO口输出一定频率的方波,该IO口要连在蜂鸣器上,再用单片机的IO口拉7个按键出来,然后扫描到不同的按键就发出不同频率的方波,自然就有不同的声音了咯,电子琴就这么实现了,假设你们用的实验箱里有8051的单片机,可以参考一下我下面这段程序:
#include "reg51.h"
sbit P3_3=P3^3; //这个口连蜂鸣器
unsigned char idata i,tl0_temp=0,th0_temp=0;
void INTTO() interrupt 1
{
TH0=th0_temp;
TL0=tl0_temp;
P3_3=~P3_3;
}
main()
{
P1=0XFF;
TMOD=0X01;
ET0 =1;
EA =1;
TH0=0;
TL0=0;
TCON =0x10;
while(1)
{
i=P1; //P1口连键盘,这里用到7个
if(i==0xff)
TR0=0;
if(i==0xfe) //下面就是多、来、米、发、索、拉、西了
{
th0_temp=0xfb;
tl0_temp=0xE9;
TR0 =1;
}
if(i==0xFD)
{
th0_temp=0xFC;
tl0_temp=0x5C;
TR0=1;
}
if(i==0xFB)
{
th0_temp=0xFC;
tl0_temp=0xc1;
TR0 =1;
}
if(i==0xF7)
{
th0_temp=0xFC;
tl0_temp=0xEF;
TR0 =1;
}
if(i==0xEF)
{
th0_temp=0xFD;
tl0_temp=0x45;
TR0 =1;
}
if(i==0xDF)
{
th0_temp=0xFD;
tl0_temp=0x92;
TR0 =1;
}
if(i==0xBF)
{
th0_temp=0xFD;
tl0_temp=0xD6;
TR0 =1;
}
}
} |
|