微机原理综合实验报告_nexys4_简易数字信号发生器_HUST_华中科技大学

合集下载

微机原理实验报告册(3篇)

微机原理实验报告册(3篇)

第1篇一、实验目的1. 理解和掌握微机的基本组成和工作原理;2. 熟悉微机硬件设备和实验仪器的使用方法;3. 提高动手实践能力,培养解决实际问题的能力;4. 深入理解微机原理课程内容,为后续课程学习奠定基础。

二、实验内容1. 微机系统认识实验2. 微机硬件组成实验3. 微机指令系统实验4. 微机寻址方式实验5. 微机程序设计实验6. 微机接口技术实验三、实验仪器与设备1. 微机原理实验箱2. 示波器3. 数字万用表4. 计算机一台5. 实验指导书四、实验步骤与内容1. 微机系统认识实验(1)观察实验箱的结构,了解各个模块的功能;(2)熟悉实验箱的电源、复位、运行等按钮的使用方法;(3)学习微机系统的工作流程,包括加电、复位、启动等过程;(4)观察微机系统启动后的运行状态,了解各个模块的协同工作。

2. 微机硬件组成实验(1)观察实验箱的CPU、内存、I/O接口等硬件模块;(2)学习CPU的内部结构,包括寄存器、控制单元、运算单元等;(3)学习内存的存储原理,了解ROM、RAM等存储器的特点;(4)学习I/O接口的工作原理,了解中断、DMA等传输方式。

3. 微机指令系统实验(1)学习微机指令系统的基本格式,包括操作码、地址码等;(2)掌握微机指令系统的寻址方式,包括立即寻址、直接寻址、间接寻址等;(3)编写简单的汇编语言程序,实现加、减、乘、除等运算;(4)学习微机中断处理过程,了解中断向量表、中断服务程序等概念。

4. 微机寻址方式实验(1)学习微机寻址方式的基本概念,包括直接寻址、间接寻址、寄存器寻址等;(2)编写程序,实现不同寻址方式下的数据访问;(3)观察不同寻址方式对程序执行速度的影响。

5. 微机程序设计实验(1)学习汇编语言程序设计的基本方法,包括数据定义、指令编写、程序结构等;(2)编写简单的程序,实现数据交换、排序等操作;(3)学习微机程序的调试方法,包括单步执行、断点设置等。

6. 微机接口技术实验(1)学习微机接口技术的基本概念,包括并行接口、串行接口等;(2)观察实验箱中的并行接口、串行接口等模块,了解其工作原理;(3)编写程序,实现数据在并行接口、串行接口之间的传输;(4)学习微机中断处理在接口技术中的应用。

微机原理实训报告完整

微机原理实训报告完整

资料范本本资料为word版本,可以直接编辑和打印,感谢您的下载微机原理实训报告完整地点:__________________时间:__________________说明:本资料适用于约定双方经过谈判,协商而共同承认,共同遵守的责任与义务,仅供参考,文档可直接下载或修改,不需要的部分可直接删除,使用时请详细阅读内容一、设计目的通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。

通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。

为以后学生结合专业从事微机应用设计奠定基础。

二、设计的原始资料及依据(1)查阅微机原理及应用、汇编语言程序设计等书籍;(2)掌握字符串的输入,输出和排序。

三、设计的主要内容及要求内容:从PC键盘输入5个字符串,排序及显示要求1)输入5个字符串。

2)对输入的字符串进行排序并正确显示。

四、对设计说明书撰写内容、格式、字数的要求1.课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。

2.学生应撰写的内容为:目录、正文、参考文献等。

课程设计说明书(论文)的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。

应做到文理通顺,内容正确完整,书写工整,装订整齐。

3.说明书(论文)手写或打印均可。

手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。

4. 课程设计说明书(论文)装订顺序为:封面、任务书、成绩评定表、目录、正文、总结、参考文献。

五、设计完成后应提交成果的种类、数量、质量等方面的要求;提交课程设计说明书一份。

在说明书中要有设计原理、硬件电路接线图、设计的程序及必要注释等。

