电工技术基础_电工基础知识_电工之家-电工学习网

欢迎来到电工学习网!

51单片机的数码管循环显现编程实例

2017-03-28 12:09分类:PLC基础知识 阅读:

 

  恳求在数码管上循环显现数字 1~5。

  典范剖析:
  1.1硬件剖析
  数码管选用共阳极构造。
  1.2软件方案
  方案中恳求循环显现1~5,很明显应选用循环的办法来完毕,最简略的办法是将1~5的段码顺次由P0口送出。
  预备程序


  2、操控搬运类指令的特征及运用
  (1)长搬运指令
  LJMP Addr16
  功用:长间隔无条件搬运指令
  阐明:三字节指令,它直接将指令中的16位常数装入PC,使程序无条件搬运到指定的地址处施行。方针句子可所以程序存储器64KB空间的任何本地。
  (2)必定搬运指令
  AJMP addr11
  例: 4002H AJMP MM
  ……
  4600H MM: MOV A,#00H
  留心:方针句子有必要和其时句子同页。在51单片机中,64KB程序存储器分红32页,每页2KB(7FFH)。
  (3)短跳转指令
  SJMP 方针句子(rel)
  例: 4060H SJMP LOOP
  ……
  4090H LOOP:MOV A,#0FFH
  ……
  留心:短跳转的方针句子地址有必要在其时句子向前127(7FH)字节,向后128(80H)字节,不然在进行程序编译时会犯错。
  (4)变址寻址搬运指令
  JMP @A+DPTR
  该指令首要用于多分支的跳转程序方案。跳转的方针地址是累加器A和数据指针DPTR之和,它可所以64KB存储空间的任何本地。
  例 依据象征单元R2中的内容,别离转各个处理程序。
  程序如下:
  PJ1: MOV DPTR ,#TAB1
  CLR C
  MOV A,R2
  ADD A,R2 ;(R2) ×2←A
  JNC NADD
  NC DPH ;(R2)×2>256时,16位数据指针高8位加1
  NADD:JMP @A+DPTR
  TAB1:LJMP PRG0 ;转处理程序0的首地址
  LJMP RRG1
  …
  LJMP RRG n
  (5)减1条件搬运指令组
  DJNZ Rn,方针地址(rel);假定(Rn)-1≠0,则程序跳转到方针句子,不然次第施行下一条句子。
  DJNZ direct,方针地址(rel);假定(direct)-1≠0,则程序跳转到方针句子,不然次第施行下一条句子。
   例 将8031内部RAM的40H~4FH单元置初值A0H~AFH。程序为:
  START:MOV RO,#40H ;RO赋值,指向数据单元
  MOV R2,#10H ;R2赋值,为传送字节数,十六进制数
  MOV A,#0A0H ;给A赋值
  LOOP: MOV @RO,A ;开端传送
  INC,RO ;批改地址指针,预备传下一数地址
  INC A ;批改传送数据值
  DJNZ R2,LOOP ;假定未传送完,则持续循环传送
  RET ;当R2的值减为0时,则传送完毕

  3、延时程序的方案和延不时刻的核算办法
  延时程序是一种运用较为广泛的小程序,通常选用多条句子循环施行来完毕延时。
  例1:方案一延时程序,延不时刻为1ms(fosc=12MHz)。
  例2:方案一延时250ms的程序
  已有上例所举延时1ms子程序,调用250次,即得延时250ms子程序
  DELAY2:MOV R3,#FAH
  DEL3:ACALL DELAY1
  DEL2: NOP
  NOP
  DJNZ R3,DEL3
  RET
  本段程序延时的时刻为:
  1+(2+993+2)250+2=249253us
  过错不到1ms
  考虑:怎么方案延时1s程序
  4、子程序的方案办法
  4.1子程序:在程序中重复屡次施行的程序段,可编写为子程序,在运用时经过主程序调用就可以运用它。这么不光可以削减编程作业量,也缩短了程序的长度。
  4.2子程序的运用:
  (1)子程序调用:
  指令:ACALL ××× ;必定调用,2KB方案
     LCALL ××× ;长调用,64KB方案
  (2)子程序回来:
  指令:RET ;子程序回来指令
     RETI ;接连子程序回来指令
  ORG 2000H
  MAIN: CLR P3.2
  MOV P0,#0F9H
  LCALL DEL
  MOV P0,#0A4H
  LCALL DEL
  MOV P0,#0B0H
  LCALL DEL
  SJMP MAIN
  DEL: MOV R7,#10
  DEL1: MOV R6,#123
  …………
  DJNZ R7,DEL1
  RET
  END

  5、循环程序方案的底子办法
  循环程序:在程序中需求重复施行的程序段,为了防止在程序中屡次的编写,可以经过运用条件搬运或无条件搬运指令来操控程序的施行。构造流程图通常如下图所示:

上一篇:单片机串行通讯根底常识

下一篇:8051单片机模块化编程诀窍

相关推荐

电工推荐

    电工技术基础_电工基础知识_电工之家-电工学习网
返回顶部