如何编写一段程序,单片机是51系列的,要求编写8个LED灯有三种以上的闪烁方式,灯闪烁时间0.5S

如何编写一段程序,单片机是51系列的,要求编写8个LED灯有三种以上的闪烁方式,灯闪烁时间0.5S,第1张

给你最简单的,看得清楚易懂的,P1口接8位LED,有多种闪烁方式。P2(扫描端在P2口,P3为位选端,注意看代码)口接上两位数码管的话还可以显示00-99的数字:

ZHUCX: MOV A,#11111110B

MOV P1,A

ACALL YANSHI

MOV A,#11111100B

MOV P1,A

ACALL YANSHI

MOV A,#11111000B

MOV P1,A

ACALL YANSHI

MOV A,#11110000B

MOV P1,A

ACALL YANSHI

MOV A,#11100000B

MOV P1,A

ACALL YANSHI

MOV A,#11000000B

MOV P1,A

ACALL YANSHI

MOV A,#10000000B

MOV P1,A

ACALL YANSHI

MOV A,#00000000B

MOV P1,A

ACALL YANSHI

MOV A,#10000000B

MOV P1,A

ACALL YANSHI

MOV A,#11000000B

MOV P1,A

ACALL YANSHI

MOV A,#11100000B

MOV P1,A

ACALL YANSHI

MOV A,#11110000B

MOV P1,A

ACALL YANSHI

MOV A,#11111000B

MOV P1,A

ACALL YANSHI

MOV A,#11111100B

MOV P1,A

ACALL YANSHI

MOV A,#11111110B

MOV P1,A

ACALL YANSHI

MOV A,#11111111B

MOV P1,A

ACALL YANSHI

MOV R4,#5

D5 : MOV A,#01111110B

MOV P1,A

ACALL YANSHI

MOV A,#10111101B

MOV P1,A

ACALL YANSHI

MOV A,#11011011B

MOV P1,A

ACALL YANSHI

MOV A,#11100111B

MOV P1,A

ACALL YANSHI

MOV A,#11011011B

MOV P1,A

ACALL YANSHI

MOV A,#10111101B

MOV P1,A

ACALL YANSHI

MOV A,#01111110B

MOV P1,A

ACALL YANSHI

DJNZ R4,D5

ACALL YANSHI

MOV R0,#3

LOOP: MOV A,#01010101B

MOV P1,A

ACALL YANSHI

MOV A,#10101010B

MOV P1,A

ACALL YANSHI

DJNZ R0,LOOP

MOV A,#11111110B

MOV P1,A

ACALL YANSHI

MOV A,#11111101B

MOV P1,A

ACALL YANSHI

MOV A,#11111011B

MOV P1,A

ACALL YANSHI

MOV A,#11110111B

MOV P1,A

ACALL YANSHI

MOV A,#11101111B

MOV P1,A

ACALL YANSHI

MOV A,#11011111B

MOV P1,A

ACALL YANSHI

MOV A,#10111111B

MOV P1,A

ACALL YANSHI

MOV A,#01111111B

MOV P1,A

ACALL YANSHI

MOV A,#10111111B

MOV P1,A

ACALL YANSHI

MOV A,#11011111B

MOV P1,A

ACALL YANSHI

MOV A,#11101111B

MOV P1,A

ACALL YANSHI

MOV A,#11110111B

MOV P1,A

ACALL YANSHI

MOV A,#11111011B

MOV P1,A

ACALL YANSHI

MOV A,#11111101B

MOV P1,A

ACALL YANSHI

MOV A,#11111110B

MOV P1,A

ACALL YANSHI

START:MOV R0,#0

MOV DPTR,#TABLE

LOOP1:ACALL DISPLAY

INC R0

CJNE R0,#100,LOOP1

JMP ZHUCX

DISPLAY:MOV A,R0

MOV B,#10

DIV AB

MOV R1,A

MOV R2,B

MOV R3,#50

LOOP2:MOV A,R2

ACALL CHANG

CLR P36

ACALL DLY10MS

SETB P36

SETB P35

MOV A,R1

ACALL CHANG

CLR P37

ACALL DLY10MS

SETB P37

SETB P34

DJNZ R3,LOOP2

RET

CHANG:MOVC A,@A+DPTR

MOV P2,A

RET

DLY10MS:MOV R6,#10

D1: MOV R7,#200

DJNZ R7,$

DJNZ R6,D1

RET

YANSHI :MOV R5,#30

D3:MOV R6,#50

D4:MOV R7,#50

DJNZ R7,$

DJNZ R6,D4

DJNZ R5,D3

RET

TABLE:DB 0C0H,0F9H,0A4H,0B0H

DB 99H,92H,82H,0F8H

DB 80H,90H,88H,83H

DB 0C6H,0A1H,86H,8EH

END

#include <reg51h>

#define uchar unsigend uchar

#define uint unsigned int

unsigned char code LED7Code[] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};//数码管段码

void main()

{

uint k;

TMOD=0X50;//设置模式为1,计数模式

TH1=0X00;

TL1=0X00;//初始值设定

IE=0X00;//关全局中断

TR1=1;//开定时计数器1运行

while(1)

{

if(TL1==16)//进行判断,为16时,计数值归零

TL1=0X00;

k=TL1;

P0=LED7Code[k];//数码管进行显示

}

}

程序目的见>

#include<reg51h>

#define uint unsigned int

uint width;

sbit pulse=P3^2;

main()

{

TMOD=0x09; //定时器0模式1,GATE=1

TH0=0;

TL0=0;

while(pulse); //等待P32变低

TR0=1; //启动定时器0

while(!pulse); //等待脉冲变高

while(pulse); //等待脉冲变低

TR0=0; //关闭定时器0

pulse=TH0256+TL0; //取定时值。

while(1);

}

#include<reg51h>

#define uchar unsigned char;

uchar distab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //0到f

uchar number,dat=0,dat1=16,cnt=0;

void t0isr() interrupt 1

{

TH0=(65536-5000)/256;

TL0=(65536-5000)%256;

number++;

if(number>1)number=0;

switch(number)

{

case 0:P2=0xfd;P0=distab[dat];

break;

case 1:P2=0xfe;P0=distab[dat1];

break;

default:break;

}

cnt++;

if(cnt>=200)

{

cnt=0;

dat++;dat1=dat-1;if(dat==0)dat1=16;

dat%=16;

}

}

main()

{

TMOD=0x01;

TH0=(65536-5000)/256;

TL0=(65536-5000)%256;

TR0=1;

ET0=1;

EA=1;

while(1);

}

Keil写汇编程序与写c程序差不多,写一个汇编程序步骤如下。一,运行keil,建一个工程。二,新建一个文件,另存为后缀为asm的汇编文件。三,将这个文件载入刚建的工程。四,现在可以录入代码了。五,录入完成后编译调试直到没有错误和警告,生成HEX文件。六,将HEX文件下载到单片机,运行看效果。七,修改软件直到达到预期效果。

以上就是关于如何编写一段程序,单片机是51系列的,要求编写8个LED灯有三种以上的闪烁方式,灯闪烁时间0.5S全部的内容,包括:如何编写一段程序,单片机是51系列的,要求编写8个LED灯有三种以上的闪烁方式,灯闪烁时间0.5S、用C语言如何开51单片机的计数器,最好编个实例程序、怎么用C语言编写51单片机测脉宽的程序~ 跪求完整程序!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存