六、时间进度安排;沈阳工程学院微机原理及汇编语言程序设计程设计成绩评定表系(部):信息学院班级:学生姓名:目录TOC \o "1-3" \h \z \uHYPERLINK \l "_Toc359478386" 第1章绪论 PAGEREF_Toc359478386 \h 1HYPERLINK \l "_Toc359478387" 1.1 背景 PAGEREF_Toc359478387 \h 1HYPERLINK \l "_Toc359478388" 1.2 设计目的与任务 PAGEREF _Toc359478388 \h 1HYPERLINK \l "_Toc359478389" 1.2.1 本课程设计的目的 PAGEREF _Toc359478389 \h 1HYPERLINK \l "_Toc359478390" 1.2.2 本课程设计的任务 PAGEREF _Toc359478390 \h 1HYPERLINK \l "_Toc359478391" 第2章汇编语言的运行环境及运行步骤 PAGEREF _Toc359478391 \h 2HYPERLINK \l "_Toc359478392" 2.1 汇编语言的起源 PAGEREF _Toc359478392 \h 2HYPERLINK \l "_Toc359478393" 2.2 汇编语言的特点 PAGEREF _Toc359478393 \h 2HYPERLINK \l "_Toc359478394" 2.2.1 能够保持机器语言的一致性,直接、简捷 PAGEREF _Toc359478394 \h 2HYPERLINK \l "_Toc359478395" 2.2.2 目标代码简短,占用内存少,执行速度快 PAGEREF _Toc359478395 \h 2HYPERLINK \l "_Toc359478396" 2.2.3 汇编语言是面向机器的PAGEREF _Toc359478396 \h 2HYPERLINK \l "_Toc359478397" 2.2.4 难于从汇编语言代码上理解程序设计意图,可维护性差 PAGEREF _Toc359478397 \h 2HYPERLINK \l "_Toc359478398" 2.2.5 高速度和高效率 PAGEREF _Toc359478398 \h 2HYPERLINK \l "_Toc359478399" 2.3 汇编语言的运行环境 PAGEREF _Toc359478399 \h 3HYPERLINK \l "_Toc359478400" 2.4 汇编语言的运行步骤 PAGEREF _Toc359478400 \h 3HYPERLINK \l "_Toc359478401" 第3章总体设计思路 PAGEREF _Toc359478401 \h 6HYPERLINK \l "_Toc359478402" 3.1 功能设计分析 PAGEREF_Toc359478402 \h 6HYPERLINK \l "_Toc359478403" 3.1.1 设计思路分析 PAGEREF _Toc359478403 \h 6HYPERLINK \l "_Toc359478404" 3.1.2 系统功能分析: PAGEREF _Toc359478404 \h 6HYPERLINK \l "_Toc359478405" 3.2 总体设计分析 PAGEREF_Toc359478405 \h 6HYPERLINK \l "_Toc359478406" 3.2.1 系统功能模块图 PAGEREF _Toc359478406 \h 6HYPERLINK \l "_Toc359478407" 3.2.2 具体设计方案 PAGEREF _Toc359478407 \h 6HYPERLINK \l "_Toc359478408" 第4章程序实现 PAGEREF_Toc359478408 \h 8HYPERLINK \l "_Toc359478409" 4.1 运行程序 PAGEREF_Toc359478409 \h 8HYPERLINK \l "_Toc359478410" 4.1.1 单步运行 PAGEREF_Toc359478410 \h 8HYPERLINK \l "_Toc359478411" 4.1.2 暂停执行程序 PAGEREF _Toc359478411 \h 8HYPERLINK \l "_Toc359478412" 4.1.3 连续运行程序 PAGEREF _Toc359478412 \h 8HYPERLINK \l "_Toc359478413" 4.2 各个模块程序流程图设计PAGEREF _Toc359478413 \h 9HYPERLINK \l "_Toc359478414" 4.2.1 第一模块输入字符串PAGEREF _Toc359478414 \h 9HYPERLINK \l "_Toc359478415" 4.2.2 第二模块字符串排序PAGEREF _Toc359478415 \h 9HYPERLINK \l "_Toc359478416" 4.2.3 第三模块输出字符串PAGEREF _Toc359478416 \h 10HYPERLINK \l "_Toc359478417" 第5章遇到问题及解决方法PAGEREF _Toc359478417 \h 12HYPERLINK \l "_Toc359478418" 5.1 所遇到的问题 PAGEREF_Toc359478418 \h 12HYPERLINK \l "_Toc359478419" 5.2 对应问题的解决方法 PAGEREF _Toc359478419 \h 12HYPERLINK \l "_Toc359478420" 总结 PAGEREF_Toc359478420 \h 13HYPERLINK \l "_Toc359478421" 致谢 PAGEREF_Toc359478421 \h 14HYPERLINK \l "_Toc359478422" 参考文献 PAGEREF_Toc359478422 \h 15HYPERLINK \l "_Toc359478423" 附录 PAGEREF_Toc359478423 \h 16HYPERLINK \l "_Toc359478424" 源程序代码: PAGEREF_Toc359478424 \h 16第1章绪论1.1 背景计算机技术作为信息化的核心技术受到全社会的普遍重视。

