基于51单片机的多功能迷你跑马流水灯音乐盒设计过程和程序参赛作品文档内容摘要:
EDDirection = !LEDDirection。 LEDIndex = (LEDIndex+1)%16。 } //Mode 7 void Mode_7(void) { if(LEDDirection) LEDShow(0x003FLEDIndex)。 else LEDShow(0xFC00LEDIndex)。 if(LEDIndex==9) LEDDirection = !LEDDirection。 LEDIndex = (LEDIndex+1)%10。 } //Mode 8 void Mode_8(void) { LEDShow(++LEDIndex)。 } void Timer0EventRun(void) { if(RunMode==0x00) { Mode_0()。 } else if(RunMode ==0x01) { Mode_1()。 } else if(RunMode ==0x02) { Mode_2()。 } else if(RunMode ==0x03) { Mode_3()。 } else if(RunMode ==0x04) { Mode_4()。 } else if(RunMode ==0x05) { Mode_5()。 } else if(RunMode ==0x06) { Mode_6()。 } else if(RunMode ==0x07) { Mode_7()。 } else if(RunMode ==0x08) { Mode_8()。 } } void Timer2(void) interrupt 5 using 3 { TF2 = 0。 //中断标志清除 ( Timer2 必须软件清标志 !) if(++Timer0Count=SystemSpeed) { Timer0Count = 0。 Timer0EventRun()。 } } unsigned char MusicIndex = 0。 void KeyDispose(unsigned char Key) { if(Keyamp。 0x01) { LEDDirection = 1。 LEDIndex = 0。 LEDFlag = 1。 第 13 页 共 18 页 RunMode = (RunMode+1)%10。 Display(RunMode)。 if(RunMode==0x09) TR2 = 0。 else TR2 = 1。 } if(Keyamp。 0x02) { if(RunMode==0x09) { MusicIndex =(MusicIndex+MUSICNUMBER1)%MUSICNUMBER。 } else { if(SystemSpeedIndex0) { SystemSpeedIndex。 SetSpeed(SystemSpeedIndex)。 } else { LEDFlash(6)。 } } } if(Keyamp。 0x04) { if(RunMode==0x09) { MusicIndex =(MusicIndex+1)%MUSICNUMBER。 } else { if(SystemSpeedIndex28) { ++SystemSpeedIndex。 SetSpeed(SystemSpeedIndex)。 } else { LEDFlash(6)。 } } } } //*****************************Music****************************************************** //挥着翅膀的女孩 unsigned char code Music_Girl[]={ 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x17,0x03, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x02, 0x18,0x03, 0x17,0x03, 0x15,0x02, 0x18,0x03, 0x17,0x03, 0x18,0x02, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x15,0x03, 0x16,0x03, 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x1A,0x03, 0x1B,0x03, 0x1F,0x03, 0x1F,0x03, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x1F,0x03, 0x1F,0x02, 0x16,0x03, 0x17,0x03, 第 14 页 共 18 页 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00, 0x1A,0x03, 0x1A,0x03, 0x1A,0x03, 0x1B,0x03, 0x1B,0x03, 0x1A,0x03, 0x19,0x03, 0x19,0x02, 0x17,0x03,。基于51单片机的多功能迷你跑马流水灯音乐盒设计过程和程序参赛作品文档
相关推荐
P0口具有内部上拉电阻。 在 EPROM 编程时, P0 口接收指令字节,同时输出指令字节在程序校验时。 程序校验时需要外接上拉电阻。 P1 口: P1 口是一带有内部上拉电阻的 8位双向 I/O 口。 P1 口的输出缓冲能接受或输出 4 个 TTL 逻辑门电路。 当对 P1 口写 1 时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。 当作为输入端使用时, P1
路中采用的共阴极的 LED 数码管,所以在设计电路时加了一个达林顿电路 ULN2020对信号进行放大,产生足够大的电流驱动数码管显示。 由于 4511 只能进行 BCD 十进制译码,只能译到 0 至 9,所以在这里我们利用 4511 译 码输出我们所需要的温度。 报警电路简介 图 3 温度在七段数码管上显示连接图 本文中所设计的报警电路较为简单,由一个自我震荡型的蜂鸣器(只要在蜂鸣器两端加上超过
引脚( 4 个) RST/VPD:复位信号输入引脚 /备用电源输入引脚。 ALE/PROG: 地址锁存允许信号输出引脚 /编程脉冲输入引脚。 EA/VPP:内、外存储器选择引脚 /片内 EPROM(或 Flatiron)编程电压输入引脚。 PSEN: 片外程序存储器读选通信号输出引脚。 16 第三章 ADC0809 ADC0809 引脚功能 ADC0809 的引脚如图所示
)。 一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。 但也要注意,每当访问外部数据存储器时将跳过一个ALE脉冲。 • :程序存储允许时外部程序存储器的读选通信号。 当AT89C52执行外部程序存储器的指令时,每个机器周期 两次有效,除了当访问外部数据存储器时, 将跳过两个信号。 • /VPP:外部访问允许。
断,每产生一次中断,存储器内相应的秒值加 1;若秒值达到 60,则将其清零,并将相应的分字节值加 1;若分值达到 60,则清零分字节,并将时字节值加1;若时值达到 24,则将时字节清零。 数码管显示原理 数码管的显示采用动态显示。 动态显示就是指轮流的一位一位的点亮各个显示位,对显示器 的每一位,采用每隔一段时间点亮一次。 利用人的视觉暂留特点能够看到整个显示,但必须保证扫描速度够快
控制一路输出,即会有 16 路输出。 如果一行 64 点全部点亮,则通过 74LS154 的电流将达 640 mA,而 实际上, 74LS154中北大学信息商务学院 2020 届毕业设计说明书 第 15 页 共 41 页 译码器提供不了足够的吸收电流来同时驱动 64 个 LED 同时点亮,因此,应在 74LS154每一路输出端与 16 64点阵显示器对应的每一行之间用一个三极管来将电流信号放大