用1号机控制2号机LED左循环显示微机原理与接口技术.docx

上传人:b****5 文档编号:5633869 上传时间:2022-12-29 格式:DOCX 页数:28 大小:379.69KB
下载 相关 举报
用1号机控制2号机LED左循环显示微机原理与接口技术.docx_第1页
第1页 / 共28页
用1号机控制2号机LED左循环显示微机原理与接口技术.docx_第2页
第2页 / 共28页
用1号机控制2号机LED左循环显示微机原理与接口技术.docx_第3页
第3页 / 共28页
用1号机控制2号机LED左循环显示微机原理与接口技术.docx_第4页
第4页 / 共28页
用1号机控制2号机LED左循环显示微机原理与接口技术.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

用1号机控制2号机LED左循环显示微机原理与接口技术.docx

《用1号机控制2号机LED左循环显示微机原理与接口技术.docx》由会员分享,可在线阅读,更多相关《用1号机控制2号机LED左循环显示微机原理与接口技术.docx(28页珍藏版)》请在冰豆网上搜索。

用1号机控制2号机LED左循环显示微机原理与接口技术.docx

用1号机控制2号机LED左循环显示微机原理与接口技术

数学与信息技术学院

《计算机应用课程设计》设计报告

 

报告题目:

用1号机控制2号机LED左循环显示

班级:

07计本2

学生姓名:

李松松

学生姓名:

陈会

学生姓名:

扈锁兰

学生姓名:

卢琳

日期:

__2010年9月19日_

摘要

《微机原理与接口技术》是计算机及相关专业必修的一门专业基础课,同时也是一门实践性和应用性很强的课程。

微机与外部的信息交换称为通信,基本方式有并行与串行两种。

本系统主要采用串行方式,主要掌握微机串行通信的连接方法,熟悉其工作方式及其功能,运用程序流程图说明了其工作过程。

本系统是采用微机接口技术开发设计的双机通信系统,实现了用1号机控制2号机LED左循环显示的功能,1号机(发送端)通过小键盘按键,将键值传递给2号机(即接收端),2号机将收到的键值转换成相应的数字,实现2号机LED左循环亮。

关键字:

8251A芯片,8255A芯片,8279A芯片,双机通信,LED

Abstract

MicrocomputerPrincipleandInterfaceTechnology"isacomputerandrelatedprofessionalcoursesinabasiccourse,butalsoahighlypracticalandappliedcourses.

Exchangeofinformationbetweencomputerandexternalcommunicationasthebasicmethodsarebothparallelandserial.Thissystemshowstheserialmode,themaincontrolcomputerserialcommunicationconnectionmethod,familiarwiththeirworkandtheirfunctions,theuseofprocessflowchartillustratestheprocessoftheirwork.

Thissystemusesthecomputerinterfacetechnologydevelopmentanddesignofthedual-communicationsystem,implementthecontrolofoneexperimentalboxwithanotherexperimentalbox’scircularLEDdisplayfunction.Thefirstexperimentalbox(thesender)throughthekeypadkeys,thekeyispassedtothesecondExperimentalbox(thereceiver),thesecondExperimentalboxwillreceivethekeysintotheappropriatenumber,toachievetheleftloopofthelightofthesecondExperimentalbox(thereceiver).

Keywords:

8251Achip,8255Achip,8279Achip,dual-machinecommunication,LED

目  录

第一章系统的功能1

1.1设计的目的1

1.2设计的意义1

1.3系统的功能1

第二章系统的设计方案2

2.1硬件设计2

2.1.18251A介绍2

2.1.28255A介绍5

2.1.38279A介绍8

2.1.4芯片的应用12

2.2软件设计12

2.2.1发送端模块功能12

2.2.2接收端模块功能14

第三章操作说明16

第四章总结17

第五章参考文献18

第六章附19

6.1.硬件原理图19

6.2.源程序流程图20

6.3.源代码22

 

第一章系统的功能

1.1设计的目的

(1)掌握8251A芯片与微机的接口技术和编程方法。

(2)掌握8251A异步串行时的编程应用。

(3)掌握并行接口芯片8255A和微机接口的连接方法。

(4)掌握并行接口芯片8255A的工作方式及其编程方法。

(5)了解8279A用在译码扫描和编码扫描方式时的编程方法。

(6)用查询方式方式对8279A进行控制的编程方法。

