单片机系统开发与应用工程实习报告基于AT89S52单片机的遥控器设计.doc

上传人:文库蛋蛋多 文档编号:4147451 上传时间:2023-04-07 格式:DOC 页数:28 大小:857KB
返回 下载 相关 举报
单片机系统开发与应用工程实习报告基于AT89S52单片机的遥控器设计.doc_第1页
第1页 / 共28页
单片机系统开发与应用工程实习报告基于AT89S52单片机的遥控器设计.doc_第2页
第2页 / 共28页
单片机系统开发与应用工程实习报告基于AT89S52单片机的遥控器设计.doc_第3页
第3页 / 共28页
单片机系统开发与应用工程实习报告基于AT89S52单片机的遥控器设计.doc_第4页
第4页 / 共28页
单片机系统开发与应用工程实习报告基于AT89S52单片机的遥控器设计.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《单片机系统开发与应用工程实习报告基于AT89S52单片机的遥控器设计.doc》由会员分享,可在线阅读,更多相关《单片机系统开发与应用工程实习报告基于AT89S52单片机的遥控器设计.doc(28页珍藏版)》请在三一办公上搜索。

1、单片机系统开发与应用工程实习报告选题名称: 基于AT89S52单片机的遥控器设计 系(院): 计算机工程学院专 业: 班 级: 姓 名学 号: 指导教师: 学年学期: 2009 2010 学年 第 2 学期2010年 5 月 30 日摘要: 单片机红外遥控器可以通过非接触式实现对控制系统的操纵,不影响、干扰其他设备,编解码容易,可进行多路通信。单片机是将中央处理器、随机存储器、只读存储器、定时器芯片和一些输入/输出接口电路集成在一个芯片上的微控制器。红外通信是利用950nm近红外波段的红外线作为传递信息的媒体,即通信信道。发送端采用脉冲调制方式,将二进制数字信号调制成某一频率的脉冲序列,并驱动

2、红外发射二级管PH303以光脉冲的形式发送出去,接收端红外接收头PH302将接收到的光脉冲转换成电信号,再经过放大、滤波等处理后送给解调电路进行解调,还原为二进制数字信号后的输出。红外遥控系统由发射和接收两大部分组成,发射部分由键盘电路、遥控编码调制电路、放大器、红外发送二极管等组成,当2X8键盘有键按下时,遥控编码电路通过键盘行列扫描获得所按键的键值,键值通过编码获得一串键值代码,用编码脉冲去调制40KHz的载波信号,放大后通过红外发射二极管发射出去。接收电路将接收的信号通过放大电路将信号放大,经过解调解码后将信号整形输出,通过单片机控制LED灯的亮灭。关键字:红外遥控器;单片机;红外通信;

3、PH303;PH302目 录1、课题综述12、系统分析22.1红外通信原理22.2单片机系统设计22.3红外发射单元62.4红外接收单元63、系统设计73.1硬件设计73.2 软件设计94、程序清单104.1遥控发送程序清单:104.2遥控接收程序清单:18总 结23参考文献241、课题综述课题名称:基于AT89S52单片机的遥控器设计。课题意义:随着电子技术的飞速发展,新型大规模遥控集成电路的不断出现,使遥控技术有了日新月异的发展。遥控装置的中心控制部件已从早期的分立元件、集成电路逐步发展到现在的单片微型计算机,智能化程度大大提高。近年来,遥控技术在工业生产、家用电器、安全保卫以及人们的日常

4、生活中使用越来越广泛。红外遥控器可以通过非接触式实现对控制系统的操纵,不影响周边环境,干扰其他电器设备,编解码容易,可进行多路通信。在一些比较恶劣的环境中使用遥控器,可以保证操作者的安全,它设计简单,价格低廉,是一种应用很广的短程遥控系统。通过研究遥控器的设计可以学习单片机系统的开发,单片机的工作方式和功能的实现,了解红外通信的原理,实现短程遥控,更系统全面的接触单片机。课题要求:基于AT89S52单片机遥控器晶振采用12MHz。单个遥控发射模块可以控制多个控制对象,遥控的距离5-10m,并有一定的角度范围。预期目标:单片机红外遥控器一套。关键技术:制作遥控器需要解决很多问题,比如单片机原理和

