用汇编语言编写51单片机程序,让LED灯亮一秒灭一秒,无限循环,时钟是6

用汇编语言编写51单片机程序,让LED灯亮一秒灭一秒,无限循环,时钟是6,第1张

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP T0ISR

ORG 0030H

MAIN:

MOV TMOD,#01H

MOV TH0,#HIGH(65536-50000)

MOV TL0,#LOW(65536-50000)

SETB TR0

SETB ET0

SETB EA

CLR P10

MOV R2,#10

SJMP $

T0ISR:

CLR TR0

MOV TH0,#HIGH(65536-50000)

MOV TL0,#LOW(65536-50000)

SETB TR0

DJNZ R2,T0E

CPL P10

MOV R2,#10

T0E:

RETI

END

假设P0 P2口接数码管 程序如下

include<reg52h>

#define uchar unsigned char

#define uint unsigned int

uchar num=0;

//共阴数码管七段码

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77};

void Delay1ms(uint i) //1ms延时程序

{

uint j;

for(;i>0;i--)

{

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

{;}

}

}

void main(void )//主程序

{

while(1)

{

delay_ms(1000);

num++;

if(num==100)num=0;

P0=table[num/10];

P2=table[num%10];

#include<reg52h>

sbit LED1=P2^0;

//1ms延时程序

void delayms(unsigned int i)

{ unsigned int j;

while(i--)

{

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

;

}

}

void main()

{

LED1=0;

while(1)

{

delayms(1000);

LED1=~LED1;

};

}

下面这个程序可以1、3、5、7亮就是01010101,0是亮,1是不亮转成十六进制就是0x55,我也是刚问过这样的问题,人家回答是:晕,这样问题也来网上问

现在懂了,虽然我还是菜鸟,但可告诉你,

#include<reg51h> //51系列单片机定义文件

#define uchar unsigned char //定义无符号字符

#define uint unsigned int //定义无符号整数

void delay(uint); //声明延时函数

void main(void)

{

while(1)

{ P2=0x55;//如果是P1口就把P2写成P1

delay(100);

}

void delay(uint t) //定义延时函数

{

register uint bt;

for(;t;t--)

for(bt=0;bt<255;bt++);

}

#include<reg51h>

unsigned char ledtab[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}

void delay(unsigned char a)

{

unsigned char i,j;

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

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

}

main()

{

unsigned char i;

while(1)

{

for(i=0;i<8;i++){P0=ledtab[i];delay(100);}

for(i=0;i<8;i++){P0=ledtab[7-i];delay(100);}

}

}

C语言实现LED灯闪烁控制配套51单片机开发板。

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

/

函数功能:延时一段时间

/

void delay(void)        //两个void意思分别为无需返回值,没有参数传递。

{

unsigned int i;       //定义无符号整数,最大取值范围65535。

for(i=0;i<20000;i++)  //做20000次空循环。

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

}

/

函数功能:主函数 (C语言规定必须有也只能有1个主函数)。

/

void main(void)

{

while(1)      //无限循环。

{

P0=0xfe;   //P1=1111 1110B, P00输出低电平。

delay();   //延时一段时间。

P0=0xff;   //P1=1111 1111B, P00输出高电平。

delay();  //延时一段时间。

}

}

单片机驱动LED灯的源程序:

#include<reg52h> //头文件。

#define uint unsigned int

#define uchar unsigned char

sbit LED1=P1^7; //位定义。

void delay_ms(uint);//mS级带参数延时函数。

void main()

{

while(1)

{

LED1=0;

delay_ms(1000);

LED1=1;

delay_ms(1000);

}

}

void delay_ms(uint z) //延时子程序

{

uint x,y;

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

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

}

扩展资料:

单片机应用分类:

通用型:

这是按单片机(Microcontrollers)适用范围来区分的。例如,80C51式通用型单片机,它不是为某种专门用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。

总线型:

这是按单片机(Microcontrollers)是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接。

另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。

控制型:

这是按照单片机(Microcontrollers)大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型。

通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。

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

以上就是关于用汇编语言编写51单片机程序,让LED灯亮一秒灭一秒,无限循环,时钟是6全部的内容,包括:用汇编语言编写51单片机程序,让LED灯亮一秒灭一秒,无限循环,时钟是6、51单片机led数码管显示0-99静态程序、51单片机用keil4写LED流水灯程序,要求亮两秒,再过两秒又亮。假设LED1=P2^0。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存