嵌入式微控课程设计多功能信号发生器剖析.doc

嵌入式微控课程设计多功能信号发生器剖析.doc

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程:嵌入式微控制器技术 题目:多功能信号发生器设计 指导老师: 专业班级:自动化 班 姓名: 学号: 完成日期:2015年1月日 一、课程设计名称及要求 3 二、设计思想和实施方案 3 2.1总体设计思路 3 2.2总体设计框图 4 2.3实施方案 4 2.4硬件原理图 6 三、典型程序模块 6 3.1矩阵键盘部分 6 3.2波形产生部分 9 3.3数码管显示部分 10 3.4蜂鸣器报警部分 12 3.5D/A转换部分 13 3.6软件设计 14 四、课程设计中遇到的问题及解决方法 15 4.1波形产生部分 15 4.2D/A转换部分 15 4.3调频调幅部分 15 4.4键盘扫描部分 15 4.5上限报警部分 15 五、主程序流程图 16 5.1主程序流程 16 六、收获与体会 16 七、参考文献 18 八、程序清单 18 一、设计课题名称及要求 题目:多功能信号发生器设计 设计要求: (1)、使用汇编语言和C语言(必做); (2)、程序功能要求(必做):通过小键盘和开关给定,实现信号源启动/停止、输出不同类型信号波形(正弦波、三角波、方波、锯齿波等)、具备调压、调频功能、数码管(或液晶屏)显示当前信号源状态及相关参数,简单故障诊断与报警。 (3)、上位机监控功能要求(选做):通过串口或USB口实现上/下位机通信,能够显示信号发生器当前状态和相关参数信息,能够从上位机控制下位机的工作。 二、设计思想和实施方案 题目要求是通过小键盘和开关给定,实现信号源启动/停止、输出正弦波、三角波、方波、锯齿波等波形并且可调压调频,用数码管或液晶屏显示当前信号源的状态及相关参数,具备故障诊断和报警功能。 2.1总体设计思路 根据题目的要求,经过仔细的考虑各种要素,制定了整体方案:以AT89C51单片机为控制核心,P0口接共阳极数码管显示器,P1口接矩阵键盘,P2口接串行接口D/A转换器TLC5615和蜂鸣器报警电路,在TLC5615输出引脚接示波器,P3口接数码管位选控制信号。由矩阵键盘按键及按键次数控制产生波形的种类及频率和幅值在一定范围内可调和显示波形参数,波形参数由P0口输入到数码管,由P3口循环位选数码管,由程序控制P2口产生波形(分别是锯齿波、三角波、方波和正弦波),在调压调频达到上限时蜂鸣器响报警并清零至下限。波形的合成:为了波形的合成,我们在采样的时候,对锯齿波、三角波、方波、正弦波都只取20个点。 2.2总体设计框图 本系统总体框图如图1所示 图1 系统总体框图 2.3实施方案 2.3.1矩阵键盘部分 在单片机P3口端口接有矩阵式键盘,矩阵式键盘由4条行线和4条列线所组成,16个按键设置在行、列线交点上,其中4条行线的一端分别与单片机P1口的P1.0、P1.1、P1.2、P1.3相接,另一端通过上拉电阻接到+5V上,平时使行线处于高电平状态;而4条列线一段分别与P1.4、 P1.5 、P1.6 、P1.7相接。 当扫描开始时,首先将行设置为低电平,在判断有键被按下后、读入列状态,如果列状态出现并非全部为1状态,这时0状态的列与行相交的键就是被按下的键。 2.3.2波形产生部分 波形产生可以通过增加步长并延时,外加循环的方式来实现,这种方式对于锯齿波、三角波和方波都易实现,但是对于正弦波,由于它是非线性的,实现起来较为困难。若用C语言编程,可以直接调用C语言自带的sin函数来实现,由于汇编语言不带sin函数,所以在汇编编程产生正弦波比较容易实现的方式为查表方式,预先将正弦采样点数值存储在表中,通过指针调用显示(采样点数值可以通过数学计算得出,也可以通过MATLAB采样得出)。其他三种波也可以通过查表方式,这样四种波形可只使用同一函数段实现。由于本程序使用汇编语言编写,故使用查表方式。 2.3.3数码管显示部分 单片机实现显示功能需要做的步骤有:将计算好的十六进制的波形幅度数值、周期数值转换成适应LED数码管显示的数据,即进行十进制处理,并存入数码管显示内存中(事先设置的存放显示器数据单元)。再经扫描显示程序使之能在数码管上显示数据。扫描显示子程序动态显示送入4位LED数码管数据。所谓的动态显示是指一位一位轮流点亮LED数码管,每一位停留4ms,利用人的视觉暂留消除闪烁现象。 2.3.4蜂鸣器报警部分 在调幅调周期达到上限以后通过软件将P2.7口置1,使之高低电平交替延时,即可使蜂鸣器产生鸣叫。 2.3.5D/A转换部分 D/A转换可用的芯片有DAC0832、TLC5615等,DAC0832芯片的8位数字量采用并行输入,占用端口较多,在初步设计时决定采用通过3根串行总线就可以完成10位数据串行输入的TLC5615。 2.3.6调幅调频部分 调频调幅原理相同,一个是改变延时,一个是改变步长。在确定延时和步长基值的基础上,

文档评论(0)

四月 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档