5、最小系统设计、红外发射和接收器的工作原理、键盘的扫描等,最终还要编写汇编语言调试运行实现既定的结果。2、系统分析2.1红外通信原理红外通信是利用950nm 近红外波段的红外线为传递信息的载体,即通信信道。发端用脉时调制(PPM)方式,将二进制数字信号调制成某一频率的脉冲序列, 并利用该脉冲序列驱动红外线发射管以光脉冲的形式向外发射红外光, 而接收端将接收到的光脉冲信号转换成电信号,在经过放大、滤波等处理后送给解调电路进行解调, 还原成二进制数字电信号后输出。简而言之,红外通信的实质就是对二进制数字信号进行调制与解调,以便利用红外信道进行传输, 而红外通信接口就是针对红外信道的调制解调器。采用脉

6、宽调制的串行码,以脉宽为0.5ms、间隔0.5ms、周期为1ms 的组合表示二进制的“0”;以脉宽为0.5ms、间隔1ms、周期为2ms 的组合表示二进制的“1”,如图1-1所示。上述“0”和“1”组成的42 位二进制码经40khz 的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射。0.5ms1 ms“0”“1”0.5ms2 ms图2-1 遥控码的“0”和“1”2.2单片机系统设计一个典型的单片机系统主要由单片机、晶振和复位电路、输入控制电路、输出显示电路以及外围功能器件5个部分组成。如图2-2。晶振、复位电路输入控制单片机输出显示外围功能

7、器件图2-2 单片机系统的组成单片机最小系统是单片机能够正常运行的最基本电路系统,如图2-3。通过最小系统与外围设备的链接可以实现不同的功能。图2-3 单片机最小系统原理图2.2.1单片机AT89S52 AT89S52片内集成256字节程序运行空间、8K字节Flash存储空间,支持最大64K外部存储扩展。根据不同的运行速度和功耗的要求,时钟频率可以设置在0-33M之间。片内资源有4组I/O控制端口、3个定时器、8个中断、软件设置低能耗模式、看门狗和断电保护。可以在4V到5.5V宽电压范围内正常工作。2.2.2复位电路复位电路是维持单片机最小系统运行的基本模块。复位电路通常分为两种:上电复位和手

8、动复位。如图2-4。有时系统在运行过程中出现程序跑飞的情况,在程序开发过程中,经常需要手动复位。所以本次设计选用手动复位。当单片机振荡器运行时,在此引脚出现2个机器周期的的高电平(有低电平到高电平的跳变),将使单片机复位。因为人用手将按键按下时的时间远大于2个机器周期,所以便能产生复位。图2-4 复位电路原理图2.2.3晶振电路晶振电路是维持单片机最小系统运行的基本模块,如图2-5。它为单片机提供时钟脉冲信号,没有晶振电路单片机便不能正常工作。本单片机系统采用的晶振频率为12MHz,晶振2端分别接入单片机的第18、19引脚,并联2个30pF陶瓷电容帮助起振。它的时钟周期是1/12us,即它的一

9、个机器周期为1us。图2-5晶振电路原理图2.2.4按键电路2*8矩阵键盘是一种简易键盘设计,如图2-6。与编码键盘相比,矩阵键盘不需要专门的编码芯片,从而成本低,设计简单。键盘的原理是在一端接入高电平,用单片机一个端口去检测按键另一端的电平,另一端是低电平时,说明按键被按下。2*8矩阵键盘,分为2行8列,在每列加上拉电阻(加高电平),然后用程序控制行扫描和列扫描,判断具体哪个按键被按下。由于本身键盘的特点,当手按下按键时,波形不是稳定的,会有一定的抖动。所以设计程序是需要加入消除抖动处理,消除抖动程序调用一个10ms的延迟程序即可。图2-6 2*8按键原理图2.3红外发射单元红外发射单元由单

10、片机最小系统和按键电路,红外发射器电路等组成,遥控发射单元框图如图2-7。复位电路晶振电路AT89S52 单片机电源电路红外发射器按键电路图2-7 红外遥控发射单元框图2.4红外接收单元 红外遥控接收单元由单片机最小系统和红外接收器、控制对象电路等组成,本实验控制对象和16个LED发光二极管。遥控接收单元框图如图2-8。复位电路晶振电路AT89S52单片机电源电路控制对象红外接收器图2-8 红外遥控接收单元框图3、系统设计3.1硬件设计3.1.1红外发射器电路原理图电源电路为单片机以及其他模块提供标准5V电源。晶振模块为单片机提供时钟标准,使系统各部分能协调工作。复位电路模块为单片机提供复位功

