单片机循环程序

单片机循环程序,第1张

#include<reg51h>

#include<intrinsh>

#define uchar unsigned char

void delay(int a)

{

uchar i;

while(a--)for(i=0;i<120;i++);

}

main()

{

uchar i,j;

P0=0xfe;

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

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

    {

    P0=_crol_(P0,1);

    delay(1000);

    }

}

如果数码管是共阴极的,则是把其中一个置高就会让该led亮起来。然后延时(没有延时的话是看不到效果的),再让下一个灯亮起来,再延时,……以此类推,就可以了!

电路给我,我可以帮你写程序!

1、51单片机C语言实现循环8个流水灯左移三次,后右移三次。

例程:

#include<reg51h>  //51单片机头文件

#include <intrinsh> //包含有左右循环移位子函数的库

#define uint unsigned int    //宏定义

#define uchar unsigned char  //宏定义

sbit beep=P2^3;

void delay(uint z)  //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms

{                    //delay(500);大约延时500ms

    uint x,y;

    for(x=z;x>0;x--)

        for(y=110;y>0;y--);    

}

void main()            //主函数

{

    uchar a,i,j;

    while(1)        //大循环

    {

        a=0xfe;     //赋初值

        for(j=0;j<3;j++) for(i=0;i<8;i++)   //左移三次

        {

            P1=a;       //点亮小灯

            beep=0;     //开启蜂鸣器

            delay(50); //延时50毫秒

            beep=1;     //关闭蜂鸣器

            delay(50);  //再延时50毫秒

            a=_crol_(a,1); //将a变量循环左移一位

        }

        a=0x7f;

       for(j=0;j<3;j++) for(i=0;i<8;i++)  //右移三次

        {

            P1=a;       //点亮小灯

            beep=0;     //开启蜂鸣器

            delay(50); //延时50毫秒

            beep=1;     //关闭蜂鸣器

            delay(50);   //再延时50毫秒

            a=_cror_(a,1); //将a变量循环右移一位

        }        

    }

}

2、51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。

/ 实验目的:初步了解单片机I/O口的工作原理,进一步掌握51单片机的汇编指令。 实验内容:用汇编指令对单片机I/O口进行编程,控制8个发光二极管的流水亮灭。 / / 程序详细功能介绍: 做单一灯的左移右移,八个发光二极管L0-L7分别接在单片机的P00-P07接口上, 输出“0”时,发光二极管亮,开始时P00→P01→P02→P03→┅→P07→P06→┅→P00亮,重复循环。 / ORG 0000H LJMP START ORG 0030H START: MOV R2,#8 ;左移次数 MOV A,#0FEH ;A的初始值,即 P00的L0 点亮 SETB C LOOP: MOV P0,A LCALL DELAY RLC A ;左移流水灯(带进位的左移),即亮点向P0口的高位移动 DJNZ R2,LOOP MOV R2,#8 ;右移次数 LOOP1: RRC A ;右移流水灯 MOV P0,A LCALL DELAY DJNZ R2,LOOP1 LJMP START DELAY: MOV R5,#10 ;延时子程序,改变R5,R6,R7 的值,可以改变延时的时间,从而改变流水灯移动速度 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET END

以上就是关于单片机循环程序全部的内容,包括:单片机循环程序、如何用单片机写5个彩灯依次闪烁、很简的51单片机C语言流水灯程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/9352192.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存