精华内容
下载资源
问答
  • 单片机程序主函数中一定要加while(1)

    千次阅读 2018-07-26 15:42:47
    单片机的主程序中,我们在写程序的时候,总是写一个while(1)的语句,以此达到让程序进入一个无限死循环中,其目的程序一直保持在我所需要的运行情况下,例如:流水灯的程序让LED灯一直在交替闪烁,LCD显示不停...

    单片机程序主函数中while(1)的作用

     

    在单片机的主程序中,我们在写程序的时候,总是写一个while(1)的语句,以此达到让程序进入一个无限死循环中,其目的是让程序一直保持在我所需要的运行情况下,例如:流水灯的程序让LED灯一直在交替闪烁,LCD显示不停地在刷新。
    该循环并不是阻止程序的跑飞(程序的跑飞我会在下一篇博客中学习一番),而是防止main()返回。因为在嵌入式中,main函数是不能返回的,而虽然我们所编写的单片机程序是用的是C语言,可最终下载到单片机里运行的程序包含两个部分:一是我们编写的程序代码,另一部分是编译器自动生成的代码,例如在keil里,观察我们所写的C语言程序在转换成汇编语言后,单片机的代码区,没有写程序的部分,例如全1或全0区域,程序运行到该区域后就会造成意料不到的结果,在没有while(1)的去情况下运行到最后一行的时候,会自动跳转到main函数的第一行,就造成了main()函数的返回。不同的C语言实现的单片机初始化代码会有不同的表现,例如:在cal_main后jmp,或者是在call_main后jmp 0,这些将会导致不可预料的结果。

    展开全文
  • PIC单片机中断子程序

    2010-05-24 10:42:54
    基于pic单片机的中断子程序,主控芯片pic16f873,已经调调试成功了,一定好用。
  • pic单片机是最重要的单片机种类之一,对于pic单片机,...而在本文中,小编将为大家介绍两种pic单片机程序:一pic单片机多路ad切换程序,二pic单片机循环程序。如果你对这两类程序存在一定兴趣,不妨继续往下阅读。
  • 但是,如果要有效地运行单片机程序是不可或缺的,那么程序到底如何运行的呢?从本期开始,我们将分上下两篇向大家介绍单片机程序的关系。  关注单片机的存储器  在此之前,GR-SAKURA电路板...
  • 51单片机程序示例上一次我们的程序实在没什么用,要灯亮还要重写一下片子,下面我们要让灯持续地闪烁,这就有一定的实用价值了,比如能把它当成汽车上的一个信号灯用了。怎样才能让灯持续地闪烁呢?实际上就是要灯...

    51

    单片机程序示例

    上一次我们的程序实在是没什么用,

    要灯亮还要重写一下片子,

    下面我们要让灯持续地

    闪烁,

    这就有一定的实用价值了,

    比如能把它当成汽车上的一个信号灯用了。

    怎样才能让灯

    持续地闪烁呢?实际上就是要灯亮一段时间,再灭一段时间,也就是说要

    P10

    持续地输出

    高和低电平。怎样实现这个要求呢?请考虑用下面的指令是否可行:

    SETB

    P1.0

    CLR

    P1.0

    ……

    这是不行的,有两个问题,第一,计算机执行指令的时间很快,执行完

    SETB

    P1.0

    后,灯

    是灭了,但在极短时间(微秒级)后,计算机又执行了

    CLR

    P1.0

    指令,灯又亮了,所以根

    本分辨不出灯曾灭过。第二,在执行完

    CLR

    P10

    后,不会再去执行

    SETB

    P1.0

    指令,所以

    以后再也没有机会让灭了。

    为了解决这两个问题,我们能做如下设想,第一,在执行完

    SETB

    P1.0

    后,延时一段

    时间(几秒或零点几秒)

    再执行第二条指令,

    就能分辨出灯曾灭过了。

    第二在执行完第二条

    指令后,让计算机再去执行第一条指令,持续地在原地兜圈,我们称之为

    "

    循环

    "

    ,这样就能

    完成任务了。

    以下先给出程序(后面括号中的数字是为了便于讲解而写的,实际不用输入):

    ;

    主程序

    :

    LOOP:

    SETB

    P1.0

    ;(1)

    熄灭灯

    LCALL

    DELAY

    ;(2)

    延时一段时间

    CLR

    P1.0

    ;(3)

    点亮灯

    LCALL

    DELAY

    ;(4)

    延时一段时间

    AJMP

    LOOP

    ;(5)

    跳转到第一句

    LOOP

    ;

    以下子程序

    DELAY:

    MOV

    R7,#250

    ;(6)

    D1:

    MOV

    R6,#250

    ;(7)

    D2:

    DJNZ

    R6,D2

    ;(8)

    DJNZ

    R7,D1

    ;(9)

    RET

    ;(10)

    END

    ;(11)

    本例

    keil

    工程文件点击这里下载

    按上面的设想分析一下前面的五条指令。

    展开全文
  • 单片机音乐程序设计(含源程序代码)利用单片机(或单板机)奏乐大概无线电爱好者感兴趣的问题之一。本文从单片机的基本发间实验出发,谈谈音乐程序的设计原理,并给出具体实例,以供参考。单片机的基本发音实验我们...

    单片机音乐程序设计(含源程序代码)

    利用单片机(或单板机)奏乐大概是无线电爱好者感兴趣的问题之一。本文从单片机的基本发间实验出发,谈谈音乐程序的设计原理,并给出具体实例,以供参考。

    单片机的基本发音实验

    我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调。

    例如,要产生200Hz的音频信号,按图1接入喇叭(若属临时实验,也可将喇叭直接接在P1口线上),其中子程序DEL为延时子程序,当R3为1时,延时时间约为20us,R3中存放延时常数,对200HZ音频,其周期为1/200秒,即5ms。这样,当P1.4的高电平或低电平的持续时间为2.5ms,即R3的时间常数取2500/20=125(7DH)时,就能发出200HZ的音调。将上述程序键入学习机,并持续修改R3的常数能感到音调的变化。乐曲中,每一音符对应着确定的频率,表1给出C调时各音符频率及其对应的时间常数。读者能根据表1所供给的常数,将其16进制代码送入R3,反复练习体会。根据表1能奏出音符。仅这还不够,要准确奏出一首曲子,必须准确地控制乐曲节奏,即一音符的持续时间。

    音符的节拍我们能用定时器T0来控制,送入不一样的初值,就能产生不一样的定时时间。便如某歌曲的节奏为每分钟94拍,即一拍为0.64秒。其它节拍与时间的对应关系见表2。

    但时,由于T0的最大定时时间只能为131毫秒,因此不可能直接用改变T0的时间初值来实现不一样节拍。我们能用T0来产生10毫秒的时间基准,然后设置一个中断计数器,通过判别中断计数器的值来控制节拍时间的长短。表2中也给出了各种节拍所对应的时间常数。例如对1/4拍音符,定时时间为0.16秒,对应的时间常数为16(即10H);对3拍音符,定时时间为1.92秒,对应时间长数为192(即C0H)。

    我们将每一音符的时间常数和其对应的节拍常数作为一组,按次序将乐曲中的所有常数排列成一个表,然后由查表程序依次取出,产生音符并控制节奏,就能实现演奏效果。此外,结束符和体止符能分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生对应的停顿效果。为了产生手弹的节奏感,在某些音符(例如两个相同音符)音插入一个时间单位的频率略有不一样的音符。

    下面给出程序序清单,可直接在TD-III型学习机上演奏,对其它不一样型号的学习机,只需对应地改变一下地址即可。本程序演奏的是民歌“八月桂花遍地开”,C调,节奏为94拍/分。读者也能自行找出一首歌,按表1和表2给定的常数,将乐曲翻译成码表输入机器,而程序不变。本实验办法简便,即使不懂音乐的人,将一首陌生的曲子翻译成代码也是易事,和着机器的演奏学唱一首歌曲,其趣味无穷。

    程序清单(略,请参看源程序的说明)。

    程序框图如图2所示。

    javascript:window.open(this.src); alt=点此在新窗口浏览图片 src="" width=532 οnlοad=javascript:resizepic(this) border=0>

    硬件连接说明:

    随便找一个仿真机或者什么单片机实验板,只要能工作的就行,将程序输入,运行,然后找个音箱(你计算机旁边应当就有一对吧)拨出插头,插头的前端接在P1。0上,后面部分找根线接单片机的地,就应当有声了,然后怎么改进硬件连接就是你的事了。。。。

    音乐程序汇编代码代码1 -------------Voice.asm--------------------------

    ORG 0000H

    LJMP START

    ORG 000BH

    INC 20H ;中断服务,中断计数器加1

    MOV TH0,#0D8H

    MOV TL0,#0EFH ;12M晶振,形成10毫秒中断

    RETI

    START:

    MOV SP,#50H

    MOV TH0,#0D8H

    MOV TL0,#0EFH

    MOV TMOD,#01H

    MOV IE,#82H

    MUSIC0:

    NOP

    MOV DPTR,#DAT ;表头地址送DPTR

    MOV 20H,#00H ;中断计数器清0

    MOV B,#00H ;表序号清0

    MUSIC1:

    NOP

    CLR A

    MOVC A,@A+DPTR ;查表取代码

    JZ END0 ;是00H,则结束

    CJNE A,#0FFH,MUSIC5

    LJMP MUSIC3

    MUSIC5:

    NOP

    MOV R6,A

    INC DPTR

    MOV A,B

    MOVC A,@A+DPTR ;取节拍代码送R7

    MOV R7,A

    SETB TR0 ;启动计数

    MUSIC2:

    NOP

    CPL P1.0

    MOV A,R6

    MOV R3,A

    LCALL DEL

    MOV A,R7

    CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否?

    ;不等,则继续循环

    MOV 20H,#00H ;等于,则取下一代码

    INC DPTR

    ; INC B

    LJMP MUSIC1

    MUSIC3:

    NOP

    CLR TR0 ;休止100毫秒

    MOV R2,#0DH

    MUSIC4:

    NOP

    MOV R3,#0FFH

    LCALL DEL

    DJNZ R2,MUSIC4

    INC DPTR

    LJMP MUSIC1

    END0:

    NOP

    MOV R2,#64H ;歌曲结束,延时1秒后继续

    MUSIC6:

    MOV R3,#00H

    LCALL DEL

    DJNZ R2,MUSIC6

    LJMP MUSIC0

    DEL:

    NOP

    DEL3:

    MOV R4,#02H

    DEL4:

    NOP

    DJNZ R4,DEL4

    NOP

    DJNZ R3,DEL3

    RET

    NOP

    DAT:

    db 26h,20h,20h,20h,20h,20h,26h,10h,20h,10h,20h,80h,26h,20h,30h,20h

    db 30h,20h,39h,10h,30h,10h,30h,80h,26h,20h,20h,20h,20h,20h,1ch,20h

    db 20h,80h,2bh,20h,26h,20h,20h,20h,2bh,10h,26h,10h,2bh,80h,26h,20h

    db 30h,20h,30h,20h,39h,10h,26h,10h,26h,60h,40h,10h,39h,10h,26h,20h

    db 30h,20h,30h,20h,39h,10h,26h,10h,26h,80h,26h,20h,2bh,10h,2bh,10h

    db 2bh,20h,30h,10h,39h,10h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,20h

    db 20h,10h,20h,10h,2bh,10h,26h,30h,30h,80h,18h,20h,18h,20h,26h,20h

    db 20h,20h,20h,40h,26h,20h,2bh,20h,30h,20h,30h,20h,1ch,20h,20h,20h

    db 20h,80h,1ch,20h,1ch,20h,1ch,20h,30h,20h,30h,60h,39h,10h,30h,10h

    db 20h,20h,2bh,10h,26h,10h,2bh,10h,26h,10h,26h,10h,2bh,10h,2bh,80h

    db 18h,20h,18h,20h,26h,20h,20h,20h,20h,60h,26h,10h,2bh,20h,30h,20h

    db 30h,20h,1ch,20h,20h,20h,20h,80h,26h,20h,30h,10h,30h,10h,30h,20h

    db 39h,20h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,10h,40h,10h,20h,10h

    db 20h,10h,2bh,10h,26h,30h,30h,80h,00H

    END

    音乐程序汇编代码代码2 -------------Voice1.asm--------------------------

    ;标题 '八月桂花香'发声程序

    ;摘要 详见'无线电'92年3期

    ;作者 周振安

    ORG 0000H

    LJMP START

    ORG 000BH

    INC 20H ;中断服务,中断计数器加1

    MOV TH0,#0D8H

    MOV TL0,#0EFH ;12M晶振,形成10毫秒中断

    RETI

    START:

    MOV SP,#50H

    MOV TH0,#0D8H

    MOV TL0,#0EFH

    MOV TMOD,#01H

    MOV IE,#82H

    MUSIC0:

    NOP

    MOV DPTR,#DAT ;表头地址送DPTR

    MOV 20H,#00H ;中断计数器清0

    MOV B,#00H ;表序号清0

    MUSIC1:

    NOP

    CLR A

    MOVC A,@A+DPTR ;查表取代码

    JZ END0 ;是00H,则结束

    CJNE A,#0FFH,MUSIC5

    LJMP MUSIC3

    MUSIC5:

    NOP

    MOV R6,A

    INC DPTR

    MOV A,B

    MOVC A,@A+DPTR ;取节拍代码送R7

    MOV R7,A

    SETB TR0 ;启动计数

    MUSIC2:

    NOP

    CPL P1.0

    MOV A,R6

    MOV R3,A

    LCALL DEL

    MOV A,R7

    CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否?

    ;不等,则继续循环

    MOV 20H,#00H ;等于,则取下一代码

    INC DPTR

    ; INC B

    LJMP MUSIC1

    MUSIC3:

    NOP

    CLR TR0 ;休止100毫秒

    MOV R2,#0DH

    MUSIC4:

    NOP

    MOV R3,#0FFH

    LCALL DEL

    DJNZ R2,MUSIC4

    INC DPTR

    LJMP MUSIC1

    END0:

    NOP

    MOV R2,#64H ;歌曲结束,延时1秒后继续

    MUSIC6:

    MOV R3,#00H

    LCALL DEL

    DJNZ R2,MUSIC6

    LJMP MUSIC0

    DEL:

    NOP

    DEL3:

    MOV R4,#02H

    DEL4:

    NOP

    DJNZ R4,DEL4

    NOP

    DJNZ R3,DEL3

    RET

    NOP

    DAT:

    DB 18H, 30H, 1CH, 10H

    DB 20H, 40H, 1CH, 10H

    DB 18H, 10H, 20H, 10H

    DB 1CH, 10H, 18H, 40H

    DB 1CH, 20H, 20H, 20H

    DB 1CH, 20H, 18H, 20H

    DB 20H, 80H, 0FFH, 20H

    DB 30H, 1CH, 10H , 18H

    DB 20H, 15H, 20H , 1CH

    DB 20H, 20H, 20H , 26H

    DB 40H, 20H , 20H , 2BH

    DB 20H, 26H, 20H , 20H

    DB 20H, 30H , 80H , 0FFH

    DB 20H, 20H, 1CH , 10H

    DB 18H, 10H, 20H , 20H

    DB 26H, 20H , 2BH , 20H

    DB 30H, 20H , 2BH , 40H

    DB 20H, 20H , 1CH , 10H

    DB 18H, 10H, 20H, 20H

    DB 26H, 20H , 2BH, 20H

    DB 30H, 20H, 2BH , 40H

    DB 20H, 30H, 1CH , 10H

    DB 18H, 20H , 15H , 20H

    DB 1CH, 20H , 20H , 20H

    DB 26H, 40H, 20H , 20H

    DB 2BH, 20H, 26H , 20H

    DB 20H, 20H, 30H , 80H

    DB 20H, 30H, 1CH , 10H

    DB 20H, 10H, 1CH , 10H

    DB 20H, 20H, 26H , 20H

    DB 2BH, 20H, 30H , 20H

    DB 2BH, 40H, 20H , 15H

    DB 1FH, 05H, 20H , 10H

    DB 1CH, 10H, 20H , 20H

    DB 26H, 20H, 2BH , 20H

    DB 30H, 20H, 2BH , 40H

    DB 20H, 30H, 1CH , 10H

    DB 18H, 20H , 15H , 20H

    DB 1CH, 20H , 20H , 20H

    DB 26H, 40H, 20H , 20H

    DB 2BH, 20H, 26H , 20H

    DB 20H, 20H, 30H, 30H

    DB 20H, 30H, 1CH, 10H

    DB 18H, 40H, 1CH, 20H

    DB 20H, 20H, 26H, 40H

    DB 13H, 60H, 18H , 20H

    DB 15H, 40H, 13H , 40H

    DB 18H, 80H, 00H

    end

    展开全文
  • 51单片机C51程序

    2020-06-20 15:57:41
    51单片机51单片机C51程序 C51程序 学习C51程序之前需要对C语言有一定的了解和学习;这里只介绍与C语言有区别的地方; 具体的不同如下: 1、C51中增加了几种针对MSC-51单片机的特有数据类型 a、sfr和sfr16:用于...

    51单片机51单片机

    C51程序

    学习C51程序之前需要对C语言有一定的了解和学习;这里只介绍与C语言有区别的地方;
    在这里插入图片描述
    具体的不同如下:
    1、C51中增加了几种针对MSC-51单片机的特有数据类型

    a、sfr和sfr16:用于定义特殊功能寄存器,如:sfr PSW = 0xd0(一般情况下这些特殊功能寄存器不需要用户自定义,通常包含在<reg51.h>头文件中)
    b、bit和sbit: 定义位变量,只占用一个二进制位;bit是位寻址区中的变量(20H~2FH,关于位寻址区详见51单片机之存储器篇)sbit指特殊功能寄存器中的可以位寻址的变量 ,如:sbit P1_0 = P1^0 sbit OV = 0xd2

    2、C51的存储模式与存储器密切相关,定义变量时要指明指定的存储器属性

    在这里插入图片描述
    如:
    在这里插入图片描述
    其实,对于单片机而言,他有片内、片外存储器,有RAM、ROM之分,RAM中还可以细分为4块(详见51单片机之存储器篇),所以我们需要在定义变量时明确的指出变量要存放在哪里?因此我们需要上图的不同的存储器类型来标识。

    3、有专门的关键字和语法规则
    在常规的函数定义后加入interrupt n来说明该函数为中断函数。n的取值有6种,分别代表不同的中断类型:
    在这里插入图片描述
    在使用中断函数时要注意以下几点:
    在这里插入图片描述

    展开全文
  • 单片机延时程序就是执行多次同一条指令,需要多长时间是否满足我们的要求?就得根据计算机访问存储器的时间即机器周期来。一个机器周期包括12个时钟周期。下面让我们算一下一个机器周期多长时间吧。设一个单片机...
  • 但是,如果要有效地运行单片机程序是不可或缺的,那么程序到底如何运行的呢?从本期开始,我们将分上下两篇向大家介绍单片机程序的关系。  关注单片机的存储器  在此之前,GR-SAKURA电路板...
  • 51单片机入门点灯程序 #include<reg52.h> //*在学的时候一定要记住这个开头不能错 sbit P1_0= P1^0; //定义一个P1口(单片机可能不同) void main() { P1_0= 0; //这里while循环P1口亮, while(1); //单片机...
  • 标准的C语言定义的库函数按通用微型计算机来定义的,而C51中的库函数按51单片机相应情况来定义的; (2)C51中的数据类型与标准C的数据类型也有一定的区别,在C51中还增加了几种针对51单片机特有的数据类型; ...
  • 对于单片机来说这些事件多种多样的。比如 说一个按键按下,一定的时间到了,一串数据发送完毕,或接收完一个数据。 讲到中断不得不讲讲和中断相对的 查询。其实不管按键按下 还是 时间到,还是数据发送完毕,...
  • 51单片机串口程序

    千次阅读 2015-08-05 00:12:48
     串口接收程序是基于串口中断的,单片机的串口每次接收到一字节数据产生一次中断,然后再读取某个寄存器就可以得到串口接收的数据了。然而在实际应用当中,基本上不会有单字节接收的情况。一般都基于一定
  •  在2010 年第2 期《PIC 单片机C 语言程序(5)》一文中,我们介绍了可预置起始时刻的时钟的硬件电路并给出了C 语言程序。下面要介绍的可预置起始时刻的倒计时程序作为日常生活中对某事件的定时之用:只要某事件...
  • 单片机闹钟程序及PROTUES仿真文件:k1k2k3k4分别:小时。分钟。秒钟的调节功能。定时时间的显示功能。k5k6分别设定第二时间为0:01:00,启用或者关闭闹钟.
  • 下面要介绍的可预置起始时刻的倒计时程序作为日常生活中对某事件的定时之用:只要某事件由人工设置的计时时间到,倒计时电路便会发出报警声。倒计时的特点,计时一旦达到预定值,其值就归零。
  • 单片机是可编程器件,开发者把程序写好、编译完之后,需要烧录到单片机中,单片机才能按照开发者的逻辑去执行。在这个烧录的过程中需要用到专用的烧录工具。比如51单片机的USB/TTL、STM单片机的STlink等。使用过...
  •  若不是硬件特性已的情况之下的其它流程都代码作祟。忽然想到来探探51单片机的执行流程。这个念头起源于最初见到每个51程序里面的主函数里面最终都挂一个while(1);语句。为何要加一句while死循环让程序停留在...
  • PWM的单片机产生程序

    2020-08-10 16:39:17
    PWM—脉冲宽度调制(Pulse Width Modulation),一种周期一定而高低电平可调的方波信号。当输出脉冲的频率一定时,输出脉冲的占空比越大,相对应的输出有效电压越大。PWM可以应用在许多方面,如电机调速、温度控制...
  • 基于51单片机矩阵键盘程序

    千次阅读 2017-08-08 21:24:07
    /*用矩阵键盘输入数字在数码管显示*/矩阵键盘代码的编写有点像VHDL 编码器的书写,很多那些数字都根据唯一的扫描位置来,也就是说这些数字可以任意设置,主要就是巧妙在“0xf0&0xfe” 通过这样确定出一定的位置...
  • 单片机是可编程器件,开发者把程序写好、编译完之后,需要烧录到单片机中,单片机才能按照开发者的逻辑去执行。在这个烧录的过程中需要用到专用的烧录工具。比如51单片机的USB/TTL、STM单片机的STlink等。使用过...
  •  在2010 年第2 期《PIC 单片机C 语言程序(5)》一文中,我们介绍了可预置起始时刻的时钟的硬件电路并给出了C 语言程序。下面要介绍的可预置起始时刻的倒计时程序作为日常生活中对某事件的定时之用:只要某事件...
  • 很多同学提到学习单片机,就会如下的表情:看到别人写的程序密密麻麻,不知道从何下手。其实静下心来去阅读别人的程序,就会发现有一定的规律,经常都模块化的。单片机的寄存器非常多,不知道该怎么使用,也记...
  •  若不是硬件特性已的情况之下的其它流程都代码作祟。忽然想到来探探51单片机的执行流程。这个念头起源于初见到每个51程序里面的主函数里面终都挂一个while(1);语句。为何要加一句while死循环让程序停留在main...
  • 程序进行优化,通常指优化程序代码或程序执行速度。优化代码和优化速度实际上一个予盾的统一,一般优化了代码的尺寸,就会带来执行时间的增加,如果优化了程序的执行速度,通常会带来代码增加的副作用,很难...
  • 单片机c程序反复执行

    2012-08-23 00:28:36
    第一次接触单片机c程序,写的代码竟然一直反复执行,实在不能理解。问了同事才知道,一定要死循环,防止指令地址持续增加后会回到程序开头再次执行。
  • stc单片机ad转换程序心得

    千次阅读 2013-05-18 23:18:58
    话说stc内部自带ad,但是功能多了!...2、在每次对adc-contr进行操作后,必须延时至少4个时钟周期,原因adc_contr这个寄存器需要时间存储信息; 3、在对adc_contr进行操作时,尽量不要用位寻址。
  • 51单片机C程序标准延时函数 在此我用的12M晶振一个时钟周期1/12us一个机器周期为12个时钟周期则机器周期为1us而51单片机执行一条语句为1,2,4个机器周期不等根据语句的长度来一般为1个机器周期而_nop)为一条空...
  • 于Microchip推出的PIC系列8位单片机是朝着超小型、低功耗、低成本方向发展的,这些产品无功能堆积而以多品种方式来满足各种应用层次的要求,所以PIC 8位单片机的型号特别多,正因为如此,给初学者带来学习上的不便,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 660
精华内容 264
关键字:

单片机定是程序