8086和8255a流水灯区别?

209 2024-02-27 15:10

一、8086和8255a流水灯区别?

8086和8255A是计算机硬件领域的两个不同的组件,分别指的是微处理器和并行输入/输出接口芯片。在流水灯应用中,两者的区别如下:

1. 8086是一种16位的微处理器,常用于个人计算机。它是一个中央处理器,负责执行计算机的指令和控制计算机的操作。通过编写程序,可以使用8086来实现流水灯的控制。程序中需要编写指令来使LED灯以特定的顺序和时间间隔进行闪烁。

2. 8255A是一种并行输入/输出接口芯片,常用于连接计算机和外设设备,用于数据的输入和输出。在流水灯应用中,8255A可以被用作控制流水灯的接口芯片。通过编程控制8255A的端口,可以实现流水灯的控制。8255A的端口可以设置为输出模式,并根据程序的指令,通过改变端口的电平来控制LED灯的闪烁。

总之,8086是一种微处理器,负责计算机的指令执行和控制,而8255A是一种并行输入/输出接口芯片,用于连接计算机和外设设备,它可以被用来控制流水灯的闪烁。

二、在keil中,怎么用汇编编写流水灯,先左移再右移,用汇编?

/******************************************************************************

流水灯

延时实现P2口LED流水灯效果 (用循环移位指令)

******************************************************************************/

#include <reg51.h> //此文件中定义了51的一些特殊功能寄存器

void delay(unsigned int i) // 延时子程序

{

unsigned char j;

for(i; i > 0; i--)

for(j = 100; j > 0; j--);

}

main()

{

unsigned char LED;

LED = 0xfe; //0xfe = 1111 1110 此时,led灯的最低一位亮

while(1)

{

P2 = LED;

delay(300);

LED = LED << 1; //循环左移1位,点亮下一个LED "<<"为左移位

if(P2 == 0x00 )

{LED = 0xfe; } // 0xfe = 1111 1110

}

}

可以参考以上例子。

三、求KEIL软件用汇编语言编流水灯?

程序为:p0和p1流水灯 MOV R4,#0FFH; MOV A ,#80H ; MAIN:MOV P0 ,A ; RR A ; RR A 累加器循环右移 LCALL DELAY ; JB P0.0,D3; ;JB bit,rel 如果直接寻址位为1 则转移 LJMP MAIN ; D3:MOV P0,R4 ; MOV A ,#80H ; D4:MOV P1,A; RR A ;RR A 累加器循环右移 LCALL DELAY ; JNB P1.0,D4 ; JNB bit,rel 如果直接寻址位为0 则转移 MOV P1,R4 ; LJMP MAIN; DELAY:MOV R7 ,#250 ; D1:MOV R6 ,#250 ; D2:DJNZ R6,D2 ; DJNZ R7,D1 ; RET ; END.

四、汇编中D8255A EQU 8EFFH什么意思,解释下?

D8255A 只是一个符号或者说相当于一个宏,它的值为 8EFFH,一般在单片机应用程序里,常把某个硬件的端口地址用一个宏来表示,这样可以方便理解。

其实汇编语言本身就是用符号来映射对应的操作码的。

五、用汇编语言编写一个按钮控制8个流水灯的亮灭?

51汇编程序如下: KEY EQU P3.2 LED EQU P1 ORG 0000H LJMP MAIN ORG 0030H MAIN: CLR 00H MOV A,#0FEH LOOP: JB P3.2,LOOP1 JNB P3.2,$ CPL 00H LOOP1: JB 00H,LOOP2 MOV LED,#0FFH SJMP LOOP LOOP2: MOV P1,A RL A LCALL DELAY SJMP LOOP DELAY: MOV R2,#200 DLY1: MOV R3,#250 DJNZ R3,$ DJNZ R2,DLY1 RET END

六、用汇编语言编写8255a控制一组发光二极管的亮灭?

MOV AL,10010000B;设置A口为方式0的输入,B口和C口输出OUT 203H,AL;将控制字送到控制口LOOP0:IN AL,200H;取A口的输入信号值CMP AL,00001010BJZ LOOP1LOOP LOOP3CMP AL,00000101BJZ LOOP2LOOP LOOP3LOOP1:OUT 201H,00000001B;如果K0,K2合上,K1,K3断开时,只有红灯亮LOOP2:OUT 201H,00000010B;当K1,K3合上,K0,K2断开时,只有绿灯亮LOOP2:OUT 202H,00000001B;当K0,K1,K2,K3为其他任何情况时,只有黄灯亮用LOOP LOOP0

七、单片机汇编语言流水灯程序延时0.5秒,一共四个灯循环?

4只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。;用最直接的方式实现流水灯ORG 0000H START:MOV P1,#01111111B ;最下面的LED点亮 LCALL DELAY ;延时60秒 LCALL DELAY ;延时60秒 MOV P1,#10111111B ;最下面第二个的LED点亮 LCALL DELAY ;延时60秒 LCALL DELAY ;延时60秒 MOV P1,#11011111B ;最下面第三个的LED点亮 (以下省略) LCALL DELAY LCALL DELAY ;延时60秒 MOV P1,#11101111B LCALL DELAY LCALL DELAY ;延时60秒 MOV P1,#11110111B LCALL DELAY LCALL DELAY ;延时60秒 MOV P1,#11111011B LCALL DELAY ;延时60秒 LCALL DELAY ;延时60秒 LCALL DELAY ;延时60秒 LCALL DELAY ;延时60秒 LCALL DELAY ;完成第一次循环点亮,延时约0.25秒 AJMP START ;反复循环;延时子程序,12M晶振延时约250毫秒DELAY: ;大约值:2us*256*256*2=260ms,也可以认为为250msPUSH PSW ;现场保护指令(有时可以不加)MOV R4,#240 L3: MOV R2 ,#00HL1: MOV R3 ,#00HL2: DJNZ R3 ,L2 ;最内层循环:(256次)2个周期指令(R3减一,如果比1大,则转向L2) DJNZ R2 ,L1 ; 中层循环:256次 DJNZ R4 ,L3 ;外层循环:240次 POP PSW RET END

八、单片机汇编语言按键控制流水灯,两个开关k1,k2。实现功能按下k1,流水灯左移动,按下k2,流水灯右移动?

假设P0.0接k1,P0.1接k2,k1或k2闭合时,P0.0或P0.1为低电平0,断开时为高电平1;P2口的8位接8个发光二极管的阳极,发光二极管的阴极通过下拉电阻接地,要点亮相应的二极管,需要P2口对应引脚输出高电平1;按下k1时,P2口初值设为00000001B,这样点亮最右边一个LED,用一段延时程序使得点亮稳定后,使P2口数值依次左移1位,这样8个二极管可以依次点亮,即流水灯左移;按下k2时,P2口初值设为10000000B,这样点亮最左边一个LED,用一段延时程序使得点亮稳定后,使P2口数值依次右移1位,这样8个二极管可以依次点亮,即流水灯右移。

九、单片机流水灯由两边向中间流再由中间向两边流的程序怎么写?

如果你的点灯是低电平 那么编码如下: 0x7e,0xbd,0xdb,0xe7;这四个编码实现从两边向中间流 0xdb,0xbd,0x7e;由上面的四个编码加上下面的四个编码就达到了从中间向两边显示的效果了 循环显示这七个编码就OK

十、假设某8255A芯片的控制端口地址为0FFFEH,请写一段汇编程序,使PC7口置1,PC3口置0?

;;80x86汇编语言程序如下:

MOV DX, 0FFFEh ;8255控制口地址送至DX

MOV AL,80h ;方式控制字,A口.B口.C口,都作方式0输出

OUT DX, AL ;方式控制字输出到控制口,8255初始化

MOV AL, 00001111b ;PC7置1命令字

OUT DX, AL ;将PC7置1命令字送至控制口

MOV AL, 00000110b ;PC3置0命令字

OUT DX, AL ;将PC3置0命令字送至控制口

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片