单片机经典实验实例精华详解(附源程序)
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:
- 单片机在电源设计中的应用(06-07)
- 基于单片机的锅炉液位控制装置设计(07-22)
- 基于SPWM的交流稳压电源设计方案(09-15)
- 基于单片机的电池保护电路系统设计(02-24)
- 晶闸管三相全控桥式整流电路的直流电源设计(02-08)
- 智能充电设备控制系统的硬件设计方案(02-14)