
#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口接八个发光二极管(爱心图样)试编写流水灯的汇编程序使发光二极管逐个亮等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)