(7)掌握双机通信的原理和方法。

(8)巩固和加深在微机原理课程中所学的理论知识。

(9)学会查阅相关手册与资料,培养独立分析与解决问题能力。

(10)为以后的毕业搭建一个微机系统应用平台。

1.2设计的意义

《微机原理与接口技术》是一门实践性和应用性很强的课程,用微机与外部的信息交换称为通信,基本方式有并行与串行两种。

本系统主要采用串行方式,主要掌握微机串行通信的连接方法,熟悉其工作方式及其功能,运用程序流程图说明了其工作过程。

1.3系统的功能

本系统的功能是实现两台实验机(两台实验箱的编号分别为1号机和2号机),利用其实验机箱上的8251A进行通信,即1号机的8251A与2号机8251A进行通信,1号机箱上的串行接口的TXD接口与2号机箱上的串行接口的RXD接口相连(即1号机为发送端,2号机为接收端),在1号机上按下小键盘的按键,键值就通过串行接口的TXD端发送到2号机上的RXD端数据线,2号机通过串行接口的RXD端口读取键盘的键值,将键值转换成相应的数值,实现1号机控制2号机的LED灯左循环亮,2号机上的发光二极管的循环次数为从1号机上读取的键值。

第二章系统的设计方案

2.1硬件设计

本系统采用查询方式,接收程序中只需检查发送端送来的键值,接收端通过串行接口的RXD端口读取键盘的键值,将键值转换成相应的数值,实现发送端机控制接收端机的LED灯左循环亮。

(1)在实验过程中,数据通信的基本方式可分为并行通信与串行通行,而我们的实验正是采用了串行通行方式,这种方式通信线路简单,利用电话或电报线路就可实现通信,这样实验易于实现并且降低了成本,而且适合远距离通信。

(2)实验中用到的8251A就是一个可编程的通用串行通信接口芯片。

本实验,需2台实验机箱(两台实验箱的编号分别为1号机和2号机),其中一台为串行发送、一台为串行接收,在1号机上装串行发送程序,在2号机上装串行接收程序,在1号机上键入的字符由2号机上的接收程序处理,转换成相应的数值。

(3)本系统使8255A芯片工作于方式0,即作基本输入/输出使用,该方式下的A口8位和B口8位可以由输入的控制字决定为输入或输出,本系统中2号机(接收端)使用B口,令其工作状态为输出状态,即循环显示灯的亮或灭。

(4)本系统中采用的8279A在键盘工作时,由输入缓冲区锁存RL0~RL7上的信息,以确定键入情况,其内部有去抖动电路,本实验以查询方式获取键盘状态信息。

2.1.18251A介绍

8251A是一种可编程的同步/异步串行通信接口芯片,具有独立的接收器和发送器,能实现单工、半双工、双工通信。

1、8251A内部结构

8251A内部结构框图如图2-1所示。

图2-18251A内部结构框图

图中I/O缓冲器是双向三态,通过引脚D0~D7和系统数据总线直接接口,用于和CPU传递命令、数据、状态信息。

读写控制逻辑用来接收CPU的控制信号、控制数据传送方向。

CPU对8251A的读写操作控制表如表2-1所示。

图中收发器功能是从引脚RXD(收)和TXD(发)收发串行数据。

接收时按指定的方式装配成并行数据,发送时从CPU接收的并行数据,自动地加上适当的成帧信号转换成串行数据。

8251A内部的调制解调器控制器,提供和外接的调制解调器的握手信号。

表2-18251A的读写操作控制表

/CS

C/D

/RD

/WR

操作

1

任意

任意

任意

无操作,D0-D7呈高阻

0

1

1

0

写控制字

0

0

1

0

写数据

0

1

0

1

读状态

0

0

0

1

读数据

2、8251A的方式控制字和命令控制字

方式控制字确定8251A的通信方式(同步/异步)、校验方式(奇校/偶校/不校)、字符长度

及波特率等,格式如下图2-2所示。

命令控制字使8251A处于规定的状态以准备收发数据,格式如下图2-3。

方式控制字和命令控制字无独立的端口地址,8251A根据写入的次序来区分。

CPU对8251A初始化时先写方式控制字,后写命令控制字。

图2-28251A的方式控制字

图2-38251A的命令控制字

3、状态寄存器