微机原理综合实验报告

微机原理综合实验报告

滨江学院微机原理综合实验实验报告学生姓名学号专业信息工程班级2016级二O一八年十二月三十日微机原理综合实验实验一利用DEBUG调试程序调试程序段1、实验目的1)熟悉DEBUG有关命令的使用方法。

2)利用DEBUG掌握有关指令的功能。

3)利用DEBUG运行简单的程序段。

2、实验内容1)进入和退出DEBUG程序。

2)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。

对于U命令、N命令、W命令等,也应试一下。

3)利用DEBUG,验证乘法、除法、加法、减法、带进位加、带借位减、堆栈操作指令、串操作指令的功能。

3、实验准备1)仔细阅读有关DEBUG命令的内容,对有关命令,都要事先准备好使用的例子。

2)作为例子,准备用A命令,输入在显示器上显示字符“S”的系统调用程序段。

3)阅读将AX左移9位的程序段。

4、实验步骤1)在DOS提示符下,进入DEBUG程序。

2)在DOS目录下启动DEBUG。

3)详细记录每一步所用的命令,以及查看结果的方法和具体结果。

5、实验报告要求1)如何启动和退出DEBUG程序。

2)整理每个DEBUG命令使用的方法,实际示例及执行结果。

3)启动DEBUG后,要装入某一个.EXE文件,应通过什么方法实现?实验结果:实验二分支程序实验1、实验目的1)掌握分支程序的设计方法。

2)掌握利用DEBUG修改参数、检查结果的方法。

3)掌握汇编语言源程序的编辑、汇编、连接及调试过程。

2、实验内容1)编写一个程序,显示AL寄存器中的两位十六进制数2)编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z 或a-z字符,均显示“c”;若是回车字符<CR>(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。

3、实验准备1)编写实验内容要求的两个程序。

2)写出调试以上程序,即修改程序参数,检查结果的操作方法。

3)熟悉源程序汇编、连接命令的使用方法即要回答的内容。

微机原理的实验报告

微机原理的实验报告

一、实验目的1. 理解微机的基本组成和各部件的功能;2. 掌握微机的工作原理和指令系统;3. 熟悉汇编语言程序设计的基本方法;4. 提高动手能力和实际操作技能。

二、实验内容1. 微机系统组成实验(1)实验目的:了解微机的基本组成和各部件的功能。

(2)实验内容:观察并记录微机系统的各个部件,如CPU、内存、硬盘、主板等,并了解它们的功能。

(3)实验步骤:①观察微机系统各个部件的连接情况;②了解各个部件的功能和作用;③分析微机系统的整体结构。

2. 微机工作原理实验(1)实验目的:掌握微机的工作原理。

(2)实验内容:观察并记录微机工作过程中的各个阶段,如指令的取指、译码、执行等。

