微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 单片机经典实验实例精华详解(附源程序)

单片机经典实验实例精华详解(附源程序)

时间:04-23 来源:本站整理 点击:

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

  ;不等,则继续循环

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

  INC DPTR

  LJMP MUSIC1

  MUSIC3:

  NOP ;休止100毫秒

  CLR TR0

  MOV R2,#0DH ;R2=13

  MUSIC4:

  NOP

  MOV R3,#0FFH ;R3=255

  LCALL DEL

  DJNZ R2,MUSIC4

  INC DPTR

  LJMP MUSIC1

  END0:

  NOP

  MOV R2,#0FFH ;歌曲结束,延时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试验板上的两个轻触按钮开关,我们采用的是独立式按钮开关,也就是说将开关直接连接到电源的地和单片机的对应引脚之间,这里K1接到单片机的P3.6引脚,K2接到P3.7。正常情况下单片机的P3.6、P3.7都被程序初始化时置"1" 当有按键按下时对应的单片机引脚被按钮开关下拉为"0",这种方法比较直观,而且比较简单,在按键数量不多的场合下使用很广泛。

  

  因为机械开关开关时有抖动,所以需要在程序中加一个软件去抖动程序,它的工作原理如下:当单片机检测到有按键被按下后立即执行一个10毫秒的延时程序,然后再在检测该引脚是否仍然为闭合状态?如果仍然为闭合说明确认该键被按下立即执行相应的处理程序,否则可能是干扰,丢弃这次检测结果。

  接下来我们再安装一个四位的拨码开关,就是图中红色的开关,它相当于四个装在一起的拨动开关,当开关拨到"ON"一侧时,对应的那路就会接通,反之断开。它在单片机中一般用于设置初始参数,而且不经常改变的场合。这里因为单片机引脚资源不够,所以我们只使用了拨码开关的第2、3、4位,第1位闲置。三个开关可以逻辑组合出8种状态,所以我们能够方便灵活地预置多达7种的倒计时时间。

  最后我们来安装两个继电器和相关电路,有了继电器我们的实验板不再仅仅是做做实验而已,可以用于控制一些负载,比如说:充电器,洗衣机,电风扇等,使我们的实验板的实用功能大大增强,这也是电子制作实验室网站的单片机实验板和其他公司的产品不同的地方。

  

  这里继电器由相应的S8050三极管来驱动,开机时,单片机初始化后的P2.3/P2.4为高电平,+5伏电源通过电阻使三极管导通,所以开机后继电器始终处于吸合状态,如果我们在程序中给单片机一条:CLR P2.3或者CLR P2.4的指令的话,相应三极管的基极就会被拉低到零伏左右,使相应的三极管截至,继电器就会断电释放,每个继电器都有一个常开转常闭的接点,便于在其他电路中使用,继电器线圈两端反相并联的二极管是起到吸收反向电动势的功能,保护相应的驱动三极管,这种继电器驱动方式硬件结构比较简单。

;电子制作实验室http:

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top