×
单片机 > 单片机程序设计 > 详情

20天89C51单片机总结

发布时间:2020-08-21 发布时间:
|

看了怎么久的单片机做个总结。其实就芯片来说单片机没想象的那么复杂!89C51就40个引脚。其中P0~P3口占了32个。一个接地一个接电源,两个振荡引脚。一个EA引脚ROM的起始地址选择端。一个ALE/Vpp片外地址锁存器充许引脚/线编程电源输入端。PSEN片外ROM充许使能端。当然还有个复位REST引脚。其中P3口全部都有第2功能复用:定时 中断 串行口中断。当P0~P3端口写#FFH时片内锁存器置1这是单口为双向输入 输出口。这是从芯片外围看。

从芯片的内部看的话主要的就两个独立的存储器 ROM,RAM 一个为程序指示,一个为数据处理和存放。编程时通过寻址方式区别ROM,RAM。他们都为64KB的容量。ROM的片内为4KB存储空间。由EA指示是从片外执行程序还是从片内执行。RAM片内为256字节即FFH分4个部分。00H~1FH为工作寄存器组。20H~2FH为为寻址空间。30H~7FH为用户RAM区。80H~FFH为特殊寄存器区。有22个SFR(这里就不在介绍了)。

说说指令系统吧。MOV ,MOVX, MOVC3个传送指令其中片外存储器是不能直接传送的。3个调用指令AJMP,LJMP,SJMP.分别用于不同的调用范围。逻辑算术指令ANL ,ORL ,XRL.还有加 ADD,减SUBB,乘MUL,除DIV。还有很多的指令如交换,跳转,循环,位寻址,布尔处理指令等。

例如下面的循环-跳转指令

 MOV R0,#00H
 MOV R1,#AAH
 MOV R7#0BH
loop:  MOV A ,@R0
         MOV   @R1,A
         INC R0
         INC R1
         DJNZ  R7,loop
         END

  这个程序就是执行片内传送功能的。

说说程序的一般流程吧。分为顺序,分支,循环,还有组合嵌套。上面的例题就是循环的一种。

写个分支程序的例题

                 MOV A,R1
               RL    A
               MOV DPTR,#data
               JMP  @A +DPTR
data:     AJMP  KK1
              AJMP  KK2
                 .
                 .
              AJMP KKn

这个指令就是以 data为首地址 R1为偏移量的分支转移,因为AJMP为双字节指令所以要执行RL A。

下面在说下中断跟定时吧。

中断涉及的寄存器由 TCON , IE, IP,SCOM.

通过对中断中断标志位的设置区执行中断请求。中断有5个入口地址 03H 0BH 13H 1BH 23H.

例如外部中断一的入口在默认模式下设置为最高优先级

 SETB  PX1

 STEB  EX1

STEB  EA

非常简单,有点像闯关游戏每个环节都完成才能执行中断。

下面是定时器,定时器在单片机的运用是非常高的。4种工作模式0 , 1 ,2 ,3。

我就用典型的定时器0模式2在12MHZ的程序编写一个正弦波输出XXMS在P1.0。初值就用KKH代替吧。

                                   MOV  P1  ,#FFH 
MAIN:                         MOV  TMOD  ,  #02H
                               MOV   TH0     ,#KKH
                               MOV    LHO    ,#KKH
                               STEB   ET0
                               STEB  TRO
                               STEB   EA
                               AJMP  $


中断程序       TIME0:  CLR   TF0
                                CPL    P1.0
                                RETI.

还有串行口传输了。89C51有4种模式的传输,其中波特率的设置尤为重要。

涉及寄存器有 TCOM  TDOM   SCOM   SDOM  PCON.

其实89C51还可以用软件模拟总线接口。如SPI  I2C等还有按键的程序设置外部的扩展实在太多了。以后有时间在编写发上来。

关键字:89C51  单片机总结  串行口传输 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
如何为单片机选择合适的负载电容