(3)实验步骤:①观察微机工作过程中的各个阶段;②了解各个阶段的功能和作用;③分析微机工作原理。

3. 指令系统实验(1)实验目的:熟悉汇编语言指令系统。

(2)实验内容:学习汇编语言的基本指令,如数据传送指令、算术运算指令、逻辑运算指令等。

(3)实验步骤:①学习汇编语言的基本指令;②编写简单的汇编语言程序,实现数据传送、算术运算、逻辑运算等功能;③调试程序,观察程序运行结果。

4. 汇编语言程序设计实验(1)实验目的:提高汇编语言程序设计能力。

(2)实验内容:编写一个汇编语言程序,实现以下功能:①计算两个数的和;②判断一个数是否为偶数;③输出程序运行结果。

(3)实验步骤:①编写汇编语言程序,实现上述功能;②调试程序,观察程序运行结果;③分析程序运行过程,确保程序正确性。

三、实验结果与分析1. 微机系统组成实验:通过观察和记录微机系统的各个部件,了解了微机的基本组成和各部件的功能。

2. 微机工作原理实验:通过观察微机工作过程中的各个阶段,掌握了微机的工作原理。

3. 指令系统实验:通过学习汇编语言的基本指令,熟悉了汇编语言指令系统。

4. 汇编语言程序设计实验:通过编写汇编语言程序,提高了汇编语言程序设计能力。

四、实验心得通过本次微机原理实验,我对微机的基本组成、工作原理和指令系统有了更深入的了解。

信号发生器实验报告

信号发生器实验报告

信号发生器实验报告信号发生器实验报告引言信号发生器是电子实验室中常见的一种仪器,用于产生各种类型的电信号。

本次实验旨在探究信号发生器的原理和应用,以及对其进行一系列的测试和测量。

一、信号发生器的原理信号发生器是一种能够产生不同频率、幅度和波形的电信号的设备。

其主要由振荡电路、放大电路和输出电路组成。

振荡电路负责产生稳定的基准信号,放大电路将基准信号放大到合适的幅度,输出电路将信号输出到外部设备。

二、信号发生器的应用1. 电子器件测试:信号发生器可以用于测试电子器件的频率响应、幅度响应等特性。

通过改变信号发生器的频率和幅度,可以模拟不同工作条件下的电子器件性能。

2. 通信系统调试:在通信系统的调试过程中,信号发生器可以用于模拟各种信号,如语音信号、数据信号等。

通过调整信号发生器的参数,可以测试通信系统的传输质量和容量。

3. 音频设备测试:信号发生器可以用于测试音频设备的频率响应、失真等特性。

通过产生不同频率和幅度的信号,可以对音频设备进行全面的测试和评估。

三、实验过程1. 测试频率响应:将信号发生器连接到待测设备的输入端,逐渐改变信号发生器的频率,并记录待测设备的输出结果。

通过绘制频率响应曲线,可以了解待测设备在不同频率下的响应情况。

2. 测试幅度响应:将信号发生器连接到待测设备的输入端,逐渐改变信号发生器的输出幅度,并记录待测设备的输出结果。

通过绘制幅度响应曲线,可以了解待测设备对不同幅度信号的响应情况。

3. 测试波形输出:将信号发生器连接到示波器,通过改变信号发生器的波形设置,观察示波器上的波形变化。

通过比较不同波形的特征,可以了解信号发生器的波形生成能力。

四、实验结果与分析1. 频率响应:根据实验数据绘制的频率响应曲线显示,待测设备在低频段具有较好的响应能力,而在高频段则逐渐衰减。

这可能是由于待测设备的电路结构和元件特性导致的。

2. 幅度响应:根据实验数据绘制的幅度响应曲线显示,待测设备对于低幅度信号的响应较差,而对于高幅度信号的响应较好。

信号发生器实验实训报告

信号发生器实验实训报告

一、实验目的1. 熟悉信号发生器的基本原理和组成。

2. 掌握信号发生器的操作方法和使用技巧。

3. 学习通过信号发生器进行信号测试和调试的方法。

