单片机原理与应用及C51编程技术课件第三章-单片机汇编程序设计.ppt

上传人(卖家):ziliao2023 文档编号:6800061 上传时间:2023-08-07 格式:PPT 页数:104 大小:674.45KB
下载 相关 举报
单片机原理与应用及C51编程技术课件第三章-单片机汇编程序设计.ppt_第1页
第1页 / 共104页
单片机原理与应用及C51编程技术课件第三章-单片机汇编程序设计.ppt_第2页
第2页 / 共104页
单片机原理与应用及C51编程技术课件第三章-单片机汇编程序设计.ppt_第3页
第3页 / 共104页
单片机原理与应用及C51编程技术课件第三章-单片机汇编程序设计.ppt_第4页
第4页 / 共104页
单片机原理与应用及C51编程技术课件第三章-单片机汇编程序设计.ppt_第5页
第5页 / 共104页
点击查看更多>>
资源描述

1、12023-8-7单片机原理与应用电子课件单片机原理与应用电子课件第第 3 3 章章单片机汇编语言程序设计单片机汇编语言程序设计2023-8-72本章主要内容:本章主要内容:3.1 513.1 51系列单片机指令系统概述系列单片机指令系统概述 3.2 51 3.2 51系列单片机寻址方式系列单片机寻址方式 3.3 51 3.3 51系列单片机指令系统系列单片机指令系统 3.4 513.4 51系列单片机汇编指令格式及标识系列单片机汇编指令格式及标识 3.5 51 3.5 51系列单片机汇编程序常用伪指令系列单片机汇编程序常用伪指令 3.6 513.6 51系列单片机汇编程序设计系列单片机汇编程

2、序设计2023-8-733.1 513.1 51系列单片机指令系统概述系列单片机指令系统概述 在在5151单片机中的指令系统中,有单片机中的指令系统中,有单字节、双字节单字节、双字节、三字节、三字节等不同长度的指令。等不同长度的指令。单字节单字节指令只有一个字节,操作码和操作数都指令只有一个字节,操作码和操作数都在这个字节中。在这个字节中。5151指令系统共有单字节指令指令系统共有单字节指令4949条。条。3.1 513.1 51系列单片机指令系统概述系列单片机指令系统概述 双字节双字节指令包括两个字节,其中一个字节是操作指令包括两个字节,其中一个字节是操作码,第二个字节是操作数。双字节指令共

3、有码,第二个字节是操作数。双字节指令共有4545条。条。三字节三字节指令中,操作码占一个字节,操作数占两指令中,操作码占一个字节,操作数占两个字节,个字节,5151指令系统共有三字节指令指令系统共有三字节指令4545条。条。3.2 513.2 51系列单片机寻址方式系列单片机寻址方式 MCS-51MCS-51单片机的寻址方式按操作数的类型,可分单片机的寻址方式按操作数的类型,可分为为数的寻址和指令寻址数的寻址和指令寻址。数的寻址有数的寻址有:常数寻址(立即寻址)、寄存器数寻址:常数寻址(立即寻址)、寄存器数寻址(寄存器寻址)、存储器数寻址(直接寻址方式、寄(寄存器寻址)、存储器数寻址(直接寻址

4、方式、寄存器间接寻址方式、变址寻址方式)和位寻址存器间接寻址方式、变址寻址方式)和位寻址.指令的寻址有指令的寻址有:绝对寻址和相对寻址。绝对寻址和相对寻址。立即立即数数前面以前面以“#”#”符号作前缀符号作前缀MOV AMOV A,#20H20H2023-8-77使用时在指令中直接提供使用时在指令中直接提供寄存器的名称,这种寻址方式称为寄存器寻址。寄存器的名称,这种寻址方式称为寄存器寻址。把把R0R0寄存器中的数送给累加器寄存器中的数送给累加器A A 直接寻址直接寻址是指数据在是指数据在存储器单元中存储器单元中,在指令中直,在指令中直接提供存储器单元的地址。接提供存储器单元的地址。片内片内数据

