• 大小: 220KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: 其他
  • 标签:

资源简介

这是本人的单片机课设,多模式带音乐跑马灯,包括代码和仿真图,还有写好了的课程设计报告

资源截图

代码片段和文件信息

#include 
 
#define _7SEG P0  //7段数码管 
#define KEYBOARD P3 //键盘 
#define uchar unsigned char 
#define uint unsigned int 
sbit S1=P2^4;          //位定义S1为P1.4
sbit S2=P2^5;          //位定义S2为P1.5
sbit S3=P2^6;          //位定义S3为P1.6
sbit S4=P2^7;          //位定义S4为P1.7
sbit p10 =P1^0;
sbit p11 =P1^1;
sbit p12 =P1^2;
sbit p13 =P1^3;    
sbit p14 =P1^4;
sbit p15 =P1^5;
sbit p16 =P1^6;
sbit p17 =P1^7;
sbit p20 =P2^0;
sbit p21 =P2^1;
sbit p22 =P2^2;
sbit p23 =P2^3;
uint code  SpeedCode[]={1357101418232732405065801001201401702002402803203604005006007008009001000};//速度码 

uchar code LEDDisplayCode[] = {0x3F0x060x5B0x4F0x660x6D0x7D0x070x7F0x6f};//七段共阴极编码表
//uchar code LEDDisplayCode[] = {0x400x790x240x300x190x120x020x780x00};//七

uchar mode; 
uint music_num;//音乐序号
uint music_flag;//记录是否改变音乐
void Delay1ms(uint num);
uint countsystemSpeedspeedNumindex;  
bit directionflag; 


/*************************************************************
程序功能:51单片机演奏单音乐曲
硬件接法:P36控制交流蜂鸣器,发声频率等于P36的方波振荡频率
**************************************************************/
sbit SPEAKER = P3^6;     //定义音乐输出口

typedef struct                  //定义音符结构
{ unsigned int mFreq; //发声频率(对应的定时器初值)
unsigned int mDelay;    //发声时值
}CNote;
unsigned char ReloadH;         //定义定时器T1重装值
unsigned char ReloadL;
/************************************************************
函数:T1_ISR()
功能:定时器T0中断服务函数,产生音乐振荡频率
*************************************************************/
void T1_ISR() interrupt 1 using 1
{ TR0 = 0;
TH0 = ReloadH;
TL0 = ReloadL;
SPEAKER = !SPEAKER;  //音乐声频的半个波   
TR0 = 1;
}


/***********************************************************
函数:Sound()
功能:演奏一个音符
参数:*note,音符指针,指向要演奏的音符
***********************************************************/
void Sound(CNote *note)
{            //利用定时器T0发出音符的频率
if ( note->mFreq != 0 )
{ ReloadH = (unsigned char)(note->mFreq >> 8);
ReloadL = (unsigned char)(note->mFreq);
TH0 = 0xFF;
TL0 = 0xF0;
TR0 = 1;
}
Delay1ms(note->mDelay);   //发声延时
TR0 = 0;               //停止发声
TF0 = 0;
SPEAKER = 1;
Delay1ms(5);       
}
/************************************************************
函数:Play()
功能:演奏一段乐曲
参数:music[],要演奏的乐曲
*************************************************************/
void Play(CNote music[])
{ unsigned int n = 0;
for (;;)
{ if ( music[n].mDelay == 0 ) break;
if(music_flag==1){
  music_flag=0;

break;
}
Sound(&(music[n]));
n++;
}
}

void Delay1ms(uint num) //num ms延时函数 

 uint ij; 
  for(i=0;i   for(j=0;j<125;j++); //1ms延时 



 

void Display(uchar Value)  //数码管驱动函数 

  _7SEG = LEDDisplayCode[Value]; 
}  
   
void LED1_6_W(uchar da)//写7-12LED灯的值
{
p15 =(bit)(da&0x20);
p14 =(bit)(da&0x10);
p13 =(bit)(da&0x08);
p12 =(bit)(da&0x04);
p11 =(bit)(da&0x02);
p10 =(bit)(da&0x01);

}

   
void LED7_12_W(uchar d

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     155255  2016-06-28 17:06  多模式带音乐跑马灯\kehse.DSN

     文件       9174  2016-06-29 08:38  多模式带音乐跑马灯\keshe2.c

     文件     359936  2016-06-30 14:36  多模式带音乐跑马灯\课程设计定稿.doc

     目录          0  2016-06-30 14:56  多模式带音乐跑马灯

     文件       3470  2016-06-28 10:06  多模式带音乐跑马灯\MusicTab.h

----------- ---------  ---------- -----  ----

               527835                    5


评论

共有 条评论