版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 计算机科学与技术学院200x级硬件课程设计报告 计算机科学与技术学院硬件课程设计报告姓 名: 学 号: 专 业: 班 级: 设计题目: 电子拔河游戏机 指导教师: 职 称: 2013 年 12 月 徐州课程设计指导教师评阅书指导教师评语:成 绩: 指导教师签字: 年 月 日摘 要主要内容:电子拔河游戏机是一种能容纳甲乙双方参赛游戏电路。由一排发光二极管表示拔河的“电子绳”。由甲乙双方通过按纽开关使发光二极管向一方的终点延伸,当延伸到某方的最后一个发光二极管时, 则该方获胜,连续比赛多局以定胜负。设计思路:(1)7个灯排成一条直线,设置四个按键(复位键,游戏键,开始键),每按一次按键,就会产生
2、一个有效低电平,哪边按一次,灯向哪边移一位。(2) 安装一个复位开关,第一次按是让发光二极管回到中点。(3) 当发光二极管移到终端时,两边选手按键无效,数码管就会记录一下对应的盘数。再按复位键,以进行下次的拔河。(4) 再用一个复位键,用于让记录盘数的数码管清零,同时发光二极管也回到中点。设计过程:该电路分为五个部分,分别为提示部分,该部分包括的主要元器件为点阵;拔河部分,该部分的主要元器件为灯;显示部分,该部分的主要元器件为LCD显示屏;主要元器件为8255芯片等;控制部分,该部分的主要元器件为键盘。主要过程分为方案论证和电路设计。目 录总体设计部分1 设计任务与要求51 基本原理.51.1
3、设计任务与要求.5 1.2设计过程5 1.2.1方案论证5 1.2.2电路设计6 1.3设计思路7 1.3.1设计框图72 硬件方案.82.1设计步骤83软件方案93.1程序设计.94总结与体会.19专题设计部分芯片介绍.20实验成果图.24程序流程图.25总体设计方案1基本原理电路要求使用7个发光二极管,开机后只有中间一个发亮,此即拔河的中心点。游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一次。亮点移到任一方终端二极管时,这一方就获胜,此时双方按钮均无作用,输出保持,只有复位后才使亮点恢复到中心。最后用数码管显示获胜者的盘数。由设计内
4、容可知,显视控制部分设计要求在发光二极管上显示游戏状态,双方每按一次,亮点向先按方移动一次。需接入一个清零端 ,用于复位。用c+程序语言进行各个模块的程序编写,控制电路的正常运行。就可得到所需要的拔河游戏机。1.1设计任务与要求1、设计一个能进行拔河游戏的电路。2、电路使用7个发光二极管,开机后只有中间一个发亮,此即拔河的中心点。3、游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一次。4、亮点移到任一方终端二极管时,这一方就获胜,此时双方按钮均无作用,输出保持,只有复位后才使亮点恢复到中心。内容电子拔河游戏机是一种能容纳甲乙双方参赛游戏电
5、路。由一排发光二极管表示拔河的“电子绳”。由甲乙双方通过按纽开关使发光二极管向一方的终点延伸,当延伸到某方的最后一个发光二极管时, 则该方获胜,连续比赛多局以定胜负。1.2设计过程 该电路分为五个部分,分别为提示部分,该部分包括的主要元器件为蜂鸣器;拔河部分,该部分的主要元器件为发光二极管;显示部分,该部分的主要元器件为数码管;清零部分,该部分的主要元器件为8255芯片等;控制部分,该部分的主要元器件为控制开关。主要过程分为方案论证和电路设计。1.2.1方案论证按两次复位键后,两边选手开始拔河,哪方按的快,点阵箭头指向哪方,当发光二极管移到左端终点时,选手按键无效,。按两次复位键,继续拔河,当
6、发光二极管移到右端终点时,选手按键无效。需要按一下清零键。此方案实际操作可行!1.2.2电路设计该电路的设计主要从硬件和软件两个方面完成。(1)硬件部分:主要由显示部分(LCD)、提示部分(点阵)、清零部分、控制部分和拔河“绳子”部分五部分组成。 初始化(0键)选择按D和F键按D键按F键按1次D键二极管灯亮点左移一位LCD显示谁获胜二极管灯亮点分别左右移动按1次F键二极管灯亮点右移一位若二极管灯亮点移至最左端若二极管灯亮点移至最右端Player1赢Player2赢1.3设计思路(1)本课题所设计的拔河游戏机由7个电平指示灯排列成一行,开机之后只有中间一个电平指示灯亮,以此作为拔河的中心线,游戏
7、双方各持一个按键,迅速地、不断地按动产生脉冲,谁按得快,亮点向谁方向移动,每按一次,亮点移动一次。移到任一方终端指示灯点亮,这一方就获胜,此时双方按键均无作用,输出保持,只有经裁判复位后才使亮点恢复到中心线。(2)电路的主体部分,当选手按键时,其中一个选手的按键进行加法计数,另一个选手的按键进行减法计数,七个LED灯。(3)两个选手通过两个按键接8255的C口,7个灯接8255的A口,控制灯的移动,8255的A口接LCD显示屏,当按复位键时,LCD显示比赛开始,比赛结束时,显示谁获胜,点阵接总线,用于显示谁按键按的快,点阵箭头指向那边,当一局比赛结束之后,封锁计数器,及封锁选手按键,直到复位按
8、键按下后方可进行下一局比赛。1.3.1设计框图 键盘Key18255芯片LCD显示屏灯点阵Key2复位C口A口总线显示箭头A口硬件方案仪器与设备:点阵,LED灯,芯片,按键。 设计方案本方案中,有效输入信号代表的是拔河的力度的相对大小。则当A=1,B=0时,表示甲的力度比乙的力度大;当B=1,A=0时,表示乙的力度比甲的力度大;当A=1,且B=1时,表示甲的力度与乙的力度一样大;当A=0且B=0时,表示甲、乙均还未开始拔河。当裁判员下达比赛开始命令后,比赛开始,甲、乙中的任意一方输入有效信号后,计数器开始计数。若甲输入有消信号时,进行加计数;若乙输入有效信号时,进行减计数。电子绳的LED开始移
9、动;当甲、乙同时输入有效信号时,电子绳上点亮的LED灯不再移动。当一局比赛结束后,电子绳上某一头的LED保持亮,此时,甲、乙的输入信号不再有效,LCD显示谁获胜。 (1)输入信号电路的设计设置键盘的任意三个键分别为甲方,乙方,复位键,接8255芯片的C口。当输入有效输入信号时,作出相应的应答。 (2)电子绳电路采用7个LED表示电子绳,接8255芯片的A口,实现灯的移动。(3)显示电路显示部分非为两个部分,一个为点阵显示部分,一个为LCD显示部分,点阵主要接总线,显示哪方按键按的快,点阵箭头指向哪方,LCD主要接8255芯片的A口,按复位键,显示比赛开始,比赛结束显示哪方获胜。(4)控制部分该
10、部分主要由8255芯片组成,相应的实现由C+程序控制。 软件方案程序模块#include<stdio.h>#include<conio.h>#include <iostream.h>#include "ApiExusb.h"#pragma comment(lib,"ApiExusb.lib")const int da=0x280;const int db=0x281;const int dc=0x282;const int dr=0x283;#define porth 0x298#define portlr 0x288
11、#define portly 0x290void begin();/开始void reset();/复位void fa(); /左移void fb(); /右移bool win=false; /一方获胜锁存int counta,countb;byte state=0x00;char lcd216=0xa1,0xa0,0xa1,0xa0,0xb9,0xa7,0xcf,0xb2,0xa3,0xc1,0xbb,0xf1,0xca,0xa4,0xa1,0xa0;char lcd316=0xa1,0xa0,0xa1,0xa0,0xa1,0xa0,0xa1,0xa0,0xa1,0xa0,0xa1,0xa0
12、,0xa1,0xa0,0xa1,0xa0;/点阵箭头unsigned int buff1=0x00,0x00,0x00,0x00,0x10,0x10,0x38,0x10;unsigned int buff2=0x10,0x38,0x10,0x10,0x00,0x00,0x00,0x00;void clear();void cmdsetup();void datasetup();void display(int);void show1();void show2();void main() byte data; byte i,j;printf("Press any key to begi
13、n!nn");getch();if(!Startup()printf("ERROR: Open Device Error!n");return; printf("press any key to exit"); while(!kbhit() PortWriteByte(dr,0x81); PortWriteByte(dc,0x0f); PortReadByte(dc,&data); i=data; if (i!=0x0f) Sleep(100); i=data; PortWriteByte(dr,0x88); PortWriteByte
14、(dc,0xf0); PortReadByte(dc,&data); i=i|data; if (i=0x77) begin();/j=0; else if(i=0x7e) reset();/j=3; else if(win&&i=0xeb) fa();/j=13; else if(win&&i=0xee) fb();/j=15;else continue;cout<<(int)state<<endl;if(state=0x40) display(1);win=false;else if(state=0x01) display(0
15、);win=false; PortWriteByte(da,state); Cleanup(); void begin()win=true;/counta=countb=1;state=0x08; display(3); void reset()win=false;state=0x00; PortWriteByte(da,0x01); cmdsetup(); void fa() show1();state=state<<1;void fb() show2();state=state>>1; void display(int c) /显示屏显示 /显示比赛开始if(c=3
16、) lcd24=0xb1;lcd25=0xc8;lcd26=0xc8;lcd27=0xfc;lcd28=0xbf;lcd29=0xaa;lcd210=0xca;lcd211=0xbc;lcd212=0xa1;lcd213=0xa0;/显示谁获胜else lcd24=0xb9;lcd25=0xa7;lcd26=0xcf;lcd27=0xb2;lcd28=0xa3;lcd29=0xc1;lcd210=0xbb;lcd211=0xf1;lcd212=0xca;lcd213=0xa4; /交换A与B if(c=1) lcd29=0xc1;else lcd29=0xc2; /比赛开始结束的跑灯 int
17、i; PortWriteByte(dr,0x80); clear(); PortWriteByte(da,0x90); cmdsetup(); Sleep(10); for (i=0;i<16;i+) PortWriteByte(da,lcd2i); datasetup(); ; PortWriteByte(da,0x88); cmdsetup(); Sleep(10); for (i=0;i<16;i+) PortWriteByte(da,lcd3i); datasetup(); ;void clear() PortWriteByte(da,0x0c); cmdsetup();v
18、oid cmdsetup() PortWriteByte(db,0x00); Sleep(1); PortWriteByte(db,0x04); Sleep(1); PortWriteByte(db,0x00); Sleep(1); void datasetup() PortWriteByte(db,0x01); Sleep(1); PortWriteByte(db,0x05); Sleep(1); PortWriteByte(db,0x01); Sleep(1); /点阵的箭头闪烁void show1() for(int count1=1;count1>0;count1-)int ah
19、=0x01;for(int c0=0;c0<8;c0+)PortWriteByte(porth,buff1c0);PortWriteByte(portlr,ah);Sleep(2);PortWriteByte(portlr,0x00);ah=ah<<1;void show2() for(int count2=1;count2>0;count2-)int al=0x01;for(int c0=0;c0<8;c0+)PortWriteByte(porth,buff2c0);PortWriteByte(portly,al);Sleep(2);PortWriteByte(
20、portly,0x00);al=al<<1;总结与体会总结拔河游戏机共有7个发光二级管,开机后只有中间一个发亮,以此作为拔河的中心线,游戏双方各持一个按键,迅速地,不断地按动以产生脉冲,谁按的快,亮点就向谁的方向移动,每按一次,亮点移动一次,移到任一方终端二极管发亮,这一方就得胜,此时双方按键均无作用,输出保持,只有经复位后才使亮点恢复到中心线,用LCD显示谁获胜。主要是用8255芯片实现的该拔河游戏机,8255芯片的C口接键盘,A口接灯与LCD显示屏,按复位键时,LCD显示屏显示比赛开始,比赛结束显示谁获胜,附加一个点阵显示部分,该部分显示比赛中,谁按键按的快,点阵的箭头指向哪边
21、。在实验中遇到一些问题,比如:程序的编写,电路的设计,一开始做实验时感觉不知怎么下手,通过网上找资料,看一些芯片的作用,控制方式,某些功能是怎么用程序实现的,有些找不到的问题,问一些会的同学,解决问题,总的问题是程序的编写,控制8255芯片时,感觉编程能力还是比较弱的,编程能力还得练习提高。体会经过48学时的努力,终于把课程设计做完了。一份耕耘,一份收获。这次课程设计给了我许多收获。本次课程设计后我对数字电子技术有了更进一步的熟悉,实际操作和课本上的知识有很大联系,但又高于课本,一个看似很简单的电路,要动手把它设计出来就比较困难了,因为是设计要求我们在以后的学习中注意这一点,要把课本上所学到的
22、知识和实际联系起来,同时通过本次电路的设计,不但巩固了所学知识,也使我们把理论与实践从真正意义上结合起来,增强了学习的兴趣,考验了我们借助互联网络搜集、查阅相关文献资料,和组织材料的综合能力。通过设计拔河游戏机控制电路,让我对数字逻辑这门课有了更深刻的了解,对电子器件的认识也不再停留在字面上,实现了从理论到实践的飞跃。我了解到理论和实践是分不开的。只有理论不行,对于实验箱,会茫然不知所措;可只懂实践也不行,别人问你为什么会这样,怎么样才算正确,你如果说凭感觉是不足以服人的。学习的目的就是去应用,只有实践才能将书本知识转化为实用的技能。芯片介绍8255芯片介绍8255将3个通道分为两组,即PA0
23、PA7与PC4PC7组成A组,PB0PB7与PC0PC3组成B组。如图7.5所示,相应的控制器也分为A组控制器与B组控制器,各组控制器的作用如下:(1)A组控制器:控制A口与上C口的输入与输出。(2)B组控制器:控制B口与下C口的输入与输出。具有24个可编程设置的I/O口,即3组8位的I/O口为PA口,PB口和PC口。它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4PC7),B组包括B口及C口(低4位,PC0PC3)。A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄
24、存器的控制字决定。引脚功能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。D0D7:
25、三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。8255具有3个相互独立的输入/输出通道端口,用+5V单电源供电,能在以下三种方式下工作。方式0基本输入输出方式;方式1选通输入/出方式;方式2双向选通输入/输出方式;PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 工作于三种方式中的任何一种;PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 不能工作于方式二;PC0PC7:端口C输入输出线,一个8位的数据输出锁存器
26、/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。'不能工作于方式一或二。A1,A0:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.当A1=0,A0=0时,PA口被选择;当A1=0,A0=1时,PB口被选择;当A1=1,A0=0时,PC口被选择;当A1=1.A0=1时,控制寄存器被选择.命令字D7 D6 D5 D4 D3 D2 D1 D0D7:特征位 D6D5:A组方式00=方式0 ,01=方式1,1X=方式2D4: A口0=
27、输出,1=输入 D3:C口C7C4 0=输出,1=输入D2:B组方式0=方式0,1=方式1D1: B口0=输出,1=输入D0:C口C3C0 0=输出,1=输入D7位为“1”时,为方式选择控制字的标识位。D6、D5位决定A端口的工作方式。D4位决定A端口工作在输入还是输出方式。D3位决定C端口高4位PC7PC4是作为输入端口,还是作为输出端口。D2位用来选择B端口的工作方式。D1位决定B端口作为输入还是输出端口。D0位决定C端口低4位PC3PC0作出为输入,还是输出。工作方式3种工作方式可用软件编程对控制口设置来指定。三种基本的工作方式为: 方式0基本的输入输出,方式1选通输入输出方式, 方式2
28、双向传送方式。1) 工作方式0(基本输入输出方式)功能:方式0不使用联络信号,也不使用中断,A口和B口可定义为输入或输出口,C口分成两个部分(高四位和低四位),C口的两个部分也可分别定义为输入或输出。在方式0,所有口输出均有锁存,输入只有缓冲,无锁存,C口还具有按位将其各位清0或置1的功能。常用于与外设无条件的数据传送或接收外设的数据。2) 工作方式1(选通输入输出方式)A口借用C口的一些信号线用作控制和状态信号,组成A组,B口借用C口的一些信号线用作控制和状态信号,组成B组。在方式1下,C口的某些位被占用。方式1的输出:当A口工作于方式1且用作输出口时,C口的PC7线用作输出缓冲器满OBF信
29、号,PC6用作外设B口输出B口输出收到数据后的响应信号ACK,PC3用作中断请求输出信号线INTR。当B口工作于方式l且用作输出口时,C口的PC1线用作输出缓冲器满OBF信号,PC2用作外设收到数据后的响应信号ACK,PC0用作中断请求输出信号线INTR。3) 工作方式2 (双向输入输出方式)功能:方式2是A组独有的工作方式。外设既能在A口的8条引线上发送数据,又能接收数据。此方式也是借用C口的5条信号线作控制和状态线,A口的输入和输出均带有锁存。8255的工作方式:A方式0、输入,B方式1、输出,C7-4输出, C3-0输入,控制字为95H。8254 可编程计数定时芯片8254的功能是由CP
30、U编程设定的。CPU通过输出指令给8254装入控制字,从而设定其功能。8254控制字格式如下:D7 D6 D5 D4 D3 D2 D1 D0SC1SC0RL1RL0M2M1M0BCD各位的功能见表1表4:表1 SC1、SC0 计数器选择SC1 SC0选择计数器0 0选择0#0 1选择1#1 0选择2#1 1使用方法参见8254使用说明表2 RL1、RL0CPU读写操作RL1 RL0操作类型0 0计数器封锁操作0 1读写计数器低8位1 0读写计数器高8位1 1先读写低8位,后读写高8位表3 M2、M1、M0 工作方式选择M3 M2 M1计 数 工 作 方 式0 0 0方 式 00 0 1方 式
31、10 1 0方 式 20 1 1方 式 31 0 0方 式 41 0 1方 式 5表4 BCD计数方式选择BCD数 码 形 式0十六位二进制计数1四位十进制 ( BCD ) 码计数8254的三个计数器是独立的16 位减法计数器。计数器的工作方式由工作方式寄存器确定。计数器在编程写入初始值后,在某些方式下计数到0后自动预置,计数器连续工作。CPU访问计数器时,必须先设定工作方式控制字中的RL1、RL0位。计数器对CLK计数输入端的输入信号进行递减计数。选通信号GATE控制计数工作的进行,其功能如表5所示。表5 选通信号 GATE 的功能低电平或进入低电平上 升 边 沿高 电 平方式0禁止计数-允许计数方式1-1.初始化和计数 2.下一个时钟后清除输出-方式21.禁止计数 2.使输出立即变为高电平1.重新装入计数器 2.启动计数允许计数方式31.禁止计数 2.使输出立即变为高电平初始化和计数允许计数方式4禁止计数计数未结束时初始化和计数允许计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国农业发展银行新疆维吾尔自治区分行纪委办审查调查专业人才社会招聘1人笔试题库附答案详解(突破训练)
- 机械厂技术创新细则
- 电子厂线路板生产规范
- 六年级上册数学第六单元知识点
- 新人教版pep英语三年级上册第一单元教案
- 外研版三年级英语知识点归纳
- 临床检查结果互认制度
- 传染病疫情报告制度申报流程范文
- 技术部团队项目贡献度绩效考核表
- 小学一年级数学应用题
- 新疆油气田钻井固体废物综合利用污染控制要求(DB 65-T 3997-2017)
- 北京通州农商产业发展集团有限公司招聘17人笔试备考题库及答案详解
- 2026年共青团入团考试试题附标准答案
- 2026郑州市新初一三科分班摸底卷摸底卷
- 硫化物固态电解质生产线项目风险评估报告
- 2026年渭南市大荔县数学三下期末统考模拟试题含答案
- (2024版)中国成人暴发性心肌炎诊断和治疗指南课件
- (2026年)痔疮的诊断和治疗健康宣教课件
- 老年人慢性病管理与护理
- (2026年)血气分析临床解读课件
- 分布式光伏开发建设导则
评论
0/150
提交评论