试编写程序,将从8255A的A端口输入的数据,随即向B端口输出,并对输入数据进行判断,若大于80H

试编写程序,将从8255A的A端口输入的数据,随即向B端口输出,并对输入数据进行判断,若大于80H,第1张

netfvd = (netffW' netod); %残差反向传播回前一层,netfvd保存的是残差

if strcmp(netlayers{n}type, 'c') %只有卷积层采用sigm函数

netfvd = netfvd (netfv (1 - netfv)); %netfv是前一层的输出(未经过simg函数),作为输出层的输入

end

设定:8255PA、PC口为输入、PB作输出(均为方式0)

MOV DPTR, #0FF2BH ;假设命令口地址FF2BH

MOV A, #10011001B ;命令字

MOVX @DPTR, A

……

忘了问了,你的8255的地址,是不是FF2BH?

1、在程序头部应该有8255ctl、8255A、8255B的定义。形如:

8255ctl equ 3C3H

8255A equ 3C0H

8255B equ 3C1H

这个定义就是说3c3H太难记忆了,用个符号代替一下8255ctl,编译的时候只要遇到8255ctl编译器会自动替换成3c3的。这样做还有一个好处就是我替换的时候,万一我发现数据不对,替换很方便只要在开头替换就行了。

2、(1)是

(2)是

(3)1 继电器

2 晶体管反相器>

我记得有个8255A芯片,是端口拓展用的,时间太长了,具体记不清。

1、查数据手册,找8255A的指令用法,学会必须的指令。

2、查数据手册,找8255A的数据线、地址线的连接方法,看管脚图,确定原理图。

3、查数据手册,找8255A的封装,绘制电路板,Protel里有这个芯片的封装,可以直接用。

4、制板、焊件、调试,如果是面包板,就确定该连接的都连接好。

5、程序思路:

1、给8255A初始化指令,让A\B\C口都输出高或低电平,连接LED查看是否工作正常。

2、程序要求出方波,就是一会儿出高电平,一会儿出低电平就是方波。

3、主程序中:

1、初始化51的各个寄存器。

2、初始化8255A

3、发指令给8255A,让A口0线出低电平

4、第一个延时程序,控制低电平持续时间,可以用加法比较延时,也可用定时器。

5、发指令给8255A,让A口0线出高电平

6、第二个延时程序,控制高电平持续时间,同4

7、LOOP循环到程序3位置。死循环即可。

用示波器看输出的波形,调整4、6的参数,使得方波满足你要的高低电平时间,不要特意计算程序一条指令是多少时间,延时多少时间,那样即麻烦,又不准,8255A是有执行延迟的,所以用示波器看输出最准。

这些是02年我大二时学的,好久不用。

估计你是用来完成老师的作业,实际干活,没人用8255的。不知我猜对了没有。

正好我们做了这个实验

你知道的,把数据段中的端口地址改为你的计算机可识别的8255A的端口地址

;从键盘接收数字,在七段数码管上显示

data segment

ioport equ 2400h-0280h

io8255a equ ioport+288h

io8255b equ ioport+28bh

led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh

mesg1 db 0dh,0ah,'Input a num (0--9h):',0dh,0ah,'$'

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

mov dx,io8255b ;使8255的A口为输出方式

mov ax,10000000b ;80h,A组方式0,A口输出,B组方式0,B口输出,C口输出

out dx,al

sss:

mov dx,offset mesg1 ;显示提示信息

mov ah,09h

int 21h

mov ah,01 ;从键盘接收字符

int 21h

cmp al,'0' ;是否小于0

jb sss ;若是则退出

cmp al,'9' ;是否大于9

ja sss ;若是则退出

and al,0fh ;将所得字符的ASCII码减30H

mov bx,offset led ;bx为数码表的起始地址

xlat ;求出相应的段码

mov dx,io8255a ;从8255的A口输出

out dx,al

jmp sss ;转SSS

exit:

mov ah,4ch ;返回DOS

int 21h

code ends

end start

如果是汇编,XDATA的很好访问,直接用MOVX指令,访问的就是XDATA,比如:

MOV DPTR,#1000H

MOVX A,@DPTR

如果是C语言,那么声明变量时加上xdata就可以了。比如

#include<reg51h>

unsigned int xdata a;

main()

{

a=0x5a;

printf("%d",a);

while(1);

}

也可以采取另一种方式来访问XDATA,比如:

#include<reg51h>

#include<absacch>

#define uchar unsigned char

#define uint unsigned int

//PA、PB、PC端口及命令端口地址定义

#define PA XBYTE[0x0000]

#define PB XBYTE[0x0001]

#define PC XBYTE[0x0002]

#define COM XBYTE[0x0003]

//待显示字符编码队列

uchar code DSY_CODE_Queue[]={

0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xa4,0xc0,0xc0,0x80,0xc0,0x80,0xf9,

0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff

};

//数码管选通

uchar codeDSY_Index[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

//延时

void DelayMS(uint ms)

{

uchari;

while(ms--)for(i=0;i<120;i++);

}

//主程序

void main()

{

uinti,j,k;

COM=0x80; //8255工作方式选择:PA、PB均输出,工作方式0

while(1)

{

for(j=0;j<40;j++) //刷新显示一段时间

{

for(k=0;k<8;k++) //在8个数码管上显示字符

{

PB=DSY_Index[k]; //位码

PA=DSY_CODE_Queue[k+1]; //段码

DelayMS(1);

}

}

i=(i+1)%15; //刷新显示一段时间后递增i,形成滚动效果,最大索引为14

}

}

#include <reg52h>

#include <absacch>

#define COM8255 XBYTE[0X0300]

#define PA8255 XBYTE[0X0000]

#define PB8255 XBYTE[0X0100]

#define PC8255 XBYTE[0X0200]

typedef unsigned char BYTE;

typedef unsigned int WORD;

void delay(WORD num)

{

WORD k;

for(k=0;k<num;k++){;}

}

BYTE a[10]={0x0b,0x08,0x05,0xff,0x02,0x0c,0x09,0x06,0xff,0x03};

main()

{

BYTE linecode,rowcode;

BYTE t1=0;

BYTE t2=0;

BYTE out=0;

BYTE i;

delay(1000);

COM8255=0X88;

PA8255=0XF0;

while(1){

rowcode=0xfe;

for(i=0;i<4;i++){

PC8255=rowcode;

linecode=PC8255;

linecode=linecode&0x60;

if(linecode!=0x60)

{

t1=linecode>>5;//result is line 2 1;line 3 2;

t2=(~rowcode)>>1;

out=(t1-1)5+t2;

out=a[out];

PA8255=~out;

delay(200000);

}

rowcode=~(~rowcode<<1);

PA8255=0XFF;

}

}

}

以上就是关于试编写程序,将从8255A的A端口输入的数据,随即向B端口输出,并对输入数据进行判断,若大于80H全部的内容,包括:试编写程序,将从8255A的A端口输入的数据,随即向B端口输出,并对输入数据进行判断,若大于80H、单片机控制8255按键控制8个发光二极管程序编程、一道汇编题,有答案,需解释等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/zz/9862112.html

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

发表评论

登录后才能评论

评论列表(0条)

保存