ImageVerifierCode 换一换
格式:DOCX , 页数:47 ,大小:2.23MB ,
资源ID:631571      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-631571.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(中国矿业大学硬件课程设计(拔河游戏机).docx)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

中国矿业大学硬件课程设计(拔河游戏机).docx

1、硬件课程设计报告献给各位矿大学弟姓名: 学号: 专业: 计算机科学与技术班级: 计算机科学与技术设计题目: 拔河游戏机指导教师: 2015 年 1 月 16徐州课程设计指导教师评阅书指导教师评语:成 绩:指导教师签字:2015年1月16摘要随着科学技术的不断发展,促使人们学科学、学技术、学知识的手段多种多样。拔河游戏机作为一种工具,已经广泛应用于各种智力抢答竞赛场合。但拔河机的使用频率较低,有的制作复杂,有的可靠性低,减少实用性。硬件课程设计是硬件技术学习中非常重要的一个环节,是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。拔河机能保证比赛中的公正性,在很多场合得到了广泛

2、的应用。要将拔河机系统产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节。因此,研究拔河机及扩大其应用,有着非常现实的意义。本课程设计是基于微机原理与接口技术的简单应用。通过硬件与软件的结合,用汇编语言编写程序模拟分析了拔河游戏机系统的运用,结合比赛的实际情况阐述了抢答系统的工作原理,给出了一种简单实用的拔河游戏机系统的硬件、软件电路设计方案。该拔河机由主持人控制开始开关,开始后比赛双方通过按CD两个按键来使自己行的方块数增多,10s倒计时结束时,哪行的方块数 多,谁就获胜,并将获胜者显示在第三行本课题设计了一种采用 8255

3、芯片和汇编语言制作的多功能拔河游戏机, 实验箱中的开关区和 LCD 显示区共同完成。主要功能:1.用 8253 可编程计时器计时2.用液晶显示屏显示比赛结果。它除了具有基本的拔河功能之外,还有显示结果的功能,当比赛开始后,第一行开始位置显示 C,第二行开始位置显示 D,如果有人胜出,系统自动锁存直到按下 E 键重新开始。通过利用 8254 计数器,8255 输入输出接口,4*4 键盘、液晶显示屏等器件实现拔河游戏机系统的设计工作。关键词:8255 可编程并行接口 ;LCD 显示屏;8254 可编程定时器/计数器;44 键盘目录1 概述52 需求分析62.1 总体任务62.2 各模块要求62.3

4、 硬件需求分析62.3.1 8254 芯片错误!未定义书签。2.3.2 8255 芯片62.3.3 44 键盘102.3.4 12864 字符图形液晶显示屏113 硬件方案143.1 系统功能模块143.2 电路连线图144 软件方案164.1 端口和数据部分174.2 8254 初始化部分174.3 8255 初始化部分174.4 LCD 初始化部分184.5 主体代码部分错误!未定义书签。5 问题与调试部分195.1 问题一195.2 问题二195.3 实物连线图196 运行结果216.1 结果截图217 实验结论228 实验体会239 参考文献23计算机科学与技术学院 2011 级硬件课

5、程设计报告第 2 页1概述用 8253 可编程计时器计时,用液晶显示屏显示比赛结果。它除了具有基本的拔河功能之外,还有显示结果的功能,当比赛开始后,第一行中央位置出现一个方块,比赛者双方开始按键拔河,按下 C 键方块左移一格,按下D 键方块右移一格,比赛者双方各执一键开始“拔河”,当 10 秒倒计时结束后以方块相对开始位置作比较,分出胜负。如果有人胜出,系统自动锁存直到按下 E 键重新开始。通过利用 8253 计数器,8255 输入输出接口,4*4 键盘、液晶显示屏等器件实现拔河游戏机系统的设计工作。2.1 总体任务2需求分析用微机原理与接口实验箱,利用 8255、8253、44 键盘、128

6、64 字符图形液晶显示等实现拔河游戏机。2.2 各模块要求利用以上器件实现拔河游戏机。2.2.1 8253 要 求实现 10s 倒计时。2.2.2 8255 要 求实现数据的输入输出。2.2.3 LCD 显示屏要求实现显示字母和图形2.2.3 44 键盘要求实现 C、D、E、F 按键的输入。2.3 硬件需求分析2.3.1 8253 芯 片8253在本实验中工作于方式3,控制字为:00110111B。含义为:选择通道0,先 读写计数器的低字节,再读/写计数器的高字节,采用的是BCD计数的方法。8253具有3个独立的计数通道,采用减1计数方式。在门控信号有效时,每输入1个计数脉冲, 通道作1次计数

