资源预览内容
第1页 / 共35页
第2页 / 共35页
第3页 / 共35页
第4页 / 共35页
第5页 / 共35页
第6页 / 共35页
第7页 / 共35页
第8页 / 共35页
第9页 / 共35页
第10页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
精选优质文档-倾情为你奉上中南大学微机原理课程设计报告信号发生器功能程序设计目录第一章 设计题目、要求及目的31.设计题目要求32.设计目的3第二章 总体设计方案31.设计思想32.设计方案43.总体设计流程图5第三章 硬件设计51.硬件环境要求52.所用芯片及其功能说明63.硬件接线图9第四章 程序设计101.流程图102.典型程序模块及典型编程技巧分析133.课程设计中遇到的问题及解决方法144.程序清单和程序注释15第五章 收获与体会33第六章 参考文献33第一章 设计题目、要求及目的1.设计题目及要求 设计题目:信号功能发生器设计 设计要求:(1)、编程语言为C语言和汇编语言;(2)、硬件电路基于80x86微机的接口电路;(3)、程序功能要求:小键盘给定、数码管(屏幕)显示,并产生对应信号波形(D/A)输出(信号波形包括正弦波、三角波、方波、锯齿波)、输出信号波形幅度、频率可调。(注意:按键数量应尽量少)。2.设计目的(1)、熟练掌握汇编语言和C语言,并用它们实现对硬件的操作,实现设计要求。(2)、学会调试程序,可以通过编译(masm)、链接(link)、运行(run)可以看到汇编程序的运行结果,更多的是要通过Debug来调试以发现程序的逻辑问题,熟练运用Debug可以解决很多问题,如Debug的T命令可以查看单步运行的结果。(3)、对硬件加深了解,特别是此实验要用到的8255及小键盘等(4)、本课程设计,要求对微机系统有一个较全面的理解,对典型数字接口电路的应用技术有一个较深入的掌握,并对应用系统进行硬件原理和软件编程进行分析、设计和调试,达到基本掌握简单微型计算机应用系统软硬件的设计方法,提高项目开发能力的目的。第二章 总体设计方案1. 设计思想该课题要求实现信号功能发生器,首先通过小键盘给定一个按键,并将此信息送入计算机中,由计算机内部根据此信息去实现特定的功能,比如产生正弦波。计算机在获得小键盘给定的信息之后,送出一个信息到产生波形的芯片0832,由其去实现波形的产生。要实现数码管显示,则需要将显示的信息通过输入输出端口芯片送到数码管端口。实现调频和调幅是跟据波形产生的原理改变产生波形的参数即可实现。从外设送数据进入CPU是通过8255A芯片实现的,波形的产生由0832实现。首先我确定了所用到的芯片:8255A和0832,在此实验中通过小键盘的按键来控制信号发生器的各个功能,在实验中采用可编程中断控制器8259A可以简化程序的逻辑便于实现,但8259A在初始化及编写是比较麻烦故而不采用。为了减少按键,产生四种波形时我采用查询式的方法,即通过一个键控制不同波形的产生,比如按第一下的时候产生正弦波,第二次按键产生三角波,第三次按键产生方波,第四次按键产生锯齿波。同时通过一个键控释信号功能发生器的开始和停止,第一次按键是开始,第二次按键是结束。再通过四个按键分别控制波形的幅度增加、幅度减少、频率增减、频率减少。因此在我的设计总共用到6个键。如果还要减少键可以把频率增加和幅度增加放在一个键,频率减少和幅度减少放在一个键,此外还有多种实现方法。小键盘给定主要是确定是哪个键按下,并且要注意消除抖动。产生波形时,可以通过给定点通过延时产生不同的波形的,对于正弦波通过查表产生波形是最简单的方法,但要注意点的给定。但是也带来一个问题,正弦波的幅值的产生不能通过通过简单的给每一个点加一个固定的值,这样容易出现两个问题,一是如果给的表中如果出现较大的数值加上一个数值的时候进位舍去,此数值变成一个小的数值,是波形发生畸变。而是如果每个数值加上一个固定的数值不会使幅值发生变化,只是波形发生了平移,要对正弦波改变幅值需要对个点进行伸缩变化,即要通过乘或除改变其幅值大小。在此过程中要注意处理溢出及位数的问题。其他波形的产生比较容易,方波是给定一个最低值和一个最高值,通过延时产生低电平和高电平两个状态,三角波是从一个最低值一直增加到最高值再从最高值一直减少到最低值,锯齿波是从一个最低值一直增加到最高值,然后再从最低值增加到最高值,一直循环。由此可以看出方波、三角波及锯齿波的幅值改变可以用同一个子程序实现,即改变最高值就可以改变幅值。相对幅值的改变,频率的改变更简单,频率的改变可以通过改变延时来实现。要数码管显示,首先要选定显示的数码管,如果要显示一位比较容易,要显示两位则需要注意延时问题,即显示第二位的时候第一位的数据也要确保能显示在数码管上。2、设计方案方案选择:1.四种波形的幅度和频率调节采用硬件的方法实现,但由于实验室器材的原因,以及加入很多芯片或是外围电路会使控制过程更麻烦。 2、采用软件的方法实现,虽然加大了编程的难度,但我们可以在寝室编程,方便和同学们的讨论,同时他不向方案一那样过度依赖硬件。(1)、总体设计该阶段主要是通过查阅资料以及讨论确定实现方案,并合理设计软硬件部分功能,一般来说软件硬件具备一定的互通性,用硬件的有点是可以提高系统的工作速度,但会增加电路的复杂性和硬件成本,用软件可以代替硬件的某些功能使电路简化,但增加了软件的成本,比如在该设计中可以用可编程中断控制器8259A控制键盘的工作,也可以通过软件编程实现小键盘的给定功能,由于用8259A产生中断控制电路复杂而且初始化设置不简单,故用软件编程代替。(2)、硬件设计过程确定所需要的芯片以及所硬件原理图、连接图(3)、软件设计过程画出程序流程图,分模块实现各个部分的功能,并上机实现。(4)、软、硬件联调连接电路图,并运行软件,调节硬件并适当地修改软件,实现整体功能。3.总体设计流程图 微型计算机总线键盘给定输入用于选择DAC0832输出某种频率波形 微型计算机总线 8255A可编程外围接口芯片将数据送给数码管显示第三章 硬件设计1.硬件环境要求(1)、唐都(tangdu)仪器硬件环境:操作系统: 中文Windows98/Me/2000/XP 最低配置 CPU:奔腾400Mhz 内存:16MB 显示卡:标准VGA,256色显示模式以上 硬盘:50MB 驱动器:2X倍速CD-ROM以上 其它设备:鼠标器 建议配置 CPU:奔腾400Mhz或更高 内存:16MB以上 显示卡:SVGA,16K色以上显示模式(2)、8086、8088的功能简介Intel 8086 CPU是十六位微处理器。它采用N-沟道,耗尽型负载的硅栅工艺(HMOS)制造,外形为双列直插式,有40个引脚。8086CPU有十六根数据线和20根地址线,直接寻址空间为2的十次方,为1MB。8086有一组强有力的指令系统内部有硬件乘除指令以及串处理指令,可对多种数据类型进行处理。8086CPU与8位CPU8088向上兼容,处理能力比8080高10倍以上,而相同任务程序代码长度可缩短20%.8086可与8087协处理器及8089输入/输出多处理器构成多机系统,以提高数据处理及输入/输出能力。8088CPU内部结构与8088基本相同,但对外数据总线只有8条,称为准16微处理器。2所用芯片及其功能说明 (1)、AC0832功能简介芯片介绍:DAC0832是美国数据公司的8位D/A转化器,片内带数据锁存电流输出,输出电流稳定时间为1m,功耗为20mW,其引脚说明如下: D0D7:数据输入线,TTL电WR1:数据锁存器写选通输入线,负脉冲有效XFER:数据传输控制信号输入线,低电平有效WR2:DAC寄存器写选通输入线,低电平有效IOUT1:电流输出线,当DAC寄存器为全1时电流最大IOUT2:电流输出线,其值与IOUT1之和为一常数Rfb:反馈信号输入线,调整Rfb端外接电阻值可以调整转换满量程精度Vcc:电源电压线,为5V15范围VREF:基准电压输入线,范围为:10V10VAGND:模拟地DGND:数字地 (2)、8255A的功能简介8255A是Intel公司生产的可编程输入输出接口芯片,它具有3个8位的并行I/O口,具有三种工作方式,可通过程序改变其功能,因而使用灵活,通用性强,可作为单片机与多种外围设备连接时的中间接口电路。8255有三种基本工作方式,三种工作方式由工作方式控制字决定,方式控制字由CPU通过输入/输出指令来提供.三个端口中PC口被分为两个部分,上半部分随PA口称为A组,下半部分随PB口称为B组.其中PA口可工作与方式0、1和2,而PB口只能工作在方式0和1。8255共有40个引脚,采用双列直插式封装。各引脚功能如下:D0-D7:三态双向数据线,与单片机数据总线连接,用来传送数据信息。CS:片选信号线,低电平有效,表示芯片被选中。RD:读出信号线,低电平有效,控制数据的读出。WR:写入信号线,低电平有效,控制数据的写入。Vcc:+5V电源。PA0-PA7:A口输入/输出线。PB0-PB7:B口输入/输出线。PC0-PC7:C口输入/输出线。RESET:复位信号线。A1、A0:地址线,用来选择8255内部端口。GND:地线。8255可编程并行接口新片工作方式说明:方式0:基本输入输出方式。适用于三个端口的任何一个 ,每个端口都可以做输出或输出,输出可被锁存,输入不能锁存。方式1:基本输入输出方式。这是A口或B口的八位外设线用作输入或输出 ,C口的四条线中三条用作数据传输的联络信号和终端请求信号 。方式2:双向总线方式。只有A口具备双向总线的方式,8位外设线用作输入或是输出,此时C口的4条线用作通讯联络信号和中断请求信号。8255有两种控制命令字:一个是方式选择控制字,另一个是C口按位置位或复位。 (3)、键盘部分3.硬件接线图 注:DAC单元和8255需要不同的端口地址寻址,则在连成系统的时候,需要用不同的端口来寻址,8255用IOY0来寻址,DAC用IOY1来寻址。 第四章 程序设计1 流程图(1)、方波流程图开始将00H送到0832端口延时将最大值送入0832端口延时结束(2)、锯齿波流程图是最大值?开始AL中的数据输送到0832AL中的数据增量数据00送AL寄存器结束(3)、三角波流程图开始AL中的数据自增AL中的数据输送到0832AL中的数据自减数据00送AL寄存器与上限是否相等与下限00是否相等(4)、正弦波
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号