首页 > 编程知识 正文

c51单片机控制8个流水灯程序,c52流水灯c语言程序

时间:2023-05-06 08:40:27 阅读:63362 作者:2586

用汇编和c编写了两个点亮程序,在程序的初始阶段判断了程序的执行状态。 如果影响代表点亮,则可能会修正寄存器的其他位,引起无法预测的错误。 在这里写两个版本的程序是为了相互比较。

我自己用过,保证能用。

反汇编指令:/home/opt/FriendlyARM/toolsch

ain/4.4.3/自信便当/arm-Linux-objdump-dtu-boot temp.txt

组件没有影响

loop:

ldr r0,=0x56000050//GPFCON地址为0x56000050

mov r1,#0xffff00ff

ldr r2,[r0]

and r2、r2、r1//清除GPFCON的8-15位,其他位保持不变

mov r1,#0x00005500

orr r2、r2、r1

str r2、[r0]//GPFCON写入0x00005500、即GFP4-7被设定为输出功能

ldr r0,=0x56000054//GPFDAT地址为0x56000054

mov r1,#0x000000d0//点亮指示灯

ldr r2,[r0]

orr r2、r2、r1

str r2,[r0]

b loop

组件的影响

loop1:

ldr r0,=0x56000050

mov r1,#0x00005500

str r1,[r0]

ldr r0,=0x56000054

mov r1,#0x000000e0

str r1,[r0]

b loop1

c语言的影响

#defineGPFcon(* ) volatileunsignedlong ) )0x56000050 )//GPFCON地址为0x56000050

# definegpfdat (* (volatile unsigned long * )0x 5600054 )//GPFDAT地址为0x56000054

GPFCON=0x00005500; //GPFcon0x00005500,即GFP4-7被设定为输出功能

while(1)。

{

GPFDAT=0x000000e0; //GPFDAT写入0x000000e0,即GPFDAT[7:4]=1110,LED4点亮

}

c语言不影响

#defineGPFcon(* ) volatileunsignedlong ) )0x56000050 )//GPFCON地址为0x56000050

# definegpfdat (* (volatile unsigned long * )0x 5600054 )//GPFDAT地址为0x56000054

GPFCON=0xffff00ff;

GPFCON|=0x00005500; //GPFcon0x00005500,即GFP4-7被设定为输出功能

while(1)。

{

GPFDAT|=0x000000e0; //GPFDAT写入0x000000e0,即GPFDAT[7:4]=1110,LED4点亮

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。