7、操作。当计数脉冲是已知周期的时钟信号时,计数就成为定时。8253 芯片有 24 条引脚,封装在双列直插式陶瓷管壳内,内部结构如下:(1).数据总线缓冲器数据总线缓冲器与系统总线连接,8 位双向,与 CPU 交换信息的通道。这是 8253 与 CPU 之间的数据接口,它由 8 位双向三态缓冲存储器构成,是 CPU 与 8253 之间交换信息的必经之路。(2).读写控制读写控制分别连接系统的 IOR#和 IOW#,由 CPU 控制着访问 8253 的内部通道。接收 CPU 送入的读写控制信号,并完成对芯片内部各功能部件的控制功能,因此, 它实际上是 8253 芯片内部的控制器。A1A0:端口选择信

8、号,由 CPU 输入。8253 内部有 3 个独立的通道和一个控制字寄存器,它们构成 8253 芯片的 4 个端口,CPU 可对3 个通道进行读写操作 3 对控制字寄存器进行写操作。这 4 个端口地址由最低 2位地址码 A1A0 来选择。(3).通道选择CS片选信号,由 CPU 输入,低电平有效,通常由端口地址的高位地址译码形成。RD、WR读写控制命令,由 CPU 输入,低电平有效。RD 有效时,CPU 读取由 A1A0 所选定的通道内计数器的内容。WR 有效时,CPU 将计数值写入各个通道的计数器中, 或者是将方式控制字写入控制字寄存器中。(4).计数通道 02每个计数通道内含 1 个 16

9、 位的初值寄存器、减 1 计数器和 1 个 16 位的(输出) 锁存器。8253 内部包含 3 个功能完全相同的通道,每个通道内部设有一个 16 位计数器,可进行二进制或十进制(BCD 码)计数。采用二进制计数时, 最大计数值是FFFFH,采用 BCD 码计数时。 最大计数值是 9999。与此计数器相对应, 每个通道内设有一个 16 位计数值锁存器。必要时可用来锁存计数值。当某通道用作计数器时,应将要求计数的次数预置到该通道的计数器中、被计数的事件应以脉冲方式从 CLK 端输入, 每输入一个计数脉冲,计数器内容减“1”,待计数值计到“0”。 OUT 端将有输出。表示计数次数到。当某个通道用作定

10、时器时。由 CLK 输入一定频率的时钟脉冲。根据要求定时的时间长短确定所需的计数值。并预置到计数器中,每输入一个时钟脉冲,计数器内容减“1”, 待计数值计到“0”。OUT将有输出,表示定时时间到。允许从 CLK 输入的时钟频在 12MHz 范围内。因此,任一通道作计数器用或作定时器用,其内部操作完全相同,区别仅在于前者是由计数脉冲进行减“1”计数。 而后者是内时钟脉冲进行减“1”计数。作计数器时, 要求计数的次数可直接作为计数器的初值预置到减“1”计数器中。作定时器时, 计数器的初值即定时系数应根据要求定时的时间进行如下运算才能得到:定时系数需要定时的时间时钟脉冲周期设置通道:向方式控制字寄存

11、器端口写入方式选择控制字,用于确定要设置的通道及工作方式;计数/定时:向通道写入计数值,启动计数操作读取当前的计数值:向指定通道读取当前计数器值时,8253 将计数器值存入锁存器,从锁存器向外提供当前的计数器值,计数器则继续作计数操作。计数到:当计数器减 1 为 0 时,通过引脚 OUTi 向外输出“到”的脉冲信号。计数初值输入存放在初值寄存器中,计数开始或重装入时被复制到计数器中。锁存器在非锁存状态,其值随计数器的变化而变化;一旦锁存了计数器的当前值,直到锁存器值被读取后才能解除锁存状态。8253 中各通道可有 6 种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。简要介绍方式

