微型接口技术课程设计声光.docx
- 文档编号:26209179
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:27
- 大小:432.68KB
微型接口技术课程设计声光.docx
《微型接口技术课程设计声光.docx》由会员分享,可在线阅读,更多相关《微型接口技术课程设计声光.docx(27页珍藏版)》请在冰豆网上搜索。
微型接口技术课程设计声光
1需求分析
1.1课程设计目的
利用MFID实验平台,通过在MF2KI集成开发环境中对声-光效果(报警器)的设计与制作,深入了解与掌握利用可编程8255A进行开关量控制的原理与方法。
1.2课程设计要求和任务
1.2.1设计要求
1.利用DIP8的8位开关,控制LED产生8种彩灯(8位LED)的走马灯花样的同时,又控制喇叭,产生8种不同频率的声音;按任意键,LED彩灯熄灭,同时喇叭停止发声。
2.键控发声设计。
在键盘上定义8个数字键(0~7),每按1个数字键,使喇叭发一种频率的声音,按任意键,停止发声。
3.键控发光实验。
在键盘上定义8个数字键(0~7),每按1个数字键,使LED的1位发光,按任意键,停止发光。
1.2.2设计任务
1.进行声-光效果(报警器)系统电路硬件设计,画出电路原理图、PCB图或元器件布线图;
2.安装或焊接元器件;
3.进行声-光效果控制程序设计(采用CPP语言);
4.系统联调,提交一个符合上述4种要求的声-光效果的系统设计。
1.3课程设计环境
1.PC兼容机
2.Windows2000
3.MFID多功能微机实验平台(含PCI总线驱动板)
4.MF2KI集成开发环境
5.面包板或外设功能模块板
6.安装或焊接工具
1.4实验资源配置
1.电源:
机内供电;
2.电缆线:
采用单线/26芯扁平电缆;
3.元器件:
外设功能模块中包含8255A,74LS04,功放LM386,LED8个,排阻2个,喇叭SPK1个,开关2个,电阻,电容及导线若干;
4.I/O端口地址:
8255A的4个端口地址为300H-303H,其中A口=300H,B口=301H,C口=302H,命令口=303H;
5.软件资源:
MF2KI集成开发环境软件提供丰富的C语言程序开发工具。
2概要设计
2.1设计内容
按下SW3开关,开始报警,即喇叭发声,同时LED灯闪光。
打开开关1,灯1、3、5、7闪亮,关闭开关SW3;断开开关闭合开关2,再按下SW3,灯2、4、6、8闪亮。
2.2模块的划分和设计
PA口用作数据口,控制灯的发光情况。
PB口通过开关的设置控制灯亮的几种闪亮情况。
PC2口控制开关SW3。
模块电路图如图2.1。
图2.1声-光报警器模块板电路原理图
2.3功能模块
本课程设计及声-光报警器所涉及的功能模块:
8255模块,LED,按键开关,音乐发生器四个模块。
3详细设计
3.1硬件设计
3.1.1.实验平台板电路原理
平台板的电路框图如图3.1所示。
图3.1实验平台板电路原理框图
3.1.2平台板的配置
平台板的50芯扩展总线插座J1是50芯扁平电缆插座,通过它把系统总线引入平台,包括地址、数据和控制信号。
这些信号引入平台后,分别送到平台上的CPLD电路、并行接口、串行接口以及定时/计数器等大规模集成芯片。
然后,再通过平台板上的26芯插座J5(并行口),20芯插座J6(T/C口),9芯插座J7(RS_232串行行口),4芯插座J8(RS_485串行行口),以及A/DD/A通道提供给用户使用
平台板提供给用户使用的硬件资源配置包括I/O端口地址,中断资源,电源及保护系统,可编程接口芯片,插座、插槽、开关、指示灯和蜂鸣器以及测试点(观察点)等。
为保证本平台系统的高性能特点和使用方便、安全可靠,采用了一些特殊设计方法和特殊器件(如短路自动保护等)。
以下着重对本次毕业设计中用到的部分进行介绍。
①并行接口插座J5
J5并行接口插座由26根信号线,其中24根信号线是来自8255的三个并行端口
(A口、B口和C口),输出有锁存功能,输入有缓冲功能。
J5可作三个独立的8位传送,也可作16位传送。
J5的引脚分配如图3.2所示。
②定时/计数器插座J6
J6是将8253和8255两个芯片面向外设的输入/输出信号组合在一起,利用8253的定时/计数功能和8255的并行控制功能,为用户提供设计定时器、计数器、音乐发生器、声光报警系统等模块的接口,如音乐发生器板TCB。
J6的引脚分配如图3.3所示。
3.1.3外设功能模块
外设功能模块是接口连接与控制的对象。
所谓外设功能模块是外设加上相应的驱动电路,构成的具有一定功能的模块。
例如,AD数采集板,加上数据采集驱动电路就是一个数据采集功能模块,但是外设功能模块不能独立工作,它必须通过外设接口与CPU连接起来,才能进入微机系统中,接受CPU的控制,发挥外设功能模块的作用。
MFID实验教学平台提供了任意添加和扩展外设功能模块的条件与环境,用户只需在面包板上添加一些外设控制电路,利用平台板提供的各类接口电路和MF集成开发软件,就可扩展出许多微机应用系统实验。
3.1.4实验程序开境
MF软件采用系统集成技术,把实验程序的开发工具,故障诊断程序和实验演示程序集成在一个环境中,构成一个用户应用程序集成开发环境IDE(IntegratedDevelopmentEnvironment)。
用户程序的编辑、连接、调试、运行和修改的全过程都在一个集成环境中完成,大大提供了编程的效率。
MF软件在Windows2000/98环境下运行,每个版本提供了内容丰富的汇编语言程序和C/C++语言程序开发软件包,并以全屏幕窗口环境的形式供用户使用。
例如,在Windows操作系统下,启动集成开发环境,用户就可以在显示器上看到一个全屏幕窗口环境,如图3.4所示。
图3.4Window版本集成开发环境全屏窗口
3.1.5实验程序开发工具
实验程序开发工具包括编辑器、编译系统、连接程序和调试程序,如图3.4中主菜单所示。
3.1.6可编程并行接口8255A
借助于8255A数据口的传送数据的功能实时将LED闪亮的信息送入LED。
下面介绍一下8255A的基本特性和结构:
3.1.6.18255A的基本特性
①8255A是可编程并行接口,它具有两个8位(A口和B口)和两个4位(C口高/低4位),作数据口时,C口作数据口时和A口、B口不一样,它是把8位分为高4位和低4位两部分,高4位PC4~PC7与A口一起组成A组,低4位PC0~PC3与B口一起组成B组。
因此,C口作为数据口输入输出时,是4位一起行动,即使只使用其中的1位,也要4位一起输入或者输出。
A口和B口只作输入/输出的数据口用,它们是8位一起行动,即使只用到其中一位,也是如此。
②8255A能适应CPU与I/O之间的多种数据传送方式的要求。
如无条件传送、应答方式(查询)传送和中断方式传送,与此相应,8255A设置了0方式、1方式以及2方式(双向传送)。
③8255A可执行功能很强,内容丰富的两条命令(方式字和控制字)为用户如何根据外界条件(I/O设备需要哪些信号线以及它能提供哪些状态线)来使用8255A构成多种接口电路,组建微机应用系统提供了灵活方便的编程环境。
8255A在执行命令过程中和执行命令完毕之后,它所产生的状态保留在状态字中,以供查询。
④8255APC口的使用比较特殊,除作数据口外,还有其他用途,简单介绍如下:
a.作数据口。
C口作数据口时和A口、B口不一样,它是把8位分成高4位和低4位两部分,高4位PC4--PC7与A口一起组成A组,低4位PC0—PC3与B口组成B组。
因此,C口作数据口输入输出时,是4位一起行动,即使只使用1位,也要4位一起输入或输出。
b.作状态口。
8255A在1,2方式下,有固定的状态字,是从C口读入的。
此时,C口就是8255的状态口。
而A口和B口不能作8255A本身的状态口用。
c.作固定的联络信号线。
8255A的1,2方式是一种应答方式,在传送的过程中需要进行应答的联络信号。
因此,在1,2方式下,C口的大部分引脚分配作了固定的联络线。
虽然,A口和B口的引脚有时也作联络信号用,但不是固定的。
d.作按位控制用。
C口的8个引脚可以单独从1个引脚输出高/低电平。
此时,C口是作按位控制用,而不是作数据输出用。
C口的这些特殊应用,扩展了8255A的功能。
⑤8255A芯片内部主要由控制寄存器、状态寄存器和数据寄存器组成。
8255A是一个单+5V电源供电,40个引脚的双列直插式组件,其外部引线如图3.6所示。
3.1.6.28255A的外部引脚
它作为接口电路的8255A具有面向CPU和面向外设两个方向的连接能力。
因此它的引线可分为两类:
即与系统总线的连接信号线和与外部设备的连接信号线。
①与系统总线的连接信号
·面向数据总线的有:
D0~D7:
双向数据总线。
用于CPU向8255A发送命令、数据和8255A向CPU回送状态、数据。
·面向地址总线的有:
CS:
选片信号,低电平有效。
由系统总线的高位地址线经I/O端口地址译码电路产生。
通常连接到地址译码器的输出端,用来选中8255A芯片。
A1,A0:
芯片内部端口地址选择线。
通常与系统总线的低位地址相连,用来寻址8255A内部端口寄存器。
两位地址,可形成片内4个端口地址。
·面向控制总线的有:
RD:
读信号,低电平有效,与CPU控制总线相连。
当CPU执行IN指令时,该信号有效,将数据或状态从8255A读至CPU。
WR:
写信号,低电平有效。
与CPU控制线相连,当CPU执行OUT指令时,该信号有效,将控制字或数据写入8255A。
RESET:
复位信号,高电平有效。
与CPU复位信号相连。
当复位信号有效时,8255A内部寄存器全部清零,
②与外部设备的连接信号
PA0~PA7:
端口A的输入输出线
PB0~PB7:
端口B的输入输出线
PC0~PC7:
端口C的输入输出线
并将A、B、C三个端口置为输入方式,且三个端口的I/O线均呈现高阻态,并一直维持到方式控制字装入8255A,才能进入用户所需的工作方式。
3.1.6.38255A的内部结构
8255A的内部结构如图3.7所示。
它包括四个部分:
即数据总线缓冲器、读写控制逻辑、A组和B组控制电路和端口A、B、C。
①数据总线缓冲器
数据总线缓冲器是一个双向三态8位缓冲器,是8255A与CPU数据总线的接口。
CPU与8255A之间所有的数据发送与接收,以及CPU向8255A发送的控制字和8255A向CPU回送的状态信息都是通过它传送的。
②读/写控制逻辑
读/写控制逻辑接收来自CPU的地址和控制信号,并发出命令到两个控制组(A和B组控制)。
由它控制把CPU发出的控制命令字或输出的数据送到相应的端口,或者
把外设的状态信息或输入的数据从相应端口送到CPU。
③A组和B组控制电路
A组控制A口和C口的高四位(PC7~PC4),B组控制B口和C口的低四位(PC3~PC0)。
A、B、C3个端口的工作方式是由CPU送往A组和B组控制寄存器的方式控制字设定的。
A组和B组控制寄存器,还可以接收CPU送来的置位/复位控制字,以实现对C口的按位操作。
④数据端口A、B、C
8255A包括3个8位输入输出端口,每个端口都有一个数据输入寄存器和一个数据输出寄存器,在作为输入端口时,具有三态缓冲器功能(端口C无锁存功能)。
在作为输出端口时,都具有数据锁存功能。
8255A在方式0工作时,C口可分为两个4位端口,在方式1和方式2工作时,可以分成一个5位端口和一个3位端口。
本次课程设计采用8255A的PA口的8位来传输,连接到74LS04芯片,借助74LS04将信息发至8个LED,其中LED上设置了保护电阻。
3.1.7反向器74LS04
3.1.7.174LS04的结构
74LS04的结构图如3.8所示
图3.874LS04的结构图
3.1.7.274LS04的特性
74LS04功能表如下所示
3.1.8功放LM386
(1)简介
利用8255A的PC6引脚,将与门的输出送到功放器件LM386的输入端,然后送至扬声器。
在电子电路中,信号得到放大后最终是要以一定功率大小输出给负载,因此输出级往往由功率放大电路组成,它给负载提供足够大的信号功率。
本设计中的功放任务由LM386来完成,其连接见图3.9所示。
电压放大电路是小信号放大器,其任务是在不失真前提下放大微弱的信号电压,放大器件工作在微变状态;而功率放大器则要求它在允许失真的条件下输出足够大的功率,放大器件几乎工作在极限状态,因此,功率放大电路是大信号放大器。
LM386是一种设计用于低压应用的电路。
增益内部设定为20以保持外部元件最少,但是在管脚1和管脚8之间增加外部电阻和电容可使增益提高,可高到200。
(2)LM386的控制
为了使LM386成为多功能放大器,采用两个管脚1和8进行增益控制,使增益定为20(26dB)。
如果在管脚1和8之间设置一个电容器作1.35KΩ电阻地旁路,则增益可增加到200(46dB)。
若将一个电阻与电容串连起来,增益可以在200之内取任何值。
在管脚1对地之间,电容耦合一只电阻(或者场效应管),也可以用来增益控制。
在特殊应用场合,要求改变增益和频率响应,可以通过将外部元件同内部反馈电路来实现。
例如,我们可以用频率调整反馈通道来补偿劣质喇叭地低频特性。
这是用一个与5脚间地串联RC电路来实现地(内部并联一个15KΩ的电阻)。
如果要提高6dB的低频效果R≌15KΩ,如果8脚开路,则对于最稳定的工作状态,其最低值取R=10KΩ。
如果8脚被旁路,则R最低取2KΩ。
这种限制是由于放大器对闭环增益的补偿仅大于9。
原理图表明,输入对地偏置电阻为50KΩ,输入晶体管的基极电流大约为250nA,当左边开路使,输入大约为12.5mV。
假如,驱动LM386的直流电源电阻高于350KΩ,产生一个很小的附加的失调电压(输入端约为2.5mV,输出端约为50mV)。
入骨直流电阻小于10KΩ,把不用的输入端对地短路,可以保持低的失调电压(输入端约为2.5mV,输出端约为50mV)。
对于直流源电阻在以上范围内取值的情况,我们可以通过在不用的端对地之间加一个电阻来消除多余的失调电压,这个电阻阻值同直流源电阻相等。
当然如果输入进行容性耦合的话,所有的失调问题都可消除。
当LM386在高增益情况下使用时(在1脚和8脚之间旁接一个1.35KΩ电阻),必须是不用的输入端旁路,防止增益衰减以及可能产生的不稳定性。
根据驱动输入端的直流源电阻,或是加一个0.1uF电容,或是对地短路。
3.1.9设计电路的搭建
原理图设计成功以后,接下来就是在面包板实验区进行实际电路的连接。
声-光效果(报警器)控制电路模块的连接图如图3.11所示。
图3.11声-光效果(报警器)控制电路模块的连接图
由原理图生成的PCB图如3.12所示:
图3.12声光报警器的PCB图
3.2软件设计
3.2.1声-光效果(报警器)的控制程序设计
(1)控制程序的设计思想
程序首先初始化8255芯片,通过开关SW3来控制声音的发生,按下SW3发生声光报警。
(2)程序流程图
声-光(报警器)流程图如3.13所示
N
Y
Y
Y
图3.13声-光(报警器)流程图
声流程图如3.14所示光流程图如3.15所示
YY
NN
YY
Y
NN
Y
Y
图3.14声流程图
图3.15光流程图
3.2.2程序源代码及注释
;*******************************************************************
声-光报警程序*
;运行步骤:
1.按下一次开关SW3,开始声-光报警,再按下一次则停止;重复上述操作*
;2.按下"q"或者"Q",退出*
;*******************************************************************
ssegsegmentparastack'stack'
dw200dup(?
)
ssegends
dsegsegmentparapublic'data'
messagedb'pressSW3tostartandthenpressSW3tostop,andsoon!
',0ah,0dh;系统提示信息
db'ifyouwanttoquit,pleasehit''q''or''Q''!
',0ah,0dh,'$'
flagdb0;初始化状态标志变量为0
tdw0;初始化延时变量为0
dsegends
csegsegmentparapublic'code'
assumess:
sseg,cs:
cseg,ds:
dseg
mprocfar
start:
movax,ds
pushax
movax,00h
pushax;保留程序数据段地址
movah,09h;显示系统提示信息
movdx,segmessage
movds,dx
movdx,offsetmessage
int21h
;初始化8255
movdx,303h;取8255的控制端口的地址
moval,83h;初始化8255的A口和C口高四位为输出模式
outdx,al;B口和C口低四位为输入模式
;初始化灯LED全灭
movdx,300h;取8255的端口A的地址
moval,00h;使8255的PA0-PA7全为0
outdx,al;使所有的灯LED全灭
wait1:
;检测"q"或者"Q"键
movah,0bh
int21h;调用DOS21H功能0BH进行键盘判断
incal
jnzreadpc;检测是否有键按下
movah,08h
int21h;调用DOS21H功能08H进行键盘输入判断
cmpal,'q'
jzquit;检测到"q",退出
cmpal,'Q'
jzquit;检测到"Q",退出
readpc:
;判断开关SW3的状态
movdx,302h;读端口C的值
inal,dx;当按下开关SW3时,PC2口为低电
testal,04h;检测PC2口状态
jnzcase
lp:
inal,dx
testal,04h
jzlp;循环检测直至放开
xorflag,01h;将状态值取反
case:
cmpflag,01h;进行状态值比较
jnestop
begin:
movdx,301h;取8255的端口B的地址
inal,dx
movah,al
testal,01h
jzcase1
testal,02h
jzcase2
case1:
movdx,300h
moval,0aah;使1,3,5,7号灯亮
outdx,al
movbx,800
movt,800
jmpd1
case2:
movdx,300h
moval,55h;使2,4,6,8号灯亮
outdx,al
movbx,800
movt,800
jmpd1
d1:
calloutport;喇叭发出高频的声音
decbx
jnzd1;所有的灯LED全亮的时间
灯LED全灭
movdx,300h;取8255的端口A的地址
moval,00h;使8255的PA0-PA7全为0
outdx,al;使所有的灯LED全灭
movbx,200
movt,4000
d2:
calloutport;喇叭发出低频的声音
decbx
jnzd2;所有的灯LED全灭的时间
calldelay2
jmpwait1
;灯LED全灭
stop:
movdx,300h;取8255的端口A的地址
moval,00h;使8255的PA0-PA7全为0
outdx,al;使所有的灯LED全灭
jmpwait1
quit:
;灯LED全灭
movdx,300h;取8255的端口A的地址
moval,00h;使8255的PA0-PA7全为0
outdx,al;使所有的灯LED全灭
;返回DOS
movah,4ch;DOS功能调用
int21h;返回DOS
mendp
delay1proc
pushbx
movbx,t
dl1:
decbx
jnzdl1
popbx
ret
delay1endp
delay2proc
pushcx
pushbx
movcx,1ffh
dl3:
movbx,0ffffh
dl4:
decbx
jnzdl4
deccx
jnzdl3
popbx
popcx
ret
delay2endp
;喇叭发出声音
outportproc
movdx,303h;取8255的控制端口的地址
moval,0dh
outdx,al;置PC6=1
calldelay1
movdx,303h;取8255的控制端口的地址
moval,0ch
outdx,al;置PC6=0
calldelay1
ret
outportendp
csegends
endstart
4设计综合调试的最优化步骤
4.1检测实验平台及配套设备是否完好
在关机状态下将PCI总线驱动板插入电脑主板上PCI总线插槽中,并用26
芯扁平电缆线将总线信息接入到MFID多功能微机实验平台的26芯扩展总线插座J1。
然后开机,进入MFID多功能微机实验集成开发环境,利用平台板上的资源,运行演示程序,检测平台的硬件资源是否正常。
如果正常,则继续下一步的操作;如果不正常,则开启MFID中的故障检测软件,对实验平台上的芯片进行针对性检测,直到平台的硬件系统正常为止。
4.2调试自己设计的软件控制程序是否符合要求
实验平台硬件完好的情况下,利用平台板上的硬件资源来调试根据实验要求自己编写的程序。
其调试方法是:
采用MFID集成开发环境提供的软件工具,点击编译菜单项,对自编的程序进行编译、连接和运行,观察控制程序运行结果是否达到设计要求。
如果达到要求,则继续下一步的操作,否则,对自编的程序进行调试,直至运行结果符合要求为止。
4.3调试自己设计的硬件控制电路是否达到要求
将实验平台板上的部分电路换成自己搭建的模块电路,然后运行MFID集成开发环境提供的实验演示程序,观察是否能满足硬件电路设计的要求。
如果能满足要求,则进行下一步的操作,否则,进行电路调试,直至满足要求为止。
调试所用到的工具是万用表和示波器。
4.4将自己设计的硬件控制电路和自己设计的软件控制程序进行联调
将自制的模块电路(在面包板上或PCB电路板上)连接到实验平台相应接口插座处,构成一个包括CPU、接口和被控对象完整的微机控制系统,同时将自己设计的控制程序调入内存,然后点击MFID集成开发环境软件中的编译菜单项,进行编译、连接和运行该程序,观察结果是否正确。
如果前面几步是严格按照顺序走下来的,这时应该得到正确的结果,于是一个实验就成功了。
5声
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型 接口 技术 课程设计 声光
![提示](https://static.bdocx.com/images/bang_tan.gif)