导航:首页 > 编程语言 > 51单片机led循环闪烁汇编程序

51单片机led循环闪烁汇编程序

发布时间:2022-09-08 16:13:00

1. 求一段用51单片机来实现60个led灯循环点亮的程序,没过一秒点亮一盏(就是模拟时钟的秒针)

51单片机来实现60个led灯循环点亮的程序://************************************汇编程序:
#include<at89x51.h>
#define uchar unsigned char
#define uint unsigned int
uchar data count=0;
bit flag=0;
//*********主函数*****************
void main(void)
{
uchar i=0,k=0xfe;
TMOD=0x01;
TH0=0x4c;TL0=0x00;//定时50ms
EA=1;ET0=1;TR0=1;
while(1)
{
if(flag==1){k=k<<1|0x01;flag=0;i++;}
if(i==8){i=0;k=0xfe;}
P1=k;
}
}
//*********中断函数*****************//0111 1111
void dy1s(void) interrupt 1 using 1
{
TH0=0x4c;TL0=0x00;//定时50ms
count++;
if(count==20){flag=1;count=0;} //1s到了
}。C语言程序编写。
void main() { P1=0XFF; /*定义初始状态为全灭*/while(1) { delay(2000); P1=0X7e; delay(2000); P1=0Xbd; delay(2000);P1=0Xdb;delay(2000); P1=0Xe7; delay(2000); P1=0Xdb;delay(2000); P1=0Xbd;delay(2000); P1=0X7e; delay(2000); P1=0XFF; /********此循环使得发光二极管按照07,16,25,34,43,52,61,70的顺序循环交替两两点亮*******/} /*end while*/}/*end main*/

2. 基于51单片机16个彩灯从左到右再从右左循环闪烁的汇编程序

#include <reg52.h>
#include <intrins.h>
#define uint unsigned int //16位
#define uchar unsigned char//8位

sbit led=P2^0;
sbit k0=P1^0;
sbit k1=P1^1;

void delay(uint z);
void youyi();
void zuoyi();
uchar i;
uchar temp1=0x01;//0000 0001
uchar temp2=0x80;//1000 0000

uchar flag0=0;
uchar flag1=0;

void main()
{
while(1)
{
if(k0==0)//左移
{
flag0=1;
}
if(k1==0)//右移
{
flag1=1;
}

if(flag0==1)
{
zuoyi();
temp2=0x80;
}

if(flag1==1)
{
youyi();
temp1=0x01;
}
}
}

void zuoyi()
{
for(i=0;i<7;i++)//i++ i=i+1
{

P2=temp1;
temp1=_crol_(temp1,1);//0000 0010
delay(500);

}
}
void youyi()
{
for(i=0;i<7;i++)//i++ i=i+1
{
P2=temp2;
temp2=_cror_(temp2,1);//1000 0000
delay(500);
}
}

