单片机学习知识点全攻略(完结篇)(三)

最新更新时间:2012-11-14来源: 互联网关键字:单片机  学习知识 手机看文章 扫描二维码
随时随地手机看文章

27、关于单片机的一些基本概念

  随着电子技术的迅速发展,计算机已深入地渗透到我们的生活中,许多电子爱好者开始学习单片机知识,但单片机的内容比较抽象,相对电子爱好者已熟悉的模拟电路、数字电路,单片机中有一些新的概念,这些概念非常基本以至于一般作者不屑去谈,教材自然也不会很深入地讲解这些概念,但这些内容又是学习中必须要理解的,下面就结合本人的学习、教学经验,对这些最基本概念作一说明,希望对自学者有所帮助。

  一、总线:我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中,连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件之间的工作必须相互协调,所以就需要的连线就很多了,如果仍如同模拟电路一样,在各微处理器和各器件间单独连线,则线的数量将多得惊人,所以在微处理机中引入了总线的概念,各个器件共同享用连线,所有器件的8根数据线全部接到8根公用的线上,即相当于各个器件并联起来,但仅这样还不行,如果有两个器件同时送出数据,一个为0,一个为1,那么,接收方接收到的究竟是什么呢?这种情况是不允许的,所以要通过控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据(能有多个器件同时接收)。器件的数据线也就被称为数据总线,器件所有的控制线被称为控制总线。在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元要被分配地址,才能使用,分配地址当然也是以电信号的形式给出的,由于存储单元比较多,所以,用于地址分配的线也较多,这些线被称为地址总线。

  二、数据、地址、指令:之所以将这三者放在一起,是因为这三者的本质都是一样的──数字,或者说都是一串‘0’和‘1’组成的序列。换言之,地址、指令也都是数据。指令:由单片机芯片的设计者规定的一种数字,它与我们常用的指令助记符有着严格的一一对应关系,不能由单片机的开发者更改。地址:是寻找单片机内部、外部的存储单元、输入输出口的依据,内部单元的地址值已由芯片设计者规定好,不可更改,外部的单元能由单片机开发者自行决定,但有一些地址单元是一定要有的(详见程序的执行过程)。数据:这是由微处理机处理的对象,在各种不一样的应用电路中各不相同,一般而言,被处理的数据可能有这么几种情况:

  1·地址(如MOV DPTR,#1000H),即地址1000H送入DPTR。

  2·方式字或控制字(如MOV TMOD,#3),3即是控制字。

  3·常数(如MOV TH0,#10H)10H即定时常数。

  4·实际输出值(如P1口接彩灯,要灯全亮,则执行指令:MOV P1,#0FFH,要灯全暗,则执行指令:MOV P1,#00H)这里0FFH和00H都是实际输出值。又如用于LED的字形码,也是实际输出的值。

  理解了地址、指令的本质,就不难理解程序运行过程中为什么会跑飞,会把数据当成指令来执行了。

  三、P0口、P2口和P3的第二功能使用办法 开始学习时一般对P0口、P2口和P3口的第二功能使用办法迷惑不解,认为第二功能和原功能之间要有一个切换的过程,或者说要有一条指令,事实上,各端口的第二功能完全是自动的,不需要用指令来转换。如P3.6、P3.7分别是WR、RD信号,当微片理机外接RAM或有外部I/O口时,它们被用作第二功能,不能作为通用I/O口使用,只要一微处理机一执行到MOVX指令,就会有对应的信号从P3.6或P3.7送出,不需要事先用指令说明。事实上‘不能作为通用I/O口使用’也并不是‘不能’而是(使用者)‘不会’将其作为通用I/O口使用。你完全能在指令中按排一条SETB P3.7的指令,并且当单片机执行到这条指令时,也会使P3.7变为高电平,但使用者不会这么去做,因为这常常这会导致系统的崩溃(即死机)。

  四、程序的执行过程 单片机在通电复位后8051内的程序计数器(PC)中的值为‘0000’,所以程序总是从‘0000’单元开始执行,也就是说:在系统的ROM中一定要存在‘0000’这个单元,并且在‘0000’单元中存放的一定是一条指令。

  五、堆栈 堆栈是一个区域,是用来存放数据的,这个区域本身没有任何特殊之处,就是内部RAM的一部份,特殊的是它存放和取用数据的方式,即所谓的‘先进后出,后进先出’,并且堆栈有特殊的数据传输指令,即‘PUSH’和‘POP’,有一个特殊的专为其服务的单元,即堆栈指针SP,每当执一次PUSH指令时,SP就(在原来值的基础上)自动加1,每当执行一次POP指令,SP就(在原来值的基础上)自动减1。由于SP中的值能用指令加以改变,所以只要在程序开始阶段更改了SP的值,就能把堆栈设置在规定的内存单元中,如在程序开始时,用一条MOV SP,#5FH指令,就时把堆栈设置在从内存单元60H开始的单元中。一般程序的开头总有这么一条设置堆栈指针的指令,因为开机时,SP的初始值为07H,这样就使堆栈从08H单元开始往后,而08H到1FH这个区域正是8031的第二、三、四工作寄存器区,经常要被使用,这会造成数据的浑乱。不一样作者编写程序时,初始化堆栈指令也不完全相同,这是作者的习惯问题。当设置好堆栈区后,并不意味着该区域成为一种专用内存,它还是能象普通内存区域一样使用,只是一般情况下编程者不会把它当成普通内存用了。

  六、单片机的开发过程 这里所说的开发过程并不是一般书中所说的从任务分析开始,我们假设已设计并制作好硬件,下面就是编写软件的工作。在编写软件之前,首先要确定一些常数、地址,事实上这些常数、地址在设计阶段已被直接或间接地确定下来了。如当某器件的连线设计好后,其地址也就被确定了,当器件的功能被确定下来后,其控制字也就被确定了。然后用文本编缉器(如EDIT、CCED等)编写软件,编写好后,用编译器对源程序文件编译,查错,直到没有语法错误,除了极简单的程序外,一般应用仿真机对软件进行调试,直到程序运行正确为止。运行正确后,就能写片(将程序固化在EPROM中)。在源程序被编译后,生成了扩展名为HEX的目标文件,一般编程器能够识别这种格式的文件,只要将此文件调入即可写片。在此,为使大家对整个过程有个认识,举一例说明:

  表1

  ORG 0000H

  LJMP START

  ORG 040H

  START:

  MOV SP,#5FH ;设堆栈

  LOOP:

  NOP

  LJMP LOOP ;循环

  END ;结束

  表2

  :03000000020040BB

  :0700400075815F000200431F

  表3

  02 00 40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 75 81 5F 00 02 00 43

  表1为源程序,表2是汇编后得到的HEX文件,表3是由HEX文件转换成的目标文件,也就是最终写入EPROM的文件,它由编程器转换得到,也能由HEXBIN一类的程序转换得到。学过手工汇编者应当不难找出表3与表1的一一对应关系,值得注意的是从02 00 40后开始的一长串‘FF’,直到75 81,这是由于伪指令:ORG 040H造成的结果。

  七、仿真、仿真机 仿真是单片机开发过程中非常重要的一个环节,除了一些极简单的任务,一般产品开发过程中都要进行仿真,仿真的主要目的是进行软件调试,当然借助仿真机,也能进行一些硬件排错。一块单片机应用电路板包括单片机部份及为达到使用目的而设计的应用电路,仿真就是利用仿真机来代替应用电路板(称目标机)的单片机部份,对应用电路部份进行测试、调试。仿真有CPU仿真和ROM仿真两种,所谓CPU仿真是指用仿真机代替目标机的CPU,由仿真机向目标机的应用电路部份供给各种信号、数据,进行调试的办法。这种仿真能通过单步运行、连续运行等多种办法来运行程序,并能观察到单片机内部的变化,便于改正程序中的错误。所谓ROM仿真,就是用仿真机代替目标机的ROM,目标机的CPU工作时,从仿真机中读取程序,并执行。这种仿真其实就是将仿真机当成一片EPROM,只是省去了擦片、写片的麻烦,并没有多少调试手段可言。常常这是二种不一样类型的仿真机,也就是说,一台仿真机不能既做CPU仿真,又做ROM仿真。可能的情况下,当然以CPU仿真好。以上是本人对单片机的理解,如有不对之处,请诸位大侠多多指点。发表您的高论。

28、单片机音乐程序设计

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

  单片机的基本发音实验

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

  例如,要产生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所示。

  点击浏览下一页

  《单片机音乐程序的设计图》

  本课由单片机教程网提供,有问题指出。

  硬件连接说明:

  随便找一个仿真机或者什么单片机实验板,只要能工作的就行,将程序输入,运行,然后找个音箱(你计算机旁边应当就有一对吧)拨出插头,插头的前端接在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

关键字:单片机  学习知识 编辑:神话 引用地址:单片机学习知识点全攻略(完结篇)(三)

上一篇:单片机学习知识点全攻略(完结篇)(二)
下一篇:嵌入式四轴遥控小车开发(附带程序)

推荐阅读最新更新时间:2023-10-12 20:43

单片机的总线
 一直以来,单片机没有自己的专门的总线标准,通常是由著名厂家推出自己产品时配套设计的。如MC S-51系列单片机就设计有完善的三总线结构(地址总线AB,数据总线DB,控制总线CB),要构成不同的单片机应用系统是方便的。虽然,单片机可以归结为工控机的一种,而工控机的成熟主流总线是STD总线,但单片机却没有完全执行STD总线标(IEEE961),而以控制总线差别较大。   这里只论及完全根据单片机的特点,按照控制系统网络及多机系统的需要而设计的串行接口总线。有了此总线,多个单片机就能以一定的拓朴结构组成多种系统,弥补了在网络控制方面的不足。   单片机应用系统涉及多种多样的外部设备或系统的互连和通信,有必要在单片机与外部芯片间插入有通
[单片机]
X25165在8051单片机系统中的应用
美国XICor公司生产的Z25165芯片是集看门狗、电压监控和串行EEPROM三项功能于一体的集成电路产品。该芯片的应用将有利于简化单片机系统的结构,降低系统的成本,减少对电路板的空间需求,增加系统的可靠性。 1 芯片简介 X25165的引脚排列如图1所示,各引脚功能说明如表1所列。 X25165使用简单的三线总线串行外设接口(SPI),对芯片进行操作的所有操作码、字节地址及写入的数据均从SI引脚输入,写入数据在串行时钟(SCK)的上升沿被锁存,从芯片读取的数据从SO引脚串行移出,并在串行时钟的下降沿输出数据。 芯片的看门狗定时器和VCC电压监视器都对微处理器提供独立的保护,当系统发生故障时,只要看门狗定时
[单片机]
X25165在8051<font color='red'>单片机</font>系统中的应用
单片机连续按键检测C51程序
这几天闲来无事,翻腾出以前的仿真器和编程器,找出几片STC12c2052。写了个修改中继功能的小程序,主要实现: 1、在5秒内连续按三下发射键才能打开中继。 2、打开中继后,中继在每一句话后延时10s,10s内没有说话的,中继关闭。 3、每一句语音后面自动加上“滴滴”,每一组语音结束自动加上“滴滴滴”。 用华为450C试了试,发现450C的静噪点不好取,明天用2K电阻连接插头第一脚试试能不能模拟出低电平静噪信号。控制的话应该是把PNP三极管的上面一脚(B)拉低即可。 单片机附带上无语音静音控制输出和“滴滴”声音输出。 不能加附件,就把源程序贴上:
[单片机]
简单的温度指示器使用基于RISC的MCU
非常简单的温度指示器可以在8位RISC微控制器周围构建(参见图)。来自温度感应器的数据由MCU处理并且用于显示温度。在本电路中使用的MAX6577温度感应器可以测量范围在-40°C至125°C之间的温度。它几乎不需要其他外部元件。 这个感应器可以将温度转换成其输出信号频率与绝对温度(K)成比例的方形波。如果这个频率已经测量出来了,计算温度就会变得相当容易。这可以通过不同的时间测量电路或者MCU中提供的定时器来实现。 这个电路使用AVR AT90S4433低成本MCU用来处理感应器数据和显示温度。在其他器件中,这个MCU配有4千字节的系统内可编程闪存、128字节的SRAM、128字节的系统可编程EEPROM、一个六
[单片机]
简单的温度指示器使用基于RISC的<font color='red'>MCU</font>
微控制器模块和DS18B20 的连接电路图
STC89C52RC 微控制器模块和DS18B20 的连接电路图如下图所示: 图 STC89C52RC 微控制器模块和DS18B20 的连接电路图
[模拟电子]
<font color='red'>微控制器</font>模块和DS18B20 的连接电路图
单片机软件系统抗干扰设计
  提高单片机应用系统的可靠性要从软硬件入手,提高系统的自身防御行为,以下所提到几种提高可靠性的方法,都不是单独使用的,只有根据实际情况将这些方法有效地结合起来,才能达到最佳抗干扰效果,使我们的单片机系统稳定可靠地工作。当然,单片机系统运行的可靠性也会受其他不确定因素的干扰。   1、指令冗余   CPU取指令过程是先取操作码,再取操作数。在程序的关键地方人为的插入一些单字节指令,或将有效单字节指令重写称为指令冗余,通常是在双字节指令和三字节指令后插入两个字节以上的NOP指令。这样即使跑飞程序飞到双字节指令和三字节指令操作数上。由于窄操作指令NOP的存在,避免了后面的指令被错误地执行,为程序纳入正轨做好准备。此外,对系
[单片机]
<font color='red'>单片机</font>软件系统抗干扰设计
基于MCU与USB设备控制器IP核的设计方案
1 引言 在传统的计算机系统上常采用串口(如RS232)和并口连接外围设备,但串口和并口都存在着通信速度 慢,接口独占不利于扩展等无法克服的缺点,而通用串行总线(Universal Serial Bus,即USB)因具有传输 速度快、支持热插拔、扩展方便、抗干扰强、成本低、数据传输质量高、节省系统资源等优点而得到了广 泛的应用,当前它已成为计算机最常用的接口之一。 现在USB控制器主要有两种:带USB接口的单片机(MCU) 和纯粹的USB接口芯片。纯粹的USB接口芯片仅处 理USB通信,必须有个外部微处理器来进行协议处理和数据交换。典型产品有Philips公司的PDIUSBD11(I2C 接口)、PDIUSBD12(并行接口);N
[电源管理]
基于<font color='red'>MCU</font>与USB设备控制器IP核的设计方案
基于STM32H7 MCU的智能家居语音接口参考设计
STEVAL语音接口可将基于云计算服务的Alexa体验带到烤箱、炉灶、温度计、百叶窗、吹风机等家电产品,减少传统按钮和旋钮的使用,而无需在电子硬件上大量投资。本方案采用集成了Alexa语音用户接口软件的STM32H7 MCU,可简化家电控制器的研发,而且软、硬件都可以轻松调整和修改。 图1. STEVAL语音接口样板 方案特点 ASTEVAL-VOICE-UI语音接口参考设计包括一个STM32H743高性能MCU、一个Wi-Fi模块,板子尺寸36mm x 65mm。与采用DSP、无闪存处理器等常用元器件的Alexa产品不同,本方案即使环境吵闹嘈杂,麦克风间隔很小,音频前端仍能提供出色的远场语音检测功能。 图2. STEVA
[单片机]
基于STM32H7 <font color='red'>MCU</font>的智能家居语音接口参考设计
小广播
最新模拟电子文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved