找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1373|回復(fù): 0
收起左側(cè)

單片機(jī)八鍵電子琴源程序

[復(fù)制鏈接]
ID:169534 發(fā)表于 2020-7-8 04:48 | 顯示全部樓層 |閱讀模式
#include <reg52.H>

sbit SPEAKER  = P3^7;
#define KEY  P1
unsigned char MUSIC;
unsigned char STH0;
unsigned char STL0;
unsigned int code tab[]={
64021,64103,64260,64400,//低音3開始
64524,64580,64684,64777,
64820,64898,64968,65030,
65058,65110,65157,65178
};

void main(void){
        TMOD=0x01;
        ET0=1;
        EA=1;
        KEY = 0xff;
        while(1){         
                if(KEY != 0xff){
                switch (~KEY){//顯示的列位置               
                                case 0x01://                        
                                        MUSIC = 7;        
                                        break;//               
                                case 0x02://                        
                                        MUSIC = 6;        
                                        break;//               
                                case 0x04://                        
                                        MUSIC = 5;        
                                        break;//               
                                case 0x08://                        
                                        MUSIC = 4;        
                                        break;//               
                                case 0x10://                        
                                        MUSIC = 3;        
                                        break;//               
                                case 0x20://                        
                                        MUSIC = 2;        
                                        break;//               
                                case 0x40://                        
                                        MUSIC = 1;        
                                        break;//               
                                case 0x80://                        
                                        MUSIC = 0;        
                                        break;//               
                }        

                    STH0=tab[MUSIC]/256;
                    STL0=tab[MUSIC]%256;
                    TR0=1;
                }else{
                    SPEAKER = 1;
                        TR0=0;
                }
    }
}
void t0(void) interrupt 1 using 0{
  TH0=STH0;
  TL0=STL0;
  SPEAKER=~SPEAKER;
}

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表