ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:155.86KB ,
资源ID:12975259      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12975259.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(精编完整版信号发生器功能程序设计微机原理毕业论文报告文档格式.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

精编完整版信号发生器功能程序设计微机原理毕业论文报告文档格式.docx

1、2.3 电路原理图 7第三章 典型模块分析 83.1 波形产生模块 83.1.1 方波 93.1.2 三角波 93.1.3 锯齿波 103.1.4 正弦波 123.2 小键盘模块 133.3 调幅调频模块 14第四章 系统调试过程及结果 16第五章 收获与体会 17参考文献 18附录1 汇编语言源程序代码 19附录2 C语言源程序代码 33第一章 概要1.1 设计目的 信号发生器的功能设计结合了软硬件的知识,这样的一个课程设计促使我们主动去找寻资料,自主学习更多的知识。尤其重要的是设计本身是一种实践,将课本知识应用到设计中,验证并且进一步熟悉它从而获得新的领悟,这是只啃书本所不能达成的好处。信

2、号发生器的设计尤其加深我们对信号发生的理解,对以8086cpu为中心的各芯片功能的了解以及对微机原理和汇编语言编程有了更深的体会。1.2 课程设计内容及要求(1)、分别用C语言和汇编语言编程完成硬件接口功能设计;(2)、硬件电路基于80x86微机的接口电路;(3)、程序功能要求:小键盘给定、数码管或屏幕显示,并产生对应信号波形(D/A)输出(信号波形包括正弦波、三角波、方波、锯齿波)、输出信号波形幅度、频率可调。(按键数量尽量少)。1.3 所需芯片及硬件简介1.3.1 8255A 特性简介(1)具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列

3、直插式大规模集成电路。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连(2)8255A在使用前要写入一个方式控制字,选择A、B、C三个端口各自的工作方式,共有三种。方式0 :基本的输入输出方式,即无须联络就可以直接进行的 I/O方式。其中A、B、C口的高四位或低四位可分别设置成输入或输出;方式1 :选通I/O,此时接口和外围设备需联络信号进行协调,只有A口和B口可以工作在方式1,此时C口的某些线被规定为A口或B口与外围设备的联络信号,余下的线只有基本的I/O功能,即只工作在方式0;方式2: 双向I/O方式,只有A口可以工作在这种方式,该I/O线即可输入又可输出,此时C口有5条线被规

4、定为A口和外围设备的双向联络线,C口剩下的三条线可作为B口方式1的联络线,也可以和B口一起方式0的I/O线。本次设计只用到了三个端口的方式0。1.3.2 D /A0832功能简介DAC0832是采用CMOS工艺制成的单片电流输出型8位数 / 模转换器。DAC0832的引脚功能说明如下:D0D7 :数字信号输入端CS:片选信号,低电平有效WR:写信号1,低电平有效OUT:DAC电流输出端图1.1 唐都实验箱D /A0832接线图1.3.3 A /D0809功能简介ADC0809是采样频率为8位的、以逐次逼近原理进行模数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选

5、通8路模拟输入信号中的一个进行A/D转换。当地址ABC=000时,IN0通道被选通。图1.2 唐都实验箱A /D0809接线图1.3.4 唐都小键盘简介唐都实验箱中提供了4行4列16个按键,列选择信号X1-X4,行扫描信号Y1-Y4。图1.3 唐都实验箱小键盘接线图第二章 总体设计方案2.1 设计思想论述(1)波形产生:通过汇编语言编写各个波形子程序,其中方波和三角波参考了唐都的参考程序。锯齿波由三角波修改而来,正弦波事先用MATLAB仿真存入各点数据,产生波形时依次输出各个数据即可。波形子程序中主要是各个波形一个周期的代码,循环执行,由此产生连续波形并通过D /A0832将数字量转换成模拟量

6、输出,即可得各种波形。具体方案见第三章3.1节。(2)波形切换:用小键盘输入进行波形的选择,按键03分别对应方波、三角波、锯齿波和正弦波。每个波形周期输出后,调用键盘查询子程序,判断有无按键按下,没有则继续输出下一周期,否则转到相应的波行子程序上。可随时进行波形间的切换。具体方案见第三章3.2节。(3)无极调频:改变波形子程序中的各个数据输出延时时间,就可改变整个波形的频率,延时越短频率越高。而延时时间长短可由外部输入决定,通过A/D0809将电位计(05V)的模拟量转化成数字量(00FF)作为延时时间长短。调节电位器即可调节延时,进而调节频率。ADC0809芯片分辨率为8位,即可将延时分为2

7、56个等级,实现无极调频。具体方案见第三章3.3、3.4节。(4)无极调幅:改变波形子程序中DA输出值的大小即可改变幅值,可以在原数据基础上乘以一个增益。而增益可由外部输入,原理与调频相似,通过A/D0809输入一个数字量(00FF)。按键4用于调频/调幅的切换。当判断当前为调幅状态时就将这个数字量存入幅值增益变量中,如果判断是调频状态则存入频率延时变量中。从而实现只用一个电位器分别调节频率和幅度的功能。(5)开始结束:通过扫描小键盘,按下5键则退出。2.2 程序流程图2.3 电路原理图图2.2 硬件连接电路图第三章 典型模块分析3.1 波形产生模块四个波形子程序结构类似,当子程序被调用后,进

8、行以下步骤:(1)通过8255的C7位输出一个低电平来启动AD0809,并从8255的B口读入AD输入的数字量(00HFFH)。(2)判断幅频标志位FLAG_FUPIN,为0则把AD输入的数字量存入频率值空间FRE,否则存入幅值空间AMP。(3)输出波形的一个周期。(4)调用子程序CCSCAN,判断小键盘有无按键按下,无则继续步骤(1),有则返回主程序。流程图如图3.1所示。图3.1 波形子程序流程图3.1.1 方波 方波的产生先向DA0832输出一个低电平(00H),并延时一段时间。再输出一个高电平(此处直接用AMP的值作为高电平,AMP是外部AD输入的幅值增益),延时一段相同时间,就是矩形

9、波的一个周期。 (1)一个周期波形的代码: NEXT1_1: MOV DX,DA0832 ;写00H,输出低电平 MOV AL,00H OUT DX,AL CALL DELAY1 ;延时写 AMP,输出高电平 MOV AL,AMP ;AMP=00HFFH,默认值 7FH(2)延时子程序代码: DELAY1 PROC NEAR ;软件延时子程序 PUSH CX PUSH AX MOV CH,FRE ;读取频率值,FRE=00HFFH AND CH,0F0H ADD CH,0FH ;CH的值受FRE的控制,改变FRE则改变延时时间 MOV CL,0FFH DD1: MOV AX,0FF00H DD

10、2: DEC AX JNZ DD2 LOOP DD1 POP AX POP CX RET DELAY1 ENDP3.1.2 三角波三角波从最小值开始逐渐上升,到达最大值之后再逐渐减小到最小。因此先将最小值(00H)放到BL,输出并延时,对BL加一,再输出并延时,达到最大值后就对BL依次减一,输出并延时,直到BL=00H,则为一个周期波形。因此三角波有两个过程。一个周期波形的代码如下: NEXT1_2: MOV BL,00H ;BL赋最小值00H UP1:AL幅值增益AMP, AMP=00HFFH AND AL,0F0H SHR AL,4 ; AL=00H0FHMUL BL ; ALBL*AL启

11、动D/A转换 OUT DX,AL ;输出AL CALL DELAY2 INC BL ;BL加一 CMP BL,25H ;判断BL是否加到最大值了 JNE UP1 DOWN:AL幅值增益AMP ,AMP=00HFFH AND AL,0F0HMOV DX,DA0832 CALL DELAY2 DEC BL ;BL减一 CMP BL,00H ;判断BL是否减到最小值了 JNE DOWN延时子程序与方波类似,此处不再赘述。局部流程图如图3.2所示。3.1.3 锯齿波 锯齿波与三角波类似,只是锯齿波到达最大值之后,直接跳到最小值。因此锯齿波只有对BL依次加一的过程。NEXT1_3: UP2:AL幅值增益

12、AMP, AMP=00HFFH AND AL,0F0H MUL BL ; INC BL ; JNE UP2BL加到最大之后直接赋给最小值00H MOV AL,AMP SHR AL,4 MOV DX,DA0832局部流程图如图3.3所示。3.1.4 正弦波正弦波是利用正弦表(见附录 代码段)输出的,即将正弦表中的数值一一输出并延时。一个周期波形的代码: NEXT1_4: LEA SI,SIN ;指向正弦表中的第一个数据 MOV CX,255 UP: MOV BL,AMP ;BL幅值增益AMP, AMP=00HFFH AND BL,0F0H SHR BL,4 ;AMP=00HFFH ,BL=00H0F MOV AL,SI ;读取正弦表中的一个数据 SHR AL,2 AL AL* BL CALL DELAY3 INC SI ;指向表中的下一个数据 LOOP UP局部流程图如图3.4所示。3.2 小键盘模块小键盘用到两个子程序(ccscan和scan)。(1) ccscan子程序只是一个辅助程序,用于判断当前小键盘是否有键按下,有则全零标志位ZF=0(运算结果不为0),无键按下则ZF=1(运算结果为0)。子程序代码如下: CCSCAN PROC NEAR ;扫描是否有按键闭合子程序 MOV AL,0

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1