11、能。单片机作为主控制器,根据输入信号和单片机程序对系统进行相应的控制。SW1-SW16按键按下时红外发射器发出相应的脉冲序列。红外发射单元根据单片机控制器计算的结果,向红外接收器发送相应的红外脉冲序列,红外发射器电路原理图如图3-1所示。图3-1 红外发射器电路原理图3.1.2 红外接收器电路原理图电源电路为单片机以及其他模块提供标准5V电源。晶振模块为单片机提供时钟标准,使系统各部分能协调工作。复位电路模块为单片机提供复位功能。单片机作为主控制器,根据输入信号和单片机程序对系统进行相应的控制。接收模块用来接收红外发射器发出的脉冲序列,并传递给单片机,发光二极管作为被控制的对象,单片机通过对红

12、外接收器电路接收到的脉冲序列进行译码,然后控制相应的发光二极管发光。在实际使用中,电路接上隔离电路和驱动电路就可以用来控制电路开关。红外接收器电路原理图如图3-2所示。图3-2 红外接收器电路原理图3.2 软件设计3.3.1 遥控发射流程图程序开始是对单片机进行初始化设置,循环扫描判断是否有按键按下,如果有按键按下就发射相应的红外信号,遥控发射程序流程图如图3-3.开 始初 始 化键按下?查是哪个按键按下发送相应的脉冲信号NY图3-3 遥控发射程序流程图3.3.2 遥控接收程序流程图遥控接收通过中断接收遥控信号,通过延时判断是否有开始脉冲,如果有开始脉冲就开始接收脉冲序列,根据脉冲序列判断需要

13、执行的程序,最终完成相应的功能。遥控接收程序流程图如图3-4所示。中 断延 时是否开始脉冲?接收脉冲执行功能中断返回NY图3-4 遥控接收程序流程图4、程序清单4.1遥控发送程序清单: BUTTON0EQU P1.0 ;P1.0 - P1.3位键盘行扫描BUTTON1 EQU P1.1BUTTON2 EQU P1.2BUTTON3 EQU P1.3BUTTON EQU P0 ;P0 口键盘列扫描BUTTAB: DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FHBUTFUNTAB:LJMPSEN2P ;功能按键列表LJMPSEN3PLJMPSEN4PLJMPSEN5

14、PLJMPSEN6PLJMPSEN7PLJMPSEN8PLJMPSEN9PLJMPSEN10PLJMPSEN11PLJMPSEN12PLJMPSEN13PLJMPSEN14PLJMPSEN15PLJMPSEN16PLJMPSEN17PRETDLY:MOV R2,#0FFH;513微秒延时程序DJNZ R2,$RETDLY10M: MOV R3,#14H ;10毫秒延时程序DLOOP: LCALL DLYDJNZ R3,DLOOPRETDLY500M:MOV R4,#32H ;500毫秒延时程序D_1LOOP:LCALL DLY10M DJNZ R4,D_1LOOPRETORG 0000H ;主

15、程序开始AJMP MAINORG 0003H ;关中断0RETIORG 000BH ;关定时器T0RETIORG 0013H ;关外中断1RETIORG 001BH ;定时器T1中断入口地址LJMP INTT1ORG 0023H ;关串行口中断RETIORG 002BH ;关定时器T2RETIMAIN: MOV A ,#0FFH ;初始化MOV P0,AMOV P1,AMOV P2,AMOV P3,ACLR P3.5;关遥控输出MOV SP,#70H ;设堆栈基址为70HMOV IE,#00H ;关所有中断MOV IP,#01H;设优先级MOV TMOD,#22H;8位自动重装初值模式MOV

