专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

恨死单片机之点亮LED

作者:佚名   来源:本站原创   点击数:  更新时间:2010年07月21日   【字体:

当一个女生对你说讨厌的时候,很大的可能是在说喜欢。所以,俺也学习一下,来个恨死单片机吧。

51开发板买来一个学期了。可是就是没有学过,汗啊。。趁着暑假的时候,终于开始动工。最近在听徐成老师的课,收获很大,虽然他讲的知识点不多,但是很能开拓视野。更重要的是,从他那里学到的不是知识,而是学习知识的方法。收获最大的,就是从宏观的角度看问题。举个例子:徐老师讲,啥单片机,DSP,ARM,PC机,搞那么多干什么,在我看来,就是图灵机。在具体一点,就是冯诺依曼结构。顿时如同醍醐灌顶。

话不多说,转入正题。

以前学习单片机,都是从C语言入手的。后来觉得,从汇编入手能更好的理解计算机。所以又从头开始学。可恶的汇编啊。一句话,真难。

来个程序

­ ;*******************************************************************
;*   by 小马哥                                                     *

 


      ORG   0000H
      AJMP  MAIN
;***************************************************
MAIN:
      MOV P0,#0FFH   ;端口初始化,0表示无符号
;
START:
      MOV P0,#00FH     ;LED ON 此时LED正极接电源,负极接P1.0
      CALL  DELAY     ;做一个延迟
      MOV P0,#0FFH     ;LED OFF
      CALL  DELAY     ;做一小段延迟
      AJMP  START
;
; 延时子程序1秒
;==================================================
;==================================================
DELAY:           
                   mov r1,#11
delay_1s_lp2:      mov r2,#200
delay_1s_lp1:      mov r3,#200
                   djnz r3,$
                   djnz  r2,delay_1s_lp1
                   djnz r1,delay_1s_lp2
                   ret

        END            ;结束

;************************************************

 

看懂没,如果看不懂的话,看看下面的视频吧。

 

视频录制的不是很清楚,将就着看吧。

如果我们稍微改变一个数字,把上面的一段程序改为下面的

;***************************************************
MAIN:
      MOV P0,#0FFH   ;端口初始化,0表示无符号
;
START:
      MOV P0,#0AAH     ;LED ON 此时LED正极接电源,负极接P1.0
      CALL  DELAY     ;做一个延迟
      MOV P0,#055H     ;LED OFF
      CALL  DELAY     ;做一小段延迟
      AJMP  START
;
; 延时子程序1秒
;==================================================


再来看看一个视频,

怎么样。。。是不是很好玩。

本来想讲讲这个程序。但是不知道从何讲起。不过有一点可以说明一下。这玩意就像我们在实验室做的FPGA一样,把管教设置为0或者1。不同的不过是那个用VHDL,这个用汇编而已。(暂时这么类比)。

下一篇文章,就讲讲流水灯吧。现在还没做出来,明天继续奋斗。

关闭窗口

相关文章