5、存储器和特数据存储器和特殊功能寄存器。殊功能寄存器。1.1.低低128128单元。在指令中直接以单元地址形式单元。在指令中直接以单元地址形式给出。给出。2.2.专用寄存器。专用寄存器除了以单元地址形专用寄存器。专用寄存器除了以单元地址形式给出外,还可以以寄存器符号形式给出式给出外,还可以以寄存器符号形式给出。直接寻址直接寻址是访问专用寄存器的唯一方法。是访问专用寄存器的唯一方法。例如指令例如指令:SBUFSBUF是专用寄存器名。是专用寄存器名。寄存器间接寻址是指寄存器间接寻址是指数据存放在存储单元中数据存放在存储单元中,而而存储单元地址存放在寄存器中存储单元地址存放在寄存器中,在指令中通过,在

6、指令中通过提供存放存储单元地址的寄存器来使用对应的存提供存放存储单元地址的寄存器来使用对应的存储单元。储单元。该指令的功能是该指令的功能是将以工作寄存器将以工作寄存器R1R1中的内容中的内容为地址的片内为地址的片内RAMRAM单元的数据传送到累加器单元的数据传送到累加器A A中去。中去。寄存器间接寻址寄存器间接寻址若若R1R1中的内容为中的内容为80H80H,片内,片内RAMRAM地址为地址为80H80H的单元中的的单元中的内容为内容为20H20H,则执行该指令,则执行该指令MOV AMOV A,R1R1后,累加器后,累加器A A的的内容为内容为20H20H。寄存器间接寻址示意图如图所示。寄存

7、器间接寻址示意图如图所示。它是以数据指针寄存器它是以数据指针寄存器DPTRDPTR或程序计数器或程序计数器PCPC为基为基址,累加器址,累加器A A为变址,两者相加得存储单元的地址,为变址,两者相加得存储单元的地址,所访问的存储器为程序存储器。所访问的存储器为程序存储器。变址寻址变址寻址。MOV AMOV A,RnRn;A(Rn)A(Rn)MOV AMOV A,directdirect;AA(directdirect)MOV AMOV A,RiRi;AA((Ri(Ri))MOV AMOV A,#data#data;A#dataA#dataMOV RnMOV Rn,A A;Rn (A)Rn (A

8、)MOV RnMOV Rn,directdirect;Rn Rn(directdirect)MOV RnMOV Rn,#data#data;Rn#dataRn#dataMOV directMOV direct,A A;directdirect (A)(A)MOV directMOV direct,RnRn;directdirect (Rn)(Rn)MOV directMOV direct,direct direct;directdirect (directdirect)MOV directMOV direct,RiRi;directdirect ((RiRi))MOV directMOV di

9、rect,#data#data;directdirect#data#data(A)(A)MOV RiMOV Ri,directdirect;(;(RiRi)(directdirect)MOV RiMOV Ri,#data#data;(;(RiRi)#data#dataMOV DPTRMOV DPTR,#data16#data16 ;DPTR#data16DPTR#data16 MOVX AMOVX A,DPTRDPTR;A (A ((DPTRDPTR))MOVX DPTRMOVX DPTR,A A;(;(DPTRDPTR)(A)(A)MOVX AMOVX A,RiRi;A (A ((RiRi)

10、)MOVX RiMOVX Ri,A A;(;(RiRi)(A)(A)(1 1)将)将R0R0的内容送的内容送R6R6中中程序为:程序为:MOV AMOV A,R0R0MOV R6MOV R6,A A(2 2)将片内)将片内RAM 30HRAM 30H单元的内容送片外单元的内容送片外60H60H单元中单元中程序为:程序为:MOV AMOV A,30H30HMOV R0MOV R0,#60H#60HMOVX R0MOVX R0,A A(3 3)将片外)将片外RAM 1000HRAM 1000H单元的内容送片内单元的内容送片内20H20H单元中单元中程序为:程序为:MOV DPTRMOV DPTR,

11、#1000H#1000HMOV AMOV A,DPTRDPTRMOV 20HMOV 20H,A A(4 4)将)将ROM 2000HROM 2000H单元的内容送片内单元的内容送片内RAMRAM的的30H30H单元中单元中程序为:程序为:MOV AMOV A,#0#0MOV DPTRMOV DPTR,#2000H#2000HMOVC AMOVC A,A+DPTRA+DPTRMOV 30HMOV 30H,A AXCH AXCH A,RnRn;A RnA RnXCH A XCH A,directdirect;AdirectAdirectXCH AXCH A,RiRi;AA(RiRi)XCHD AX