16、TH1,#0F3H;定时为13微秒初值MOV TL1,#0F3HSETB EA ;开总中断允许MLOOP: LCALL BUTTON00 ;按键查询LJMPMLOOP;键盘工作子程序BUTTON00: MOVBUTTON,#0FFH;判断是否有按键按下CLRBUTTON0CLRBUTTON1CLRBUTTON2CLRBUTTON3MOVA,BUTTONMOVB,ACJNEA,#0FFH,J_BUTTONNBUTTON:RET;判断是哪个按键按下J_BUTTON:LCALL DLY10M ;延时去抖动MOVA,BUTTONCJNEA,B,NBUTTON ;A和B不相等,返回主程序SETBBUTT

17、ON1 ;有键按下,找键号开始,查0行SETB BUTTON2SETBBUTTON3MOVA,BUTTON ;读入P0口值CJNEA,#0FFH,BUTTONL0 ;P0不等于#0FFH,按下键在第0行SETBBUTTON0 ;不在第0行,开始查1行CLRBUTTON1MOVA,BUTTON ;读入P0口值CJNEA,#0FFH,BUTTONL1 ;P0口不等于#0FFH,按下键在第1行SETBBUTTON1 ;不在第1行,开始查2行CLRBUTTON2MOVA,BUTTON ;读入P0口值CJNEA,#0FFH,BUTTONL2 ;P0口不等于#0FFH,按下键在第2行SETBBUTTON2

18、 ;不在第2行,开始查3行CLRBUTTON3MOVA,BUTTON ;读入P0口值CJNEA,#0FFH,BUTTONL3 ;P0口不等于#0FFH,按下键在第3行LJMPNBUTTON ;不在第3行,子程序返回BUTTONL0:MOVR2,#00H ;按下键在第0行,R2赋行号初值0LJMP T_BUTTON ;跳到T_BUTTONBUTTONL1:MOVR2,#08H ;按下键在第1行,R2赋行号初值8LJMP T_BUTTON ;跳到T_BUTTONBUTTONL2:MOVR2,#10H ;按下键在第2行,R2赋行号初值16LJMP T_BUTTON ;跳到T_BUTTONBUTTON

19、L3: MOVR2,#18H ;按下键在第3行,R2赋行号初值24LJMPT_BUTTON ;跳到T_BUTTONT_BUTTON:MOV DPTR,#BUTTAB ; 键值翻译成连续数字MOVB,A ;P0口值暂存B内CLR A ;清AMOV R0,A ;清R0T_LOOP: MOV A,R0 ;查列号开始,R0数据放入ASUBB A,#08H ;A中数减8JNC NBUTTON ;借位C为0,查表出错,返回MOVA,R0 ;查表次数小于8,继续查,MOVC A,A+DPTR ;查列号表INC R0 ;R0加1CJNEA,B,T_LOOP ;查得值和P0口值不等,转T_LOOP再查DEC R

20、0 ;查得值和P0口值相等,R0减1MOV A,R0 ;放入A(R0中数值即为列号值)ADDA,R2 ; 与行号初值相加成为键号值(0-31)MOVB,A ;键号乘3处理用于JMP散转指令RLA ;键号乘3处理用于JMP散转指令ADDA,B ;键号乘3处理用于JMP散转指令MOVDPTR,#BUTFUNTAB ; 取散转功能程序(表)首址JMPA+DPTR ;散转至对应功能程序标号;SEN2P: MOV A,#02H ;发2个脉冲LJMP SENDCON ;转发送程序RETSEN3P: MOV A,#03H ;发3个脉冲LJMP SENDCON ;转发送程序RETSEN4P: MOV A,#0

21、4H ;发4个脉冲LJMP SENDCON ;转发送程序RETSEN5P:MOV A,#05H ;发5个脉冲LJMP SENDCON ;转发送程序RETSEN6P: MOV A,#06H ;发6个脉冲LJMP SENDCON ;转发送程序RETSEN7P: MOV A,#07H ;发7个脉冲LJMPSENDCON ;转发送程序RETSEN8P: MOV A,#08H ;发8个脉冲LJMP SENDCON ;转发送程序RETSEN9P: MOV A,#09H ;发9个脉冲LJMP SENDCON ;转发送程序RETSEN10P: MOV A,#0AH ;发10个脉冲LJMP SENDCON ;转

