8255实现抢答器设计.docx
《8255实现抢答器设计.docx》由会员分享,可在线阅读,更多相关《8255实现抢答器设计.docx(14页珍藏版)》请在冰豆网上搜索。
8255实现抢答器设计
摘要
Proteus是一种交互式,可视化的电路仿真软件。
本文介绍了应用proteus软件进行多路抢答器设计与仿真的实现方法。
智能抢答器作为一种电子产品已广泛应用于各种智力和知识竞赛场合。
本系统就是通过8086控制,采用并行可编程接口芯片8255为核心而设计的智能抢答器。
硬件设计是借用8255为中心的控制模块,软件设计是采用汇编语言编程。
该设计的在对系统工作原理充分研究的基础上,选择合适的元件型号和参数,再用proteus绘图软件画出电路原理图,最后根据电路接口编写软件程序。
用proteus仿真效果真实,准确,可以提高开发效率,降低开发成本,具有推广价值。
关键字:
proteus,接口芯片8255,仿真
abstract
Proteusisakindofinteractivevisualizationofcircuitsimulationsoftware.Thispaperintroducestheapplicationofproteussoftwaremultiplexviestoanswerfirstdevicedesignandtherealizationofthesimulationmethod.Smartresponderasakindofelectronicproductshasbeenwidelyusedinallkindsofintelligenceandknowledgecompetition.Thissystemiscontrolledby8086,usingtheprogrammableparallelinterfacechip8255asthecoreanddesignofintelligentresponder.Thehardwaredesignistoborrow8255asthecenterofcontrolmodule,thesoftwaredesignistouseassemblylanguageprogramming.Thedesignofthesystemworkingprinciple,onthebasisoffullyresearch,choosetherightcomponentmodelandparameters,thenuseproteusdrawthecircuitprinciplediagram,drawingsoftwareaccordingtotheinterfacecircuittowritesoftwareprograms.
Useproteussimulationeffectistrue,accurate,canimprovethedevelopmentefficiency,reducethedevelopmentcost,valueforpopularization.
Keywords:
proteus,interfacechip8255,simulation
1绪论
现代电子设计手段日新月异,由手工设计到EDA阶段,再到虚拟设计阶段,人们不断提高设计水平与效率。
并行接口芯片8255可以用作并行打印机,七段数码显示器和非编码键盘接口本篇论文利用proteus仿真软件实现抢答器功能,其中用到并行接口芯片8255.
Proteus软件是英国LabCenterElectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
Proteus软件具有其它EDA工具软件(例:
multisim)的功能。
这些功能是:
原理布图,PCB自动或人工布线,SPICE电路仿真
革命性的特点:
1.互动的电路仿真
用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。
2.仿真处理器及其外围电路
可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。
还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。
配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。
这次设计主要要用到数码显示功能,故初步选定8255芯片。
若要实现倒计时,中断控制,则要用到8253芯片。
经过仔细思考论证,我认为设计的关键就是准确判断出最先抢答者的信号并锁存,而同时不理睬其他抢答者的信号。
为此,可将7个抢答按钮信号通过一个4位并行输入口接至微机中。
当主持人启动抢答过程后,微机通过该并行输入口循环对抢答信号进行采样。
当采样到那一组的抢答信号已经发出,则立即停止采样,并记录下该组的组号。
2硬件设计原理
图2-1为原理图,逻辑开关k0-k6代表抢答器按钮,某组抢答器按钮按下,在数码挂面上将其组号显示出来
图2-1抢答器原理图
抢答器抢答按钮应如图2-2所示:
图2-2开关按钮图
数码管连接如图2-3所示
图2-3数码管连接图
1并行接口芯片8255内部结构
8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:
与CPU连接部分、与外设连接部分、控制部分。
1)与CPU连接部分
根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。
由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0~A1。
此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。
各信号的引脚编号如下:
(1)数据总线DB:
编号为D0~D7,用于8255与CPU传送8位数据。
(2)地址总线AB:
编号为A0~A1,用于选择A、B、C口与控制寄存器。
(3)控制总线CB:
片选信号、复位信号RST、写信号、读信号。
当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。
2)与外设接口部分
根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。
各通道的引脚编号如下:
(1)A口:
编号为PA0~PA7,用于8255向外设输入输出8位并行数据。
(2)B口:
编号为PB0~PB7,用于8255向外设输入输出8位并行数据。
(3)C口:
编号为PC0~PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。
3)控制器部分
8255将3个通道分为两组,即PA0~PA7与PC4~PC7组成A组,PB0~PB7与PC0~PC3组成B组。
图2-4所示,相应的控制器也分为A组控制器与B组控制器,各组控制器的作用如下:
(1)A组控制器:
控制A口与上C口的输入与输出。
(2)B组控制器:
控制B口与下C口的输入与输出。
2外部引脚
图2-48255引脚图
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。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
38255A的基本操作
Intel8255A内部的读/写控制逻辑对输入信号CS,RD,WR,A1,A0进行译码,产生控制信号决定8255A的操作类型。
这些输入信号的组合关系以及8255A的基本操作描述如表2-1所示
A1
A0
RD
WR
CS
工作状态
0
0
0
1
0
A口数据-->数据总线
0
1
0
1
0
B口数据-->数据总线
1
0
0
1
0
C口数据-->数据总线
0
0
1
0
0
总线数据-->A口
0
1
1
0
0
总线数据-->B口
1
0
1
0
0
总线数据-->C口
1
1
1
0
0
总线数据-->控制字寄存器
*
*
*
*
1
数据总线-->三态
1
1
0
1
0
非法状态
*
*
1
1
0
数据总线-->三态
表2-1工作关系表
Intel8255A的初始化字
命令字
D7D6D5D4D3D2D1D0
D7:
特征位D6D5:
A组方式00=方式0,01=方式1,1X=方式2
D4:
A口0=输出,1=输入D3:
C口C7~C40=输出,1=输入D2:
B组方式0=方式0,1=方式1。
D1:
B口0=输出,1=输入D0:
C口C3~C00=输出,1=输入
D7位为“1”时,为方式选择控制字的标识位。
D6、D5位决定A端口的工作方式。
D4位决定A端口工作在输入还是输出方式。
D3位决定C端口高4位PC7~PC4是作为输入端口,还是作为输出端口。
D2位用来选择B端口的工作方式。
D1位决定B端口作为输入还是输出端口。
D0位决定C端口低4位PC3~PC0作出为输入,还是输出。
[1]
C口复位字
在8255A芯片初始化时,C端口置1/置0控制字可以单独设置C端口的某一位为0或某一位为1。
控制字的D7位为“0”时,是C端口置1/置0控制字中的标识位,这个控制字只对C口起作用,任何一位都可以通过按位置位/复位控制字来设置。
注意:
对C口的置位/复位控制不是把控制字送到C口,而是由控制口决定各位的状态,是把控制字送到控制口
工作方式
3种工作方式可用软件编程对控制口设置来指定。
三种基本的工作方式为:
方式0-基本的输入输出,方式1-选通输入输出方式,方式2-双向传送方式。
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信号,PC6用作外设B口输出收到数据后的响应信号ACK,PC3用作中断请求输出信号线INTR。
当B口工作于方式l且用作输出口时,C口的PC1线用作输出缓冲器满OBF信号,PC2用作外设收到数据后的响应信号ACK,PC0用作中断请求输出信号线INTR。
3)工作方式2(双向输入输出方式)
功能:
方式2是A组独有的工作方式。
外设既能在A口的8条引线上发送数据,又能接收数据。
此方式也是借用C口的5条信号线作控制和状态线,A口的输入和输出均带有锁存。
七段数码显示器接口
1.led显示器结构
Led显示器是由发光二极管组成的显示器,有“8”字段和“米”字段之分。
显示器分为共阳极和共阴极两种。
将发光二极管阴极连接在一起的称为共阴极led显示器。
将发光二极管阳极连接在一起的称为共阳极led显示器。
用led显示各种字符和数字,就是使led的相应段点亮,而其他段不亮。
共阴极led显示器只要在需要点亮段的阳极加上高电平,共阴极加上低电平,就可以得到需要现实的字符。
2led显示控制方式
七段数码管有静态和动态两种显示方式。
动态驱动的优/缺点:
优点是显示驱动电路简单,2个IC即可驱动8个10"以下的LED,成本较低。
各种尺寸的LED可直接与主控板.驱动板.扩展板连接,甚至可不采用PCB板。
功耗低。
采用分时扫描显示方式,功耗只有静态显示的1/5。
缺点是LED至驱动板间的连线较多(共8+LED个数根)。
当位数较多时,连线及检修不便。
静态驱动的优/缺点:
优点是LED显示组件间连线非常简洁,只需5-6根线即可将所有LED串接,调试检修方便。
显示亮度好,采用合适的驱动元件可驱动2米以下的LED,适合制作室外大型数字屏。
缺点是每个LED需要1-2个驱动IC,需要制作显示组件PCB板。
功耗稍大(是扫描驱动的5倍)。
成本稍高。
3软件设计原理
emu8086编程流程图3-1所示
y
N
y
N
图3-1程序流程图
用emu8086编程程序如下:
datasegment
ioaequ0000h
iobequ0002h
iocequ0004h
iokzequ0006h
leddb06h,5bh,4fh,66h,6dh,7dh,07h
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movdx,iokz
movax,89h
outdx,al
movbx,offsetled
movdx,ioa
moval,00h
outdx,al
nop
moval,3fh
outdx,al
nop
sss:
movdx,ioc;等待PC0~PC6输入一个信号
inal,dx
cmpal,11111111b;判断是否有PC键按下
jzsss
cmpal,01111111b;判断是否是PC7
jzsss
movdx,ioa
moval,00h
outdx,al
nop
xoral,11111111b
movcl,0ffh
rr:
inccl
shral,1
jncrr
moval,cl
xlat
movdx,ioa
outdx,al
wai:
movdx,ioc
inal,dx
cmpal,01111111b;若此时按下PC7则清零并开始下一轮
jnzwai
movdx,ioa
moval,3fh
outdx,al
jmpsss
eee:
movah,4ch
int21h
codeends
endstart
4系统仿真调试
根据前面硬件设计原理图与软件设计原理图,在proreus软件上连接如图4-1,4-2所示电路.根据如图所示电路8255A端口,B端口,C端口及控制端口的地址为0000h,0002h,0004h,0006h。
电路中用到74系列器件时TI公司生产的中小规模TTL集成电路芯片,是一种低成本,工业民用产品,工作温度0~70度,74xxx系列属于标准中小规模TTL集成电路。
电路中还包括可编程并行接口芯片8255A,数码管,8086cpu控制电路,电阻若干,开关若干。
图4-1仿真电路图
图4-2仿真电路图
逻辑开关k0-k6代表抢答器按钮,k7表示重置。
点击仿真按钮开始第一轮抢答,先抢答的组会在数码管上显示出来。
按k7开始下一轮抢答。
(开关从上到下依次为k0到k7).
5心得体会
通过这次课程设计,让我更加深刻了解课本知识。
虽然这次课程是那么短暂的2周时间,我感觉到这些天我的所学胜过我这一学期所学,这次任务原则上是设计,其实就是一次大的作业,是让我对课本知识的巩固和对基本公式的熟悉和应用,在设计抢答时我首先想到的就是8255芯片,但是后来并不是那么简单,这中间编程和电路图让我使我做事的耐心和仔细程度得以提高。
课程设计是培训学生运用本专业所学的理论知识和专业知识来分析解决实际问题的重要教学环节,是对三年所学知识的复习和巩固。
同样,也促使了同学们的相互探讨,相互学习。
因此,我们必须认真、谨慎、踏实、一步一步的完成设计。
如果时间可以重来,我可能会认真的去学习和研究,也可能会自己独立的完成一个项目,我相信无论是谁看到自己做出的成果时心里一定会很兴奋。
此次设计让我明白了一个很深刻的道理:
团队精神固然很重要,担人往往还是要靠自己的努力,自己亲身去经历,这样自己的心里才会踏实,学到的东西才会更多。
课程设计是一个重要的教学环节,通过课程设计使我们了解到一些实际与理论之间的差异。
通过课程设计不仅可以巩固专业知识,为以后的工作打下了坚实的基础,而其还可以培养和熟练使用资料,运用工具书的能力,把我们所学的课本知识与实践结合起来,起到温故而知新的作用。
课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门设计课,给了我许多道,给了我很多思,给了我莫大的空间。
同时,设计让我感触很深。
使我对抽象的理论有了具体的认识。
总之,这次课程设计使我收获很多、学会很多、比以往更有耐心很多。
感谢学校及老师给我们这次课程设计的机会,最真挚感谢我的几位队友,在设计过程中,两位同学帮助了我很多又不懂的问题我大多都是靠他们解决,最后感谢我的指导老师,感谢她对我的指导不然我想很难完成这次课程设计。
6参考文献
[1]陈红卫.微型计算机基本原理与接口技术.北京:
科学出版社.2015.148~184
[2]刘云玲.微机原理与接口技术实验指导.北京.清华大学出版社2013.73~75
[3]邹逢兴.微机原理与接口技术经典实验案例集.北京.高等教育出版社.2012.201~234
[4]赵松.计算机接口技术.北京.清华大学出版社.2012.136~161
[5]何宏.计算机原理与接口技术.北京.清华大学出版社.2014.312~312