【VB开源代码栏目提醒】:网学会员,鉴于大家对VB开源代码十分关注,论文会员在此为大家搜集整理了“某校园广播自控系统设计(含完整程序文件+开题报告+ppt等)--毕业设计 - 毕业设计”一文,供大家参考学习!
第一章 绪论 本系统以 PC 机及声卡为
核心,以流行的 MP3 音乐作为课间节目播放,自动控制校园音乐广播系统,不但准时可靠,而且借助网络技术和 PC 机的
编辑功能以及
管理能力,可经常更换音乐
内容,使
学生在课间
欣赏轻松优美的音乐,久而久之,对全校师生都是一种有益身心健康的熏陶。
和
国内其他同类
产品相比,校园音乐广播系统操作简单,使用方便,而且价格低廉,有较好的使用
价值。
1.1 功能介绍 定时播放功能:由一台 PC 机作为主控计算机,并兼做数字节目源,通过 系统播放和控制软件实现手动、自动定点定时播出广播通知、
外语节目、音 乐等; 系统全自动运行:利用主板的时钟唤醒功能,早上定时自动开机,
运行控 制软件,实现无人值守全自动广播,当天作息项全部播完后,自动退出软件 并关闭电脑; 可将各种常用曲目存储在硬盘上,实现全自动非线性播出。
还可设置每周 的播放工作表,每一作息项乐曲长度任意设定; 软件能播放 WAV、MP3 等多种
流行音乐文件格式,配套乐曲库提供多首 校园常用乐曲、
中外名曲等,也可随意增减曲目,并能方便调用外部音乐文 件; 音量反馈功能:可根据反馈的信息自动调节音量; 可随时插播全校性通知及
音乐; 软件采用模块化设计,功能齐全,
界面友好,操作
简单,采用
VB 编程, 底层驱动采用汇编程序; 电源自动控制:自动开关音频设备、功放等外设的
电源,延长系统设备使 用寿命。
1.2 系统配置需求 PC 机一台(主控),带声卡; 智能音乐广播控制卡(以 8255A 芯片、A/D 转换器为主);
智能音乐广播控制
软件(采用汇编语言和
VB 编程)及配套乐曲库; 高保真定压广播功放(带
保护); 音箱; 话筒。
第二章 总体设计
方案2.1 系统组成
系统总体结构如图 2-1 所示: 图 2-1 音乐
广播系统总体结构图 根据不同的功能实现,我们将校园广播自控系统分为接口电路、声卡、音量程控、功放、扬声器及音量采样等
几个部分分别进行
讨论。
其中: 接口电路采用译码电路、8255A 等芯片和 ISA 总线实现并行通信,及数控 电位器、A/D 采样、其他外设的控制; 音量程控功能通过数字电位器 AD8403 来实现。
通过 8255A 对其送数, 实现广播音量的自动调节; 音量采样模块采用半波整流电路及 ADC0809 芯片对音频信号进行采样, 反馈回主机,进行音量调整; 声卡用于处理音频信息。
在广播系统中,最主要的功能是把经过 PC 机处 理的
数字化声音信息通过解压、D/A 转换后,输入功放进行发大,再通过扬 声器播放出来,以及控制
声音源的音量。
音频信号传输流程: 图 2-2 音频信号传输流程2.2 ISA 系统总线 ISA 总线也称为 AT 总线,是工业标准总线,支持 8/16 位数据传输和 10 位I/O 寻址空间。
其特点是把 CPU 作为总线的唯一主控设备,其余外围设备均为从属设备,包括可以暂时掌管总线的 DMA 控制器或协处理器。
ISA 总线是一种开放的结构总线,在其总线母板上有 8 位系统插槽,用于I/O 设备与 PC 机的连接。
其
价格低、可靠简便、使用灵活且对插板兼容性好,几乎所有主板都保留了 ISA 总线扩展槽。
ISA 总线引脚信号: 地址总线(24 条):用来指出
内存地址或 I/O 地址,在进行端口
访问时,仅使用了 A0~A9 十条地址总线来对端口进行寻址,
范围为 000H~3FFH。
也就是说,如果传输的是 I/O 地址,A19~A16 无效; 数据总线 D15~D0:用来在 CPU、
存储器及 I/O 端口
之间传送数据,可利用 IOW 或 MEMW 、 IOR 或 MEMR 来进行数据选通; 控制总线: ALE:地址锁存允许输出信号,高电平有效。
微处理器或总线控制器在每一个
总线周期送出 ALE 信号,ALE 有效,表示一个总线周期
的开始。
此信号的下降沿可用来锁住地址信号; AEN:地址允许信号,高电平有效。
由 DMA
控制器所发出,表示目前正在进行 DMA 总线周期,由 DMA 控制器控制总线;只有 AEN=0 才由 CPU 行使总线控制权。
该信号用于控制端口译码器,只有在该信号为低电平时,才对I/O 地址进行译码; IOR , IOW :I/O 端口读/写信号。
第三章 并行接口设计3.1 并行接口 并行通信就是把一个字符的各数位用几条线同时
进行传输,
一次可同时传送 8 位或 16 位数据。
这种方式和串行
通信相比,在同样的传输率下,信息传输速度快,但它所需要的连线多,只适
用于传送速率要求较高的近距离传送。
实现并行通信的接口就是
并行接口。
并行接口为能完成 CPU 与 I/O 设备间的数据传送,应具有如下功能和硬件支持: 1有两个或两个以上只有锁存器和缓冲器的数据端口; 2每个端口都具有与 CPU 和外部设备用应答方式查询方式交换数据所必须的控制和状态信息; 3每个端口都
具有能用中断方式与 CPU
交换信息所
必须的电路; 4有选片和控制电路。
从并行接口的电路结构上又可分为不可编程和可编程两种。
可
编程并行接口电路的最大
特点恰恰就在于使用灵活,可以在不改变硬件的情况下,通过软件编程来改变接口的功能,因而其功能很强。
3.2 I/O 口地址分配及译码3.2.1 I/O 口地址分配 PC 总线支持的端口数目为 1024 个,地址空间为 0~3FFH,使用 A9~A0十位地址
作为 I/O 口编码寻址,其中低端 512 个端口供系统板电路使用,高端512 个供扩充插槽使用。
当 A9=0 时表示低端地址为系统板所用,A9=1 时表示高端地址为扩充插槽
所有。
因此,用户在
设计 I/O 设备
接口卡时,一定要使口地址译码电路中 A9=1。
在 1024 个口地址中,有些已被系统占用,有些已被选配的 I/O 接口卡占用,还有一些被留作今后开发使用,
最后才是留给
用户可用的 I/O 口地址。
一般用户可使用 300H~31FH。
3.2.2.I/O 口地址译码 CPU 为了对 I/O 进行读写操作,就需选定与
自己交换信息的端口地址,如何通过 CPU 发来的编码来
识别和确认这个端口,这就是口地址译码
问题。
口地址的译码可根据需要由地址和控制信号组合构成
不同的译码电路,从形式可分为固定式和可选式译码,从译码电路采用的元器件,可分为门电路和译码器译码。
固定式是指接口卡中用到的口地址不能更改,若仅
需要一个口地址时,采用门电路
构成译码电路比较简便。
这里我们采用一片 74LS133 芯片来进行译码选定 8255A 。
(如图 3-1 所示) 图 3-1 I/O 端口译码电路 由于 74LS133 的逻辑特性,如图 3-2 所示, 图 3-2 74LS133 芯片结构 74LS133 是 13 输入端与非门。
当输入全为 1 时,输出为 0;输入为 0 时,输出为 1。
I/O 端口地址的
生成一般是由地址信号 A9~A0 的高位产生译码的片选信号,低位
产生片内的寄存器地址。
在这里,我们用 A9~A2、AEN 来产生8255A 的片选信号,用 A1、A2 来选择片内的 4 个
端口。
其中,AEN 为地址允许信号,当 AEN=1 时是 DMA 控制总线,AEN=0 时是 CPU 控制总线。
每当 CPU 执行 IN 或 OUT 指令时,就
进入 I/O 的读/写总线周期。
在读/写I/O 端口时,首先是端口地址有效,然后是 I/O 读/写信号 IOR 、 IOW 有效。
地址译码器输出有效的片选 CS 所选中的端口便是 I/O 口。
3.3 8255A 介绍 8255A 是
一种通用的可编程 8 位并行接口芯片,有 3 个 8 位并行的输入/输出端口 PA、PB 和 PC,其中 PA、PB 口通
常用作输入/输出数据口,PC 口通常用作控制口或状态口。
如图 3-3 所示 图 3-3 8255A 的结构框图和引脚图8255A 引脚功能
CS :片选信号,当它为低时,表示芯片被选中,允许 8255A 与 CPU 进行通讯; RD :读信号,当它为低时,允许 8255A 通过数据总线向 CPU 发送数据或状态信息,即 CPU 从 8255A 读取信息或数据; WR :写入信号,当它为低时,允许 CPU 将数据或控制字写入 8255A; D0~D7:三态双向数据总线,8255A 与 CPU 数据传送的通道,当 CPU 执行输入输出指令时,通过它实现 8 位数据的读/写操作,控制字和状态信息也通过数据总线传送; A1、A0:端口地址总线,通过片内地址译码器来选中内部 4 个端口,即 PA口、PB 口、PC 口和控制口分别对应于 A1A0=00,0l,10 和 11。
8255A 工作方式 8255A
芯片具有 3 种工作方式,
可以通过对芯片的编程来指定各端口的工作方式,即对 8255A 芯片内部的控制寄存器装入不同的控制字,以决定其工作方式。
1 方式 0 是一种
基本输入或输出方式,它适用于无需握手信号的简单输入输出应用场合, 端口 A、B、C 都可作为输入或输出数据使用; 2 方式 1 也称选通的输入/输出方式,无论是输入
还是输出都通过应答关系实现,端口 A 或 B 用作数据口,端口 C 的一部分引脚用作握手信号线与中断请求线; 3 方式 2 也称选通的双向 I/O 方式,仅
适用于端口 A。
3.4 接口
电路设计 有关控制信号及
状态信号: STB ——选通输入,低电平
有效。
是由外设送来的输入信号,用来将输入数据送入输入锁存器中。
在 A/D 转换中,将 ADC0809 的转换结束信号 EOC 接到 STB ,当转换结束时即可把 A/D 转换器的数字量送入 A 口的输入寄存器; IBF——输入数据缓冲器满
信号,IBF=1,表示数据已送入输入锁存器,它由 STB 下降沿置位,由 RD 的上升沿复位; OBF ——输出数据缓冲器满信号,8255A 发出的数据选通信号,表示 CPU已将数据送至 8255A; ACK ——外设响应信号,表示外设已从 8255A 端口取走数据; INTR——中断请求情号,由 8255A 输出,向 CPU 申请中断,由 RD 的下降沿复位。
PC 总线与 8255A 的接口硬件电路如图 3-4 所示: 图 3-4 8255A 与 PC 总线的接口电路 前面
介绍过,PC 机提供可用的 I/O 口地址只有 300H~31FH,因此我们设8255A 的端口地址为 310H313H,对应于 A 口,B 口,C 口和控制口。
并用A2,A1 用来选择片内的这 4 个端口。
当 A9~A2=11000100 时,74LS133 输出为零,选中 8255A。
A 口设为方式 1 输入与 A/D 转换器相连接,B 口设为方式 0 控制音量。
音量反馈程序流程图: 音量程控子
程序流程图: CPU 通过 8255 的 A 口读取音量反馈信息,先读取 PC 口的状态,
查询 IBF是否为“1”即表示数据已送入输入锁存器,若满足
条件,就通过 A 口读取音量信息;CPU 根据读取信息的音量高低,通过 8255A 的 B 口向数字电位器AD8403 送入一个增减量,根据值的增减来调整音量。
第四章 音量采样设计 在广播时常常遇到由于音频信号衰减或其他
原因,使广播音量偏高或偏低的情况,这时
我们就需要知道播音的效果,以便及时调整音量。
因此在这里我们设计了一个音量反馈的功能(如图 4-1 所示),通过将功放输出的模拟音频信号经过整流、A/D 转换后,回送到主机,根据播音
效果,由音量程控
模块自动调节音量。
图 4-1 音量采样反馈4.1 半波整流电路 由于在 A/D 转换器把模拟信号变换为数字信号时,不允许输入端的电压变化,因此我们采用了半波整流电路,把方向和大小交变的电压信号变换为直流电压。
半波整流电路由整流二极管 D 和负载电阻 Rfz 组成(如图 4-2 所示)。
输入交变电压 e2 ,D 再把交流电变换为脉动直流电。
图 4-2 半波整流电路 交变电压 e2 ,是一个
方向和大小都随时间变
化的正弦波电压,它的波形如图 4-3(a)所示。
图 4-3 半波整流波形 在 0~π时间内,e2 为正半周即电压上端为正下端为负。
此时二极管承受正向电压面导通,e2 通过它加在负载电阻 Rfz 上,在π~2π 时间内,e2 为负半周,这时 D 承受反向电压,不导通,Rfz 上无电压。
在 2π~3π 时间内,重复 0~π
时间的过程,而在 3π~4π时间内,又重复π~2π 时
间的过程…这样反复下去,
交流电的负半周就被削掉了,只有正半周通过 Rfz,在 Rfz 上获得了一个单一正向(上正下负)的电压,如图 4-3(b)所示,达到了整流的目的,但是,负载电压 Usc,
以及负载电流的大小还随时间而
变化,因此,通常称它为脉动直流。
这种除去下半周的整流方法,就称为半波整流。
图 4-3(c)为加滤波电容后的输出波形。
4.2 A/D 转换器介绍 ADC0809 是带有 8 位多路开关的 8 位 A/D 转换器、以及与微机控制
逻辑兼容的的 CMOS 组件,其转换
方法为逐次逼近型。
从图 4-4 中可以看出,ADC0809 由两部分组成:第一部分为 8 通道多路模拟开关,控制 C、B、A 和地址锁存允许端子,可使其中一个通道被选中。
第二部分为
一个逐次逼近型 A/D 转换器,其中控制逻辑用来控制逐次逼近寄存器从高位到低位逐次取“1”,然后将此数字量送到开关树组(8 位),以控制开关K7~K0
是否与参考电平相连。
图 4-4 ADC0908 模数转换结构图 参考电平经 256R 梯型电阻
网络输出一个模拟电压 Vc,Vc 与输入模拟量Vx 在比较器中进行
比较。
当 VcVx 时,该位 Di=0;若 Vc≤Vx 时,则 Di=1,且一直保持到比较结束。
因此,从 D7~D0 比较 8 次,逐次逼近寄存器
中的数字量,即与模拟量 Vx 所相当的数字量。
此数字量送入输出锁存器,并同时发出转换结束信号。
主要引脚: START:启动信号。
当 START 为高电平时,A/D 转换
开始; EOC:转换结束信号。
当 A/D
转换结束后,发出一个整脉冲,表示 A/D 转换完毕; OUTPUT ENABLE:输出允许信号。
当此信号被选中时,允许从 A/D 转换器的锁存器中读取数字量。
此信号可作为 ADC0809 的片选信号,高电平有效; CLOCK:实时时钟,可通过外接 RC 电路
改变时钟频率; ALE:地址锁存允许信号,高电平有效。
当 ALE 为高电平时,允许 C、B、A 所示的通道被选中,并把该通道的模拟量接入 A/D 转换器; ADDA、ADDB、ADDC:模拟通道选择信号。
ADDA、ADDB、ADDC000~111H,依次选中 IN1~IN7; OE:输出允许信号,有效时打开 ADC0809 的输出三态门,转换结果送上数据总线。
当模拟通道选择地址有效时,ALE 加上正脉冲,ALE=“H”,通道地址ADDC、ADDB、ADDA 马上被锁存,且选中所需的通道 INi。
START 要求一个正脉冲,在 START 信号后沿,启动转换。
在转换过程中,EOC 变为低电平,直到转换结束,EOC=“H”,指示转换结束。
把 OE 置高电平打开三态门.把转换后的数字量送上数据总线,读人 CPU。
图 4-5 为 8255A 与 ADC0809 的
连接图: C 口的 PC7 设定为输出操作与 ADC0809 的启动信号 START 相接,也就是说,转换
的启动是程序向 PC7 发送 1,再发送 0,
形成正脉冲来完成的。
在 A/D
工作期间, BUSY 端输出一正脉冲, 从 不进行新的采样。
BUSY 在下降沿时, 当后沿触
发电路经反向器输出一个负脉冲到 PC4, A/D 输出的数据锁存入 A 口, 使同时进行新的采样。
图 4-5 A/D 转换接口
技术 程序如下: MOV DX, 313H MOV AL, 10110000B OUT DX, AL ;设置 A 口为方式 1 输入,B 口为方式 0 输出 MOV DX, 311H OUT DX AL ;向数字电位器输出数据 MOV DX, 313H MOV AL, 00001111B OUT DX, AL MOV AL, 00001110B OUT DX, AL ;使 PC7 输出一个脉冲 MOV DX, 312HAGAIN:IN AL, DX TEST AL, 00100000B JZ AGAIN MOV DX, 310H IN AL, DX ;实现转换完成后输入数据工作原理: 1CPU 过 8255A 的 PA 口选中所需输入通道 IN5,启动 ADC0809 转换,启动信号正脉冲送 ADC0809 的 START 和 ALE 引脚; 2查询 ADC0809 是否转换结束; 3若 A/D 转换结束,需打开 ADC0809 的输出缓冲器使 OE 有效,然后读人 A/D 转换
后的数字量。
第五章 音量程控实现5.1 音量调整 多媒体电脑的声卡是一个音源和音频处理器。
经过声卡处理后的音频信号由声卡
内部的音量调节电路调整后,输送到多媒体音箱的功放输入接口,这时的音频信号要通过设置在功放输入前的音量电位器进行
调整后,再输入功放,
驱动扬声器发出声音。
因此,实际上电脑多媒体的音量调整要经过两个环节的
组合:声卡的音量调整和多媒体音箱功放的音量调整。
图 5-1 音量调节的两个环节1. 调节音箱功放的音量。
缺点:功放上的音量调节旋钮多远离使用者,
不能随手可调,操作不方便。
2. 调节声卡的音量。
这种方式的好处是音量调节方便,用鼠标点击状态栏的音量
调节滑杆即可,但是用鼠标调节音量容易操作失误。
前面介绍的两种音量设置方式都
存在一定的不足,那么,我们就采取“中庸之道”,将音箱音量调节到 1/2-2/3 处,固定声卡音量,在声卡和功放间串接一个程控模块,用数字电位器 AD8403 来实现,可编程自动控制音量。
这样的设置即给功放留有一定的功率余地使其不会过载,处于安全工作状态,同时可自动或手动调节广播音量,减少操作失误。
数字电位器
的原理(如图 5-2)和功放的音量电位器类似,都是通过采用一个滑动变阻器来调节音量。
图 5-2 音量调节
原理 其中:音频信号由声卡输出,通过音量程控电路调整后送到功放输入接口,由 U0R2/R1R2Ui 可知,通过调节变阻器来改变 R1 和 R2 的阻值,引起音频信号输出电压 U0 的变化,达到调节音量的
目的。
5.2 数字电位器 AD8403 图 5-3 AD8403 与 8255A 连接电路 图中 AD8403 为 Ana
log Devices Inc.
生产的数控电位器集成芯片,其内部有四个相互
独立的通道,自带通道数据锁存器。
该芯片的通道电阻标称值为10
20100 多种型号,根据输入 8 位二进制数
的不同,每一通道均有256 个阻值调节,因此可用于数控分压和数控电阻调节。
根据前述要求,IC1 的标称电阻取 10 ,工作于数控电位器
模式,其输出电阻的
表达式为: R D x D x / 256 R0 4式中: D x 是通道数据锁存器中锁存的 8 位数据, R0 为芯片的标称电阻。
该芯片的最大特点是 具有三条串行
通讯线可与
计算机直接接口,使用50MHz 时钟时,在 1μS 内可将 4 个通道的控制数据传送完毕,其 10 位二进制控制数据的格式是: A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 ,
格式中前两位是地址位,紧接着 D7 D0 是 8 位控制数据。
地址线 A1 A0 00,01,10,11 分别对应四个通道。
AD8403 进行音量程控
的实现,是由 PC 机及 8255A 来完成的。
输入信号经过预处理,送入 8255A,借助 PC 机的内部定时
计数器资源,由 PC 机读取数据,经处理后选择合适的数值控制数据 D x ,
协调系统各部件正常工作。
AD8403 实现可控电阻
特性的
关键是由 PC 机向其送入一个增减量,根据值的增减
移动电位器的滑壁。
第六章 软件设计与功能实现 我们采用模块化设计智能音乐广播控制软件,编程
语言采用 Visual
Basic,底层驱动采用汇编语言编写。
主程序流程图: 该软件可实现定时播放作息音乐及自动运行功能;能播放 WAV、MP3 等多种流行音乐
文件格式,也可随意增减曲目,并能方便调用外部音乐文件设置;还可设置每天的播放工作表(如图 6-1 所示),每一作息项乐曲长度任意设定。