微机原理论文.docx
- 文档编号:11350649
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:29
- 大小:378.52KB
微机原理论文.docx
《微机原理论文.docx》由会员分享,可在线阅读,更多相关《微机原理论文.docx(29页珍藏版)》请在冰点文库上搜索。
微机原理论文
郑州科技学院
微机原理课程设计
设计(论文)题目:
数字录音机
所在院:
信息工程学院
专业班级:
10X
学生姓名:
X
学号:
X
指导教师:
_____
完成时间:
2013年1月4日
郑州科技学院
微机原理课程设计(论文)任务书
题目:
数字录音机
专业计科班级3班学号X姓名X
一、主要内容
本次课程设计的主题研究思想是利用微机原理与接口技术知识,掌握数字录音技术的基本原理.利用8253芯片,8255芯片,ADC0809芯片和DAC0832芯片实现电信号与数据信号的转换.8253设置成方式0,记数为200个,利用PA0查询电平变化,控制录音和放音时间.达到数字录音的目的.可广泛应用于数字录音领域.因此它具有一定的实用价值和开发价值。
二、设计任务
用protel画出系统的硬件连接图
画出程序流程图并编写程序实现上述功能
三、设计时间
2012年12月30日至2013年1月4日
指导教师:
_________________
教研室主任:
________________
目录
一、摘要1
二、前言2
三.实验目的3
四、课题设计内容3
4.1实验器材3
4.2课题设计内容4
4.2.1、总体设计思想4
4.2.2、各芯片的作用及工作方式4
五、设计方案及论证6
六:
系统设计7
6.1、硬件设计7
6.2、数字录音电路工作原理7
6.3芯片简介及管脚功能介绍8
6.4具体实现方法15
6.4.1实现该声音录放系统功能15
6.4.2:
调试程序如下:
17
6.4.3:
汇编程序设计如下:
21
七、课程设计总结24
参考文献25
微机原理数字录音机课程设计
一、摘要
本次课程设计的主题研究思想是利用微机原理与接口技术知识,掌握数字录音技术的基本原理.利用8253芯片,8255芯片,ADC0809芯片和DAC0832芯片实现电信号与数据信号的转换.8253设置成方式0,记数为200个,利用PA0查询电平变化,控制录音和放音时间.达到数字录音的目的.可广泛应用于数字录音领域.因此它具有一定的实用价值和开发价值。
数字录音机有一定的市场前景和研究领域。
关键词:
数字录音A/D转换D/A转换
二、前言
微机原理和接口技术是一门实践性强的学科,其中很多的原量、规则、现象等仅仅靠学习教科书是无法完全掌握的,必须通过实践才能比较直观和深刻的理解。
在进行课题设计的过程中,可以让学生体验分析问题、提出解决方案、通过编程等手段实现解决方案、不断调试最终达到设计要求的全过程,从而帮助学生系统地掌握微机原理的接口技术的相关知识,达到将知识融会贯通的目的。
主要特点:
微结微机原理和接口技术教材的重点内容编写,涵盖课程的主要知识点,具有通用性,适合开设计课程的不同学校采用。
对课程设计的原理有比较详细的描述,课程设计的步骤循序渐进,便于学生独立完成课程设计。
实例丰富,既有小型的适合一个学生独立完成的项目,也有比较大型的适合团队完成的项目,不仅可以培养学生的动手能力,也有助于培养学生的团队意识。
三.实验目的
1、实验目标
(1)了解数/模转换器的基本原理,掌握DAC0832芯片的使用方法;
(2)了解模/数转换器的基本原理,掌握ADC0809芯片的使用方法;
(3)掌握计数器/定时器8253和并行输入输出8255的基本工作原理和编程使用方法;
(4)了解录音机的基本工作原理,掌握其内部连接方式。
(5)进一步掌握A/D转换器与D/A转换器的使用方法。
2、实验内容
(1)、按图41连接电路,将声传感器接J2,把代表语音的电信号送给ADC0809通道2(IN2);D/A转换器的输出端通过K8跳线接喇叭。
(2)、编程,以每秒钟5000次的速率采集IN2输入的语音数据并存入内存,共,
采集60000个数据(录12秒),然后再以同样的速率将数据送DAC0832使喇叭发声(放音)。
3、实验提示
(1)、将8253设置成方式0,计数200个,(定时0.2ms),利用PA0查询OUT0电平,若高电平表示定时时间到。
(2)、ADC0809通道2(IN2)的口地址为298H
四、课题设计内容
4.1实验器材
1:
ADC0809芯片一块.
2:
DAC0832芯片一块.
3:
8253芯片一块.
4:
8255芯片一块
5:
导线若干.
6:
电脑一台.
7:
通用微机接口实验系统实验箱一个.
4.2课题设计内容
4.2.1、总体设计思想
1、根据设计要求,本次数字录音机的汇编语言设计所需芯片有模数转换芯片ADC0809、数模转换芯片DAC0832、定时计数器8253、可编程并行I/O接口8355A及译码器74LS138。
设计过程可简述为:
利用传感器和ADC0809采集语音数据,以每秒5000的速率采集IN0输入的语音数据并存入内存,共采集数据60000个,即录音12秒。
DAC0832进行数模转换,以同样的速率将数据送DAC0832使喇叭发声。
8253用作定时,定时0.2ms,设置成方式0,计数初值为200。
8253计数器0的OUT0与8255A的PA0连接,利用PA0查询OUT0电平,如果为高点平则表示定时时间到。
用译码器74LS138对地址线进行译码以产生各接口芯片所需的信号。
2、按图1连接电路,将声传感器接J2,把代表语音的电信号送给ADC0809通道2(IN2);D/A转换器的输出端通过K8跳线接喇叭。
图1硬件连接图
4.2.2、各芯片的作用及工作方式
(1)ADC0809在本次设计中的作用及工作方式
ADC0809作数据采集用,用来采集12秒的语音信号并保存到相应的存储单元。
对ADC0809的8个模拟通道,这里是用数据总线的低8位D2、D1、D0来控制ADC的通道选择信号ADDC、ADDB、ADDA,以实现选择其中之一模拟通道输入。
在本次设计中,初始值为000(D2=0、D1=0、D0=0),即选择IN0通道进行数据采集,然后使ADC0809的ALE、START有效,START和ALE信号通过CPU向选中的通道口执行一条输出指令,启动A/D转换。
转换结束后,发出EOC信号,当EOC为高电平时,可供CPU查询,读取每次采集的A/D转换结果。
当CPU知道转换已完成,执行一条输入指令使OE信号有效,此时输出缓冲器被打开,数据送到数据总线。
系统时钟经分频后接到ADC0809芯片的时钟引脚CLK上。
(2)DAC0832在本次设计中的作用及工作方式
在本次设计中,我使用的DAC0832采用直通方式与CPU连接,从硬件图中可以看出,该片DAC0832只有一个端口地址,即88H。
DAC0832的ILE信号与+5V连在一起,、WR1和WR2均接地,总是有效的,DAC0832的输入寄存器和DAC寄存器均处于选通状态,只要CPU想88H端口执行一条输出指令,就会使XFER有效,CPU输出繁荣数字量就会顺利通过DAC0832的两个寄存器,然后进行D/A转换,在运算放大器的输出端得到转换结果。
(3)8253、8255A在本次设计中的作用及工作方式
8253在本次设计中用作定时,工作于方式0,与8255A连接使用完成定时操作。
8255A采用工作方式0进行输入操作,工作方式0是8255A个端口的基本输入输出方式,CPU可从指定端口输入信息,也可向指定端口输出信息。
当8253写入方式0控制字后,计数输出端OUT0立即变为低电平,并且在计数过程中一直保持低电平,当计数完成时,OUT0输出变为高电平。
8253计数器0的OUT0与8255A的PA0连接,因此可通过查询PA0是否为1,判断计数是否完成。
计数完成,则表示定时时间到。
(4)74LS138在本次设计中的作用
译码器74LS138对地址线进行译码以产生各接口芯片所需的信号以每秒钟5000次的速率采集IN2输入的语音数据并存入内存,共采集60000个数据(录12秒),然后再以同样的速率将数据送DAC0832使喇叭发声(放音)。
五、设计方案及论证
设计方案及论证如下:
1、本课题设计可采用单独的硬件设计,也可以软件与硬件结合设计。
后者的设计方案较为合适,能够达到微机原理与接口技术的目的.
2、单独使用硬件来完成此设计,所使用的硬件材料较多,且不便于调试,而且设计复杂,相对于用软件和硬件想结合而言,后者较为合适。
3、由于我们上一期学的课程是微机原理与接口技术课程,掌握了一定的微机原理与接口技术知识.所以此设计采用硬件与软件结合设计,配合通用微机接口实验系统实验箱实现此设计及此设计功能,与此同时也可以对此门课程加深理解和巩固。
为以后的学习和工作打下良好的基础.
六:
系统设计
6.1、硬件设计
准备好实验箱,检查芯片和导线是否完整.按图1连接线路.具体连接情况如下:
8255:
CS8255接地址译码Y1,
PA0 接8253的OUT0。
8253:
CS8253接地址译码Y0,
CLK0 接1MHz脉冲,
GATE0接VCC。
DAC0832:
CS0832接地址译码Y2,
UB 接SPEAKINPUT。
ADC0809:
CS0809接地址译码Y3,
CLK 接1MHz脉冲,
IN2 接MICOUTPUT。
6.2、数字录音电路工作原理
按图连接好线路,将传感器(话筒)接T2,由话筒传入语音电信号,把代表语音的电信号传送给ADC0809。
A/D转换芯片通道2(IN2),片选信号CS低电平有效接微机通用实验系统箱地址298H,由298H地址信号控制,低电平表示ADC0809芯片被选中.利用可编程定时/计数器8253,由CLK0计数时钟,输入时钟频率1MHz,再由GATE0门控信号接+5V,通过GATE0端控制计数器的启动计数和停止计数操作;CS片选信号接实验箱地址280H;同理,CS低电平有效,若280H为低电平,表示8253芯片被选中.OUT0接PA0;时间到或者计数结束输出引脚,将8253设置成方式0。
计数值为200(定时0.2mS)。
再利用8255PA0查询OUT0电平,高电平表示定时时间到,CS片选信号接实验箱288H,由它输入。
D/A转换器的输出端下接喇叭。
CS片选信号接地址292H。
总体思想为:
以每秒钟5000次的速率(以8253作为定时)IN2采集输入的语言数据并存入内存。
共采集60000个数据(录12秒钟),然后以同样的速率将数据送入DAC0832使喇叭发声(放音),达到数字录音、放音的效果。
6.3芯片简介及管脚功能介绍
(1)A/D转换器ADC0809
图2ADC0809构造
ADC0809是CMOS工艺制成的双列直插式8位A/D转换芯片,内部采用逐次逼近原理,单极性,量程为0~+5V。
片内部有8路模拟开关,可控制选择输入8个模拟量之中的一个,并带有三态输出锁存缓冲器,可直接与CPU总线连接,不需要外部锁存器,是应用较广泛的一种A/D转换芯片。
①ADC0809内部结构
ADC0809内部由两部分电路组成:
第一部分:
8路模拟通道选择开关,地址锁存器和译码器。
第二部分:
比较器、8位逐次逼近寄存器SAR、8位开关树型D/A转换电路、控制逻辑、三态输出缓冲锁存器。
工作原理:
由ADDA、ADDB、ADDC及ALE选择8个模拟量之一,并通过通道选择开关加至比较器一端。
由START信号启动A/D转换开始且SAR清0。
在CLOCK的控制下,将SAR从高位逐次置1,并将每次置位后的SAR送D/A转换器转换成与SAR中数字量成正比的模拟量。
DAC的输出加至比较器的另一端与输入的模拟电压进行比较,若Vi大于等于V0保留SAR中该位的1;若Vi小于V0则该位清0。
经过8次比较(8个CLOCK)后,SAR中的8位数字量即是结果。
在OE有效时,将SAR中的8位二进制数输出至锁存器,并通过D7~D0输出,同时发出EOC转换结束信号。
②ADC0809引脚功能如下:
IN0~IN7:
8路模拟输入通道。
D0~D7:
8位数字量输出端。
START:
启动转换命令输入端,由1→0时启动A/D转换,要求信号宽度>100n
OE:
输出使能端,高电平有效
ADDA、ADDB、ADDC:
地址输入线,用于选通8路模拟输入中的一路进入A/D转换。
其中ADDA是LSB位,这三个引脚上所加电平的编码为000~111,分别对应IN0~IN7,例如,当ADDC=0,ADDB=1,ADDA=1时,选中IN3通道。
ALE:
地址锁存允许信号。
用于将ADDA~ADDC三条地址线送入地址锁存器中。
EOC:
转换结束信号输出。
转换完成时,EOC的正跳变可用于向CPU申请中断,其高电平也可供CPU查询。
CLK:
时钟脉冲输入端,要求时钟频率不高于640KHZ。
REF(+)、REF(-):
基准电压,一般与微机接口时,REF(-)接0V或-5V,REF(+)接+5V或0V。
(2)D/A转换器DAC0832
图3ADC0809的工作图
DAC0832是用COMS工艺制成的双列直插式8位D/A转换芯片,内部采用T型电阻网络,数字输入有输入寄存器和DAC寄存器两级缓冲,可以双缓冲、单缓冲或直接输入方式连接。
片选信号:
输入低电平有效,与ILE相配合,可对写信号是否有效起到控制作用。
ILE允许锁存信号:
输入高电平有效。
输入锁存器的锁存信号由ILE,,的逻辑组合产生。
当ILE为高电平、为低电平、输入负脉冲时,在端产生正脉冲。
当为高电平时,输入锁存器的状态随着数据输入线的状态变化,的负跳变将数据线上的信息打入输入锁存器。
写信号1:
输入低电平有效。
当,,ILE均为有效时,可将数据写入8位输入锁存器。
写信号2:
输入低电平有效。
当其有效时,在传送控制信号的作用下,可将锁存在输入锁存器的8位数据送到DAC寄存器。
数据传送控制信号:
输入低电平有效。
当,均有效时,则在端产生正脉冲。
当为高电平时,DAC寄存器的输出和输入锁存器的状态一致,的负跳变将输入锁存器的内容打入DAC寄存器。
基准电压输入端:
可在±10V范围内调节。
DI7~DI0:
8位数字输入量输入端。
Iout1:
DAC的电流输出1。
当DAC寄存器各位均为1时,输出电流最大;当DAC寄存器各位均为0时,输出电流为0。
Iout2:
DAC的电流输出2。
与的和为一常数,一般单极性输出时接地,在双极性输出时接运放。
Rfb:
反馈电阻引脚。
在DAC0832芯片内部有一个反馈电阻,可作为外部运算放大电路的反馈电阻用。
3)芯片8253简介
A:
8253管脚介绍及其功能如下:
图45253构造
8253内部结构
①数据总线缓冲器
该缓冲器为8位双向三态的缓冲器,8根数据线D0~D7可直接挂在CPU数据总线上。
② 读/写控制逻辑
它是8253内部操作的控制部分,它决定三个计数器和控制字寄存器中哪一个能进行工作,并控制内部总线上数据传送的方向。
③控制字寄存器
接收从CPU来的控制字,并由控制字的D7、D6位的编码决定该控制字写入哪个计数器的控制寄存器,控制寄存器只能写入,不能读出。
④计数器
8253有3个独立的计数器通道,每个通道的结构完全相同,如图10.2所示。
每一个通道有一个16位减法计数器;还有对应的16位初值寄存器和输出锁存器。
每个计数器都可以对其CLK输入端输入的脉冲按照二进制或BCD码从预置的初值开始进行减1计数,当减至0时,从OUT端输出一个信号,计数的开始由软件启动或硬件门控信号GATE控制。
计数开始前写入的计数初值存于初值寄存器;计数过程中,减法计数器的值不断递减,而初值寄存器中的初值不变。
输出锁存器则用于写入锁存命令时锁定当前计数值。
当8253用作计数器时,加在CLK引脚上脉冲的间隔可以是不相等的;当它用作定时器时,则在CLK引脚应输入精确的时钟脉冲,8253所能实现的定时时间,取决于计数脉冲的频率和计数器的初值。
对8253来讲,外部输入到CLK引脚上的时钟脉冲频率不能大于2MHZ,否则需分频后才能送到CLK端。
(4):
8255芯片管脚介绍及功能如下:
图58255芯片管脚
①并行输入/输出端口A、B、C
8255A芯片具有24个可编程输入输出引脚,分成3个8位端口,其中:
端口A包含一个8位数据输出锁存/缓冲寄存器和一个8位数据输入锁存器;端口B包含一个8位数据输入/输出、锁存/缓冲寄存器和一个8位数据输入缓冲寄存器;端口C包含一个输出锁存/缓冲寄存器和一个输入缓冲寄存器。
必要时端口C可分成两个4位端口,分别与端口A与端口B配合工作,通常将端口A和端口B定义为输入/输出的数据端口,而端口C可作为状态或控制信息的传送端口。
②A组和B组控制部件
端口A与端口C的高4位(PC7~PC4)构成A组,由A组控制部件实现控制功能,端口B与端口C的低4位(PC3~PC0)构成B组,由B组控制部件实现控制功能。
它们各有一个控制单元,可接收来自读/写控制部件的命令和CPU通过数据总线(D7~D0)送来的控制字,并根据它们来定义各个端口的操作方式。
③数据总线缓冲器
这是一个三态双向8位数据缓冲器,它是8255A与8086CPU之间的数据接口,CPU输入输出的数据,CPU输出的控制字以及外设的状态信息都是通过这个缓冲器进行传送。
④读/写控制部件
这是8255A内部完成读/写控制功能的部件,它与CPU的地址总线及有关的控制信号相连,接收CPU的控制命令,并根据它们向片内各功能部件发出操作命令
(5)74LS138译码器
74LS138是3-8线二进制译码器,它有3个输入端,8个输出端,输出低电平有效。
该器件3个输入端A、B、C接受二进制码,其输出端Y0~Y7工8条译码输出线。
除此之外,还有3个使能控制端G、G2A、G2B,目的在于灵活应用并组合各种电路。
只有当G=0,同时G2A+G2B=0时,译码器工作,否则,译码器功能被禁止。
6.4具体实现方法
6.4.1实现该声音录放系统功能
实现该声音录放系统功能的程序可以分为以下四个部分:
(1)主程序
主程序的主要任务是对8253、8255A进行初始化,实现录、放音的功能调用。
①8253初始化设置
8253在程序中设置成方式0,计数200,定时0.2ms
8253工作方式控制字:
10000000B,即10H;选择通道0,方式0,只读写的、低8位
设8253输入时钟信号的频率为1MHZ
计数初值=0.2ms/0.001ms=200
控制字端口地址为:
81H
计数器0端口地址为:
80H
②8255A初始化设置
8255A控制字:
10010000B,即90H;方式0,A口输入
控制字端口地址为:
85H
A口地址为:
84H
③调用录、放音子程序
首先DOS功能调用,显示录音提示信息,然后BIOS功能调用,读键盘缓冲区字符,等待键盘输入,若无键按下,继续等待;有键按下,则调用录音子程序,录音12秒。
清除键盘缓冲区后,再进行放音子程序的调用。
(2)A/D录放音子程序
根据设计要求,ADC0809要以每秒5000的速率采集语音数据,录音12秒,因此共需采集5000×12=60000个数据,计数器CX=60000。
选择IN0通道进行数据采集(D2=0、D1=0、D0=0),寻址A/D转换启动端口地址,CPU向IN0通道执行一条输出指令,启动一次A/D转换。
寻址EOC状态端口地址,读取EOC状态,测试转换是否结束,未完则继续等待,转换完成后,则寻址ADC0809转换结果端口,CPU执行一条输入指令,取A/D转换结果。
A/D转换启动端口地址:
8CH
转换结果端口地址:
90H
EOC状态端口地址:
94H
(3)D/A放音子程序
置数据区首址至SI,计数器CX=60000。
从数据区取数据,寻址DAC端口地址,CPU执行一条输出指令,进行D/A转换。
DAC端口地址为:
88H
(4)延时子程序
DELAY是延时0.2ms的子程序
将8253计数器0的OUT0输入到8255A端口,测试PA0是否为1,若不为1,则表示8253未计数完,继续查询,如果为1,则表示8253计数完成,定时时间到。
参考流程图如下:
6.4.2:
调试程序如下:
datasegment
ioportequ01400h-0280h
luportequioport+29ah;录音口地址
fangportequioport+290h;放音口地址
io8253aequioport+283h
io8253bequioport+280h
io8255cequioport+28bh
io8255dequioport+288h
data_qudb60000dup(?
);录音数据存放数据区
news_1db'Pressanykeytorecord:
',24h;录音提示
news_2db0dh,0ah,'Playing:
',24h;放音提示
dataends
codesegment
assumecs:
code,ds:
data,es:
data
begin:
movax,data;初始化
movds,ax
moves,ax
movdx,offsetnews_1;显示录音提示
movah,9
int21h
test_1:
movah,1;等待键盘输入
int16h
jztest_1;若不是则循环等待
calllu;调用录音子程序
movdx,offsetnews_2;显示放音提示
movah,9
int21h
fy:
callfang;调用放音子程序
movax,0c07h
int21h
cmpal,20h
jzfy
movah,4ch;返回DOS
int21h
luprocnear;录音子程序
movdi,offsetdata_qu;置数据区首地址为DI
movcx,60000;录60000个数据
cld
xunhuan:
movdx,luport;启动A/D
outdx,al
calldelay;延时
inal,dx;从A/D读数据到AL
stosb;存入数据区,使DI加1
loopxunhuan;循环
ret;子程序返回
luendp
fangprocnear;放音子程序
movcx,60000;放60000个数据
movsi,offsetdata_qu;置数据区首地址为SI
cld
fang_yin:
movdx,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 论文