4. 培养实验操作能力和分析问题、解决问题的能力。

二、实验原理信号发生器是一种能够产生各种波形信号的电子设备,广泛应用于科研、生产和教学等领域。

本实验所使用的信号发生器为函数信号发生器,可以产生正弦波、方波、三角波等基本波形信号。

三、实验设备1. 信号发生器一台2. 示波器一台3. 测试电缆若干4. 负载电阻若干四、实验内容1. 信号发生器的基本操作(1)打开信号发生器,调整频率、幅度和波形等参数。

(2)观察信号发生器输出波形,确认波形是否正常。

(3)调整输出幅度,使其符合实验要求。

2. 正弦波信号的测试(1)将信号发生器设置为正弦波,调整频率和幅度。

(2)使用示波器观察输出波形,确认波形为正弦波。

(3)测试输出波形的频率、幅度和相位,记录数据。

3. 方波信号的测试(1)将信号发生器设置为方波,调整频率和幅度。

(2)使用示波器观察输出波形,确认波形为方波。

(3)测试输出波形的频率、幅度和占空比,记录数据。

4. 三角波信号的测试(1)将信号发生器设置为三角波,调整频率和幅度。

(2)使用示波器观察输出波形,确认波形为三角波。

(3)测试输出波形的频率、幅度和上升时间、下降时间,记录数据。

5. 信号发生器的应用(1)利用信号发生器产生各种波形信号,进行电路测试和调试。

(2)使用信号发生器进行信号调制和解调实验。

(3)利用信号发生器进行信号分析实验。

五、实验结果与分析1. 正弦波信号测试结果频率:1kHz幅度:2Vpp相位:0°2. 方波信号测试结果频率:1kHz幅度:2Vpp占空比:50%3. 三角波信号测试结果频率:1kHz幅度:2Vpp上升时间:50μs下降时间:50μs实验结果表明,信号发生器能够产生各种波形信号,且波形质量符合实验要求。

六、实验总结1. 通过本次实验,我们熟悉了信号发生器的基本原理和组成,掌握了信号发生器的操作方法和使用技巧。

信号发生器设计与实现实验报告

信号发生器设计与实现实验报告

信号发生器设计与实现实验报告实验报告:信号发生器的设计与实现一、引言信号发生器是一种能够产生各种类型的电信号的仪器,广泛应用于电子测量、通信系统调试、音频设备测试等领域。

本实验旨在设计并实现一个简单的信号发生器,以产生多种类型的电信号,并对其进行相应的测试和分析。

二、设计与实现1. 设计思路信号发生器的设计主要包括以下几个方面的考虑:信号类型的选择、频率范围的确定、输出幅度的调节以及相关控制电路的设计。

在信号类型的选择上,常见的信号类型有正弦波、方波、三角波等。

根据实际需求,本实验选择了正弦波和方波两种信号类型进行设计。

频率范围的确定需要考虑实际应用中最低和最高频率的要求。

在本实验中,我们选择了10Hz到10kHz的频率范围。

输出幅度的调节可以通过控制信号发生器的增益来实现。

本实验采用了可调电阻来控制输出信号的幅度。

相关控制电路的设计包括频率选择电路、幅度调节电路等。

这些电路的设计需要根据信号发生器的具体要求进行选择和设计。

2. 电路设计2.1 正弦波发生电路正弦波发生电路的设计采用了著名的Wien桥电路。

这个电路能够通过调节电容和电阻的比例来产生不同频率的正弦波信号。

2.2 方波发生电路方波发生电路的设计采用了555定时器作为主要的控制元件。

通过控制555的触发电平和放电电平,可以产生不同频率的方波信号。

3. 系统实现根据上述设计思路和电路设计,我们完成了信号发生器的系统实现。

通过逐步调试和优化,确保了系统的正常运行和性能的稳定。

三、实验结果与分析1. 正弦波信号测试通过将信号发生器接入示波器,我们成功地产生了频率为1kHz的正弦波信号。

