51单片机流水灯用C语言编写的设计程序

51单片机流水灯用C语言编写的设计程序,第1张

#include<reg52h>

#include<intrinsh>

#define uchar unsigned char

#define uint unsigned int

void delay(uint z);

main()

{

uchar aa;

while(1)

{

aa=0xfe;

P1=aa;

delay(100);

while(1)

{

aa=_crol_(aa,1);

P1=aa;

delay(100);

}

}

}

void delay(uint z)

{

uint x,y;

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

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

}

 //流水

#include "reg52h"

#define LED_PORT P3

void delay(unsigned char time)

{

 unsigned char i,j,k;

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

 {

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

  {

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

  }

 }

}

void main()

{

 unsigned char i,halfbyteh=0x80,halfbytel=0x01;

 while(1)

 {

  halfbyteh=0x80;

  halfbytel=0x01;

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

  {

   //LED_PORT=halfbyteh|halfbytel;//高电平点亮  

   LED_PORT=~(halfbyteh|halfbytel);//低电平点亮

   halfbyteh=halfbyteh>>1;

   halfbytel=halfbytel<<1;

   delay(10);

  }

 }

}

;启动入口

ORG 0000H ;复位启动

LJMP START ;

ORG 000BH ;T0中断

LJMP T0INT ;

ORG 0100H ;

LJMP START ;

;

;主控程序

START: MOV SP,#80H ;初始堆栈值

MOV TMOD,#01H ;定时器0工作于方式1,50毫秒@12000MHz

MOV TH0,#03CH ;定时器0定时时间=50mS

MOV TL0,#0B0H ;设置定时初值

MOV P1,#0FEH ;

MOV YSJS,#4 ;450mS=200mS

SETB ET0 ;允许定时器0中断

SETB EA ;开总中断

SETB TR0 ;定时器0启动,开始定时

JMP $ ;死循环等待中断

;

;定时器0中断服务程序

T0INT: PUSH PSW ;保护现场

PUSH ACC ;

;

DJNZ YSJS,QT0 ;

MOV YSJS,#4 ;450mS=200mS

MOV A,P1 ;

RL A ;

MOV P1,A ;

;

QT0: MOV TH0,#03CH ;定时器0定时时间=50mS

MOV TL0,#0B0H ;

POP ACC ;恢复现场

POP PSW ;

RETI ;

;

YSJS EQU 30H ;

END ;

以上就是关于51单片机流水灯用C语言编写的设计程序全部的内容,包括:51单片机流水灯用C语言编写的设计程序、51单片机c语言编写一个流水灯程序,要求如下(不能用数组,8个led指示灯从两边往中间移动,然后再分开)、51单片机编程题单片机P1.0~1.7口接八个发光二极管(爱心图样)试编写流水灯的汇编程序使发光二极管逐个亮等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存