用51单片机控制16个流水灯,依次左移点亮,。高分

用51单片机控制16个流水灯,依次左移点亮,。高分,第1张

^_^,太简单了

用P0,P2做输出口,高电平亮P0。0为最低位

MOV 30H,#00H;

MOV 31H,#01H

LP:

MOV P0,30H

MOV P2 31H

LCALL d_250

LCALL d_250

CLR C

MOV A,30H

RL A

JC LP1

MOV A,31H

JC LP2

JMP LP

LP1:MOV 31H,#01H

MOV 30H,#00H

JMP LP

LP2:MOV 30H,#01H

MOV 31H,#00H

JMP LP

d_250: mov r6,#250 ; 250 ms

sjmp dly

d_100: mov r6,#100 ; 100 ms

sjmp dly

d_50: mov r6,#50 ; 50 ms

sjmp dly

d_10: mov r6,#10 ; 10 ms

sjmp dly

d_5: mov r6,#5 ; 5 ms

sjmp dly

d_2: mov r6,#2 ; 2 ms

sjmp dly

d_1: mov r6,#1 ; 1 ms

sjmp dly

dly: mov r7,#231 ; 1 ms(for 110592M)

djnz r7,$

djnz r7,$

djnz r6,dly

ret

用的是51系列单片机么~试试这个代码

程序里就这些就行

mov a,#80h

setb ea

setb it1

setb ie1

sjmp $

中断服务子程序

rr a

mov p1,a

reti

自己把框架补上,就这些应该没问题

闪烁5次再移位,可以用循环来实现。程序如下:

ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:

MOV A,#0FCH ;LED灯初值,两个灯点亮

LOOP:

MOV R2,#5 ;5次闪烁循环次数

LOOP1:

MOV P0,A ;P0口送控制值

LCALL DELAY ;延时

MOV P0,#0FFH ;关闭显示,实现闪烁效果

LCALL DELAY

DJNZ R2,LOOP1 ;该循环执行5次闪烁

RL A ;闪烁之后移位

SJMP LOOP

DELAY:

MOV R3,#200 ;延时大概100毫秒

DLY:

MOV R4,#250

DJNZ R4,$

DJNZ R3,DLY

RET

END

C51系列单片机中_crol_指令是循环左移函数,_cror_是循环右移函数,这是51中特有的指令,别的类型单片机就不能使用了。易于程序的移植和通用性考虑个人比较推荐用<< 左移, 右移>>这两个C中的移位符号。

简单,你向一个寄存器写入数据时,数据总线的值会发生变化。8位的循环只需一个字节即可搞定。在一个时间循环里,加上句写入指令就行了,如:MOV

AX,1。然后后面接一个时间循环,里面一句写入0,如:MOV,BX,0移位指令自己查吧。从数据总线连接输入指示灯,功率不足,可以在输入端接入两次非门(实际应用时常这么办);如果功率要求不高的话,可以采用灌电流负载,写入数据11111110(教学程序常用);当然如果能直接点亮LED灯,上面两项不用也可时间控制调时间循环里次数,可以先写个大数,用秒表掐出来,然后估下一秒的值。

可使用移位指令向左或向右逐位移动输入 IN 的内容(另请参阅 CPU 寄存器)。向左移动 n 位相当于将输入端 IN 的内容乘以 2 的 n 次幂(2 n);向右移动 n 位则相当于将输入端 IN 的内容除以 2 的 n 次幂(2n)。例如,如果将等价于十进制值 3 的二进制数左移 3 位,将得到等价于十进制值 24 的二进制数。

如果将等价于十进制值 16 的二进制数右移 2 位,则会得到等价于十进制值 4 的二进制数。可提供给输入参数 N 的数值决定了移动相应值的位数。移位指令产生的空位将用零或符号位的信号状态(0 表示正,1 表示负)来填补。最后移动的位的信号状态将装入状态字的 CC1 位中。状态字的 CC0 和 OV 位将复位为 0。您可以使用跳转指令判断 CC1 位。

西门子PLC 移位指令根据不同参数调整以及数据类型,可用于SHR_I(整数右移)、SHR_DI(长整数右移)、SHL_W(字左移)、SHR_W(字右移)、SHL_DW(双字左移)以及SHR_DW(双字右移)。

扩展资料:

西门子公司的PLC产品包括LOGO、S7-200、S7-1200、S7-300、S7-400、S7-1500等。 西门子S7系列PLC体积小、速度快、标准化,具有网络通信能力,功能更强,可靠性高。S7系列PLC产品可分为微型PLC(如S7-200),小规模性能要求的PLC(如S7-300)和中、高性能要求的PLC(如S7-400)等。

可编程控制器是由现代化生产的需要而产生的,可编程序控制器的分类也必然要符合现代化生产的需求。一般来说可以从三个角度对可编程序控制器进行分类。其一是从可编程序控制器的控制规模大小去分类,其二是从可编程序控制器的性能高低去分类,其三是从可编程序控制器的结构特点去分类。

以上就是关于用51单片机控制16个流水灯,依次左移点亮,。高分全部的内容,包括:用51单片机控制16个流水灯,依次左移点亮,。高分、中断请求信号由INT1输入,要求每中断一次,由P1口控制8个LED指示灯循环移位点亮下一个灯。、在p0口接上8个led灯,每次亮两个灯的流水灯,如何实现led灯各闪烁5次再实现移位功能(汇编)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/10071398.html

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

发表评论

登录后才能评论

评论列表(0条)

保存