状态寄存器用于寄存8251A的状态信息,供CPU查询。

各位定义如下:

TXRDY位:

当数据缓冲器空时置位,而TXRDY引脚只有当条件(数据缓冲器空·/CTS·TXE)成立时才置位。

溢出错误:

CPU没读走前一个字符,下一个字符又接收到,称为溢出错误。

帧错误:

在字符结尾没检测到停止位,称为帧错误。

2.1.28255A介绍

1、8255A结构

8255A是可编程并行接口芯片,双列直插式封装,用+5V单电源供电,如图2-4是8255A的逻辑框图,内部有3个8位I/O端口:

A口、B口、C口;也可以分为各有12位的两组:

A和B组,A组包含A口8位和C口的高四位,B组包含B口8位和C口的低4位;A组控制和B组控制用于实现方式选择操作;读写控制逻辑用于控制芯片内寄存器的数据和控制字经数据总线缓冲器送入各组接口寄存器中。

由于8255A数据总线缓冲器是双向三态8位驱动器,因此可以直接和8088系统数据总线相连。

2、8255A端口地址见表2-2

图2-4

3、8255A工作方式

8255A芯片有三种工作方式:

方式0、方式1、方式2。

它通过对控制寄存器写入不同的控制字来决定其三种不同的工作方式。

方式0:

基本输入/输出

图5-7(a)方式0引脚功能

如图5-7(a)所示。

该方式下的A口8位和B口8位可以由输入的控制字决定为输入或输出,C口分成高4位(PC7~PC4)和低4位(PC3~PC0)两组,也有控制字决定其输入或输出。

需注意的是:

该方式下,只能将C口其中一组的四位全部置为输入或输出。

方式1:

选通输入/输出

图5-7(b)方式1输入图5-7(c)方式1输出

如图5-7(b)、(c)所示。

该方式又叫单向输入输出方式,它分为A、B两组,A组由数据口A和控制口C的高4位组成,B组由数据口B和控制口C的低4位组成。

数据口的输入/输出都是锁存的,与方式0不同,由控制字来决定它作输入还是输出。

C口的相应位用于寄存数据传送中所需的状态信号和控制信息。

方式2:

双向输入输出

图5-7(D)方式2双向输入输出

如图5-7(d)所示。

本方式只有A组可以使用,此时A口为输入输出双向口,C口中的5位(PC3~PC7)作为A口的控制位。

4、8255A控制字

(1)方式选择控制字

(2)PC口按位置/复位控制字

2.1.38279A介绍

8279A是一种通用的可编程键盘/显示器接口器件,可对64个开关矩阵组成的键盘进行自动扫描,接收键盘上的输入信息,存入内部的FIFO寄存器,并在有键输入时,CPU请求中断。

8279A内部还有一个16×8的显示缓冲器,能对8位或16位LED自动扫描,使显示缓冲器的内容在LED上显示出来。

1、引脚功能

DB0~DB7:

双向数据总线,以便和CPU之间传递命令、数据和状态。

CLK:

时钟输入线,以产生内部时钟。

RESET:

复位线,高电平有效。

复位后,8279A置为16位显示左边输入,编码扫描键盘,时钟系数为31。

/CS:

片选,低电平有效。

A0:

地址输入线,用以区分数据线传送的是数据还是命令。

A0=0传送的是数据;A0=1传送的是命令。

/RD:

读信号线,低有效,内部缓冲器信息送DB0~DB7。

/WR:

写信号线,低有效。

收数据总线上的信息写入内部缓冲区。

IRQ:

中断请求输出线,高有效。

当FIFORAM中有键输入数据时,IRQ升为高电平,向CPU请求中断。

CPU读出FIFORAM时,IRQ变为低电平,若RAM中数据还有,IRQ又返回高电平,直至RAM中为空,IRQ才保持低电平。

SL0~SL3:

输出扫描线,用以对键盘/传感器矩阵和显示器进行扫描。

RL0~RL7:

键盘/传感器矩阵的行(列)数据输入线。

其内部有拉高电阻,使之保持高电平。

SHIFT:

换档输入线,内部有拉高电阻,使之保持高电平。

CNTL/STB:

控制/选通输入线,内部有拉高电阻,使之保持高电平。

OUTA0~OUTA3:

四位输出口。

OUTB0~OUTB3:

四位输出口。

