乐源电子——让生活更加美好  http://www.leyuandz.com

                                                                              
设为首页
加入收藏
联系我们
首   页 网站简介 无线遥控 音频功放 单片机 DSP 网站产品 订货系统 邮购须知

                                                                             

循序渐进51study之实例1-5


实例1
; !!!注意,分号后面为注释内容
;最简单的程序:让int0腿发光二极管(led)亮和灭。
;将led插在VCC和INT0上,当INT0腿为低电平时led亮,当INT0腿高电平时led灭
;INT0腿对应的端口为p3.2

           org  0000h ;定位语句,使应用程序从0000h开始
           clr  p3.2  ;清除p3.2,即使int0腿为低电平,led亮
           sjmp $     ;此语句是让程序暂停
           end        ;程序结束,不要忘记了写end !
;如果要led灭,将clr p3.2 改为 setb p3.2即可。

 

实例2
;让蜂鸣器发声
;蜂鸣器对应端口为p1.3

           org  0000h  ;程序从0000h开始
speaker:   cpl  p1.3   ;对p1.3求反,这样可以得到方波

           mov  r7,#2  ;晶振12mhz,延时1ms,得到500hz的音频
loop:      mov  r6,#250
           djnz r6,$   ;假如 r6-1不等于0,则继续本指令 
           djnz r7,loop
           sjmp speaker
           end         ;程序结束

 

实例3
;此程序在数码管的第一位显示数字或字符
;数码管的写地址为2000h
;数码管的片选由p1.0,p1,1,p1,2决定,p1高为可以取全1
;如当p1=11111111时,选中第一个数码管,p1=11111000时,选中第8个数码管

           org  0000h          ;程序从0000h开始
           mov  p1,#11111111b  ;在第一个数码管显示
                               ;#11111111b为二进制表示法
           mov  a,#79h         ;显示E符号
           mov  dptr,#2000h    ;送数码管写地址
           movx @dptr,a        ;送"E"到数码管显示
           sjmp $              ;程序暂停

;以下为数字0-9和字符a-f的显示代码
;3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,67h
;77h,7ch,39h,5eh,79h,71h

end ;结束

 

实例4
;此程序让数码管移动显示
;数码管的写地址为2000h
;数码管的片选由p1.0,p1,1,p1,2决定,p1高位可以取全1
;如当p1=11111111时,选中第一个数码管,p1=11111000时,选中第8个数码管

           org  0000h         ;程序从0000h开始
again:     mov  p1,#11111111b ;在第一个数码管开始显示
                              ;#11111111b为二进制表示法
next:      mov  a,#79h        ;显示E符号
           mov  dptr,#2000h   ;送数码管写地址
           movx @dptr,a       ;送"E"到数码管显示

           mov  r7,#5         ;延时500ms后移位
loopr6:    mov  r6,#200
loopr5:    mov  r5,#250
           djnz r5,$
           djnz r6,loopr5
           djnz r7,loopr6 

           dec  p1             ;移动到下一个数码管
           mov  a,p1
           cjne a,#111110111b,next
           sjmp again
;以下为数字0-9和字符a-f的显示代码
;3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,67h
;77h,7ch,39h,5eh,79h,71h

           end ;结束

 

实例5
;此程序演示单个按键的查询方法
;键盘输出控制为p1.5,p1.6,p1,7 输入为p1.4
;原理是 p1,5,p1,6,p1,7经74LS138译码为8线,选中线为低电平
;当某个键按下后,其对应的低电平将连通输入线p1,4,使p1.4为低电平
;无键按下时,p1.4为高电平
;用int0口的led指示第一个键是否按下,若按下,则led亮
           org  0000h          ;程序从0000h开始
wait:      mov  p1,#11111111b  ;查询第一个按键是否按下
           jb   p1.4,black     ;若没有按下,则led灭
           clr  p3.2           ;若按下,则led亮
           sjmp wait           ;继续查询
black:     setb p3.2           ;led灭
           sjmp wait           ;继续查询
           end
;注意,因为p1.4作为输入线,所以上面“mov p1,#11111111b”中,p1,4一定要为1

建议您使用IE 6.0或更高版本浏览器

乐源电子 版权所有
E-Mail:liang_2578@126.com
联系人:梁先生 电话:13601658256(若联系不上,请发短信留言)
QQ:569093346