131 1300 0010
其他
当前位置: 首页>> 元件技术>>其他>>
  • 导航栏目
  • 二极管
  • 整流桥
  • MOS管
  • 其他
  • AT89S51单片机广告灯电路的设计
    AT89S51单片机广告灯电路的设计
  • AT89S51单片机广告灯电路的设计
  •   发布日期: 2019-05-14  浏览次数: 1,309

    1.实验任务

    做单一灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环。

     

    2.电路原理图

    AT89S51单片机广告灯电路的设计

    图4.4.1

    3.系统板上硬件连线

    把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……,P1.7对应着L8。

    4.程序设计内容

    我们可以运用输出端口指令MOV P1,A或MOV P1,#DATA,只要给累加器值或常数值,然后执行上述的指令,即可达到输出控制的动作。

    每次送出的数据是不同,具体的数据如下表1所示

    表1

    5.程序框图

    AT89S51单片机广告灯电路的设计

    图4.4.2

    6.汇编源程序

    ORG 0

    START: MOV R2,#8

    MOV A,#0FEH

    SETB C

    LOOP: MOV P1,A

    LCALL DELAY

    RLC A

    DJNZ R2,LOOP

    MOV R2,#8

    LOOP1: MOV P1,A

    LCALL DELAY

    RRC A

    DJNZ R2,LOOP1

    LJMP START

    DELAY: MOV R5,#20 ;

    D1: MOV R6,#20

    D2: MOV R7,#248

    DJNZ R7,$

    DJNZ R6,D2

    DJNZ R5,D1

    RET

    END

    7.C语言源程序

    #include

    unsigned char i;

    unsigned char temp;

    unsigned char a,b;

    void delay(void)

    {

    unsigned char m,n,s;

    for(m=20;m》0;m--)

    for(n=20;n》0;n--)

    for(s=248;s》0;s--);

    }

    void main(void)

    {

    while(1)

    {

    temp=0xfe;

    P1=temp;

    delay();

    for(i=1;i《8;i++)

    {

    a=temp

    b=temp》》(8-i);

    P1=a|b;

    delay();

    }

    for(i=1;i《8;i++)

    {

    a=temp》》i;

    b=temp《《(8-i);

    P1=a|b;

    delay();

    }

    }

    }


  • ·上一篇:
    ·下一篇:
  • 其他关联资讯
    深圳市日月辰科技有限公司
    地址:深圳市宝安区松岗镇潭头第二工业城A区27栋3楼
    电话:0755-2955 6626
    传真:0755-2978 1585
    手机:131 1300 0010
    邮箱:hu@szryc.com

    深圳市日月辰科技有限公司 版权所有:Copyright©2010-2023 www.szryc.com 电话:13113000010 粤ICP备2021111333号