12、CHD A,RiRi;A A0 03 3(RiRi)0 03 3SWAP ASWAP A;A A0 03 3AA4 47 7 PUSH APUSH APUSH BPUSH B则出栈的顺序为:则出栈的顺序为:POP BPOP BPOP APOP AADD AADD A,RnRn;A(A)+(Rn)A(A)+(Rn)ADD AADD A,directdirect;A(A)+A(A)+(directdirect)ADD AADD A,RiRi;A(A)+A(A)+((Ri)(Ri))ADD AADD A,#data#data;A(A)+#dataA(A)+#dataADDC AADDC A,RnRn

13、;A(A)+(Rn)+CA(A)+(Rn)+CADDC AADDC A,directdirect;A(A)+A(A)+(directdirect)+C+CADDC AADDC A,RiRi;A(A)+A(A)+(RiRi)+C+CADDC AADDC A,#data#data;A(A)+#data+CA(A)+#data+CINC AINC A;A(A)+1A(A)+1INC RnINC Rn;Rn(Rn)+1Rn(Rn)+1INC directINC direct;directdirect (directdirect)+1+1INC RiINC Ri;(;(RiRi)((RiRi))+1)+

14、1INC DPTRINC DPTR;DPTR(DPTR)+1DPTR(DPTR)+1 MOV AMOV A,R2R2ADD AADD A,R4R4MOV R6MOV R6,A AMOV AMOV A,R1R1ADDC AADDC A,R3R3MOV R5MOV R5,A ASUBB ASUBB A,RnRn;A(A)A(A)(Rn)-C(Rn)-CSUBB ASUBB A,directdirect;A(A)-A(A)-(directdirect)-C-CSUBB ASUBB A,RiRi;A(A)-A(A)-(RiRi)-C-CSUBB ASUBB A,#data#data;A(A)-#dat

15、a A(A)-#data C CDEC ADEC A;A(A)-1A(A)-1DEC RnDEC Rn;Rn(Rn)-1Rn(Rn)-1DEC directDEC direct;direct direct(directdirect)-1-1DEC RiDEC Ri;(;(RiRi)(RiRi)-1-1 。在在 MOV AMOV A,R3R3ADD AADD A,R2R2DA ADA AMOV R5MOV R5,A A ANL AANL A,Rn A(A)Rn A(A)(Rn)Rn)ANL AANL A,direct A(A)direct A(A)(directdirect)ANL AANL A

16、,Ri A(A)Ri A(A)(RiRi)ANL AANL A,#data A(A)#data A(A)#data#dataANL directANL direct,A directA direct (directdirect)(A)(A)ANL directANL direct,#data direct#data direct(directdirect)#data#dataORL AORL A,Rn A(A)Rn A(A)(Rn)(Rn)ORL AORL A,direct A(A)direct A(A)(directdirect)ORL AORL A,Ri A(A)Ri A(A)(RiRi)

17、ORL AORL A,#data A(A)#data A(A)#data#dataORL directORL direct,A directA direct (directdirect)(A)(A)ORL directORL direct,#data direct#data direct(direct(direct)#data#dataXRL AXRL A,Rn A(A)Rn A(A)(Rn)(Rn)XRL AXRL A,direct A(A)direct A(A)(directdirect)XRL AXRL A,Ri A(A)Ri A(A)(RiRi)XRL AXRL A,#data A(A

18、)#data A(A)#data#dataXRL directXRL direct,A directA direct (directdirect)(A)(A)XRL directXRL direct,#data direct#data direct directdirect)#data#data MOV AMOV A,R0R0CPL ACPL AMOV R0MOV R0,A A 【例例3-93-9】若累加器若累加器A A中的内容为中的内容为10001011B10001011B,CY=0CY=0,则执行,则执行RLC ARLC A指令后累加器指令后累加器A A中的内容为中的内容为00010110

19、00010110,CY=1CY=1。LJMP addr16LJMP addr16;PC addr16PC addr16 例例3-103-10 ORG 0000H ORG 0000H LJMP STARTLJMP START ORG 0030H ORG 0030HSTARTSTART:LJMP LAB:LJMP LAB ORG 7000H ORG 7000H LAB:LAB:MOV A,R4 MOV A,R4 AJMP addr11AJMP addr11;PC PC 10100 0 addr11 addr11 SJMP relSJMP rel;PC (PC)+2+relPC (PC)+2+rel

