#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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)