这两个口是16×4显示器更新寄存器的输出端,输出的数据和SL0~SL3上信号同步,用于多位显示器显示。

/BD:

显示消隐输出线,低电平有效。

Vcc:

地。

2、8279A内部结构

(1)8279A内部具有时序控制逻辑,通过控制和时序寄存器存放键盘和显示器的工作方式和其他状态信息。

内部还包含有N分频器,分频系数为N,由2~31之间任一数可编程确定,对CLK上时钟进行N分频以产生基本的100KHZ的内部计数信号(扫描时间为5.1ms,去抖动时间为10.3ms)。

(2)8279A内部的扫描计数器有两种工作方式:

一是编码方式,计数器以二进制方式计数,4位计数器的状态直接从SL0~SL3上输出,由外部译码对SL0~SL3译码产生键盘和显示的扫描信号,高电平有效;二是译码方式,对计数器的低二位译码后从SL0~SL3上输出,作为4×8键盘和4位显示器的扫描信号,低电平有效。

(3)8279A在键盘工作时,由输入缓冲区锁存RL0~RL7上的信息,以确定键入情况,其内部有去抖动电路(10ms)。

(4)FIFO/传感器RAM:

它是一个双功能8×8RAM,在键盘和选通输入方式中,它是一个先进先出的数据缓冲器。

当/CS=0,A0=1,/RD=0时,读出FIFO的内容,FIFO中有数据时,由控制电路发IRQ信号,在传感方式中,8×8RAM用作传感器RAM,当检测到某个传感器发生变化时,IRQ上升为高电平。

(5)显示地址寄存器和显示RAM:

用于存放CPU当前正在读写的显示RAM单元地址,以及正在显示的两个4位半字节地址。

在选定了工作方式和地址后,CPU可直接读出显示RAM中的内容。

3、8279A的控制命令

(1)键盘显示器方式设置命令

*RESET后,设定为该种方式。

(2)扫描频率控制命令

(3)读FIFO前设置的读地址命令

(4)读显示RAM前设置的读地址命令

(5)写显示RAM前设置的写地址命令

(6)显示RAM写入禁止/消隐命令(BCD码显示用)

显示RAM的位与输出引脚的对应关系:

(7)清除FIFO状态字、显示RAM清除命令

(8)中断结束/出错方式设置命令

4、FIFO状态字

FIFO状态字由控制字口读入

2.1.4芯片的应用

设计中用了两片8251A芯片,一片用来发送数据,另一片用来接收数据。

因为在设计中数据的传输是单向的,故只需一根连线,一头插发送端的TXD端口,另一头插接收端的RXD端口。

发送端键盘输入值主要由8279A完成。

设计原理图见附录的硬件原理图。

2.2软件设计

本设计需要编写两个程序,一个作为发送端,另一个作为接受端。

两个程序在使用8251A芯片时必须对它进行初始化编程。

编程的内容包括两大方面:

一是由CPU发出的控制字,即方式选择控制字和操作命令控制字;另一方面是由8251A向CPU送出的状态字。

2.2.1发送端模块功能

发送端需要4个模块,各模块基本功能如下:

1.8251A初始化。

8251A在初始化之前要先进行系统复位,首先送3个00H到8251A的控制端口(SECOPORT),然后送一个40H到它的控制端口。

moval,00h

out51h,al

out51h,al

out51h,al

moval,40h

out51h,al

写8251A的方式控制字和命令控制字:

MOVAL,4EH;采用异步方式,1个停止位,字符长度8位

OUT51h,AL

MOVAL,27H;RST置1,RXE置1允许接收,DTR端置1,发送允许

OUT51h,AL

2.读取按键状态并对其进行判断,根据几种不同的情况分别转向相应的模块。

KEYLED:

CALLFORMAT

MOVSI,DATA1

CALLLEDDISP

KEY0:

MOVDX,CONTPORT

INAL,DX

TESTAL,07H

JZKEY0;没有按键

MOVCX,0FFFH

DELAY1:

LOOPDELAY1

MOVDX,DATAPORT

INAL,DX

MOVDI,AX

ANDAL,0F0H

JZKEY1

JMPKEY0

KEY1:

CALLCONVERS

MOVSI,DATA4

CALLLEDDISP

JMPWATTxD

CONVERS:

MOVAX,DI

ANDAL,0FH

MOVBL,AL

MOVBH,0H

