谁有用8255和8254制作电子琴的程序代码

谁有用8255和8254制作电子琴的程序代码,第1张

有图,Q我

1352282

设计任务及要求

1 以8255接八个开关K1~K8,做电子琴按键输入。

2 以8253控制扬声器,拨动不同的开关,发出相应的音阶。

要求: K1—静音

K2—发si的音493Hz

K3—发la的音440Hz

K4—发sol的音392Hz

K5—发fa的音349Hz

K6—发mi的音329Hz

K7—发re的音293Hz

K8—发do的音261Hz

二 方案比较和认证

通过8255和8253来实现电子琴模拟,主要可以分成两部分,分别为输入部分和发音部分。输入部分主要是由8255和8个常开型开关来完成。常开型开关如右图。8个常开型开关K1~K8与8255的A口PA0~PA7相接,不触动开关时,为高电平输入,当按下开关时,就接地,为低电平输入。例如当K1键按下时,从8255中A口输入的数为11111110B,十六进制为0FEH。每一个开关按下时,都对应一个ASCII码,如下表所示:

开 关 K1 K2 K3 K4 K5 K6 K7 K8

对应数据 0FEH 0FDH 0FBH 0F7H 0EFH 0DFH 0BFH 7FH

对应频率 静音 493 Hz 440 Hz 392 Hz 349 Hz 329 Hz 293 Hz 261 Hz

输入部分的硬件实现比较简单,所以说主要还是在发音部分。在设计中驱动扬声器地声的主要有两种方式,分别是以位触发和定时器控制。下面就这两种不同的方式确定两个不同的设计方案。

方案1:

发声采用位触发方式。电路原理图如下所示。程序直接控制PPI(8255可编程序外围接口芯片)的输出控制寄存器(I/O端口为61H)的第一位,使该位按所需的频率进行1和0的交替变化,从而产生一串脉冲控制波形,这些脉冲经过放大后驱动扬声器发出声音。

可以利用软件延时来控制所产生的脉冲波形的长度和脉宽,就可以实现产生不同频率和不同音长的声音。软件实现的程序如下:

IN AL,61H

MOV AH,AL

AND AL,0FCH ;关断定时器通道2的门控

SOUND:XOR AL,2 ;触发61H端口第1位

OUT 61H,AL

MOV CX,DX ;(DX)=控制脉冲的计数值

WAIT: LOOP WAIT ;延时循环

DEC BX ;(BX)=脉冲持续的时间

JNZ SOUND

MOV AL,AH

OUT 61H,AL ;恢复61H端口

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

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

MOV A, #10011001B ;命令字

MOVX @DPTR, A

……

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

服务器端的端口号是固定的(服务器只要开着,对应的服务就一直运行着),端口号一般系统中对应于知名的1-1023之间,这些知名端口号由I n t e r n e t号分配机构(Internet Assigned Numbers Authority, IANA )来管理

而客户端的端口号只有用户开启相应的程序时才打开对应的端口号(因此也称临时端口号),大多数给临时端口号分配1024~5000之间的端口号。大于5000的端口号是为其他服务预留的(internet上不常用的服务)

扩展资料

端口号的具体说明

端口:0

服务:Reserved

说明:通常用于分析 *** 作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用通常的闭合端口连接它时将产生不同的结果。一种典型的扫描,使用IP地址为0000,设置ACK位并在以太网层广播。

端口:1

服务:tcpmux

说明:这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者,默认情况下tcpmux在这种系统中被打开。Irix机器在发布是含有几个默认的无密码的帐户,如:IP、GUEST UUCP、NUUCP、DEMOS 、TUTOR、DIAG、OUTOFBOX等。

许多管理员在安装后忘记删除这些帐户。因此HACKER在INTERNET上搜索tcpmux并利用这些帐户。

端口:7

服务:Echo

说明:能看到许多人搜索Fraggle放大器时,发送到XXX0和XXX255的信息。

端口:19

服务:Character Generator

说明:这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾字符的包。TCP连接时会发送含有垃圾字符的数据流直到连接关闭。HACKER利用IP欺骗可以发动DoS攻击。伪造两个chargen服务器之间的UDP包。

同样Fraggle DoS攻击向目标地址的这个端口广播一个带有伪造受害者IP的数据包,受害者为了回应这些数据而过载。

端口:21

服务:FTP

说明:FTP服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的目录。木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口。

端口:22

服务:Ssh

说明:PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点,如果配置成特定的模式,许多使用RSAREF库的版本就会有不少的漏洞存在。

端口:23

服务:Telnet

说明:远程登录,入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的 *** 作系统。还有使用其他技术,入侵者也会找到密码。木马Tiny Telnet Server就开放这个端口。

端口:25

服务:SMTP

说明:SMTP服务器所开放的端口,用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭,他们需要连接到高带宽的E-MAIL服务器上,将简单的信息传递到不同的地址。

木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口。

端口:31

服务:MSG Authentication

说明:木马Master Paradise、Hackers Paradise开放此端口。

端口:42

服务:WINS Replication

说明:WINS复制

端口:53

服务:Domain Name Server(DNS)

说明:DNS服务器所开放的端口,入侵者可能是试图进行区域传递(TCP),欺骗DNS(UDP)或隐藏其他的通信。因此防火墙常常过滤或记录此端口。

端口:67

服务:Bootstrap Protocol Server

说明:通过DSL和Cable modem的防火墙常会看见大量发送到广播地址255255255255的数据。这些机器在向DHCP服务器请求一个地址。HACKER常进入它们,分配一个地址把自己作为局部路由器而发起大量中间人(man-in-middle)攻击。

客户端向68端口广播请求配置,服务器向67端口广播回应请求。这种回应使用广播是因为客户端还不知道可以发送的IP地址。

端口:69

服务:Trival File Transfer

说明:许多服务器与bootp一起提供这项服务,便于从系统下载启动代码。但是它们常常由于错误配置而使入侵者能从系统中窃取任何 文件。它们也可用于系统写入文件。

端口:79

服务:Finger Server

说明:入侵者用于获得用户信息,查询 *** 作系统,探测已知的缓冲区溢出错误,回应从自己机器到其他机器Finger扫描。

端口:80

服务:>

说明:用于网页浏览。木马Executor开放此端口。

端口:99

服务:Metagram Relay

说明:后门程序ncx99开放此端口。

端口:110

服务:POP3

说明:Post Office Protocol 3,用于收发邮件。

端口:102

端口:553

服务:CORBA IIOP (UDP)

说明:使用cable modem、DSL或VLAN将会看到这个端口的广播。CORBA是一种面向对象的RPC系统。入侵者可以利用这些信息进入系统。

参考资料来源:百度百科-端口地址

微机原理接口实验:8255并行接口实验,让K0~K7控制发光二极管L0~L7的状态。8255接口芯片非常重要的,使用非常简单,在以后的实验会经常使用到。

实验内容:8255接口芯片非常重编写一个基本输入输出程序,使8255的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。要求:数据灯的显示随开关动态变化。要的,使用非常简单,在以后的实验会经常使用到。

实验的目的:了解可编程并行接口芯片8255的内部结构、工作方式、初始化编程及应用。并学会如何使用8255并行开关让K0~K7控制发光二极管L0~L7的状态。

我记得有个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的。不知我猜对了没有。

以上就是关于谁有用8255和8254制作电子琴的程序代码全部的内容,包括:谁有用8255和8254制作电子琴的程序代码、单片机控制8255按键控制8个发光二极管程序编程、8255扩展芯片的口地址是怎么确定的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/9805216.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存