22、发送程序RETSEN11P: MOV A,#0BH ;发11个脉冲LJMP SENDCON ;转发送程序RETSEN12P: MOV A,#0CH ;发12个脉冲LJMP SENDCON ;转发送程序RETSEN13P: MOV A,#0DH ;发13个脉冲LJMP SENDCON ;转发送程序RETSEN14P: MOV A,#0EH ;发14个脉冲LJMP SENDCON ;转发送程序RETSEN15P: MOV A,#0FH ;发15个脉冲LJMP SENDCON ;转发送程序RETSEN16P: MOV A,#10H ;发16个脉冲LJMP SENDCON ;转发送程序RETSEN17

23、P: MOV A,#11H ;发17个脉冲LJMP SENDCON ;转发送程序RET;编 码 发 射 程 序SENDCON: MOV R1,A ;装入发射脉冲个数LJMP SEND_3 ;转第一个码发射处理SEND: MOV R0,#55H ;1MS宽低电平发射控制数据SEND_1: SETB ET1 ;开T1中断SETB TR1 ;开启定时器T1NOP ;空操作延时NOPNOPNOPNOPDJNZ R0,SEND_1 ;时间不到转SEND_1再循环MOV R0,#32H ;1MS高电平间隙控制数据SEND_2: CLR TR1 ;关定时器T1CLR ET1 ;关T1中断CLR P3.5 ;

24、关脉冲输出NOP ;空操作延时NOPNOPNOPNOPNOPNOPNOPNOPNOPNOPDJNZ R0,SEND_2 ;时间不到转SEND_2再循环DJNZ R1,SEND ;脉冲未发完,转OUT再循环发射LCALL DLY500M RET SEND_3: MOV R0,#0FFH ;装发谢3MS宽控制数据LJMP SEND_1INTT1: CPL P3.5 ;40kHZ红外线遥控信号产生RETI ;转SEND_1END4.2遥控接收程序清单:ORG 0000H;主程序开始地址LJMP MAINORG 0003H;外中断0中断入口LJMP R_INTORG 000BH ;定时器T0中断关闭R

25、ETI ORG 0013H ;外中断1中断关闭RETI ORG 001BH ;定时器T1中断关闭RETI ORG 0023H ;串行口中断关闭RETI ORG 002BH ;定时器T2中断关闭RETI DLY512U: MOV R0,#0FFH ;延时512微妙子程序D_W_LOOP: DJNZ R0,D_W_LOOPRETDLY10M: MOV R1,#14H ;延时10毫秒子程序D_1W_LOOP: LCALL DLY512UDJNZ R1,D_1W_LOOPRETMAIN: CLRA ;初始化;DECA ;A为#0FFHMOV P0,A ;P0-P2口置1MOV P1,A MOV P2,

26、A MOV IE,#00H ;关所有中断SETB EX0 ;开外中断SETB EA ;总中断允许 R_INT: CLR EX0 ;关外中断JNB P3.1,OK_1 ;P3.1口为低电平转OK_1DISTURB: SETB EX0 ;P3.1口为高电平开中断(系干扰)RETI OK_1: CLR A MOV DPH,A ; DPTR清零MOV DPL,A C_PLUS: JB P3.1,F_FIRSTPLUS ;P3.1变高电平时寻找第一个脉冲INC DPTR ;用DPTR对低电平计数NOP ;2微秒延时NOPAJMP C_PLUS ;循环周期为8微秒F_FIRSTPLUS:MOV A,DPH

27、 JZ DISTURB ;A为0说明脉宽小于2毫秒,不是第一个脉冲CLR A ;A不为0,说明是第一个宽脉冲OK_11: INC A ;脉冲个数计1JNB P3.1,$ ;低电平时等待MOV R1,#06H ;高电平宽度判断定时值OK_13: JNB P3.1,OK_11 ;变低电平时转OK_11脉冲计数LCALL DLY512U ;延时(512微秒)DJNZ R1,OK_13 ;6次延时不到转OK_13再延时DEC A ;超过3毫秒判为结束,减1DEC A ;减1JZ AIM0 ;为0执行AIM0(2个脉冲)DEC A ;减1JZ AIM1 ;为0执行AIM1(3个脉冲)DEC A ;JZ

