请帮忙编写一个花样流水灯单片机程序(要求1,3,5,7灯亮,2,4,6,8灯亮然后全灭)

请帮忙编写一个花样流水灯单片机程序(要求1,3,5,7灯亮,2,4,6,8灯亮然后全灭),第1张

先把P1口全部接低电平!

ORG 0000H

AJMP START

ORG 0040H

AA:MOV P1,#55H

ACALL DELAY

MOV P1,#0AAH

ACALL DELAY

MOV P1,#00H

ACALL DELAY

AJMP AA

DELAY:MOV R5,#256

LOOP2:MOV R4,#256

LOOP1:NOP

NOP

DJNZ R4,LOOP1

DJNZ R5,LOOP2

RET

#include <reg51h>

#include<intrinsh>

#define ul unsigned long

void delay(unsigned int ms)

{

uchar t;

while(ms--)

for(t=0;t<123;t++);

}

void outLED(ul led)

{

P0 = (char)led;

        P1 = (char)(led<<8);

        P2 = (char)(led<<16);

        P3 = (char)(led<<24);

}

 

void main()

    char i;

    ul led; 

    outLED(0);    // 全部点亮

    delay(500);  

    while(1)

    {

        led = -2;    // P00点亮

        for (i=0;i<32;i++)

        {

            outLED(led);

            led = led << 1;

            delay(500);

        } 

    } 

}

先把P1口全部接低电平。

ORG 0000H。

AJMP START。

ORG 0040H。

AA:MOV P1,#55H。

ACALL DELAY。

MOV P1,#0AAH。

ACALL DELAY。

MOV P1,#00H。

ACALL DELAY。

AJMP AA。

DELAY:MOV R5,#256。

LOOP2:MOV R4,#256。

LOOP1:NOP。

NOP。

DJNZ R4,LOOP1。

DJNZ R5,LOOP2。

RET。

单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。

在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。

它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。

单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。

程序如下,仿真见附件。有问题请追问。

#include <AT89X51h>

#define uchar unsigned char

#define uint unsigned int

bit flag_1s=0;

uchar code tab[8]={1,2,4,8,16,32,64,128};//[第1小题用这个表]

//uchar code tab[8]={0x05,0,0x50,0xa0,0xaa,0x55,0xff,0x00};//[第2小题用这个表]

void InitTimer1(void)

{

    TMOD = 0x10;

    TH1 = 0x3C;

    TL1 = 0x0B0;

    EA = 1;

    ET1 = 1;

    TR1 = 1;

}

void main(void)

{

    static uchar j;

    InitTimer1();

P0=0;

P1=0;

P2=0;

P3=0;

flag_1s=1;

while(1)

{

if(flag_1s==1)

{

flag_1s=0;

P2=tab[j];

j++;

if(j>=8) j=0;

}

}

}

void Timer1Interrupt(void) interrupt 3

{

    static uchar i;

    TH1 = 0x3C;

    TL1 = 0x0B0;

    //add your code here!

    i++;

    if(i>=20)//50ms20=1000ms

    {

    i=0;

    flag_1s=1;

    }

}

#include<reg51h>

voiddelay(void)

{

unsignedinti,j;

for(i=0;i<200;i++)

for(j=0;j<1000;j++)

;

}

voidmain(void)

{

while(1)

{

P3=0xfe;//第一个灯亮

delay();//延时

P3=0xfd;//第二个灯亮

delay();

P3=0xfb;//第三个灯亮

delay();

P3=0xf7;//第四个灯亮

delay();

P3=0xef;//第五个灯亮

delay();

P3=0xdf;//第六个灯亮

delay();

P3=0xbf;//第七个灯亮

delay();

P3=0x7f;//第八个灯亮

delay();

}

}

扩展资料

单片机C语言16种方式流水

voidmain()

{

while(1)

{

P1=0xfe;//点亮第一个发光管

Delay(5000);

P1=0xfd;//点亮第二个发光管

Delay(5000);

P1=0xfb;

Delay(5000);

P1=0xf7;

Delay(5000);

P1=0xef;

Delay(5000);

P1=0xdf;

Delay(5000);

P1=0xbf;

Delay(5000);

P1=0x7f;//点亮第八个发光管

}

}

以上就是关于请帮忙编写一个花样流水灯单片机程序(要求1,3,5,7灯亮,2,4,6,8灯亮然后全灭)全部的内容,包括:请帮忙编写一个花样流水灯单片机程序(要求1,3,5,7灯亮,2,4,6,8灯亮然后全灭)、单片机32路流水灯程序,要求P0-P3口低电平点亮,先全部点亮,然后P0.0-P3.7逐位点亮。时间在程序内可调。、一个花样流水灯单片机程序(要求1,3,5,7灯亮,2,4,6,8灯亮然后全灭)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10128252.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存