51单片机日记:从最简单的点小灯开始

 

对于P0 P1 P2 P3的端口的写,直接送数即可。虽然可以查到这些端口的地址,但是是无法直接写数到地址的。所以也就不需要记住他们的地址鸟,直接往端口送数即可。如果想直接操作P2.0 P2.1这样的端口,用位操作即可。延时程序嘛就是给单片机一些数让它去循环,时间是循环次数*指令的周期/机器周期的结果。

 

  1.         ORG             000H 
  2.         LJMP            MAIN 
  3.         ORG             030H 
  4. MAIN:   MOV             P2,     #00H 
  5.         LCALL           DELAY 
  6.         SETB            P2.0 
  7.         LCALL           DELAY 
  8.         SETB            P2.1 
  9.         LCALL           DELAY 
  10.         SETB            P2.2 
  11.         LCALL           DELAY 
  12.         SETB            P2.3 
  13.         LCALL           DELAY 
  14.         SETB            P2.4 
  15.         LCALL           DELAY 
  16.         SETB            P2.5 
  17.         LCALL           DELAY 
  18.         SETB            P2.6 
  19.         LCALL           DELAY 
  20.         SETB            P2.7 
  21.         LCALL           DELAY 
  22.         LCALL           MAIN 
  23.  
  24. DELAY:  MOV             R5,     #04H 
  25. F3:     MOV             R6,     #0FFH 
  26. F2:     MOV             R7,     #0FFH 
  27. F1:     DJNZ            R7, F1           
  28.         DJNZ            R6, F2 
  29.         DJNZ            R5, F3 
  30.         RET 
  31.         END 

 
呃,其实自己也觉得代码有点儿傻,记录吧,一点点儿来~~~

 

5 条评论

  1. 奶牛加油!我看咱们专业的培养计划上说大三下学期有嵌入式系统基础和Linux系统设计对吧?

  2. 推荐博主用C语言 :fd

    • 嗯,先搞搞原理再转~~~

  3. 奶牛呀,你直接用汇编玩呀,膜拜哦。如果不是学科要求的话,直接C呀,要快速搭接项目的话,用 arduino,会轻松很多。

  4. 大一学过,不过显然稀烂。后来学的 PLC 比单片机 有意思些

:wx :k :good :fd :gz more »