单片机原理及应用课程设计-音乐播放器.doc_第1页
单片机原理及应用课程设计-音乐播放器.doc_第2页
单片机原理及应用课程设计-音乐播放器.doc_第3页
单片机原理及应用课程设计-音乐播放器.doc_第4页
单片机原理及应用课程设计-音乐播放器.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课 程 设 计课程名称单片机原理及应用课题名称音乐播放器电气信息学院目 录第1章 设计任务及要求11.1设计任务11.2 设计要求1第2章 系统方案设计12.1 基于单片机音乐播放器概述12.2 关于音乐的原理知识2第3章 系统硬件电路设计4第4章 系统软件设计84.1 程序流程图84.2 编程方案设计9第5章 系统仿真及调试10心得体会 .14参考文献15附录A音乐播放器原理图16附录B 程序清单17第1章 设计任务及要求1.1 设计任务本课题以单片机为核心,设计和制作一个音乐播放器。可以自动播放音乐,包括播放、暂停、上一首、下一首等功能。1.2 设计要求(1)确定系统设计方案;(2)进行系统的硬件设计;(3)完成应用程序设计; (4) 应用系统的硬件和软件的调试。第2章 系统方案设计2.1 基于单片机的音乐播放器概述基于单片机的音乐播放器可应用于mp3,MP4,扩音器等很多方面,并可作为很多系统的辅助功能,作为单片机的重要硬件资源之一,利用定时器可以产生各种固定频率的方波信号,也可以产生包括Do、Re、Me-等音阶在内的各种频率声音。将各个音阶连接在一起,便可组成一支曲子或是演奏一段旋律。基于这个思想,可设计一款能实现播放、暂停、复位,上一曲,下一曲等功能的音乐播放器。为了体现乐曲播放过程中的动态效果,增加了1只显示器,作实时提醒用户当前播放器播放的歌曲。由于时间及条件限制,本设计实现了一种简单的音乐播放器,其核心器件采用AT89C51单片机,本播放器具有电路简单,功能强大,易于拓展等特点。声音是通过振动产生的。单片机对某一引脚以一定的频率循环置1置0,该引脚便产生一定频率的方波,方波通过放大,作用于一定的物理实件(扬声器),就产生了一定频率的声音。若改变输出方波的频率,产生的声音随之改变。通过控制输出方波的时间长短,声音的长短也可以得到控制,因此,根据乐谱,以类似的音及同样的节拍,单片机就可以产生电子音乐。音乐的播放模式及选择可以通过按键的输入得以实现。为简便起见,以一定的频率方波产生的音在其每个周期内高低幅值得时间各占一半,因此输出引脚在每个方波周期内要动作两次:一次升高,一次降低。即输出引脚的频率是原音频率的两倍。方波的产生由定时器控制。定时器T0工作在定时方式1,改变TH0及TL0,产生不同的音频频率。必须考虑到中断响应时间的影响,尤其在高音部分,若忽略中断响应时间,会使音频频率比标准值低几十Hz,相当于1/4音程,很容易听出来,对低音部分影响不大。一般中断响应时间为36个机器周期,经过反复试验取5个机器周期作为校正最为恰当。2.2 关于音乐的原理知识在音乐中使用的各个固定频率的音叫音级1。常用符号C、D、E、F、G、A、B、c、d、e、a1、b1、c2、d2表示,它们对应于钢琴上的白键。两音之间音高的距离叫音程。在上述音级中,E与F、B与C之间音高的距离仅为其它相邻音级之间距离的一半,称它们之间的音程为半音音程,而称其它相邻各音之间的距离为全音音程。在这些全音音程之间又加入新的半音音级,用符号C、D、F、G、A、c、d、f、表示,对应于钢琴上的黑键。音持续时间的长短即时值,一般用拍数表示。休止符表示暂停发音。表2.1 各音符及对应频率音符低DO低#DO低RE低#RE低MI低EA简谱码DO_LDO#_LRE_LRE#_LMI_LFA_L频率262HZ277HZ294HZ311HZ330HZ349HZ音符低#FA低SO低#SO低LA低#LA低SI简谱码FA#_LSO_LSO#_LLA_LLA#_LSI_L频率370HZ393HZ415HZ440HZ466HZ494HZ音符中DO中#DO中RE中#RE中MI中EA简谱码DODO#RERE#MIFA频率523HZ554HZ587HZ622HZ659HZ698HZ音符中#FA中SO中#SO中LA中#LA中SI简谱码FA#SOSO#LALA#SI频率740HZ785HZ831HZ880HZ932HZ988HZ音符高DO高#DO高RE高#RE高MI高EA简谱码DO_HDO#_HRE_HRE#_HMI_HFA_H频率1047HZ1109HZ1174HZ1245HZ1318HZ1397HZ音符高#FA高SO高#SO高LA高#LA高SI简谱码FA#_HSO_HSO#_HLA_HLA#_HSI_H频率1480HZ1568HZ1661HZ1760HZ1865HZ1976HZ每个音符分为简谱码和节拍码。简谱码为D0-L到SI-H,节拍码为1到16。对应的节拍表如表2.2所示。对应的拍子: 2/2。以二分音符为一拍,每小节有两拍(二分音符代表一拍)2/4。以四分音符为一拍,每小节有两拍(四分音符代表一拍)3/4。以四分音符为一拍,每小节有三拍(四分音符代表一拍)4/4。以四分音符为一拍,每小节有四拍(四分音符代表一拍)表2.2 节拍表拍数字符拍数字符 1/8 00H 2 08H 1/4 01H 5/2 09H 1/2 02H 3 0AH 3/4 03H 7/2 0BH 1 04H 4 0CH 5/4 05H 5 0DH 3/2 06H 6 0EH 7/4 07H 8 0FH 第3章 硬件电路设计3.1 设计目的设计一个音乐播放器,有三个按键及控制按钮:播放/暂停、下一曲、上一曲;通过控制按钮控制单片机,播放所要求的音乐,并通过放大电路和喇叭输出声音,同时通过12864显示模块,用来显示所选曲目。3.2 电路设计原理音乐播放器的基本硬件电路有五部分组成:单片机、时钟电路、选择按键输入电路、声音输出电路,歌名显示电路。音乐播放器硬件电路设计框图如图3.2所示。液晶显示屏歌名显示时钟电路单片机选择按键输入电路 声音输出电路图3.2 音乐播放器硬件电路设计框图3.3 总体电路设计图3.3 硬件电路图3.4 单片机电路设计89C51单片机拥有4KB的片内ROM和128B的片内RAM。ROM和RAM的片外寻址范围都为64KB。单片机拥有32个并行口和1个串行口。在89C51单片机中存在5个中断源,其中有两个外部中断源、两个内部中断源和一个串行中断源。图3.4 89C51单片机通过TXAL1 与TXAL2输入时钟信号, p3.2、p3.3与p3.5分别作为上一曲、开始/暂停、下一曲和的控制输入。3.5 显示电路设计本次课程设计显示模块采用PG12864F液晶屏来显示歌名和提示播放器当前工作状态图3.5 PG12864F 显示模块 PG12864F显示屏引脚功能:1./WR:输入引脚,数据写引脚,低电平有效。2./RD:输入引脚,数据读引脚,低电平有效。3./CE:片选引脚,低电平有效。4.C/D:指令数据通道。1为指令通道,0为数据通道。5./RST:复位信号,低电平有效。6.DB0DB7:数据线。7.FS:字体选择,FS=1选8*6点阵,FS=0选8*8点阵。8.FG:边框地,用于防静电。9.Vss:数字地。10。Vdd:逻辑电源5V。11.V0:对比度调节。12.Vee:液晶驱动电源。 3.6 晶振时间电路设计晶振电路由两个30pF的电容和一个6Mhz的晶体振荡器组成。节点1与单片机的XTAL2相连接,节点2与单片机的XTAL1相连接,从而为单片机提供时间信号,为音乐的播放节拍控制提供基本时间单位:当晶体振荡频率为6.MHz,定时器工作在方式1下时,若各音阶相对应的定时器计数初值为X,则可根据下式计算X:图3.6晶振电路3.7 控制电路设计控制电路,键一与p3.2相连、键二与p3.5相连、键3与p3.3相连。当电键按下时接口接低电平,从而实现对音乐播放器的控制。键一联通实现下一曲更换,键二联通实现上一曲更换,键三联通实现播放/暂停操作。图3.7 控制电路3.8 输出电路设计发声电路由数字扬声器连接p2.0接口实现音乐的输出,由控制电路发出操作指令后,单片机调用相应程序,并将音乐信号由p2.0口输出,通过驱动扬声器发出美妙的音乐。图3.8 输出电路第4章 系统软件设计4.1 程序流程图: 开始 结束通过中断方式改变ZT值,控制音乐播放状态(暂停或播放)“暂停/播放”键(外部中断1)初始化设置(中断,定时器等设置)判断是否有键下?设置相关标志值,以及液晶显示模块提示显示NY“下一曲”键(外部中断0)“上一曲”键(T1扩展的外部中断)改变flag值,转入音乐播放函数,播放相应歌曲改变flag值,转入音乐播放函数,播放相应歌曲PG12864F显示模块对应显示相应歌名继续等待下一次按键操作到来(中断指令)4.2 编程方案设计 本次基于单片机的音乐播放器课程设计采用C语言进行编译和程序设计,除主程序外共包括延时子程序、放音子程序、系统提醒和歌名显示子程序、按键(中断)子程序等几个子程序。其中按键控制部分的设计主要利用中断来进行控制,由于本次实验要求实现音乐播放器“上一曲”,“下一曲”,“播放/暂停 ”这三个基本功能,因此需要三个外部中断源,而MCS-51系列单片机一共仅有两个外部中断,故考虑用定时/计数器来扩展一个外部中断源。方法是将定时/计数器设置成计数器方式2计数,计数初值设定为THx,TLx,均为0XFF,并将待扩展的外部中断源接到定时/计数器的外部脉冲计数引脚。一旦检测到该引脚一个负脉冲信号,计数器加1后便产生溢出中断,CPU响应后进入相应的服务程序。因此可把定时/计数器扩展成为一个边沿触发的外部中断源,而该定时器的溢出标志和中断服务程序就作为外部中断源的标志和中断服务程序。定时器T0工作在定时方式1,改变TH0及TL0,产生不同的音频频率。必须考虑到中断响应时间的影响,尤其在高音部分,若忽略中断响应时间,会使音频频率比标准值低几十Hz,相当于1/4音程,很容易听出来,对低音部分影响不大。一般中断响应时间为36个机器周期,经过反复试验取5个机器周期作为校正最为恰当,每个音符使用两个字节。低位字节(偶地址)代表音级,00H表示不发音(休止符),01H30H依次表示的音级为c、c、d、d、e、f、a3、a3、b3 ,详见表2.1。高位字节(奇地址)代表音符的时值(拍数),00H0FH依次表示拍数为1/8拍(0.10s)8拍(6.40s),见表2.2。乐曲的结束标志是两个字节:0FFH,0FFH。设计延时程序,来控制节拍,并在延时中判断是否有停止键按下,以便随时停止音乐。改变延时程序的延迟时间,即可实现歌曲的快慢演奏。主程序的任务是按顺序读取数据表中的字节,根据情况调用音级子程序和演唱子程序,启动定时器T0;通过延时控制节拍,并循环回音级子程序,等待演唱完毕。而要编写的乐谱按要求以音符字节数据表的形式存放在程序中,改变乐曲就是通过改变该数据表的内容来实现的。第5章 系统仿真及调试Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。5.1 仿真步骤:(1)正确安装Keil和Proteus软件。(最好在同一盘中)(2)在Keil软件中输入程序并编译,并设置产生相应HEX文件。图5.1.1KEIL软件设置输出HEX文件(3)根据硬件电路原理图在Proteus中画出仿真电路,双击单片机芯片,植入HEX文件 图5.1.2添加HEX文件 (4)启动仿真,显示屏提示系统开始启动。图5.1.3系统开始启动(5)启动完成后,系统即开始播放歌曲,显示屏随即显示当前播放歌曲歌名。(第一首歌曲你知道我在等你吗)图5.1.4 播放第一首歌曲你知道我在等你吗(6)按“下一曲”按键,系统播放第二首歌曲(月亮惹的祸)。图5.1.5播放第二首歌曲月亮惹的祸继续按“下一曲”按键,即可播放第三首歌曲(橄榄树)。图5.1.6第三首歌曲橄榄树(8)按“上一曲”按键,系统随即切换到上一首歌曲。 图5.1.7切换到上一曲你知道我在等你吗(9)按暂停“暂停/播放”按键。系统随即停止或继续播放当前歌曲。心得体会这次为期两周的单片机课程设计,课程设计的时间虽然并不太长,但是通过自己设计原理,编写程序,调试硬件,并最终完成设计。设计的题目虽然简单,但是却体现了一个完整的设计流程的所有内容,进一步巩固了课内所学的知识,进一步培养了我们亲身实践的能力,这对我们将来的工作和研究都是大有好处的。我想这也是课程设计的真正目的所在。 在这次课程设计过程中,我想要感谢老师。在这两个星期中,我遇到了许多的困难和挑战,尤其像在本次音乐播放器的课程设计中在解决“暂停/播放”按钮的中断问题时,我遇到了设计逻辑上的瓶颈,苦思冥想,并且调试了许多次后还是没有解决,最终在老师的耐心指导下找到了问题根源,并解决了这个难题,完成了课程设计的任务。课程设计的同时,我也发现了一些自己在学习和实践中存在的一些问题。刚开始课设的时候,还是显得有些茫然。但随着时间推移,自己在对问题的理解方面更加深入。尽管遇到了各种各样的问题,但最终还是在不懈努力下得以解决。这使我明白了做任何事情,只要用心去做,慢慢去了解,耐心去领会其中的原理,脚踏实地的一步一步按照原理和规律不断实践,不断修正,虚心听取他人意见,你就能最终把这件事情做好。最后,我衷心感谢在这次课程设计中所有帮助、支持和关心我的老师、同学!在此,我要向他们表示我深深的谢意和美好的祝福!参考文献1、王迎旭等.单片机原理及及应用. 2版.机械工业出版社,20122、胡汉才.单片机原理及其接口技术.3版.清华大学出版社,2010.3、戴灿金.51单片机及其C语言程序设计开发实例.清华大学出版社,2010附录A 音乐播放器硬件原理图附录B 程序清单#includereg52.h#include12864.hsbit Beep=P27;uchar Th0,Tl0;uchar Th1,Tl1;uchar flag=0;/音乐播放器作模式状态符uchar ZT=1;uchar i=0;uchar codeMusic1=0x54,0x58,0x52,0x42,0x32,0x42,0x58,0x34,0x34,0x34,0xa2,0x92,0x88,0x62,0xa2,0xb2,0x68,0xa2,0xb2,0x64,0x84,0x9f,0x54,0x58,0x52,0x42,0x32,0x42,0x58,0x32,0x32,0x32,0xa4,0x94,0x88,0x04,0x64,0xa4,0xb4,0x68,0xa4,0xb4,0x64,0x84,0x9f,0x9f,0x04,0x54,0xa2,0xa2,0xa2,0xb2,0xa3,0x53,0xa3,0xa4,0x04,0x54,0x92,0x82,0x82,0x72,0x73,0x33,0x63,0x64,0x02,0x64,0xa2,0xa2,0xa2,0xa2,0xa3,0xa3,0xa3,0xa3,0xb3,0x64,0x84,0x9f,0XFF;/音乐1你知道我在等你吗代码Uchar code Music2=0xd4,0xc4,0xa4,0x94,0xa8,0xa4,0x94,0x84,0x64,0x88,0x84,0x54,0x85,0x95,0xa5,0x94,0x94,0x94,0x94,0x94,0x84,0x88,0x98,0x84,0x64,0xd4,0xc4,0xa4,0x94,0x38,0xa4,0x94,0x84,0x64,0x88,0x84,0x54,0x84,0x94,0xa4,0x94,0x98,0x98,0XFF;/音乐2月亮惹的祸代码ucharcode Music3=0xd4,0xd4,0xa6,0xc6,0xc6,0xa4,0x94,0xa8,0xa8,0xd4,0xd4,0xa6,0xc5,0xc5,0xa4,0x94,0x88,0xd6,0xc6,0xd6,0xa4,0x84,0x94,0xa4,0xa4,0x94,0x94,0x94,0x8f,0x74,0x94,0x84,0x6f,0xd4,0xd4,0xe6,0xd6,0xe6,0xe6,0xa4,0xaf,0xef,0xa6,0xc4,0xc4,0xc6,0xa4,0x94,0xa8,0x96,0x86,0x9f,0XFF;/音乐2橄榄树代码/*延时1ms函数部分*/*延时1ms函数部分*/ void delay_1ms(uchar i)uchar j,k;for(j=0;ji;j+)for(k=0;k148;k+);/*音乐播放函数部分*/*音乐播放函数部分*/void PlayMusic(void)uchar yinfu,jiepai;uchar i,j;if(flag=1) while ( Music1i!=0XFFZT ) yinfu=(Music1i4);jiepai=(Music1i0X0F);if(yinfu=0)continue;Th0=KeyCodeyinfu*2;Tl0=KeyCodeyinfu*2+1;TR0=1;for(j=jiepai;j0;-j)delay_1ms(187); TR0=0;if(flag!=1)break; +i; else if(flag=2) while ( Music2i!=0XFFZT ) yinfu=(Music2i4);jiepai=(Music2i0X0F);if(yinfu=0)continue;Th0=KeyCodeyinfu*2;Tl0=KeyCodeyinfu*2+1;TR0=1;for(j=jiepai;j0;-j)delay_1ms(187);TR0=0;if(flag!=2)break;+i;else if(flag=3)while ( Music2i!=0XFFZT ) yinfu=(Music3i4);jiepai=(Music3i0X0F);if(yinfu=0)continue;Th0=KeyCodeyinfu*2;Tl0=KeyCodeyinfu*2+1;TR0=1;for(j=jiepai;j0;-j)delay_1ms(187);TR0=0;if(flag!=3)break;+i;/*主函数部分*/*主函数部分*/void main()P1=0XFF;TMOD=0X61;IT0=1 ;/*外部中断0的触发方式,0为电平触发方式,1为跳变沿触发方式*/TR0=0;TR1=1; /*由于单片机只有两个外部中断这里我用定时计数器 1 扩展了一个外部中断 */ET1=1;ET0=1;EA=1;TH1=0XFF;TL1=0XFF;welcome();shoudong_display();EX0=1;while(1)EA=1 ;EX1=1;IT1=1;PlayMusic();/*定时器0函数部分*/*定时器0函数部分*/time0() interrupt 1 TH0=Th0;TL0=Tl0;Beep=Beep;/*定时器1扩展外部中断*/time1() interrupt 3 /*用于实现“上一曲” 按键 */flag-;flag=flag%4; if(flag=0) shoudong_display(); else if(flag=1) nizhidao(); else if(flag=2) yueliang(); else ganlanshu(); /*外部中断0函数部分*/*外部中断0函数部分*/void interrupt0() interrupt 0 /*用于实现“下一曲” 按键 */flag+;flag=flag%4; if(flag=0) shoudong_display(); else if(flag=1) nizhidao(); else if(flag=2) yueliang(); else ganlanshu(); void interrupt1() interrupt 2ZT=ZT=1?0:1;#includereg52.h#include12864.hsbit wr=P20;sbit rd=P21;sbit ce=P22;sbit cd=P23;sbit rst=P24;uchar code HZ0832=/*- 文字: 欢 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x00,0x80,0x00,0x80,0xFC,0x80,0x04,0xFC,0x05,0x04,0x49,0x08,0x2A,0x40,0x14,0x40,0x10,0x40,0x28,0xA0,0x24,0xA0,0x45,0x10,0x81,0x10,0x02,0x08,0x04,0x04,0x08,0x02,/*- 文字: 迎 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x00,0x00,0x20,0x80,0x13,0x3C,0x12,0x24,0x02,0x24,0x02,0x24,0xF2,0x24,0x12,0x24,0x12,0x24,0x12,0xB4,0x13,0x28,0x12,0x20,0x10,0x20,0x28,0x20,0x47,0xFE,0x00,0x00,/*- 文字: 您 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x09,0x00,0x09,0x00,0x11,0xFC,0x32,0x04,0x54,0x48,0x99,0x50,0x11,0x48,0x12,0x44,0x14,0x44,0x11,0x40,0x10,0x80,0x02,0x00,0x51,0x04,0x51,0x12,0x90,0x12,0x0F,0xF0,/*- 文字: 使 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x10,0x40,0x10,0x40,0x1F,0xFE,0x20,0x40,0x20,0x40,0x67,0xFC,0x64,0x44,0xA4,0x44,0x27,0xFC,0x20,0x40,0x22,0x40,0x21,0x40,0x20,0x80,0x21,0x40,0x22,0x30,0x2C,0x0E,/*- 文字: 用 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x00,0x00,0x3F,0xF8,0x21,0x08,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,0x21,0x08,0x21,0x08,0x41,0x08,0x41,0x28,0x80,0x10, /*- 文字: M-*/*- 新宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x00,0x00,0x04,0x10,0x0C,0x18,0x0A,0x18,0x0A,0x28,0x12,0x24,0x11,0x24,0x21,0x44,0x21,0x46,0x40,0xC2,0x40,0x82,0x40,0x82,0x80,0x01,0x80,0x01,0x00,0x00,0x00,0x00,/*- 文字: P-*/*- 新宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x07,0x00,0x04,0xE0,0x04,0x18,0x04,0x04,0x04,0x04,0x04,0x18,0x04,0x60,0x05,0x80,0x06,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,/*- 文字: 3-*/*- 新宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x0F,0xFC,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x0F,0xFC,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x0F,0xFC,; 部分输出文字代码省略.void delay(uint t)uint i,j;for(i=0;it;i+) for(j=0;j50;j+);uchar read_status()uchar status;rd=0;wr=1;ce=0;cd=1;status=P1;return status;void check_status()uchar s;while(s0x80)!=0x80) s=read_status();/等待位1,2置为。命令读写准备好。数据读写准备好void write_data(uchar dat)rd=1;cd=0;ce=0;wr=0;P0=dat;delay(10);wr=1;ce=1;cd=1;void write_cmd1(uchar cmd)rd=1;cd=1;ce=0;wr=0;P0=cmd;delay(10);wr=1;ce=1;cd=0;/先送参数,再送指令void write_cmd2(uchar dat,uchar cmd)check_status();write_data(dat);check_status();write_cmd1(cmd);void write_cmd3(uchar data1,uchar data2,uchar cmd)check_status();write_data(data1);check_status();write_data(data2);check_status();write_cmd1(cmd);void display_HZ(uchar x,uchar y,uchar *hz)/x 0-3 y 0-7uchar i,j=0;for(i=0;i16;i+) write_cmd3(j/2)4)|(y*2),x,0x24);/地址指针设置.低地址,高地址,命令 write_cmd2(hzj+,0xc0); write_cmd2(hzj+,0xc0);void init_12864()rst=1;delay(10);rst=0;wr=1;rd=1;ce=1;cd=1;rst=1;check_status();wr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论