void delay(uint z)
{
uint x , y;
for(x=110;x>0;x--)
for(y=z;y>0;y--);

3. 用c51单片机控制一个闪光灯循环闪光5次以后熄灭不再闪光,用C语言编程,求程序……

用C语言编程,求程序的方法:

#include//包含单片机寄存器的头文件

/****************************************函数功能:延迟一段时间

*****************************************/

Voiddelay(Void)//Void表示没有返回值,也没有传递参数。

Unsignedint我;定义一个最大值为65535的无符号整数。

For (I = 0;我< 20000;i++) //执行20000个空循环。

;//什么也不做,等待一个机器周期。

/*******************************************************

函数函数:主函数(C语言规则必须有且只能有一个主函数)。

********************************************************/空白主要(空白)

而(1)//无限循环。

P0=0xfe;//P1=11111110B,P0.0输出低电平。

延迟();//推迟一段时间。

P0=0XFF;//P1=11111111B,P0.0输出高电平。

延迟();//推迟一段时间。

单片机驱动LED光源程序:

#include//头文件。

定义uint无符号int

#定义uchar无符号字符

SbitLED1=P1^7;//定义。

空白delay_ms(单位);//带参数的ms级延时函数。

Voidmain()

而(1)

LED1=0;

Delay_ms(1000);

LED1=1;

Delay_ms(1000);

Voiddelay_ms(uintz)//delay子例程

使用Uintx,y;

For (x = z;X > 0;X -)

For (y = 110;Y > 0;Y -);

(3)51单片机led循环闪烁汇编程序扩展阅读:

单片机应用分类:

一般类型:

这是关于微控制器的。例如80C51通用型单片机,它并不是为特定的目的而设计的;专用单片机是为某一类产品甚至某一种产品而设计生产的。例如,为了满足电子体温计的要求,芯片中集成了具有ADC接口的温度测量控制电路等功能。

主线:

这是由微控制器是否提供并行总线来区分的。总线微控制器一般安装有并行地址总线、数据总线、控制总线,这些引脚扩展并行外围设备可以通过串口与单片机连接。

另外,很多单片机都需要将外围设备和外围设备的接口集成在一块,所以在很多情况下不能并行扩展总线,大大降低了封装成本和芯片体积,这种单片机被称为非总线单片机。

控制类型:

这是关于微控制器的一般应用。一般来说,工业控制寻址范围大,计算能力强。家用电器的单片机大多是专用的。

它通常是小包装、低价格、高集成的外围设备和外围接口。显然,上述分类并不独特和严格。例如,80C51类单片机既是通用的,又是总线的,还可以用于工业控制。

4. 51单片机用汇编实现LED1亮1秒,灭3秒循环执行

ORG 0000H START: MOV P0,#0FEH LCALL DELAY1 MOV P0,#01H LCALL DELAY1 LCALL DELAY SJMP START DELAY1: push 03h push 04h push 05h mov r3,#100 d1: mov r4,#20 d2: mov r5,#248 d3: djnz r5,d3 nop djnz r4,d2 djnz r3,d1 pop 05h pop 04h pop 03h ret delay: push 03h push 04h push 05h mov r3,#50 d1: mov r4,#20 d2: mov r5,#248 d3: djnz r5,d3 nop djnz r4,d2 djnz r3,d1 pop 05h pop 04h pop 03h ret end

5. 用汇编语言编写51单片机程序让LED灯亮0.5秒,灭2秒无限循环

ORG 0000H
MOV SP,#60H
E: CLR P1.0 ; P1.0 LED亮
ACALL DEL_1S ; 0.5 秒
SETB P1.0 ; P1.0 LED灭
ACALL DEL_2S ;2秒
SJMP E ; 循环
DEL_1S: MOV R2,#10 ; 0.5秒

JMP DEL_2S+2
DEL_2S: MOV R2,#40 ; 2秒
SETB TR1
LOOP: JNB TF1,$
MOV TL1,#0B0H
MOV TH1,#3CH
CLR TF1
DJNZ R2,LOOP
CLR TR1
RET
END

6. 汇编51单片机三个LED交替闪烁

ORG 0000H
AJMP MAIN
ORG 000BH ;TO Time interrupt
lJMP T0INT
ORG 001BH ;T1 Count interrupt
LJMP T1CNT

ORG 030H
MAIN: MOV TMOD,#61H ;T1 count at MOD 2,T0 time int at MOD 1
MOV TL0,#0B0H ;66536-50000=3CB0H 50000us=50ms=0.05s
MOV TH0,#3CH
SETB ET0 ;T0 interrupt enable
SETB TR0 ;T0 work
;MOV TL1,#0FDH ;count num = 2
;MOV TH1,#0FDH ;auto load 0FDH
;SETB ET1
;SETB TR1
SETB EA ;Enable all interrupt
MOV A,#28H ;0.05s*40=2s
MOV P0,#0FEH
JMP $

ORG 060H
T0INT: CLR ET0 ;Disable T0 interrupt
CLR TF0 ;clr tf0
;CPL P1.7
DEC A ;A--
JNZ T0RET ;A!=0 jmp

;;;;;;;;;;;;;;;;;;更改这里改灯闪烁
MOV A,P1
RR A
MOV P1,A
;;;;;;;;;;;;;;;;;;

MOV A,#28H ;A==0;A=40,
T0RET: SETB ET0 ;Enable interrupt
RETI

ORG 080H

7. 求51单片机定时LED闪烁程序代码

#include<reg52.h>//包括一个52标准内核的头文件

#defineucharunsignedchar

/******************************主函数*****************************/

voidtimer0();

voidmain()//主程序

{

TMOD=0x01;//定时器0工作方式1

EA=1;

ET0=1;//定时器0中断

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

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

while(1);//程序循环

}

/*****************************定时器0中断*************************/

voidtimer0()interrupt1

{

uchart;//定义变量

TF0=0;//定时器清0

t++;//中断一次累加1

if(t==20)//预置值,溢出20次就是1秒钟,晶振12MHZ

{

t=0;

P3=~P3;//反转LED灯的亮灭

}

}

/*****************************************************************/

8. 如何用汇编语言控制led灯闪烁

用AT89C2051单片机(可以换成任意的51单片机)仿真,控制一个LED灯闪烁,LED灯接在P1.7脚上。程序如下

LED1 BIT P1.7

MAIN:CPL LED1

ACALL DELAY

SJMP MAIN

DELAY:MOV R7,#0;延时子程序

MOV R6,#0

LOP:DJNZ R6,$

DJNZ R7,LOP

RET

仿真图如下

阅读全文

与51单片机led循环闪烁汇编程序相关的资料

热点内容
美食博主用什么app拍视频 浏览:812
ipone手机如何加密微信 浏览:354
自来水加密阀阀帽 浏览:431
华为交换机dhcp配置命令 浏览:315
androidbitmap缩小 浏览:271
单片机串口控制灯 浏览:84
大讯云服务器安装视频 浏览:784
华为算法领先世界 浏览:654
linux路由重启 浏览:566
php的模板编程 浏览:322
编译器原理与实现书 浏览:710
dos选择命令 浏览:18
apm固件编译到单片机 浏览:122
联通深蓝卡都包含什么app 浏览:266
如何判断网络服务器正常 浏览:652
路由器搭桥远端服务器地址是什么 浏览:518
编译动态库时会连接依赖库吗 浏览:710
淘宝手机加密是随机的吗 浏览:675
解压包子怎么装饰 浏览:588
四个数凑24算法 浏览:679