12、3 如下:工作方式 3 被称作方波发生器,任一通道工作在方式 3,只在计数值 n 为偶数, 则可输出重复周期为 n、占空比为 1:1 的方波。进入工作方式 3,OUT 输出低电平,装入计数值后,OUT 立即跳变为高电平。如果当 GATE 为高电平,则立即开始减“1”计数,OUT 保持为高电平,若 n 为偶数, 则当计数值减到 n/2 时,OUT 跳变为低电平,一直保持到计数值为“0”,系统才自动重新置入计数值 n,实现循环计数。这时 OUT 端输出的周期为 nCLK 周期,占空比为 1:1 的方波序列;若 n 为奇数,则 OUT 端输出周期为 nCLK 周期,占空比为(n+1)/2)/(n-1

13、)/2)的近似方波序列。如果在操作过程中, GATE 变为无效,则暂停减“1”计数过程,直到 GATE 再次有效,重新从初值 n 开始减“l”计数。 如果要求改变输出方波的速率, 则 CPU 可在任何时候重新装入新的计数初值 n,并从下一个计数操作周期开始改变输出方波的速率。2.3.2 8255 芯 片8255是 Intel 公司生产的可编程输入输出接口芯片,它是具有 3 个 8 位的并行 I/O 端口,具有三种工作方式,被广泛地使用于单片机的并行 I/O 端口。工作方式 0:基本输入输出方式工作方式 1:选通输入输出方式工作方式 2:双向传送方式PA3 PA2 PA1 PA0 RD CS G

14、ND A0 A1 PA7 PA6 PA5 PA4 PA0 PA1 PA2 PA3 PB0 PB1 PB2PA5 PA6 PA7 PA0 WR RESET D0403938373635343332313029282726252423222182551234567891011121314151617181920D1 D2 D3 D4 D5 D6 D7Vcc PA7 PA6 PB5 PB4 PB38255 引脚图8255 工作方式控制字D7D6D5D4D3D2D1D0方式2X1方式110方式000方式选择输入1输出0A口输入1输出0C口(低4位)A组控制方式11方式00方式选择输入1输出0B口输入1

15、输出0C口(低4位)B组控制18255 内部结构8255 引脚功能说明RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均 被清除,所有 I/O 口均被置成输入方式。PA0PA7:端口 A 输入输出线,一个 8 位的数据输出锁存器/缓冲器,一个 8 位的数据输入锁存器。PB0PB7:端口 B 输入输出线,一个 8 位的 I/O 锁存器, 一个 8 位的输入输出缓冲器。PC0PC7:端口 C 输入输出线,一个 8 位的数据输出锁存器/缓冲器, 一个 8 位的数据输入缓冲器。端口 C 可以通过工作方式设定而分成 2 个 4 位的端口, 每个 4 位的端口包含一个 4

16、位的锁存器,分别与端口 A 和端口 B 配合使用,可作为控制信号输出或状态信号输入端口。CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许 8255 与 CPU 进行通讯。RD:读信号线,当这个输入引脚为低电平时,允许 8255 通过数据总线向 CPU 发送数据或状态信息,即 CPU 从 8255 读取信息或数据。WR:写入信号,当这个输入引脚为低电平时,允许 CPU 将数据或控制字写 8255。D0D7:三态双向数据总线,8255 与 CPU 数据传送的通道,当 CPU 执行输入输出指令时,通过它实现 8 位数据的读/写操作,控制字和状态信息也通过数据总线传送。8255 的读写

17、控制8255 的读/写控制逻辑电路接受 CPU 发来的控制口号 RD、WR、RESET 和地址信号A1A0。然后根据命令端口,控制信号的要求,将端口的数据读出选信 CPU 或者将 CPU 送来的数据写入端口,各端口的工作状态。如表所示。通过用输出指令对 8255A 的控制字寄存器编程,写入设定工作方式的控制字,可以让 3 个数据口以不同的方式工作,端口 A 可工作于 3 种方式的任一种,端口 B 只能工作于方式 0 和方式 1,端口 C 除了用于输入输出端口外,还能配合 A 口和 B 口工作,为这两个端口的输入输出操作提供联系信号2.3.3 44 键 盘在微型机系统中,键盘是一种最常用的外设,