MOVAL,DS:

[BX+DATA3]

MOVBYTEPTRDS:

[DATA4],AL

RET

LEDDISP:

MOVAL,90H

MOVDX,CONTPORT

OUTDX,AL

MOVBYTEPTRDS:

[0600H],00H

LED1:

CMPBYTEPTRDS:

[0600H],07H

JALED2

MOVBL,DS:

[0600H]

MOVBH,0H

MOVAL,DS:

[BX+SI]

MOVDX,DATAPORT

OUTDX,AL

ADDBYTEPTRDS:

[0600H],01H

JNZLED1

LED2:

RET

3.发送显示代码。

WATTxD:

inal,51h

testal,01h;判断是否允许发送

jzWATTxD

movax,di

out50h,al;将按键的值发送到50H端口

movcx,1fffh

DELAY:

loopDELAY;延时一段时间,以便接收端能够得到正确的数据

jmpKEY0

4.各种显示代码在RAM区的存储。

FORMAT:

MOVBX,0

MOVWORDPTRDS:

[BX+0500H],4006H;8279---1显示代码

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],4040H

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],076FH

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],7F5BH

MOVBX,0

MOVWORDPTRDS:

[BX+0510H],063FH;0-F的显示代码

ADDBX,2

MOVWORDPTRDS:

[BX+0510H],4F5BH

ADDBX,2

MOVWORDPTRDS:

[BX+0510H],6D66H

ADDBX,2

MOVWORDPTRDS:

[BX+0510H],077DH

ADDBX,2

MOVWORDPTRDS:

[BX+0510H],6F7FH

ADDBX,2

MOVWORDPTRDS:

[BX+0510H],7C77H

ADDBX,2

MOVWORDPTRDS:

[BX+0510H],5E39H

ADDBX,2

MOVWORDPTRDS:

[BX+0510H],7179H

MOVBX,0

MOVWORDPTRDS:

[BX+0520H],0000H;数字按键显示代码

ADDBX,2

MOVWORDPTRDS:

[BX+0520H],0000H

ADDBX,2

MOVWORDPTRDS:

[BX+0520H],0000H

ADDBX,2

MOVWORDPTRDS:

[BX+0520H],0000H

RET

2.2.2接收端模块功能

因为本次设计的双机通信只是单向传输,故接收端程序较发送端简单得多。

具体功能模块如下:

1.8251A初始化(见发送端)。

2.读取8251A的状态,判断是否允许接收数据。

从8251A的控制口读取它的状态信息,并与02H比较,若状态寄存器的RXRDY端为1,则允许接收。

代码如下:

WATRxD:

inal,51h

testal,02h;判断是否允许接收

jzWATRxD

3.判断接收的数据是否为0-9之间的数值,代码如下:

CMPbl,00h

JLWATRxD

CMPBL,09H

JGWATRxD;判断1号机的按键是否是0-9之间的数值

4.通过左移来完成LED的亮灯次数,代码如下:

moval,01h

LIGHT:

out71h,al

CALLDELAY

decbl;BL中的值为需要LED左循亮的次数,直到减到零停止

cmpbl,00h;判断LED的亮灯次数是否已经达到按键的值

jzWATRxD

rolal,01h;通过左移来达到使LED左循亮的功能

jmpLIGHT

DELAY:

movcx,5FFFh;延时适当的时间,以便可以清楚的看到LED灯亮的次数

L1:

loopL1

RET

从8251A的数据口接收数据,将其存入BYTEPTRDS:

[0600H]单元中,写显示RAM前设置的写地址命令,再读出数据并显示。

第三章操作说明

1、打开两台实验箱上的总开关(两台实验箱的编号分别为1号机和2号机);

2、将2号机上的灯L0~L7端口分别接至2号机上的8255A的PB0~PB7端口;

3、将2号机上的8255A的CS_8255端口与070H~07FH地址端口相连;

4、在1号机上运行发送程序,在2号机上运行接收程序;

5、将1号机箱上的串行接口的TXD接口与2号机箱上的串行接口的RXD接口相连;

6、在1号机的小键盘上按下任一数值键,可以看到2号机上的LED灯循环亮,循环次数为从1号机上读取的对应数值;

 

第四章总结

通过本次课程设计,使我们对微机接口原理的一些原件,比如8251A,8255A,8279A的工作原理有了更

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1