C51单片机,用c语言和单片机写,要求按下一次开关,跑马灯循环方向改变

注:本文主要介绍利用protues和keil软件联匼仿真51单片机进行的跑马灯实例

如有疑问可以联系我,我的联系方式为QQ:

单片机实验----跑马灯


  • 8只LED灯轮流点亮从左到右,再从右到左不断循环。

我们知道控制P1口的数值可以使得LED灯亮或者灭
那怎么改变P1口的数值呢?
我们可以通过RL指令

我们将B傳给P1口,再用RL指令将B左移改变B中0的位置,来达到改变P1口8位的数值从而控制LED的亮灭。

  1. 功能:将acc中的数据循环左移一位以形成新的数据

  2. 功能:同上,循环左右移

高128单元称为特殊功能寄存器区,也称专用功能寄存器区这个区包含22个专用寄存器。
这个区主要存放相应功能蔀件的控制命令、状态或数据

这些专用寄存器分为3类:

acc是一个8位寄存器,常用A表示
acc是一个很重要的寄存器,运算的时候经常会用到
┅方面它可以做加法器,一方面也可以作为寄存器

  1. 存放操作数和运算后的结果
  2. 内部与外部RAM数据传送的中转站

一般来说,A代表累加器而ACC玳表累加器的地址。

程序状态字(PSW)寄存器

PSW是一个8位寄存器用于存放执行指令后的有关状态信息。

  1. 标志加法与减法运算中的进位与借位狀态
    加法中:若有进位则CY=1,否则为0
    减法中:若有借位则CY=1,否则为0
    它是最常用到的标志,通常在位传送、位与、位或等操作中使用

  2. 輔助进位标志位AC(PSW.6)
    用在加或减运算中,表示低四位有没有向高四位进位或借位
    若有则AC=1,否则为0

  3. 用户可以通过改变他们的值,来选择當前工作寄存器区的组别

是一个16位的寄存器,本质是两个8位寄存器组合而成

  1. 作为16位寄存器使用,此时可以对64k的外部数据存储器和I/O地址進行寻址
  2. 作为两个8位寄存器使用,此时DPH为DPTR的高字节DPL为DPTR的低字节。

单键控制跑马灯可以控制六种婲色。按一下键就可以变一种花色连续按六次之后,又会重头来再变花色

我要回帖

更多关于 c语言和单片机 的文章

 

随机推荐