18、它由多个开关组合而成。可以用来制造键盘的按键开关由好多种,最常用的由机械式、薄膜式、电容式和霍尔效应式四种。机械式开关比较便宜,但压键时会产生触点抖动,即在触点可靠地接通前会通断多次, 而且长期使用后可靠性会降低。高质量机械式开关的说明约为 100 万次。薄膜式开关可做成很薄的密封单元,不易受外界潮气或环境污染,常用于微波炉、医疗仪器或电子秤 等设备的按键,不同薄膜开关的说明差别很大。电容式开关没有抖动问题,但需要特制 电路来测电容的变化,平均寿命约为 2000 万次。霍尔效用案件是另一种无机械触点的开关,具有很好的密封性,平均寿命高达 1 亿甚至更高,但开关机制复杂,价格很贵。计算机上用的一

19、般都是机械式开关。当在键盘上压一个键时,等于在压下一个开关。对于大多数的键盘,按键被拍成行和列的矩阵。本实验用的是 8255B 口接键盘。8255B 口接键盘(实际 8255 的 PB0PB3 接键盘的列 0列 3,PB4PB7 接键盘的行0行 3),8255CS 接地址译码输出的 288h28fh。识别键盘上的闭合键,通过采用行扫描法或行翻转法:行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值;如果列值中有某位为低电平,则表明行列交点处的键被按下;否则扫描下一行,直到扫完全部的行线为止。行反转法识别闭合键时,要将行线接一个并行口,先让它工作在输出方式,将列线也接到一个并行口

20、,先让它工作在输入方式;程序通过输出端口向全部行线上送低电平, 然后读取列线的值;如果此时有某一键被按下,则必定会使某一列线值为零,程序再对两个并行端口进行方式设置,使行线工作在输入方式,列线工作在输出方式,并且将刚才读到的列线值从列线所接的并行端口输出,再读取行线上的值;那么,在闭合键所在的行线上的值必定为零。这样,当一个键被按下时,必定可以读到一对唯一的行值和列值。图 2-444 键盘原理图2.3.4 12864 字符图形液晶显示屏液晶显示模块概述:ST7920 是台湾矽创电子公司生产的中文图形控制芯片,它是一种内置 12864 汉字图形点阵的液晶显示控制模块,用于显示汉字及图形12864

21、A-1 汉字图形点阵液晶显示模块集成 ST7920 驱动器,可显示汉字及图形,内置 8192 个中文汉字(1616 点阵)、128 个字符(816 点阵)及 64256 点阵显示 RAM(GDRAM)。主要技术参数和显示特性:电源:VDD 3.3V+5V(内置升压电路,无需负压); 显示内容:128 列 64 行;显示颜色:黄绿;显示角度:6:00 钟直视;LCD 类型:STN;与 MCU 接口:8 位或 4 位并行/3 位串行;2MHZ 时钟频率; 显示坐标关系1、图形显示坐标水平方向 X以字节单位,X=07,每个 X 对应 2 个字节; 垂直方向 Y以位为单位图 2-612864 液晶显示

22、屏坐标显示图2、汉字显示坐标X 坐标Line180H81H82H83H84H85H86H87HLine290H91H92H93H94H95H96H97HLine388H89H8AH8BH8CH8DH8EH8FHLine498H99H9AH9BH9CH9DH9EH9FH表 2.2 12864 液晶显示屏汉字显示坐标表3、字符表表 2.3ASCII 码表(16*8 半宽字符表)显示 RAM1、文本显示 RAM(DDRAM)文本显示 RAM 提供 8 个4 行的汉字空间,当写入文本显示 RAM 时,可以分别显示CGROM、HCGROM 与 CGRAM 的字型;ST7920A 可以显示三种字型,分别是

23、半宽的 HCGROM 字型(即,168 半角英数字型)、CGRAM 字型及中文 CGROM 字型。三种字型的选择,由在DDRAM 中写入的编码选择,在 0000H0006H 的编码中(其代码分别是0000、0002、0004、0006 共 4 个)将选择 CGRAM 的自定义字型,02H7FH 的编码中将选择半角英数字的字型,至于 A1 以上的编码将自动的结合下一个位元组,组成两个位元组的编码形成中文字型的编码 BIG5(A140D75F),GB(A1A0-F7FFH)。字型产生 RAM(CGRAM) 字型产生 RAM 提供图像定义(造字)功能, 可以提供四组 1616 点的自定义图像空间,使

