1 / 18
文档名称:

基于at89s52单片机的多模式带音乐跑马灯设计实训报告.doc

格式:doc   大小:156KB   页数:18页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于at89s52单片机的多模式带音乐跑马灯设计实训报告.doc

上传人:tswng35 2022/1/25 文件大小:156 KB

下载得到文件列表

基于at89s52单片机的多模式带音乐跑马灯设计实训报告.doc

相关文档

文档介绍

文档介绍:-
. z
实训课题基于AT89S52单片机的多模式
带音乐跑马灯设计
一、实训目的及要求
(1)通过实训,理解;
bit Flag;
for(i=0;i<count;i++)
{
-
. z
Flag=!Flag;
if(Flag)
Display(RunMode);
else
Display(0*10);
Delay1ms(100);
}
Display(RunMode);
}
unsigned char GetKey(void)
{
unsigned char KeyTemp,CheckValue,Key=0*00;
CheckValue=P2&0*32;
if(CheckValue==0*32)
return 0*00;
Delay1ms(10);
KeyTemp=P2&0*32;
if(KeyTemp==CheckValue) return 0*00;
if(!(CheckValue&0*02)) Key |=0*01 ;
if(!(CheckValue&0*10)) Key |=0*02 ;
if(!(CheckValue&0*20)) Key |=0*04;
return Key;
}
unsigned int Timer0Count,SystemSpeed,SystemSpeedInde*;
void InitialTimer2(void)
{
T2CON=0*00;
TH2=RCAP2H=0*FC;
ET2=1;
TR2=1;
EA=1;
}
Unsignedint code
SpeedCode[]={1,2,3,5,8,10,14,17,20,30,40,50,60,70,80,90,100,120,140,160,180,200,300,400,500,600,700,800,900,1000};
void SetSpeed(unsigned char Speed)
{ SystemSpeed=SpeedCode[Speed];}
void LEDShow(unsigned int LEDStatus)
{
P1= ~(LEDStatus&0*00FF);
P0= ~((LEDStatus>>8)&0*00FF);
}
void InitialCPU(void)
{
RunMode=0*00;
-
. z
Timer0Count=0;
SystemSpeedInde*=22;
P1=0*00;
P0=0*00;
P2=0*FF;
P3=0*00;
Delay1ms(500);
P1=0*FF;
P0=0*FF;
P2=0*FF;
P3=0*FF;
SetSpeed(SystemSpeedInde*);
Display(RunMode);
}
unsigned int LEDinde*=0;
bit LEDDirection=1,LEDflag=1;
void mode_0(void)
{
LEDShow(0*0001<<LEDinde*);
LEDinde*=(LEDinde*+1)%16;
}
void mode_1(void)
{
LEDShow(0*8000>>LEDinde*);
LEDinde*=(LEDinde*+1)%16;
}
void mode_2(void)
{
if(LEDDirection)
LEDShow(0*0001<<LEDinde*);
else
LEDShow(0*8000>>LEDinde*);