28、AIM2 ;为0执行AIM2(4个脉冲)DEC A ;JZ AIM3 ;为0执行AIM3(5个脉冲)DEC A ;JZ AIM4 ;为0执行AIM4(6个脉冲)DEC A ;JZ AIM5 ;为0执行AIM5(7个脉冲)DEC A ;JZ AIM6 ;为0执行AIM6(8个脉冲)DEC A ;JZ AIM7 ;为0执行AIM7(9个脉冲)DEC A ;JZ AIM8 ;为0执行AIM8(10个脉冲)DEC A ;JZ AIM9 ;为0执行AIM9(11个脉冲)DEC A ;JZ AIM10 ;为0执行AIM10(12个脉冲)DEC A ;JZ AIM11 ;为0执行AIM11(13个脉冲)DE

29、C A ;JZ AIM12 ;为0执行AIM12(14个脉冲)DEC A ;JZ AIM13 ;为0执行AIM13(15个脉冲)DEC A ;JZ AIM14 ;为0执行AIM14(16个脉冲)DEC A ;JZ AIM15 ;为0执行AIM15(17个脉冲)NOP ;NOP ;LJMP DISTURB ;出错退出AIM0: CPL P0.0 ;P0口各端口开关输出控制SETB EX0 RETI AIM1: CPL P0.1 ;SETB EX0 RETI ;AIM2: CPL P0.2SETB EX0 RETI AIM3: CPL P0.3SETB EX0 RETI AIM4: CPL P0.

30、4SETB EX0 RETI AIM5: CPL P0.5 SETB EX0 RETI AIM6: CPL P0.6SETB EX0 RETI AIM7: CPL P0.7SETB EX0 RETI AIM8: CPL P2.7 ;P2口各端口开关输出控制SETB EX0 RETI AIM9: CPL P2.6SETB EX0 RETI AIM10: CPL P2.5SETB EX0 RETI AIM11: CPL P2.4SETB EX0 RETI AIM12: CPL P2.3SETB EX0 RETI AIM13: CPL P2.2SETB EX0 RETI AIM14: CPL P2.

31、1 ;P2.0口开关控制SETB EX0 RETI AIM15: CPL P2.0SETB EX0 RETI END ;程序结束总 结 经过两周的忙碌本次单片机课程设计已经以实验成功获得了圆满的结束。从刚开学的最初选题,在图书馆、网络上查找与课题相关的资料及向本次课程设计指导老师戴老师的咨询、探讨和交流到最终的定题。接着便是绘制本次课程设计的电路原理图和PCB板制图,到这一周在本学院单片机实验室的焊接电路板、调试电路;编写、调试、运行程序,到显示最终的实验现象,我从中学到了好多新知识和新认识,包括PROTEL99se制图工具的使用,单片机原理在红外遥控方面的具体应用等;理论联系实际,增强了自己

32、的动手实验能力,同时也培养了我对单片机学习的浓厚兴趣等。当然在这过程中我也遇到了很多问题难题,有的问题会困扰我很久以致本课题不能继续进行,放弃的念头也越发强烈,可是看到周围的同学不曾动摇过,然后便会重拾信心,经过查找资料,仔细阅读相关书籍和在同学、老师的耐心讲解、指导下最终把难题一个个克服。一路走来有遇到拦路虎时的苦恼也有解决难题后的喜悦,不过总体是甜美的。在这次课程设计的过程中,我得到了许多人的帮助。首先我要感谢我的指导教师老师在课程设计上给予我的指导、提供给我们的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。在此期间,我

33、不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。其次,我要感谢帮助过我的同学,他们也为我解决了不少我不太明白的设计上的难题。同时也感谢计算机工程学院为我们提供良好的实验器材和实验室环境。最后再一次感谢所有在设计中曾经帮助过我的指导老师和同学。参考文献1.杨居义,杨尧,杨晓琴.单片机课程设计指导.北京:清华大学出版社,20092.求是科技.单片机典型模块设计实例导航.北京:人民邮电出版社,20053.李广弟,朱月秀,冷祖祁.单片机基础(第三版).北京:北京航空航天大学出版社,2007 4.汤竞南,沈国琴.51单片机C语言开发与实例.北京:人民邮电出版社,20085.刘坤,宋戈,赵红波,张宪栋.51单片机C语言应用开发技术大全.北京:人民邮电出版社,2008指导教师评语

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号