




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机课程设计东 北 石 油 大 学课 程 设 计课 程 单片机原理及应用课程设计 题 目 音乐播放电路设计 院 系 电子科学学院 专业班级 应物14-2班 学生姓名 郭昊 学生学号 140901340223 指导教师 2016年7月9日第1章 概 述1.1 引言本设计是以AT89C51芯片的电路为基础,外部加上放音设备,以此来实现音乐演奏控制器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏出优美动听的音乐。用户可以按照自己的喜好选择音乐并将其转化成机器码存入单片机的存储器中。对于不同型号的单片机只需要相应的改变一下地址即可。该软、硬件系统具有很好的通用性,很高的实际使用价值,为广大
2、的单片机和音乐爱好者提供了很好的借鉴。本文设计的音乐盒,是基于单片机设计制作的电子式音乐盒。与传统的机械式音乐盒相比更小巧,音质更优美且能演奏和弦音乐。电子式音乐盒动力来源是电池,制作工艺简单,可进行批量生产,所以价格便宜。基于单片机制作的电子式音乐盒,控制功能强大,可根据需要扩展其显示、选歌功能,使用方便。根据存储容量的大小,可以尽可能多的存储歌曲。另外,可以设计彩灯外观效果,使音乐盒的功能更加丰富。1.2 设计意义音乐播放器的起源,可追溯至中世纪欧洲文艺复兴时期。当时为使教会的钟塔报时,而将大小的钟表装上机械装置,被称为“可发出声音的组钟”。音乐播放器有着300多年的发展历史,是人类文明发
3、展的历史见证。传统的音乐播放器多是机械音乐盒,其工作原理是通过齿轮带动一个带有铁钉的铁桶转动,铁桶上的铁钉撞击铁片制成的琴键,从而发出声音。但是,机械式的音乐盒体积比较大,比较笨重,且发音单调。水、灰尘等外在因素,容易使内部金属发音条变形,从而造成发音跑调。本文设计的音乐播放器,是基于单片机设计制作的电子式音乐播放器。与传统的机械式音乐播放器相比更小巧,音质更优美且能演奏和弦音乐。电子式音乐播放器动力来源是电池,制作工艺简单,可进行批量生产,所以价格便宜。基于单片机制作的电子式音乐播放器,控制功能强大,可根据需要选歌,使用方便。根据存储容量的大小,可以尽可能多的存储歌曲。另外,可以设计彩灯外观
4、效果,使音乐播放器的功能更加丰富。1.3 设计内容主要工作过程是通过按下功能键实现上一首和下一首及暂停播放,同时有数码管显示当前播放歌曲的序号,蜂鸣器播放出音乐,当播放最后一首夜曲时还伴有彩灯闪烁。功能键盘采用按键开关,通过单片机P1口控制,按键控制歌曲的顺序播放,循环播放,随机播放,以及上一曲,下一曲,暂停/播放,结束。蜂鸣器由单片机的P3.7口控制,实现歌曲播放。LCD播放当前歌曲时,LCD显示屏上显示当前歌曲的序号和歌曲名,并提示下一曲即将要播放的歌曲。利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演乐曲(内存四首乐曲)。1.4 设计方案设计一个基于AT89C51系列单
5、片机的音乐播放器,利用按键切换演奏出不同的乐曲。蜂鸣器发出某个音调,与之相对应的LED亮起。使用五个按键,分别是设置、上一曲、下一曲、暂停/播放和结束五个按键。第2章 系统的总体设计2.1 音乐播放器的工作原理通过单片机的定时器产生一定长度的方波,方波脉冲驱动蜂鸣器发声。要产生音频脉冲,只需算出某一音频的周期(1/音频),然后取半周期的时间定时。利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O口反相,就可在I/O脚上得到此频率的脉冲。如中音D0,频率为523HZ,其周期T=1/523=1912微秒,因此只要令计数器定时1912/2=956,
6、在每计数956次时将I/O口反相,就可得到中音D0(523HZ)。当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动数码显示部分,在LED显示歌曲号,也可使彩灯长亮和闪烁。数码管采用共阳极数码管,通过单片机P2口控制,实现歌曲序号的显示;功能键盘采用按键开关,通过单片机P3口控制,实现歌曲播放顺序的调换和暂停播放功能;蜂鸣器由单片机的P3.7口控制,实现歌曲播放;彩灯是由普通发光二极管代替,能实现单色长亮和闪烁效果,通过单片机的P0口控制。2.2 总体设计框图单片机接+5V电源供电,晶振电路产生单片机所需时钟信号,通过功能键产生外部中断,控制音乐盒的
7、上一首和下一首曲目,再由I/O接口输出控制蜂鸣器发声,LED显示,彩灯亮或闪烁。另外,复位电路在于营造一个程序运行的初始状态,在程序出错时,重新启动单片机工作。蜂鸣器AT89C51按键输入模块 LED显示灯LCD显示屏晶振复位电路 图2-1总体设计框图编程设置好定时时间,通过编程器写入AT89C51单片机系统。由AT89C51单片机的定时器每秒钟通过P2.0-P2.7口控制LED数码显示,复位信号由按钮输入,每按下一次,系统恢复原设定状态。总体设计框图如图2-1所示。第3章 硬件电路设计3.1 晶振复位电路3.1.1 晶振电路在AT89C51单片机内部有一振荡电路,只要在单片机的XTAL1和X
8、TAL2引脚外接晶振,就改成了自激振荡器并在单片机内部产生时钟脉冲信号。如图3-1所示,单片机工作的时间基准是由时钟电路提供的。在单片机的XTAL1和XTAL2两个引脚间,接一个晶振及两只电容就构成了时钟电路。图3-1晶振复位电路电路中的器件可以通过计算和实验确定,也可以参考一些典型电路参数。电路中,电容器C1和C2对晶振器频率有微调作用,通常取值范围30+10pF;石英晶体选择12MHZ都可以。其结果只是机器周期时间不同,影响计算器的计数初值。3.1.2 复位电路图3-2 复位电路51单片机的复位是由外部的复位电路来实现的。复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑
9、制噪声。单片机需要复位以后才能正常工作,复位的目的就是使单片机处于一个基准点,在这个基准点,程序将会从C51的main()主函数的第一条语句开始执行。复位工作是一个纯硬件的工作,一般是在上电开始几毫秒内执行完毕。复位的过程很简单,在电源刚刚合上时,电流经过电阻对电解电容器充电,这样在电阻上就形成一个电压,对于单片机来说,这个电压就是复位电压。经过若干毫秒以后,电解电容器被充满电,这时电阻就没有电流流过,电阻两端也就没有电压,单片机的复位脚电压恢复为0,复位工作结束,单片机开始工作。上电复位:上电复位电路是种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。上电复位
10、是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。 3.2 LED显示电路3.2.1 二极管二极管是半导体设备中的一种最常见的器件,大多数半导体最是由搀杂半导体材料制成(原子和其它物质)发光二极管导体材料通常都是铝砷化稼,在纯铝砷化稼中,所有的原子都完美的与它们的邻居结合,没有留下自由电子连
11、接电流。在搀杂物质中,额外的原子改变电平衡,不是增加自由电子就是创造电子可以通过的空穴。这两样额外的条件都使得材料更具传导性。带额外电子的半导体叫做N型半导体,由于它带有额外负电粒子,所以在N型半导体材料中,自由电子是从负电区域向正电区域流动。带额外“电子空穴”的半导体叫做P型半导体,由于带有正电粒子。电子可以从另一个电子空穴跳向另一个电子空穴,从从负电区域向正电区域流动。因此,电子空穴本身就显示出是从正电区域流向负电区域。二极管是由N型半导体物质与P型半导体物质结合,每端都带电子。这样排列使电流只能从一个方向流动。当没有电压通过二极管时,电子就沿着过渡层之间的汇合处从N型半导体流向P型半导体
12、,从而形成一个损耗区。在损耗区中,半导体物质会回复到它原来的绝缘状态-所有的这些“电子空穴”都会被填满,所有就没有自由电子或电子真空区和电流不能流动。为了除掉损耗区就必须使N型向P型移动和空穴应反向移动。为了达到目的,连接二极管N型一方到电流的负极和P型就连接到电流的正极。这时在N型物质的自由电子会被负极电子排斥和吸引到正极电子。在P型物质中的电子空穴就移向另一方向。当电压在电子之间足够高的时候,在损耗区的电子将会在它的电子空穴中和再次开始自由移动。损耗区消失,电流流通过二极管。3.2.2 发光二极管的性能发光二极管LED(Light-EmittingDiode)是能将电信号转换成光信号的结型
13、电致发光半导体器件。发光二极管LED主要特点: (1)在低电压(1.52.5V)、小电流(530mA)的条件下工作,即可获得足够高的亮度。 (2)发光响应速度快(10-710-9 s),高频特性好,能显示脉冲信息。 (3)单色性好,常见颜色有红、绿、黄、橙等。 (4)体积小。发光面形状分圆形、长方形、异形(三角形等)。其中圆形管子的外径有1、2、3、4、5、8、10、12、15、20(mm)等规格,直径1mm的属于超微型LED。 (5)防震动及抗冲击穿性能好,功耗低,寿命长。由于LED的PN结工作在正向导通状态,本射功耗低,只要加必要的限流措施,即可长期使用,寿命在10万小时以上,甚至可达10
14、0万小时。 (6)使用灵活,根据需要可制成数码管、字符管、电平显示器、点阵显示器、固体发光板、LED平极型电视屏等。 (7)容易与数字集成电路匹配。3.2.3 显示接口电路的设计在单片机应用系统中,使用的显示器主要有LED显示器(发光二极管显示器)。这种显示器成本低廉,配置灵活,与单片机接口方便。在本系统的设计中采用LED显示器。LED显示器由8位LED数码管组成,用于显示系统在各种不同条件下的状态。用单片机驱动LED数码管有很多方法,按显示方式分,有静态显示和动态显示,按译码方式分为硬件译码和软件译码。静态显示是显示驱动电路具有输出锁存功能,单片机将要显示的数据送出后不再控制LED,直到下次
15、显示时再传送一次新的显示数据。静态显示的数据稳定,占用CPU时间少。动态显示要CPU时刻对显示器件进行数据刷新,显示数据会有闪烁,占用的CPU时间多。这两种显示方式各有利弊:静态显示虽然数据显示稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的电路硬件较多;动态显示虽然闪烁,占用的CPU时间多,但使用的硬件少,能节省线路板空间。在本设计中由于显示部分比较简单,所以选用了静态显示方式,LED显示器由74LS373来驱动,为了扩展外部存储器需一块74LS373(地址锁存器) 。LED发光器件一般常用的有两类:数码管和点阵。常用的数码管一般为8字型数码管,分为A、B、C、D、
16、E、F、G、DP八段,其中DP为小数点。数码管常用的有10根管脚,每一段有一根管脚,另外两根管脚为一个数码管的公共端,两根之间相连通。数码管从电路上来看可分为共阴和共阳两种,在本设计中用了共阳的LED。3.3 时钟振荡电路AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自然振荡器。外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1,C2虽然没有什么严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序
17、及温度稳定性。如果使用石英晶体,我们推荐电容使用30PF10PF,而如果使用陶瓷振荡器建议选择40PF10PF。用户也可以采用外部时钟。采用外部时钟的电路如图示。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。振荡器电路如图3-3所示。图3-3 时钟振荡电路3.4 按键电路按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相应的I/O端口形成一个负脉冲。闭合和释放过程都要经过一
18、定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。本文采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生互相影响。按键电路如图3-4所示。图3-4 按键电路键盘是一组按键的集合,它是最常用的单片机输入设备。操作人员可以通过键盘输入数据或命令,可以实现简单的人机通信。键盘可以分为独立连接式和矩阵式两种,每一种按其译码方式都可以分为编码及非编码两种。编码键盘通过硬件的方法产生键码,能自动的识
19、别按下的健并产生相应的键码值,以并行或串行的方式发送给CPU,它的接口简单,响应速度快,但需要专用的硬件电路;非编码键盘通过软件的方法产生键码,它不需要专用硬件电路,结构简单,成本低廉,但响应速度没有编码键盘快。为了减少电路的复杂程度,节省单片机的I/O接口,因此非编码键盘在单片机键盘中使用非常广泛。(1)键盘输入的特点 键盘实质上是一级按键开关的集合。通常,键盘开关利用了机械触点的合、断作用。 (2)按键的确认 键的闭合与否,反映在行线输出电压上就呈现高电平或低电平,如果高电平表示键断开,低电平则表示键闭合,通过对行线电平高低状态的检测,便可确认按键按下与否。为
20、了确保CPU对一次按键动作只确认一次按键有效,必须消除抖动的影响。 第4章 软件设计4.1 主程序流程图开机加电关闭定时器T0、T1A键函数是A键?有按键输入?读取键盘等待按键按下置定时器T0、T1的工作方式NNYYNY是B键?B键函数NYC键函数是C键?N结束图4-1 主函数程序框图本设计采用了自定义下的流程图。主要程序流程有:主程序、判断有无按键子程序、键盘扫描子程序、显示键号/歌曲号子程序、开机画面子程序、按键值播放歌曲子程序等。程序中使用了两个定时中断,定时中断0用于产生整个音程的频率,以便驱动扬声器。程序的总体流程是当P1由按键按下时,读键盘,并储存键值,若为F键则通过查
21、表的方式,调用字符串下手键号/曲目子程序,将键号显示出来。主程序流程图如图4-1所示。4.2 延时模块延时程序一般是通过一层或几层循环实现的,整个过程延时的时间是程序执行的指令总次数乘以每条指令所用的时间。由于该系统的晶振选用的是12M,所以执行指令所用的时间是2ms。程序如下:void delay_ms(uint xms) uint x,y; for(x=xms;x>0;x-) for(y=110;y>0;x-) 4.3 函数初始化模块函数初始化程序即在主函数内对某些参数和标记位赋初值编写成一个函数,这样便是程序更具有条理化,清晰易懂。由于整个程序要用到定时器0和定时器1,所以,
22、初始化程序主要是对定时器相关内容作说明。程序如下:void Initialsound(void) Sound_Temp_TH1=(65536-(1/1200)*SYSTEM_OSC)/256; /计算TL1应装入的初值Sound_Temp_TL1=(65536-(1/1200)*SYSTEM_OSC)%256; /计算TH1应装入的初值TH1=Sound_Temp_TH1;TL1=Sound_Temp_TL1;TMOD=0x11;ET0=1;ET0=0;TR0=0;TR1=0;EA=1;4.4 顺序播放模块顺序播放函数设计主要实现的是歌曲从1-4的播放,当播放歌曲时,播放模块(即上一曲、下一曲
23、、暂停/播放和结束播放)可进行相应的操作,实现了音乐播放的切换功能。顺序播放函Order()函数代码如下:void Order() uint i; k=8; init(); for(i=0;i<15;i+) WriteData(tabi); /LCD写数据函数写第一行 mydelay(50); mydelay(1000); WriteCMD(0x80+0x40+2);/将指针设到第二行空两字符 for(i=0;i<6;i+) WriteData(tab1i); mydelay(50); InitialSound();/发音初始化程序 Getch(); /扫描键盘,获取键值 if(k
24、=0) /若键值为0 uint i; init(); for(i=0;i<10;i+) WriteData(tab2i); /写第一首歌曲序号 mydelay(50); mydelay(1000); WriteCMD(0x80+0x40); /转到第二行 for(i=0;i<9;i+) Play(Music_Girl,0,3,360);/播放第一首歌 mydelay(500); for(i=0;i<11;i+) WriteData(tab4i); mydelay(50); mydelay(1000); WriteCMD(0x80+0x40); for(i=0;i<11;
25、i+) WriteData(tab5i); mydelay(50); Play(Music_Jingle,0,3,360); mydelay(500); for(i=0;i<10;i+) WriteData(tab6i); mydelay(50); mydelay(1000); WriteCMD(0x80+0x40); for(i=0;i<6;i+) Play(Music_Two,0,3,360); mydelay(500); for(i=0;i<10;i+) mydelay(1000); WriteCMD(0x80+0x40); for(i=0;i<6;i+) Wri
26、teData(tab9i); mydelay(50); Play(Music_Jingle,0,3,360); mydelay(500); break; 4.5 键盘扫描函数流程图开始 N键盘扫描有按键按下?去抖动Y确定按键的物理位置计算键码等待释放返回返回图4-2键盘扫描子程序流程按键扫面程序事实上就是去抖动程序。即先判断是否有键按下,若有则判断本次按键值和上次扫描到的的是否相同,如果相同,将扫描计数器加1:;如果不同扫描计数器1;保存按键值以便和下次扫描键值比较。如果没有键按下,则认为按键值已释放。键盘扫描子程序流程如图4-2所示。其源代码如下:uchar GetKey () uchar
27、i, j, k = 0; uchar KeyScanCode = 0xEF, 0xDF, 0xBF, 0x7F; /键盘扫描码 uchar KeyCodeTable =0xEE,0xED,0xEB,0xDE,0xDD,0xDB, 0xBE,0xBD,0xBB,0x7E,0x7D,0x7B; /键盘特征码 P3 = 0x0F;/扫描键盘获取按键序号 if (P3! = 0x0F) for (i = 0; i< 4;i+) P3 = KeyScanCodei; for (j = 0;j < 3;j+) k = i * 3 + j; if (P3 = KeyCodeTablek) ret
28、urn k; else return 0xFF;AT89C51单片机的P3口用作键盘I/O口,键盘的列线接到P3口的低4位,键盘的行线接到P3口的高4位。列线P3.0-P3.3分别接有4个上拉电阻到正电源+5V,并把列线P3.0-P3.3设置为输入线,行线P3.4-P3.7设置为输出线。4根行线和4根列线形成16个相交点。 (1)检测当前是否有键被按下。检测的方法是P3.4-P3.7输出全“0”,读取P3.0-P3.3的状态,若P3.0-P3.3为全“1”,则无键闭合,否则有键闭合。 (2)去除键抖动。当检测到有键按下后,延时一段时间再做下一步的检测判断。 (3)若有键被按下,应识别出是哪一个
29、键闭合,方法是对键盘的行线进行扫描。P3.4-P3.7按下表所示4种组合依次输出。(4)在每组行输出时读取P3.0-P3.3,若全为“1”,则表示为“0”这一行没有键闭合,否则有键闭合。由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值。4.6 主要程序代码void Getch() uchar X,Y,Z; P1=0xFF; P1=0xF3; /先对P0置数,行扫描 if(P1!=0xF3) /判断是否有键按下 delay1(); /延时 if(P1!=0xF3)/确认按键按下X=P3; X=P1; /保存行扫描时有键按下时状态 P1=0xFC; /列扫
30、描 Y=P1; /保存列扫描时有键按下 Z=X|Y; /取出键值 switch(Z) /判断键值 case 0xF9: k=0;break; case 0xF5: k=1;break; case 0xFA: k=2;break; case 0xF6: k=3;break; void Delay() uint uiCount; for(uiCount=0;uiCount<250;uiCount+);void WriteCMD(uchar Commond) /写指令函数 Delay(); /先延时 LCDE=1; /然后把LCD改为写入命令状态 LCDRS=0; LCDRW=0; LCDPO
31、RT=Commond; /在输出命令 LCDE=0; /最后执行命令void WriteData(uchar dat) /LCD写数据函数 Delay(); /先延时 LCDE=1; /把LCD改为写入数据状态 LCDRS=1; LCDRW=0; LCDPORT=dat; /在输出数据 LCDE=0; /显示数据 void InitialSound(void) BeepIO=0; Sound_Temp_TH1=(65535-(1/1200)*SYSTEM_OSC)/256;/计算TL1应装入的初值 Sound_Temp_TL1=(65535-(1/1200)*SYSTEM_OSC)/256;/
32、计算TH1应装入的初值 TH1=Sound_Temp_TH1; TL1=Sound_Temp_TL1; TMOD=0x11; ET0=1; ET1=0; TR0=0; TR1=0; EA=1;void BeepTimer0(void) interrupt 1/音符发生中断 BeepIO=!BeepIO; TH0=Sound_Temp_TH0; TL0=Sound_Temp_TL0;第5章 调试与仿真5.1 Keil C51单片机软件开发系统5.1.1 系统的整体结构C51工具包的整体结构中,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(ID
33、E),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。5.1.2 采用KEIL 开发的89C51单片机应用程序步骤(1)在uVision 集成开发环境中创建新项目(Project),扩展文件名
34、为.UV2,并为该项目选定合适的单片机CPU器件(本设计采用ATMEL 公司下的AT89C51)(2)用uVision 的文本编辑器编写源文件,可以是汇编文件(.ASM),也可以使C语言文件(扩展名.C),并将该文件添加到项目中去。一个项目文件可以包含多个文件,除了源程序文件外,还可以是库文件、头文件或文本说明文件。(3)通过uVision 2 的相关选择项,配置编译环境、连接定位器以及Debug调试器的功能。(4)对项目中的源文件进行编译连接,生成绝对目标代码和可选的HEX文件,如果出现编译连接错误则返回到第2步,修改源文件中的错误后重构整个项目。(5)对没有语法错误的程序进行仿真调试,调试
35、成功后将HEX文件写入到单片机应用系统的ROM中。5.2 Proteus的操作5.2.1 硬件电路图的接法操作 (1)放置选择(删除)元器件(2)移动元器件(3)缩放视图(4)连接导线(5)仿真,调试5.3 单片机系统PROTEUS设计Proteus强大的单片机系统设计与仿真功能,使它可成为单片机系统应用开发和改进手段之一。全部过程都是在计算机上通过Proteus来完成的。其过程一般也可分为三步:(1)Proteus电路设计,首先选择元器件,然后接插件、连接电路等。(2)Proteus源程序设计,通过KEIL软件对系统的程序进行设计,通过编辑程序、保存程序、编译程序、调试程序来生成目标代码文件(*.hex)。(3)将我们生成的源程序目
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025合同法下租赁合同提前终止装修处理办法
- 乙方承包安装合同样本
- 买房附件合同样本
- 代付协议模板
- 员工借调协议合同
- 会所酒吧转让合同样本
- 人力资源服务派遣协议书范例二零二五年
- 股权合作协议范例
- 与拆迁公司合同样本
- 幼儿园教师聘用协议合同书范例
- 第五节 胡静-常用正颌外科手术
- 矿井开拓方案比较
- DB23-黑龙江省建设工程施工操作技术规程-城镇道路工程.doc
- 小学数学专题讲座小学数学计算能力的培养PPT
- 《远离浮躁,静心学习》ppt课件
- 二维数控精密工作台设计说明书
- 河北省衡水市安平中学2020-2021学年高一下学期第一次月考生物试题
- 项目研究助力区域教学改进
- 初中化学优质课评分表.
- LKJ-2000课件
- 五星级大酒店项目全套可行性分析报告(完整版)
评论
0/150
提交评论