20、 JMP A+DPTRJMP A+DPTR;PC (A)+(DPTR)PC (A)+(DPTR)JZ rel JZ rel ;若若A=0A=0,则,则PC (PC)+2+relPC (PC)+2+rel,否则,否则,PC (PC)+2PC (PC)+2 JNZ rel JNZ rel ;若若A A 0 0,则,则PC (PC)+2+relPC (PC)+2+rel,否,否则,则,PC (PC)+2 PC (PC)+2 ;若若A=dataA=data,则,则PC (PC)+3PC (PC)+3,不转移,继续执行。,不转移,继续执行。若若AdataAdata,则则C=0C=0,PC (PC)+3+

21、relPC (PC)+3+rel,转移。,转移。若若AdataAdatadata,则,则C=0C=0,PC (PC)+3+relPC (PC)+3+rel,转移。,转移。若(若(RnRn)datadata(Ri)data,则,则C=0C=0,PC (PC)+3+relPC (PC)+3+rel,转移。,转移。若若(Ri)data(Ri)directAdirect,则,则C=0C=0,PC (PC)+3+relPC (PC)+3+rel,转移。,转移。若若AdirectAR1R0R1转转BIG1MOV A,R1MOV A,R1MOV R0,AMOV R0,ABIG1:MOV DPTR,#8766

22、HBIG1:MOV DPTR,#8766H MOVX A,DPTR MOVX A,DPTR MOV R2,A MOV R2,A CLR C CLR C SUBB A,R0 SUBB A,R0 JC BIG2 ;R0R2JC BIG2 ;R0R2转转BIG2 MOV A,R2 MOV A,R2 SJMP LABLAST SJMP LABLASTBIG2:MOV A,R0BIG2:MOV A,R0LABLAST:SJMP$LABLAST:SJMP$END END多分支结构的特点是判定条件有多分支结构的特点是判定条件有n n种可能的值,根据不种可能的值,根据不同值,程序执行不同的程序段。在图中,这些

23、程序段分别同值,程序执行不同的程序段。在图中,这些程序段分别为为A1A1、A2A2、.、AnAn。和某些高级语言不一样,和某些高级语言不一样,5151指令系统中没有专门的多指令系统中没有专门的多分支指令,要实现多分支结构,一般采用多条条件转移指分支指令,要实现多分支结构,一般采用多条条件转移指令的方法来实现。令的方法来实现。这种方法的优点是层次很清晰,程序简单易懂。这种方法的优点是层次很清晰,程序简单易懂。缺点是分支速度较慢。特别是分支很多时,由于每个缺点是分支速度较慢。特别是分支很多时,由于每个分支都有可能被判断,因此执行效率大大降低。分支都有可能被判断,因此执行效率大大降低。3.6.3 3

24、.6.3 循环结构程序设计循环结构程序设计循环是为了重复执行一个程序段。循环是为了重复执行一个程序段。在汇编语言中,在汇编语言中,循环次数固定的循环常常采用循环次数固定的循环常常采用DJNZDJNZ指令指令来实现来实现:在循环初始化时,将循环次数放置于某个通用寄存器中在循环初始化时,将循环次数放置于某个通用寄存器中或某个内部或某个内部RAMRAM单元中;单元中;在循环结束处放置一条在循环结束处放置一条DJNZDJNZ,可同时完成对循环计数单,可同时完成对循环计数单元的减元的减1 1和条件跳转功能。和条件跳转功能。对于循环次数依赖于循环体中执行结果的循环程序,则对于循环次数依赖于循环体中执行结果

25、的循环程序,则需要其他类型的有条件跳转指令。需要其他类型的有条件跳转指令。例例3-293-29:外部:外部RAMRAM中,从地址中,从地址2000H2000H开始存放了开始存放了100100个个有符号字节数据,编写一程序,统计其中小于有符号字节数据,编写一程序,统计其中小于0 0的数据个的数据个数,将其存放在数,将其存放在R0R0寄存器中。寄存器中。解:很显然,解:很显然,该程序是一个循环次数固定的程序该程序是一个循环次数固定的程序,循环次数是循环次数是100100次。次。将将R1R1作为循环计数寄存器作为循环计数寄存器,其初始值为其初始值为100100。在循环体中是一个分支结构,用于判定一个

26、数是否在循环体中是一个分支结构,用于判定一个数是否小于小于0 0的依据是该数的最高位是否为的依据是该数的最高位是否为1 1。程序流程图如下:程序流程图如下:程序如下:程序如下:ORG 0000HORG 0000HMOV R0,#0MOV R0,#0MOV R1,#100MOV R1,#100MOV DPTR,#2000HMOV DPTR,#2000HLOOP:LOOP:MOVX A,DPTRMOVX A,DPTRINC DPTRINC DPTRJNB ACC.7,NEXT;JNB ACC.7,NEXT;如果如果A A最高位为最高位为0 0,则,则 ;大于等于大于等于0 0,不计入,不计入INC

27、 R0INC R0NEXT:DJNZ R1,LOOP ;NEXT:DJNZ R1,LOOP ;将将R1R1减减1 1,如果大于,如果大于0 0表明表明循环继续循环继续 SJMP$SJMP$END END例例3-303-30:一个字符串存放在外部:一个字符串存放在外部RAMRAM中,起始地址中,起始地址为为3000H3000H,求这个字符串的长度,放入,求这个字符串的长度,放入R0R0寄存器中。寄存器中。解:根据字符串的原理,将字符串的每个字符所解:根据字符串的原理,将字符串的每个字符所对应的对应的ASCIIASCII码按顺序存放在存储器中,码按顺序存放在存储器中,字符串的结尾字符串的结尾是一个

28、是一个ASCIIASCII码为码为0 0的结尾符的结尾符。很显然,该程序是一个很显然,该程序是一个循环次数不固定循环次数不固定的程序,的程序,该循环的结束条件是从外部该循环的结束条件是从外部RAMRAM中得到的当前字符的中得到的当前字符的ASCIIASCII码是否为码是否为0 0。如果是。如果是0 0,表明该字符串到此结束。,表明该字符串到此结束。程序流程图如下:程序流程图如下:ORG 0000HORG 0000H MOV R0,#-1;MOV R0,#-1;在循环中,至少要进行一次加法,所以计数在循环中,至少要进行一次加法,所以计数值初始值为值初始值为-1-1 MOV DPTR,#3000H

29、MOV DPTR,#3000HL00P:MOVX A,DPTR;L00P:MOVX A,DPTR;将当前字符的将当前字符的ASCIIASCII码送入码送入A A寄存器寄存器 INC DPTR INC DPTR INC R0 INC R0 CJNE A,#0,LOOP;CJNE A,#0,LOOP;如果当前字符的如果当前字符的ASCIIASCII码不为码不为0 0,循环继续,循环继续LEND:SJMP$LEND:SJMP$END END 3.6.4 3.6.4 查表程序设计查表程序设计在程序设计中,查表功能是一项非常重要的功能。在程序设计中,查表功能是一项非常重要的功能。查表就是根据自变量查表就

30、是根据自变量x,x,在表格中寻找在表格中寻找y,y,使使y=f(x)y=f(x)。自变量。自变量x x的范围一般是一个连续变化的整数,比如的范围一般是一个连续变化的整数,比如0 09999之间的整数。因之间的整数。因此,可以将所对应的此,可以将所对应的y y值按自变量值按自变量x x的顺序排列在一起,就得到了的顺序排列在一起,就得到了一个线性表。一个线性表。根据根据x x的值求取的值求取y y值,只需要在这个线性表中查询相应的单值,只需要在这个线性表中查询相应的单元即可,称之为查表功能。元即可,称之为查表功能。指令指令“MOVC AMOVC A,A+DPTR”A+DPTR”完成把完成把A A中

31、的内容作为一个无符中的内容作为一个无符号数与号数与DPTRDPTR中的内容相加,所得结果为某一程序存储单元的地址中的内容相加,所得结果为某一程序存储单元的地址,然后把该地址单元中的内容送到累加器,然后把该地址单元中的内容送到累加器A A中。中。3.6.5 3.6.5 子程序设计子程序设计调用子程序的指令是调用子程序的指令是ACALLACALL和和LCALLLCALL。子程序的调用需要子程序的调用需要注意以下几点:注意以下几点:保存与恢复寄存器:保存与恢复寄存器:由于主程序和子程序经常是分别编由于主程序和子程序经常是分别编写的,所以它们所使用的寄存器会发生冲突。写的,所以它们所使用的寄存器会发生

32、冲突。主程序在调用子程序以前,要保护那些可能被子程序破主程序在调用子程序以前,要保护那些可能被子程序破坏的寄存器。坏的寄存器。在结束子程序运行前,要恢复那些被保护的寄存器。在结束子程序运行前,要恢复那些被保护的寄存器。一般采用压栈和出栈的方法实现寄存器的保护和恢复。一般采用压栈和出栈的方法实现寄存器的保护和恢复。子程序的参数传送:子程序的参数传送:主程序在调用子程序时,经常需要主程序在调用子程序时,经常需要传送一些参数给子程序,称为输入参数;传送一些参数给子程序,称为输入参数;子程序运行完后经常要回送一些信息给主程序,称为输子程序运行完后经常要回送一些信息给主程序,称为输出参数。出参数。例例3

33、-323-32:已知寄存器:已知寄存器R0R0、R1R1、R2R2存放的是八位二进存放的是八位二进制数,分别将它们转换成制数,分别将它们转换成BCDBCD码,存放在内部码,存放在内部RAMRAM的的60H60H65H65H单元。单元。八位二进制数的对应八位二进制数的对应BCDBCD码是码是3 3位(百位、十位、个位(百位、十位、个位)十进制数,总共位)十进制数,总共1212个比特位,所以用两个字节来表个比特位,所以用两个字节来表示对应示对应BCDBCD码。码。十位和个位分别存放在第一个字节的高十位和个位分别存放在第一个字节的高4 4位和低位和低4 4位,位,百位存放在第二个字节的低四位。百位存

34、放在第二个字节的低四位。第二个字节的高四位为全第二个字节的高四位为全0 0。解:编写一个子程序,解:编写一个子程序,该子程序的功能是转换一个八该子程序的功能是转换一个八位二进制数为位二进制数为BCDBCD码。码。该子程序的输入参数是:该子程序的输入参数是:待转换的单字节数在累加器待转换的单字节数在累加器A A中。中。输出参数是:输出参数是:转换后的转换后的BCDBCD码整数码整数(十位和个位十位和个位)仍在累仍在累加器加器A A中,百位在中,百位在R3R3中。中。根据题意,主程序将该子程序调用三次,每次的结果根据题意,主程序将该子程序调用三次,每次的结果放置到相应的内存单元中。放置到相应的内存

35、单元中。程序如下:程序如下:ORG 0000HORG 0000HMOV A,R0MOV A,R0ACALL CHBCDACALL CHBCDMOV 60H,A ;MOV 60H,A ;将十位数和个位数置于存储器中将十位数和个位数置于存储器中MOV 61H,R3 ;MOV 61H,R3 ;将百位数置于存储器中将百位数置于存储器中MOV A,R1MOV A,R1ACALL CHBCDACALL CHBCDMOV 62H,A ;MOV 62H,A ;将十位数和个位数置于存储器中将十位数和个位数置于存储器中MOV 63H,R3 ;MOV 63H,R3 ;将百位数置于存储器中将百位数置于存储器中MOV

36、A,R2MOV A,R2ACALL CHBCDACALL CHBCDMOV 64H,A ;MOV 64H,A ;将十位数和个位数置于存储器中将十位数和个位数置于存储器中MOV 65H,R3 ;MOV 65H,R3 ;将百位数置于存储器中将百位数置于存储器中 LEND:SJMP$LEND:SJMP$CHBCD:CHBCD:PUSH PSW ;PUSH PSW ;保护现场保护现场 PUSH B PUSH B MOV B,#100 MOV B,#100 DIV AB ;ABCD DIV AB ;ABCD码的百位码的百位 MOV R3,A ;R3BCD MOV R3,A ;R3BCD码的百位码的百位 MOV A,#10 ;MOV A,#10 ;余数继续分离十位和个位余数继续分离十位和个位XCH A,BXCH A,BDIV AB ;ABCDDIV AB ;ABCD码的十位码的十位SWAP ASWAP AORL A,B ;ORL A,B ;将十位和个位拼装成将十位和个位拼装成BCDBCD码码POP B ;POP B ;恢复现场恢复现场POP PSWPOP PSWRETRETENDEND

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(单片机原理与应用及C51编程技术课件第三章-单片机汇编程序设计.ppt)为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|