微机课程设计乒乓球比赛系统设计.docx
- 文档编号:11247968
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:29
- 大小:1.04MB
微机课程设计乒乓球比赛系统设计.docx
《微机课程设计乒乓球比赛系统设计.docx》由会员分享,可在线阅读,更多相关《微机课程设计乒乓球比赛系统设计.docx(29页珍藏版)》请在冰豆网上搜索。
微机课程设计乒乓球比赛系统设计
微机课程设计
姓名:
班别:
学号:
指导老师:
日期:
目录
一.设计目的和内容2
1.1.题目描述2
1.2.设计要求3
1.3.设计提示3
二.硬件设计及原理图3
2.1.芯片74LS244基本性能及结构3
2.1.1.74LS244芯片介绍3
2.1.2.芯片引脚及逻辑图4
2.2.芯片8255基本性能及结构4
2.2.1.8255芯片介绍4
2.2.2.8255芯片引脚及逻辑图5
2.2.38255芯片编程结构及工作原理5
2.3.芯片8279基本性能及结构6
2.3.1.8279芯片介绍6
2.3.2.8279芯片引脚及逻辑图6
2.3.38279芯片编程结构及工作原理8
2.4.各芯片电路原理图11
三.程序流程图13
3.1.设计流程图13
3.2.游戏机原理图14
四.源程序清单及注释14
五.问题分析与解决方案21
六.总结与体会22
七.参考资料22
一.设计目的和内容
1.1.题目描述
用8个LED发光管(4个红,4个绿)的来回滚动显示来模拟打乒乓球时乒乓球在两边球台上的来回运动。
比赛双方用按钮(双方各用1个按钮)的方法来模拟发球与接球,即发球方按动其控制的按钮,球从发球方一侧向对方运动(LED发光管从发球方到对方逐个点亮,滚动显示),当球运动至接球方时,接球方立即按动其控制的按钮,“击球”使球“弹回”发球方一侧,如此周而复始,直至在规定的击球时间内有一方未能完成击球动作,从而对方得一分,然后继续比赛。
1.2.设计要求
比赛规则可参照一般的乒乓球比赛规则。
要求:
(1)球以每0.5秒滚过1个LED的速度移动;
(2)回球需在球到达后的0.5秒内进行(按下按钮),否则按失球计;
(3)球未到达提前按下按钮不起回球作用;
(4)用4个八段码为双方记分(每方2个八段码,10进制计数,初始值0:
0)。
1.3.设计提示
球到达接球方后,立即读接球方的按钮状态,若未按则有效(若已按下则无效),然后不断读此按钮状态,直到按下代表“击球”动作。
二.硬件设计及原理图
2.1.芯片74LS244基本性能及结构
2.1.1.74LS244芯片介绍
74LS244为三态输出的八组缓冲器和总线驱动器。
本课题中74LS244作为总线驱动器,将逻辑电平开关的状态传送至cpu中处理。
2.1.2.芯片引脚及逻辑图
2.2.芯片8255基本性能及结构
2.2.1.8255芯片介绍
8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:
与CPU连接部分、与外设连接部分、控制部分。
2.2.2.8255芯片引脚及逻辑图
数据总线DB:
编号为D0~D7,三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
地址总线AB:
编号为A0~A1,用于选择A、B、C口与控制寄存器。
控制总线CB:
片选信号、复位信号RST、写信号、读信号。
当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。
A口:
编号为PA0~PA7,用于8255向外设输入输出8位并行数据。
B口:
编号为PB0~PB7,用于8255向外设输入输出8位并行数据。
C口:
编号为PC0~PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。
RESET:
复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:
芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.
RD:
读信号线,当这个输入引脚为低跳变沿时,即/RD产生一个低脉冲且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:
写入信号,当这个输入引脚为低跳变沿时,即/WR产生一个低脉冲且/CS=0时,允许CPU将数据或控制字写入8255。
2.2.38255芯片编程结构及工作原理
并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。
8255A可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能以下三种方式下工作:
方式0:
基输入/输出方式
方式1:
选通输入/输出方式
方式2:
双向选通工作方式
图8255工作方式控制字和C口按位置位/复位控制字
2.3.芯片8279基本性能及结构
2.3.1.8279芯片介绍
8279是Intel公司生产的通用可编程键盘和显示器I/O接口部件。
利用8279,可实现对键盘/显示器的自动扫描,并识别键盘上闭合键的键号,不仅可以大大节省CPU对键盘/显示器的操作时间,从而减轻CPU的负担,而且显示稳定,程序简单,不会出现误动作,由于这些优点,8279芯片日益被设计者所采用。
2.3.2.8279芯片引脚及逻辑图
8279主要由下列部件组成,各部件的作用以及引脚的作用如下:
(1)I/O控制和数据缓冲器
双向的三态数据缓冲器将内部总线和外部总线DBo—DB7,用于传送CPU和8279之间的命令,数据和状态。
为片选信号。
当
为低电平时,CPU才选中8279读写。
A。
用以区分信息的特性。
当A。
为1时,CPU写入8279的信息为命令,CPU从8279读出的信息为8279的状态。
当A。
为0时,I/O信息都为数据。
图18279的引脚图
(2)控制逻辑
控制与定时寄存器用以寄存键盘及显示器的工作方式,锁存操作命令,通过译码产生相应的控制信号,使8279的各个部件完成一定的控制功能。
定时控制含有一些计数器,其中有一个可编程的5位计数器,对外部输入时钟信号进行分频,产生100kHz的内部定时信号。
外部时钟输入信号的周期不小于500ns。
(3)扫描计数器
扫描计数器有两种输出方式。
一种为外部译码方式(也称编码方式),计数器以二进制方式计数,4位计数状态从扫描线SL。
~SL3输出,经外部译码器译码出16位扫描线,另一种为内部译码方式(也称译码方式),即扫描计数器的低二位经片内译码器译码后从SL。
一SL3输出。
(4)键输入控制
这个部件完成对键盘的自动扫描,锁存RL。
~RL7的键输入信息,搜索闭合键,去除键的抖动,并将键输入数据写入内部先进先出(FIFO)的存储器RAM。
(5)FIFORAM和显示缓冲器RAM
8279具有8个先进先出(FIFO)的键输入缓冲器,并提供16个字节的显示缓冲器RAM。
8279将段码写入显示缓冲器RAM,8279自动对显示器扫描,将其内部显示缓冲器RAM中的数据在显示器上显示出来。
IRQ为中断请求输出线,高电平有效。
当FIFORAM缓冲器中存有键盘上闭合键的编码时,IRQ线升高,向CPU请求中断,当CPU将缓冲器中的输入键的数据全部读取时,中断请求线下降为低电平;
SHIFT、CNTL/STB为控制键输入线,由内部拉高电阻拉成高电平,也可由外部控制按键拉成低电平。
RL。
~RL7为反馈输入线,作为键输入线,由内部拉高电阻(或称为上拉电阻)拉成高电平,也可由键盘上按键拉成低电平。
SL。
~SL3为扫描输出线,用于对键盘显示器扫描。
OUTB。
-3、OUTA。
-3为显示段数据输出线,可分别作为两个半字节输出,也可作为8位段数据输出口,此时OUTB。
为最低位,OUTA3为最高位。
BD为消隐输出线,低电平有效,当显示器切换时或使用显示消隐命令时,将显示消隐。
RESET为复位输入线,高电平有效。
当RESET输入端出现高电平时,8279被初始复位。
2.3.38279芯片编程结构及工作原理
CPU通过对8279编程(将命令字写入8279)来选择其工作方式。
8279的操作命令字简述如下:
(1)键盘/显示器方式设置命令字
D7D6D5D4D3D2D1D0
0
0
0
D
D
K
K
K
高三位D7D6D5位为特征位000,D4D3两位用来设定显示方式,其定义如下:
D4D3
显示方式
00
8个字符显示—左边输入
01
16个字符显示—左边输入
10
8个字符显示—右边输入
11
16个字符显示—右边输入
8279最多可用来控制LED显示器显示16位,当显示位数超过8位时,均须设定为16位字符显示。
显示器的每一位对应一个8位的显示缓冲器RAM单元。
CPU将显示数据写入缓冲器时有左边输入和右边输入两种方式。
左边输入是较简单的方式,地址为0~15的显示缓冲器RAM单元分别对应于显示器的0(左)位~15(右)位。
CPU依次从0地址或某一个地址开始将段数据写入显示缓冲器。
当16个显示缓冲器都已写满时(从0地址开始写,写了16次),第17次写,再从0地址开始写入。
右边输入方式是移位输入方式,输入数据总是写入右边的显示缓冲器,数据写入显示缓冲器后,原来缓冲器的内容左移一个字节,原最左边显示器缓冲器的内容被移出。
在右边输入方式中,显示器的各位和显示缓冲器RAM的地址并不是对应的。
若选用内部译码的键扫描方式,字符显示器只接4位。
D2D1D。
为键盘工作方式选择位,如下表,
D2D1D。
操作方式
000
外部译码键扫描方式,双键互锁
001
内部译码键扫描方式,双键互锁
010
外部译码键扫描方式,N键依次读出
011
内部译码键扫描方式,N键依次读出
100
外部译码扫描传感器矩阵方式
101
内部译码扫描传感器矩阵方式
110
选通输入方式,外部译码键扫描方式
111
选通输入方式,内部译码键扫描方式
当设定为外部译码工作方式时,内部计数器作二进制计数,四位二进制计数器的状态从扫描线SL。
-SL3输出,然后在外部进行译码,最多可为键盘/显示器提供16根扫描线(16选1)。
当设定为内部译码工作方式时,内部扫描计数器的低2位被译码后,再由SLo~SL3输出,即此时SLo~SL3已经是4选1的译码信号了。
显然当设定为译码方式时,扫描位数最多为4位。
双键互锁就是当键盘中同时有两个以上的按键被按下对,任何一个键的编码信息均不能进入FIFORAM中,直至仅剩下一键保持闭合时,该键的编码信息方能进入FIFO,这种工作方式可以避免部分误操作信号进入计算机。
N键依次读出的工作方式时,各个键的处理都与其它键无关,按下一个键时,片内去抖动电路等待两个键盘扫描周期,然后检查该键是否仍按着。
如果仍按着,则该键编码就送入FIFORAM中。
一次可以按下任意个键,其它的键也可被识别出来并送入FIFORAM中。
如果同时按下多个键,则按键盘扫描过程发现它们的顺序进行识别,并送入FIFORAM中。
选通输入的工作方式时,RLo-7作为选通输入口,CNTL/STB作为选通信号输入端。
这是只选用显示器没有键盘的工作方式。
扫描传感器矩阵的工作方式,是指片内的去抖动逻辑被禁止掉,传感器的开关状态直接输入FIFORAM中,虽然这种方式不能提供去抖动的功能,但有下述优点:
CPU知道传感器闭合多久,何时释放,在传感器扫描的工作方式下,每当检测到传感器信号(开或闭)改变时,中断线上的IRQ就变为高电平,在外部译码扫描时,可对8×8矩阵开关状态进行扫描,在内部译码扫描时,可对4×8矩阵开关的状态进行扫描。
(2)时钟编程命令字
8279的内部定时信号由外部的输入时钟经过分频后产生,分频系数由时钟编程命令字确定,时钟编程命令字格式如下:
D7D6D5D4D3D2D1D0
0
0
1
P
P
P
P
P
D7D6D5=001为时钟编程命令字的特征位。
D4D3D2D1D0为分频系数,可在2~31次分频中进行选择,将进入8279的时钟频率进行N次分频后,可获得8279内部所需的100kHz的时钟。
内部时钟频率的高低控制着扫描时间和键盘去抖动时间的长短,在8279内部时钟为100kHz时,则扫描时间为5.1ms,去抖动时间为10.3ms。
如果进入8279的时钟频率为2MHz,要获得100kHz的内部时钟信号,则需要20分频,即PPPPP=10100B=20
(3)读FIFORAM命令字
D7D6D5D4D3D2D1D0
0
1
0
AI
X
A
A
A
高3位010为特征位,该命令只在传感器方式时使用。
在CPU读传感器RAM之前,必须用这条命令来设定传感器RAM中的8个地址(每个地址一个字节)。
D2D1D0(AAA)为8个字节地址的起始地址,D4(AI)为多次读时的地址自动增量标志,在键扫描方式中;AI,AAA均被忽略,CPU读键输入数据时,总是按先进先出的规律读出,直至输入键全部读出为止。
在传感器矩阵扫描中,若AI=1CPU则从起始地址开始依次读出,每次读出后地址自动加1,而不必重新设置读FIFO/传感器RAM命令;AI=0时,CPU仅读出一个单元的内容。
在键盘工作方式中,由于读出操作严格按照先入先出顺序,因此,不需使用这条命令。
(4)写显示缓冲器RAM命令字
D7D6D5D4D3D2D1D0
1
0
0
AI
A
A
A
A
高3位100为该命令字的特征位,该命令给出了显示缓冲器RAM的地址信息,当CPU执行写显示缓冲器RAM时,首先用该命令字给出要写入的显示缓冲器RAM地址,四位二进制代码AAAA可用来寻址显示缓冲器RAM的16个存储单元。
若AI=1,则CPU在第一次写入时须给出地址外,以后每次写入,地址自动加1,直至所有显示缓冲器RAM全部写毕。
若AI=0,则每次写入时需要指出一个地址。
实际上每一个显示缓冲器RAM单元对应着一个字符显示位。
(5)读显示缓冲器RAM命令字
D7D6D5D4D3D2D1D0
0
1
1
A
A
A
A
A
在CPU读显示数据(检查)之前必须先输出读显示缓冲器RAM的命令。
D7D6D5=011是该命令字的特征位。
四位二进制代码AAAA用来寻址显示缓冲器RAM的一个缓冲单元。
AI为自动增量标志,若AI=1,则CPU每次读出后,地址自动加1。
(6)显示屏蔽消隐命令字
D7D6D5D4D3D2D1D0
1
0
1
X
IWA
IWB
BLA
BLB
高3位101为该命令字的特征位。
IWA和IWB分别用以屏蔽A组和B组显示缓冲器RAM。
在双4位显示器使用时,即OUTA0-3和OUTBo-3独立地作为两个半字节输出时,可改写显示缓冲器RAM中的低半字节而不影响高半字节的状态(D3=1),反之D2=1时可改写高半字节而不影响低半字节。
BL位是消隐特征位,要消隐两组显示输出,必须使D。
、Dl同时为1,BL=0时则恢复显示。
(7)清除命令字
D7D6D5D4D3D2D1D0
1
1
0
CD
CD
CD
CF
CA
该命令字用来消除FIFORAM和显示缓冲器RAM。
其中D4D3D2(CD)三位用来设定消除显示缓冲器RAM的方式,其定义如下:
CF(D1)位用来置空FIFORAM,当D1=1时,执行清除命令后,FIFORAM被置空,使中断输出线IRQ复位;同时传感器RAM的读出地址也被置0。
D4D3D2
消除显示缓冲器RAM的方式
10X
将显示RAM全部清0
110
将显示RAM全部消20H
111
将显示RAM全部置1
0XX
不清除
CA(Do)是总清除的特征位,它兼有CD和CF的联合效用。
当CA=1时,对显示RAM的清除方式由D3和D2的编码确定。
清除显示缓冲揣RAM大约需100μs时间,在此时间,CPU不能向显示缓冲器ARM写入数据。
(8)结束中断/错误方式设置命令
3.状态字节
8279的状态字节用于键输入和选通输入方式中,指出FIFORAM中的字符个数和是否出错,状态字的格式如下:
D7D6D5D4D3D2D1D0
DU
S/E
O
U
F
N
N
N
D2D1D0表示FIFORAM中数据的个数。
D3在F=1时,表示FIFORAM已满(存有8个键入数据)。
D4在FIFORAM中没有输入字符时,CPU对FIFORAM读则置“1”。
D5当FIFO已满,又输入一个字符时发生溢出置“1”。
D6的S/E用于传感器矩阵输入方式,几个传感器同时闭合时置“1”。
D7在清除命令执行期间该位为“1”,D7为1时对显示RAM写操作无效。
4.输入数据格式
在键扫描方式中,键输入数据格式如下:
D7D6D5D4D3D2D1D0
CNHL
SHIFT
SCAN
SCAN
SCAN
RETURN
RETURN
RETURN
D2~D0指出输入键所在的列号(RL0-7状态确定)。
D5~D3指出输入键所在的行号(扫描计数值)。
D6控制键SHIFT的状态。
(内部上拉,按下为0)
D7控制键CNTL的状态,(内部上拉,按下为0)
控制键CNTL,SHIFT为单独的开关键。
CNTL与其它键连用作特殊命令键,SHIFT可作为上下档控制键。
当SHIFT接按键(对地),可与键盘(8x8)配合,使键盘各键具有上、下键功能,这样键盘可扩充到128个键。
CNTL线可接一键用作控制键,这样,最多可扩充到256键。
在传感器扫描方式或选通输入方式中,输入数据即为RL0~RL7的输入状态。
D7D6D5D4D3D2D1D0
RL7
RL6
RL5
RL4
RL3
RL2
RL1
RL。
2.4.各芯片电路原理图
三.程序流程图
3.1.设计流程图
3.2.游戏机原理图
四.源程序清单及注释
CODESEGMENT
ASSUMECS:
CODE
START:
callCLEAR_LED
MOVDX,2B3H;8279的控制端口
MOVAL,00000000B
OUTDX,AL;写入8279控制端口工作模式
MOVDX,2B0H;8279数据端口
MOVCL,00H
MOVAL,3Fh
OUTDX,AL;对数码管显示进行设置3F显示为零
OUTDX,AL
MOVAL,3fh
OUTDX,AL
OUTDX,AL
MOVAL,00h
OUTDX,AL
OUTDX,AL
OUTDX,AL
OUTDX,AL
movCH,0h
youyi:
;球向右移动
MOVal,10010000B;方式0,基本的输入输出方式,,输入
movdx,28bh
outdx,al;访问8255控制端口
Ql:
movdx,288h;8255,选中A端口
INAL,DX;
TESTAL,01H
JZQl;8255定时,输出到8255的pc4口,读取该口判断
MOVDX,289H;8255,选中B端口
moval,80h
notal;取反之后01111111
outdx,al
MOVBL,AL
Q2:
movdx,288h
INAL,DX
TESTAL,01H;判断球是否到达最右端
JZQ2
movdx,289h
inal,dx
TESTal,01h
JZyjq;
movAL,00H
CALLD
callD
callD
CALLD
CALLD
CALLD;调用延时程序
MOVAL,BL
ROrAL,1;循环右移指令
movdx,289h
OUTDX,AL
MOVBL,AL
JMPQ2
D:
INCAL;一直自增,到11111111延时
CMPAL,0FFH;11111111
NOP
NOP
NOP
JNZD
pushcx
movcx,30000
de1:
movdx,0ffh
de0:
decdx
jnzde0
loopde1
popcx
D1:
INCDX
CMPDL,0FFFFH
JNZD1
MOVDX,00H
D2:
INCDX
CMPDL,0FFFFH
JNZD2
MOVDX,00H
D3:
INCDX
CMPDL,0ffffH
JNZD3
MOVDX,00H
D4:
INCDX
CMPDL,0FFFFH
JNZD4
MOVDX,00H
D5:
INCDX
CMPDL,0FFFFH
JNZD5
MOVDX,00H
D6:
INCDX
CMPDL,0FFFFH
JNZD6
RET
yjq:
;右边击球,和左边选手击球程序一样
movdx,290h
inal,dx
testal,01h
jnzzjfen
jmpzuoyi
zjfen:
;左计分
incCH
CALLREINPUT
JMPyouyi
zuoyi:
moval,10010000B
movdx,28bh
outdx,al
outdx,al
Q4:
MOVDX,288H
INAL,DX
TESTAL,01H
JZQ4
MOVDX,289H
moval,01h
notal
outdx,al
MOVBL,AL
Q5:
MOVDX,288H
INAL,DX
TESTAL,01H
JZQ5
movdx,289h
inal,dx
te
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 课程设计 乒乓球 比赛 系统 设计