通过示波器的显示,我们可以清晰地观察到正弦波的周期、幅度和波形等特征。

2. 方波信号测试通过将信号发生器接入示波器,我们成功地产生了频率为5kHz的方波信号。

通过示波器的显示,我们可以清晰地观察到方波的上升时间、下降时间和占空比等特征。

四、实验总结通过本次实验,我们设计并实现了一个简单的信号发生器,能够产生正弦波和方波两种类型的信号。

微机原理的实验报告

微机原理的实验报告

微机原理的实验报告一、实验目的本实验旨在深入理解微机原理的相关知识,并通过实践操作,掌握微机原理的实验方法与技巧。

二、实验内容1. 搭建微机实验系统:根据实验所需,搭建适当的微机实验系统,包括各种硬件设备的连接与设置。

2. 硬件接口的实验:通过连接不同的硬件接口,进行实验操作,学习硬件接口的使用方法和原理。

3. 程序设计与调试实验:使用相应的汇编语言或高级语言,编写程序并进行调试,观察程序的执行结果。

4. 中断实验:通过调用不同的中断服务例程,进行实验操作,学习中断的使用原理和应用场景。

三、实验步骤与结果1. 实验步骤:(1) 搭建微机实验系统:按照实验指导书的要求,连接各种硬件设备,确保能够正常工作。

(2) 硬件接口的实验:选择一个硬件接口,例如并行口,通过编写相应的程序,实现读取和输出数据的功能。

观察实验现象并记录。

(3) 程序设计与调试实验:根据实验要求,选择适当的编程语言,编写相应的程序,并进行调试。

观察程序的执行结果,并记录相关数据。

(4) 中断实验:选择一个中断服务例程,例如键盘中断,通过编写相应的程序,实现对键盘输入的响应。

观察实验现象并记录相关数据。

2. 实验结果:(1) 硬件接口的实验结果:通过编写程序并连接硬件接口,成功读取和输出数据,实现了相应的功能。

(2) 程序设计与调试实验结果:编写的程序能够正确执行,并得到了预期的结果。

(3) 中断实验结果:编写的程序能够响应相应的中断信号,并实现了对键盘输入的处理。

四、实验分析与讨论1. 实验分析:通过本次实验,我们深入了解了微机原理的相关知识,并通过实践操作,掌握了微机原理的实验方法和技巧。

2. 实验讨论:在实验过程中,我们遇到了一些困难和问题,例如硬件接口的连接和调试,程序的编写和调试等。

但通过彼此的合作与讨论,我们最终解决了这些问题,并成功完成了实验。

五、实验总结通过本次实验,我们对微机原理有了更深入的理解,并通过实践操作,掌握了微机原理的实验方法和技巧。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理综合项目报告基于nexys4简易数字信号发生器班级:通信1301班学号: HUST姓名:华中科技大学指导老师: 左冬红罗杰目录一、项目简介 (1)1.设计思路 (1)2.任务分配 (1)3.功能描述 (1)二、项目构成及概要设计 (2)1. 硬件模块构成 (2)2. 软件实现流程 (2)三、项目详细设计 (4)1.硬件的内部构成 (4)2.硬件平台的搭建 (9)3.软件模块的构成及其实现 (13)波形产生模块 (13)频率调节模块 (15)幅度调节模块 (16)方波占空比调节模块 (16)四、项目操作说明 (18)五、附录 (19)六、心得体会及建议 (20)一、项目简介1.设计思路本次项目我们小组选择的是信号发生器,由于之前做过D/A显示锯齿波的实验,便想到在该实验的基础上进行功能的扩充,这样思路比较清晰。

首先我们想到在上次实验的基础上加上方波、三角波和正弦波这几种常见波形,实现起来也与锯齿波较为类似,只是在正弦波的显示上花了点功夫,最后决定通过MATLAB取值来实现,最后能正常显示。

而几种波形的切换我们则想到了开关,通过添加开关的GPIO核来获取开关的状态,预留了三位用于波形的切换。

