单片机流水灯编译程序

单片机流水灯编译程序,第1张

#include<reg52.h>

#include<intrins.h>

#define uint unsigned int

#define uchar unsigned char

uchar temp

void delay(uint z)

void main( )

{

temp=0xfe

P1=0xfe

while(1)

{

delay(600)

temp=_crol_(temp,1)

P1=temp

}

}

void delay(uint z)

{

uint x,y

for(x=zx>逗茄0x--)

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

}

若山凳察有不理解的地方可以继续粗睁问

单片机的话,如端口上电默认高电平,那直接led一头接电源一头接端口,一个led对应一个端口。

一、简单讲:想要灯亮,就将对应端口置0。反之就是灯灭。

二、详细讲:假设用keil编写,新建工程->选择单片机型号->新建源文件->设置output(点魔术棒图标勾选create hex file)。

我坦神们用P2^0端口连接一个led(led另一端连电源)。先给端口起别名sbit led1=P2^0之后代码中需要灯亮就写led1=0;即可。(头文件自行导入)。

程序让知亏写好,编译后将生成的hex(路径在猛信之前的设置中)写入单片机或加载到仿真电路中运行。

---------ORG------0000H ;定义程序地址樱培,就是下一行程序存储在什么地方。51单片机复位后从0000H开始执行程序,但是0003H等是中断入口脊旅唯,所以镇弯要跳过。

--------LJMP------YANZHEN ;跳过中断入口

--------ORG-------30H ;同月第一行。

YANZHEN: MOV------A,#0FEH ;累加器赋值(11111110B)。

LOOP: MOV------P1,A ;累加器中的值-〉P1口

---------RL-------A ;累加器中的值循环左移一位(11111110B->11111101B以此类推)。

---------LCALL----LINLING ;应该是调用延时子程序。

---------LJMP-----LOOP ;跳转到LOOP


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

原文地址: https://outofmemory.cn/yw/12565357.html

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

发表评论

登录后才能评论

评论列表(0条)

保存