51单片机设计跑马灯的程序用(c语言)编写

51单片机设计跑马灯的程序用(c语言)编写,第1张

|P1口接8个发光二极管共阳

#include <AT89X51.H>

unsigned char i

unsigned char temp

unsigned char a,b

void delay(void)

{

unsigned char m,n,s

for(m=20m>0m--)

for(n=20n>0n--)

for(s=248s>0s--)

}

void main(void)

{

while(1)

{

temp=0xfe

P1=temp

delay()

for(i=1i<8i++)

{

a=temp<<i

b=temp>>(8-i)

P1=a|b

delay()

}

for(i=1i<8i++)

{

a=temp>>i

b=temp<<(8-i)

P1=a|b

delay()

}

}

}

扩展资料:

Proteus 自从有了单片机也就有了开发系统,随着单片机的发展开发系统也在不断发展。 keil是一种先进的单片机集成开发系统。它代表着汇编语言单片机开发系统的最新发展,首创多项便利技术,将开发的编程/仿真/调试/写入/加密等所有过程一气呵成,中间不须任何编译或汇编。

参考资料来源:百度百科-51单片机

答疑解难   跑马灯程序

                   ORG     0000H

                   LJMP     MAIN

                   ORG     0100H

MAIN:            JB          P0.7,MAIN  ;等待开始键按下

                   LCALL    YS             ;按键延时

                    JB         P0.7,MAIN

                    MOV     A,#7FH       ;是开始键按下  则跑马灯开始运行

LL:                 MOV     P1,A

                    LCALL    YS           ;显示延时

                    RR          A             ;循环右移一位

                    JB         P0.6, LL     ;没有按下停止键  则继续跑马

                    LCALL    YS            ;按键延时

                    JB          P0.6,LL         ;按下停止键 则停止跑马;否则继续跑马

                    MOV      A,#0FFH

                    MOV      P1,A

                    SJMP     MAIN            ;转到程序开始处,等待开始键的按下

YS:                MOV    R7,#150          ;延时子程序

YL:                MOV    R6,#200

YY:                NOP

                   DJNZ    R6,YY

                   DJNZ    R7,YL

                   RET

                   END

硬件接口电路如下:

      哈哈   还满意吗   就请给俺选择(满意选项)吧

//假设晶振12MHZ,P1控制8个LED低电平亮

#include "reg51.h"

unsigned int YSJS=0

signed char LED=0XFE

void main(void)

{

TMOD |= 0X10 //定时器1工作于方式1,16位定时器

TH1 = 0XFE //定时器1定时时间=500uS

TL1 = 0X0C

ET1 = 1//使能定时器1中断

TR1 =1

EA =1 //开总中断

while(1)

{

}

}

void TIMER1(void) interrupt 3//定时器1中断函数使用默认寄存器组

{

TH1 = 0XFE //定时器1定时时间=500us

TL1 = 0X0C

YSJS++

if(YSJS==2000) //500uS*2000=1000000uS=1S

{

P1 = LED

LED=LED<<1

LED=LED | 1

if(LED==0XFF)LED=0XFE

YSJS = 0

}

}


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

原文地址:https://54852.com/yw/7863810.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存