仅仅几种波形的显示是远不够的,所以我们决定添加频率的调节和幅度的调节部分,实现时发现幅度调节容易实现但频率调节有些难度,最后从代码产生波形的原理上来分析想到通过改变取样的次数来调节频率的增减,而选择用一位开关用于切换频率增加和减小,这样会节省资源。

当添加了方波后又发现其占空比也应该实现调节的功能,想到通过开发板上的按钮来实现,通过建立按钮的中断控制,来调节时间延时的增减,从而控制占空比的实现。

当实现了MA TLAB取数进行正弦波的显示时,小组一位成员提出显示心形的设计想法,通过类似的思路也得到了实现。

具体的设计原理及流程后面会有详细说明。

2.任务分配小组成员、贡献比例及具体分工:1硬件平台的搭建,软件代码的实现以及各功能的设计2心形显示的提出和设计,正弦波MA TLAB取值的实现3项目整体框图的设计和绘制实验报告、PPT以及视频的拍制则是由小组成员一起完成。

3.功能描述该信号发生器工程能显示方波,锯齿波,正弦波,三角波以及“爱心”形状(ch1、ch2分别显示“爱心”上下部分再拼接成完整的“爱心”)。

通过开发板按钮能调节各个波形的频率、幅度和方波的占空比,通过led灯能反映开关状态,通过数码管能反映当前显示的波形序号。

Switch<2>---Switch<0>:选择波形Switch<8>---Switch<3>:调节频率Switch<9>:控制频率增加和减小Switch<15>---Switch<10>:调节幅度BTNU:增加占空比BTND:减小占空比二、项目构成及概要设计1.硬件模块构成本项目用到的硬件平台包括SPI IP核与D/A芯片构成数据的传输和数模转换的功能,4个GPIO IP核分别用于开关状态的读取,按钮状态的读取,LED灯的显示,数码管的段选和位选。

一个INTC IP核用于接受来自于SPI和按钮的GPIO的中断,并将中断发送给microblaze核来控制。

硬件整体框图:2.软件实现流程配置好各GPIO、SPI和INTC中断控制器的连接,初始化各个模块并进行设置,读取开关的状态并写入LED灯的GPIO来控制其显示获取波形选择、频率调节和幅度调节的信息根据波形选择信息来显示相应的波形并通过数码管显示波形对应的序号调节波形的频率和幅度当为方波时,可通过按钮来调节方波的占空比各种波形的具体实现。

流程图:三、项目详细设计1. 硬件的内部构成SPI IP核内部框图:接口寄存器定义:SPICR 寄存器各位的含义如下:SPISR 寄存器各位的含义如下:SPISSR 寄存器各位的含义如下:•SPISSR 寄存器bit0~bitn-1分别对应控制SS(0~n-1)的输出IPISR 寄存器各位的含义如下:1234567891031LOOPMasterCPHATx FIFOresetRx FIFO reset 手动从设备选择主设备事务禁止LSB 先传保留12345631保留Rx 空Rx 满Tx 空Tx 满MODF从设备选中DA芯片DAC121S101S是12位D/A转换芯片,可以采用SPI串行接口进行数据输入,其引脚定义和结构图如下图所示:其工作原理可以描述为:串行接口模块按照一定的时序将串行数据采样送到输入移位寄存器;移位寄存器将串行数据转换为并行数据将一部分并行数据(低12位)送入12位D/A 转换寄存器,另一部分送入电源下拉控制逻辑。

12位D/A转换寄存器的数据同时送入D/A 转换寄存器,将数字信号转换为模拟信号后,再经过输出放大电路以及电源下拉控制逻辑的控制之后输出到V out。

其中Vout输出的模拟电压范围为0—V A。

其中V out与输入数据D的关系为:V out= V A (D/4096),D为12位输入的数字量,其取值范围为0~4095DAC121S101要求每次传输16位数据,这16位串行数据的含义为:D0~D11为12位DA转换的数字量,PD0~PD1为电源下拉控制逻辑的输入,控制电源下拉模块的工作方式,改变输出V out的GPIO IP核AXI GPIO控制器包括AXI总线接口模块、中断产生逻辑模块以及双通道输入/输出模块。