24、用者可以将内部字型没有提供的图像字型自行定义到 CGRAM 中, 便可和 CGROM 中的定义一样地通过 DDRAM 显示在屏幕中。应注意以下三点:欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址, 再写入中文字符编码。显示 ASCII 字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加 1 指向下一个字符位置,否则,显示的字符中将会有一个空 ASCII 字符位置。当字符编码为 2 字节时,应先写入高位字节,再写入低位字节。2、绘图 RAM(GDRAM)绘图显示 RAM 提供 1288 个字节的记忆空间,在更改绘图 RAM 时,先

25、连续写入水平与垂直的坐标值,再写入两个字节的数据到绘图 RAM,而地址计数器(AC)会自动加一; 在写入绘图 RAM 的期间,绘图显示必须关闭,整个写入绘图 RAM 的步骤如下:(1) 关闭绘图显示功能;(2) 先将水平的位元组坐标(X)写入绘图 RAM 地址;(3) 再将垂直的坐标(Y)写入绘图 RAM 地址;(4) 将 D15D8 写入到 RAM 中;(5) 将 D7D0 写入到 RAM 中;(6) 打开绘图显示功能。3、地址计数器(Address Counter,AC)地址计数器 AC 是用来贮存 DDRAM/CGRAM 之一的地址,它可由设定指令暂存器来改变, 之后只要读取或是写入 D

26、DRAM/CGRAM 的值时,地址计数器的值就会自动加一,当 RS 为“0”时而 R/W 为“1”时,地址计数器的值会被读取到 DB6DB0 中。4、游标/闪烁控制ST7920A 提供硬件游标及闪烁控制电路,由地址计数器(AddressCounter)的值来指定 DDRAM 中的游标或闪烁位置。3 硬件方案3.1 系统功能模块LCD显示屏显示字符和图形键盘键值输入8254定时8255输入输出拔河游戏机拔河游戏机共分为四个模块:8255 输入输出模块、8254 定时模块、键盘键值输入模块、LCD 显示屏显示比赛过程和结果模块。图 3-1 系统模块图3.2 电路连线图0 行接地2M+5vGND44

27、键盘行3-列0行0D7-D0D/I RWELCD显示屏Y0Y1PC0PC1 PC28255PA7-0PB0CSPB7-0OUT2GTA0-2OUT0 CLK1 OUT1CLK28254CSCLK0图 3-2 系统电路连线图硬件接线8253 芯片CS 连接 280HCLK0 连接 2M 脉冲GATE0 连接 5VOUT0 连接 CLK1GATE1 连接 5VOUT1 连接 CLK2GATE2 连接 5VOUT2 连接 8255PB08255 芯片CS 连接 288H键盘列 0-行 3 连接 PB0-PB7LCD 液晶屏连接 PA0-PA7LCD 液晶屏 D/I 连接 PC0LCD 液晶屏 RW

28、连接 PC1LCD 液晶屏 E 连接 PC2键盘键盘行 0 连接 GND系统总流程图4 软件方案e按下检测键盘c、d、e和ff按下c按下d按下判断10s秒是否结束显示结果将1行显示地址减一将2行显示地址减一查显示表hz_tab, 将第三行的下一位输出判断结束1行显示地址加一,存到hz-adr中将1行开头显示c,2行显示d查显示表hz_tab, 将第四行的下一位输出2行显示地址加一,存到hz-adr中初始化8254,8253判断重新开始开始退出程序图 4-1 系统总流程图4.2 8253 初始化部分MOVAL, 10001010B;C 口高 4 位输入MOVDX, io8255CON;控制端口O

29、UTDX, AL;写入控制字mov dx,io8253c;向 8254 写控制字mov al,00110111B;使 0 通道为工作方式 3 outdx,almov aL,00H;写入循环计数初值 5000mov dx,io8253aout dx,al;先写入低字节mov al,50Hout dx,al;后写入高字节mov dx,io8253c;向 8254 写控制字mov al,01110111B;使 1 通道为工作方式 3 outdx,almov aL,00H;写入循环计数初值 400mov dx,io8253bout dx,al;先写入低字节mov al,04Hout dx,al;后写入高字节;-以上的周期为 1s

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2