内部框图:GPIO内部寄存器定义如下:GPIO_TRI的各位分别控制GPIO_DATA的各位为输入或输出:当GPIO_TRI某位为0时,GPIO相应的I/O引脚配置为输出;当GPIO_TRI某位为1时,GPIO相应的I/O引脚配置为输入。

IP ISR 0x120 中断状态寄存器各个通道的中断请求状态,写1将清除相应位的中断状态bit0-通道1;bit1-通道2AXI INTC主要包括AXI总线接口模块,INTC从设备接口模块,中断控制器核心模块。

其构成原理框图为:寄存器各位的定义如图:2.硬件平台的搭建添加SPI IP核,按钮、LED灯、开关和数码管的GPIO核以及中断控制器INTC核,外部连线如图:各GPIO核、SPI IP核及INTC中断控制器配置如下:按钮的GPIO配置:开关的GPIO配置:LED灯的GPIO配置:数码管的GPIO配置:SPI的配置:将SPI和按钮的GPIO作为中断源,触发INTC的中断,INTC的配置:得到各模块分配的地址,如图:配置各模块的引脚:至此已经配置好完整的硬件平台,生成bit流文件并导出到SDK即可进行软件代码的设计。

3.软件模块的构成及其实现波形产生模块锯齿波:while(Count<4096){value=Count;WriteBuffer[0]=(u8)(value);WriteBuffer[1]=(u8)(value>>8)&0x0f;TransferInProgress=TRUE;XSpi_Transfer(&SpiInstance,WriteBuffer,(void *)0,2);while(TransferInProgress);Count=Count+1;}分析:value值每传输一次增加1;当value=4096时令其为0;得到一个锯齿波,循环执行便可显示出锯齿波。

方波:for(i=0;i<5000;i++){value=4095;WriteBuffer[0]=(u8)(value);WriteBuffer[1]=(u8)(value>>8)&0x0f;TransferInProgress=TRUE;XSpi_Transfer(&SpiInstance,WriteBuffer,(void *)0,2);while(TransferInProgress);}for(i=0;i<5000;i++){value=0;WriteBuffer[0]=(u8)(value);WriteBuffer[1]=(u8)(value>>8)&0x0f;TransferInProgress=TRUE;XSpi_Transfer(&SpiInstance,WriteBuffer,(void *)0,2);while(TransferInProgress);}分析:令value=4095即最大值,通过for循环使其维持一段时间,循环执行完成后,令value=0并维持相同的时间,执行完成后重复执行上述步骤,得到完整的方波。

三角波:Count=0;while(Count<4096)value=Count;WriteBuffer[0]=(u8)(value);WriteBuffer[1]=(u8)(value>>8)&0x0f;TransferInProgress=TRUE;XSpi_Transfer(&SpiInstance,WriteBuffer,(void *)0,2);while(TransferInProgress);Count=Count+1;}Count=4095;while(Count>=0){value=Count;WriteBuffer[0]=(u8)(value);WriteBuffer[1]=(u8)(value>>8)&0x0f;TransferInProgress=TRUE;XSpi_Transfer(&SpiInstance,WriteBuffer,(void *)0,2);while(TransferInProgress);Count=Count-1;}分析:首先令Count=0,当其小于4096时让其每次传输后增加1,直至其值超过4096,令其为4095,并在每次传输后减1直至为0,重复执行上述计算,得到三角波。

正弦波:Count=0;while(Count<=4000){value=sin[Count];WriteBuffer[0]=(u8)(value);WriteBuffer[1]=(u8)(value>>8)&0x0f;TransferInProgress=TRUE;XSpi_Transfer(&SpiInstance,WriteBuffer,(void *)0,2);while(TransferInProgress);Count=Count+1;}分析:正弦波的产生不同于上述方法,因为正弦波不能直接通过Count的加减简单的实现,故选择通过MATLAB计算的方式得到4000组数据,依次传输得到正弦波。

相关文档
最新文档