单片机课程设计-智能信号发生器设计.doc

上传人:李主任 文档编号:3262631 上传时间:2019-08-06 格式:DOC 页数:28 大小:603.02KB
返回 下载 相关 举报
单片机课程设计-智能信号发生器设计.doc_第1页
第1页 / 共28页
单片机课程设计-智能信号发生器设计.doc_第2页
第2页 / 共28页
单片机课程设计-智能信号发生器设计.doc_第3页
第3页 / 共28页
单片机课程设计-智能信号发生器设计.doc_第4页
第4页 / 共28页
单片机课程设计-智能信号发生器设计.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《单片机课程设计-智能信号发生器设计.doc》由会员分享,可在线阅读,更多相关《单片机课程设计-智能信号发生器设计.doc(28页珍藏版)》请在三一文库上搜索。

1、东 北 石 油 大 学 课 程 设 计 课 程 单片机课程设计 题 目 智能信号发生器 院 系 电气信息工程学院测控系 专业班级 测控 08-02 学生姓名 学生学号 指导教师 智能信号发生器 1 2012 年 3 月 30 日 智能信号发生器 1 东北石油大学课程设计任务书 课程 单片机课程设计 题目 智能信号发生器 专业 测控技术与仪器 姓名 单培杰 学号 080601240229 一、任务一、任务 设计一款基于 AT89C51 单片机智能信号发生器,实现三角波,方波,锯 齿波的输出。 二、设计要求二、设计要求 1 通过按键控制可产生方波、锯齿波、三角波、正弦波。 2 写出详细的设计报告。

2、 3 给出全部电路和源程序。 三、参考资料三、参考资料 1 吴杰.基于 ISP 技术的电子公告牌系统J.科技资讯 2008.NO.14:83-87. 2 杨恢先,黄辉先.单片机原理及应用M.人民邮电出版社,2006. 3 李川,汪秋蒙.ISP 技术的原理及实现方法J.科技资讯.2007,35 期:93-94. 4 万光毅.单片机实验与实践教程M.北京航空航天大学出版社.2005.1. 5 张毅刚.单片机原理及应用M.高等教育出版社.2003:160-190. 6 曾一江.单片机微机原理与接口技术M.科学出版社,2006. 7 王新强.基于 AT89S52 的智能信号发生器J.河南机电高等专科学

3、校学报, 2006,14(3):37-39. 8 Philips .74HC595 .datasheet.Philips Semiconductors .2003 Jun 25 9 马忠梅.单片机的 C 语言应用程序设计M.北京:北京航空航天大学出版 社.2006 10 康华光,陈大钦.电子技术基础M.高等教育出版社,1998. 完成期限 2012.3.19 至 2012.3.30 指导教师 段志伟 专业负责人 曹广华 2012 年 3 月 16 日 智能信号发生器 2 目录目录 第 1 章 绪论3 1.1 对信号发生器的认识 .3 1.2 本次设计的信号发生器的简介 .3 1.3 本设计任务

4、 .4 第 2 章 总体方案论证与设计.5 2.1 系统方案的比较 .5 2.2 控制芯片的选择 .5 2.3 总体硬件组成框图 .5 第 3 章 系统硬件设计.7 3.1 单片机的介绍 .7 3.2 各部分电路原理 9 3.3 键盘电路原理 .11 第 4 章 系统的软件设计.13 4.1 主程序设计 .13 4.2 子程序流程图 .14 第 5 章 系统调试与测试结果分析18 5.1 系统调试 .18 5.2 测试结果 .18 结 论21 参考文献.22 附录 1 程序23 附录 2 仿真效果图.24 智能信号发生器 3 第 1 章 绪论 在现代电子学的各个领域中,常常需要高精度和频率方便

5、可调的信号发生 器,信号发生器在电路实验和设备检测中具有十分广泛的用途,目前广泛使用 的是一些标准产品,虽然功能齐全、性能指标较高,但是价格较贵,而且许多 功能用不上。而随着单片机技术的迅速发展,其以集成度高、处理功能强、可 靠性好等优点,在各个领域得到越来与广泛的应用,因而利用单片机实现的信 号发生器,结构简单,实用性强。 1.1 信号发生器的简介 信号发生器是一种能产生标准信号的电子仪器资料来源:毕业设计(论文) 网 是工业生产和电工、电子实验中经常使用的电子仪器之一。 信号发生器种类较多,性能各有差别,但它们都可以产生不同频率的正弦波、 调幅波调频波信号,以及各种频率的方波、三角波、锯齿

6、波和正负脉冲波信号 等。利用信号发生器输出的信号,可以对元器件的性能及参数进行测量,还可 以对电工和电子产品整进行指数验证、参数调整及性能鉴定。在多数电路传递 网络中、电容与电感组合电路, 、电容与电阻组合电路及信号调制器的频率、相 位的检测中都可以得到广泛的应用。 信号发生器按其频率的高低,可分为:超低频信号发生器,低频信号发生 器,高频信号发生器,超高频信号发生器,微波信号发生器;按产生波形的不 同,可分为:正弦波信号发生器,脉冲波函数波信号发生器,任意波信号发生 器; 按调制方式的不同,可分为:调频信号发生器(FM) 、调幅信号发生器 (AM) ,调相信号发生器(PM) ,脉冲调制信号发

7、生器;此外,还可以产生两 种或多种波形信号发生器。 单片机智能信号发生器目前可直接数字合成(DDS) ,能够产生任意波形的 信号,精度高,可程控,便于与其他设备接口构成各种系统。还有基于 USB2.0 的虚拟波形信号发生器,也可产生任意波形。本次设计设计的是一个可产生正 弦波、方波、锯齿波及三角波的智能信号发生器。 智能信号发生器可广泛应用于电子信息、机械、交通、地质、航天航空等 专业,在教学、科研、生产、工程等诸多领域应用非常广泛。 1.2 本次设计的信号发生器的简介 智能信号发生器 4 本次设计以单片机为核心配以一定的外围电路和软件,实现智能波的产生 和输出,从总体上来看设计任务可以分为硬

8、件设计和软件设计,这两者互相结 合,不可分离。从时间上来看,硬件设计的绝大部分工作量在最初阶段,到后 期往往还要作一些修改。软件设计任务贯穿始终,到中后期基本上都是软件设 计任务。 硬件设计部分包括:1. 单片机的存储器扩展和接口扩展设计。2. 单片机 外部模块设计,包括键盘模块、D/A 转换模块、信号放大模块和滤波模块设计。 软件部分设计 单片机主程序包括初始化和键入值的判定,其他都是软件子 程序如 D/A 转换、智能波的产生函数及输出函数 。 1.3 本设计任务 本系统是基于 AT89S52 单片机的数字式低频信号发生器。采用 AT89S52 单片机作为控制核心,外围采用数字/模拟转换电路

9、(DAC0832) 、运放电路 (NE4558) 、按键和 LED 显示灯电路等。通过按键控制可产生方波、锯齿波、 三角波、正弦波等,同时用 LED 显示灯指示对应的波形。其设计简单、性能优 良,可用于多种需要低频信号源的场所,具有一定的实用性。 智能信号发生器 5 第 2 章 总体方案论证与设计 2.1 系统方案的比较 方案一:采用函数信号发生器 ICL8038 集成模拟芯片,它是一种可以同时 产生方波、三角波、正弦波的专用集成电路。但是这种模块产生的波形都不是 纯净的波形,会寄生一些高次谐波分量,采用其他的措施虽可滤除一些,但不 能完全滤除掉。 方案二:采用分立元件实现非稳态的多谐振振荡器

10、,然后根据需要加入积 分电路等构成正弦、矩形、三角等波形发生器。这种信号发生器输出频率范围 窄,而且电路参数设定较繁琐,其频率大小的测量往往需要通过硬件电路的切 换来实现,操作不方便。 方案三:采用单片机和 DAC0832 数模转换器生成波形,由于是软件滤波, 所以不会有寄生的高次谐波分量,生成的波形比较纯净。它的特点是价格低、 性能高,在低频范围内稳定性好、操作方便、体积小、耗电少。 经比较,方案三既可满足课程设计的基本要求又能充分发挥其优势,电路 简单,易控制,性价比较高,所以采用该方案。 2.2 控制芯片的选择 方案一:AT89S52 单片机是一种高性能 8 位单片微型计算机。它把构成计

11、 算机的中央处理器 CPU、存储器、寄存器、I/O 接口制作在一块集成电路芯片 中,从而构成较为完整的计算机。 方案二:C8051F005 单片机是完全集成的混合信号系统级芯片,具有与 AT80S52 兼容的微控制器的内核,与 MCS-51 指令集完全兼容。除了具有标准 AT80S52 的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模 拟部件和其他数字外设及功能部件。 方案选择:方案二中 C8051F005 芯片系统内部结构复杂,不易控制,芯片 成本高,对于本系统而言利用率低,AT89S52 芯片比较常用,简单易控制,成 本低,性能稳定故采用方案一。 2.3 总体硬件组成框图 智能

12、信号发生器 6 图 2-1 总体硬件组成框图 低频信号发生器系统主要由 CPU、D/A 转换电路、基准电压电路、电流/ 电压转换电路、按键和波形指示电路、电源等电路组成。 其工作原理为当分别按下四个按键中的任一个按键就会分别出现方波、锯 齿波、三角波、正弦波,并且有四个发光二极管分别作为不同的波形指示灯。 智能信号发生器 7 第 3 章 系统硬件设计 3.1 单片机的介绍 图 3-1 AT89S52 引脚图 3.1.1 管脚说明 低频信号发生器采用 AT89S52 单片机作为控制核心,其内部组成包括:一 个 8 位的微处理器 CPU 及片内振荡器和时钟产生电路,但石英晶体和微调电容 需要外接;

13、片内数据存储器 RAM 低 128 字节,存放读/写数据;高 128 字节被 特殊功能寄存器占用;片内程序存储器 4KB ROM;四个 8 位并行 I/O(输入/ 输出)接口 P3 -P0,每个口可以用作输入,也可以用作输出;两个定时/计数器, 每个定时/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设 置成定时方式,并可以根据计数或定时的结果实现计算机控制;五个中断源的 中断控制系统;一个全双工 UART(通用异步接收发送器)的串行 I/O 口。 VCC:供电电压。 EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13

14、T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 U1 AT89S52 VCC RST 智能信号发生器 8 GND:接地。 RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高 电平时间。 ALE/PROG:当访问外部存储器

15、时,地址锁存允许的输出电平用于锁存地 址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可 用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据 存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上 置 0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外, 该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每 个机器周期两次/P

16、SEN 有效。但在访问外部数据存储器时,这两次有效的 /PSEN 信号将不出现。 /EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H- FFFFH) ,不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间, 此引脚也用于施加 12V 编程电源(VPP) 。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。 当 P1 口的管脚第一次写 1

17、 时,被定义为高阻输入。P0 能够用于外部程序数据 存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原 码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能 接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入, P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,

18、 输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且 作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由 于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器 进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉 优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器 的内容。 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被

19、内部上拉为高电平,并用作输入。 智能信号发生器 9 作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的 缘故。 P3 口也可作为 AT89C51 的一些特殊功能口,如下所示: 口管脚 备选功能 P3.0 RXD(串行输入通道) P3.1 TXD(串行输出通道) P3.2 /INT0(外中断 0) P3.3 /INT1(外中断 1) P3.4 T0(定时器 0 外部输入) P3.5 T1(定时器 1 外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) 3.1.2 AT89S52 的晶振及其连接方法 CPU 工作时都必须有一个时钟

20、脉冲。有两种方式可以向 89S52 提供时钟脉 冲:一是外部时钟方式,即使用外部电路向 89S52 提供时钟脉冲,见图 2.3(a); 二是内部时钟方式,即使用晶振由 89S52 内部电路产生时钟脉冲。一般常用第 二种方法,其电路见图 3-2。 89S52 XTAL XTAL1 89S52 XTAL2 XTAL1 悬空 外部时钟 信号 C1 C2 J (a)外部时钟方式(b)内部时钟方式 图 3-2 89S52 的时钟脉冲 J 一般为石英晶体,其频率由系统需要和器件决定,在频率稳定度要求不 高时也可以使用陶瓷滤波器。一般来说,使用石英晶体时,C1=C2=30pF。使用 陶瓷滤波器时,C1=C2

21、=47pF。 3.2 各部分电路原理 智能信号发生器 10 3.2.1DAC0832 芯片原理 管脚功能介绍(如图 3-3 所示) 图 3-3 DAC0832 管脚图 DI7DI0:8 位的数据输入端,DI7 为最高位。 ILE:数据锁存允许控制信号输入线,高电平有效。 /CS:选片信号输入线(选通数据锁存器) ,低电平有效。 /WR1:数据锁存器写选选通输入线,负脉冲有效,由 ILE、/CS、/WR1 的 逻辑组合产生/LE1,当/LE1 为高电平时,数据锁存器状态随输入数据线变化, /LE1 的负跳变时将输入数据锁存。 /XFER:数据传输控制信号输入线,低电平有效,负脉冲有效。 /WR2

22、:DAC 寄存器选通输入线,负脉冲有效,由/WR2、/XFER 的逻辑组 合产生/LE2,当/LE2 为高电平时,DAC 寄存器的输出随寄存器的输入而变化, /LE2 的负跳变时将数据锁存器的内容打入 DAC 寄存器并开始 D/A 转换。 IOUT1:模拟电流输出端 1,当 DAC 寄存器中数据全为 1 时,输出电流最 大,当 DAC 寄存器中数据全为 0 时,输出电流为 0。 IOUT2:模拟电流输出端 2, IOUT2 与 IOUT1 的和为一个常数,即 IOUT1IOUT2常数。 RFB:反馈电阻引出端,DAC0832 内部已经有反馈电阻,所以 RFB 端可以 直接接到外部运算放大器的输

23、出端,这样相当于将一个反馈电阻接在运算放大 器的输出端和输入端之间。 VREF:参考电压输入端,此端可接一个正电压,也可接一个负电压,它决 定 0 至 255 的数字量转化出来的模拟量电压值的幅度,VREF 范围为(+10-10) V。VREF 端与 D/A 内部 T 形电阻网络相连。 Vcc:芯片供电电压,范围为(+5+15)V。 AGND:模拟量地,即模拟电路接地端。 Vcc 20 Iout1 11 lsbDI0 7 Iout2 12 DI1 6 DI2 5 Rfb 9 DI3 4 DI4 16 Vref 8 DI5 15 DI6 14 msbDI7 13 ILE 19 WR2 18 CS

24、 1 WR1 2 Xfer 17 U2DAC0832 智能信号发生器 11 DGND:数字量地。 DAC0832 的输出是电流,使用运算放大器可以将其电流输出线性地转换成 电压输出。根据运算放大器和 DAC0832 的连接方法,运算放大器的输出可以 分为单极性和双极性两种。这里我采用双极性方式(如图 3-4 所示) 。 Vcc 20 Iout1 11 lsbDI0 7 Iout2 12 DI1 6 DI2 5 Rfb 9 DI3 4 DI4 16 Vref 8 DI5 15 DI6 14 msbDI7 13 ILE 19 WR2 18 CS 1 WR1 2 Xfer 17 U2DAC0832

25、3 2 1 84 U3A NE4558 5 6 7 U3B NE4558 VCC R7 7.5K R5 15K R6 15K VCC 图 3-4 DAC0832 双极性电压输出电路 3.3 键盘电路原理 在单片机应用系统中为了控制系统的工作状态,以及向系统输入数据,应 用系统应设有按键或键盘,实现简单的人机会话。键盘是一组按键的组合,键 通常是一种常开型按钮开关,平时键的两个出点处于断开状态,按下键时他们 才闭合。从键盘的结构来分类,键盘可以分为独立式和矩阵式两类,每一类按 其识别方法又都可以分为编码和未编码键盘两种。键盘上闭合键的识别由专门 的硬件译码器实现并产生编号或键值的称为编码键盘,由

26、软件识别的称未编码 键盘。在由单片机组成的测控系统及智能化仪器中,用得较多的是未编码键盘, 我这里也使用未编码键盘。 矩阵式未编码键盘结构的工作原理 如图 3-5 所示是 4*4 的键盘接口,它 是矩阵式的结构。图中键盘的行线(X0X3)与列线(Y0Y3)的交叉处通过 一个按键来联通,行线通过电阻接+5V,当键盘上没有键闭合时所有的行线和 列线都断开,则行线都呈高电平。当键盘上某一个键闭合时,则该键所对应的 行线和列线被短路。如果 X0、X1、X2、X3、都为高电平,则 Y0 这一列上没 有键合。如果读出的行线状态不全为高电平,则为低电平的行线和 Y0 相交的 键处于闭合状态。如果 Y0 这一

27、列上没有键合,接着使列线 Y1 为低电平,其余 列线为高电平,用同样方法检查 Y1 这一列上有无键闭合。依此类推,最后使 列线 Y3 为低电平,其余的列线为高电平,检查 Y3 这一列上是否有键闭合。这 智能信号发生器 12 种逐行逐列地检查键盘状态的过程称为对键盘的一次扫描。CPU 对键盘扫描可 以采取程序控制的随机方式,CPU 空闲时扫描键盘;也可以采取定时控制方式, 每隔一定时间,CPU 对键盘扫描一次,CPU 可随时响应键盘输入请求;还可以 采用中断方式,当键盘上有键闭合时,向 CPU 请求中断,CPU 响应键盘输入 中断,对键盘扫描,以识别哪一个键处于闭合状态,并对键输入信息作出相应

28、处理。CPU 对键盘上闭合键的键号确定,可以根据行线和列线的状态计算求得, 也可以根据行线和列线状态查表求得。 X3 X2 X1 X0 Y0Y1Y2Y3 12 8 4 0 13 9 5 1 14 10 6 2 15 11 7 3 +5V 图 3-5 4*4 矩阵式未编码键盘结构图 根据我设计的电路特点,只需要用到 4 个按钮来选择波形,实现的功能也 比较简单,所以我采用独立式未编码键盘结构。键盘原理图如图 3-6 所示。 图 3-6 键盘原理图 S1 SW-PB S2 SW-PB S3 SW-PB S4 SW-PB R 4 1K R 3 1K R 2 1K R 1 1K VC C 智能信号发生

29、器 13 第 4 章 系统的软件设计 软件设计上,根据功能分了几个模块编程。模块主要有:主程序模块、锯 齿波模块、三角波模块、正弦波模块、方波模块、延时子程序模块等。 显示波形模块是利用 DAC0832 的 8 位特点,把波形的数据以 8 位数据的 形势送进 CPU 中,只要一按键就能显示波形。 4.1 主程序设计 其主程序流程如图 4-1 所示。 开始 Key1 按下了吗? 输出锯齿波 输出三角波 输出正弦波 输出方波 Key2 按下了吗? Key3 按下了吗? Key4 按下了吗? Y Y Y Y N N N N 图 4-1 主程序流程图 本软件设计过程中主要实现利用按键来控制不同波形的输

30、出,当按键 1 按 下时,函数发生器就输出锯齿波;当按键 2 按下时,函数发生器就输出三角波; 智能信号发生器 14 当按键 3 按下时,函数发生器就输出正弦波;当按键 4 按下时,函数发生器就 输出方波。通过按键可以以任意循环方式输出不同波形。 4.2 子程序流程图 A=00H A 送到 0832 输出 A=A+1 开始 A=FFH? Y N 图 4-2 锯齿波流程图 锯齿波产生将 00H 送入寄存器 A 中,DAC0832 输出 A 中的内容,当 A 中 的内容等于 FFH 返回开始,当 A 中的内容不为 FFH 时,A 中的内容累加,从 而输出波形。 开始 A=00H A 送到 0832

31、 输出 A=A+1 A=00H?A=A-1 A 送到 0832 输出 A=00H? N Y Y N 智能信号发生器 15 图 4-3 三角波流程图 三角波产生通过 A 中数值的加一递升,当 A 中的内容加到为 0 时, A 中 的内容减一递减,从而循环产生三角波。 三角波产生子程序如下: TRIAN :MOV A ,#00H MOV DPTR,#7FFFH UP: MOVX DPTR,A INC A JNZ UP DOWN: DEC A MOVX DPTR,A JNZ DOWN RET 正弦波程序流程图如图 4-4 所示 开始 A=00H A=129? DPTR1=DPTR1+1 A=正弦函数

32、表数据 A 送到 0832 输出 Y N 图 4-4 正弦波程序流程图 正弦波波形设计通过查表指令得出。其产生子程序如下: SINE: MOV DPTR1,#sinTab MOV DPTR,#7FFFH LOOP: CLR A MOVC A,A+DPTR1 CJNE A,#129,LOOP1 智能信号发生器 16 RET LOOP1: MOVX DPTR,A INC DPTR1 AJMP LOOP sinTab:DB 128,132,137,141,146,150,154,159,163,167 DB 171,176,180,184,188,191,195,199,203,206 DB 210

33、,213,216,219,222,225,228,231,233,236 DB 238,240,242,244,246,247,249,250,251,252 DB 253,254,254,255,255,255,255,255,254,254 DB 253,252,251,250,249,247,246,244,242,240 DB 238,236,233,231,228,225,222,219,216,213 DB 210,206,203,198,195,192,188,184,180,176 DB 172,167,163,159,155,150,146,141,137,133 DB 12

34、8,124,119,115,111,106,102,97,93,89,85 DB 81,77,73,69,65,61,57,54,50,47,43,40,37 DB 34,31,28,25,23,20,18,16,14,12,10,9,7 DB 6,5,4,3,2,2,1,1,1,1,1,2,2,3,4,5,6 DB 7,9,10,12,14,16,18,20,23,25,28,30,33,36 DB 40,43,46,50,53,57,60,64,68,72,76,80,84 DB 88,93,97,101,106,110,114,119,123,128,129 方波程序流程图如图 4-5

35、所示 开始 A=00H A 送到 0832 输出 延时 A=FFH A 送到 0832 输出 延时 智能信号发生器 17 图 4-5 方波程序流程图 方波产生是当 A 中的内容为 0 时,输出对应模拟量,然后延时,当 A 中的 内容为 0FFH 时,同样输出对应模拟量,再延时,从而得到方波。 方波产生子程序如下: SQUN:MOV DPTR,#7FFFH MOV A ,#0FFH MOVX DPTR,A LCALL Delay MOV A ,#00H MOVX DPTR,A LCALL Delay RET 延时子程序如下: Delay: MOV R7,#10H DLY0: MOV R6,#0E

36、DH NOP DLY1: DJNZ R6,DLY1 DJNZ R7,DLY0 RET 方波的上限和下限的延时时间为:7ms S=1+(1+1+2237+2)16+1=7648us 智能信号发生器 18 第 5 章 系统调试与测试结果分析 5.1 系统调试 根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试 和软硬件联调。由于在系统设计中采用模块设计法,所以方便对各电路模块功 能进行逐级测试:LED 驱动模块的调试,数据存储模块的调试,PC 机通信模 块的调试等,最后将各模块组合后进行整体测试。 5.1.1 硬件调试 对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。 5

37、.1.2 软件调试 软件调试采用单片机仿真器 WAVE6000L 及微机,将编好的程序进行调试, 主要是检查语法错误。 5.1.3 硬件软件联调试 将调试好的硬件和软件进行联调,主要调试系统的实现功能。 5.2 测试结果 在对系统进行波形仿真时可以在虚拟示波器上观察到锯齿波、三角波、正 弦波和方波的波形。其中锯齿波、三角波以及正弦波的输出误差较大,方波波 形较为理想。这一方面与电路设置的参数有关,另一方面也与使用的仿真软件 有关。对于上述问题的解决办法是:改变仿真电路的参数或着换用版本较高的 仿真软件。当然一般产生这种情况的原因多由于电路的参数设计不合理所制。 当按键 1 拨下时,波形为锯齿波

38、,同时指示灯 1 发光。仿真图如图 5-1 所示。 智能信号发生器 19 图 5-1 锯齿波仿真图 当按键 2 拨下时,波形为三角波,同时指示灯 2 发光。仿真图如图 5-2 所示。 图 5-2 三角波仿真图 当按键 3 拨下时,波形为正弦波,同时指示灯 3 发光。仿真图如图 5-3 所 示。 图 5-3 正弦波仿真图 当按键 4 拨下时,波行为方波,同时指示灯 4 发光。仿真图如图 5-4 所示。 智能信号发生器 20 图 5-4 方波仿真图 智能信号发生器 21 结 论 基于单片机的智能信号发生器设计,该课题的设计目的是充分运用大学期 间所学的专业知识,考察现在正在使用的信号发生器的基本功

39、能,完成一个基 本的实际系统的设计全过程。关键是这个实际系统设计的过程,在整个过程中 我可以充分发挥单片机知识。特别是这个信号发生器的设计中涉及到一个典型 的控制过程。通过单片机控制一个模数转换器 DAC0832 产生所需要的电流, 然后使用运算放大器 NE4558 可以将其电流输出线性地转换成电压输出,通过 程序的控制,可以产生一系列有规律的波形。这样一个信号发生装置在控制领 域有相当广泛的应用范围。 此设计方案硬件较为简单,主要是由单片机跟 DAC08322 个芯片构成,连 线也较简便。键盘电路用的独立未编码结构,一个键控制一个波形。显示电路 主要是由发光二极管构成,利用发光二极管的导通即

40、发光的特性来显示是哪个 波形的输出,简单易懂。软件程序方面较为复杂一点,此方案主要是靠程序的 控制,主要由 4 个波形产生的子程序加上有承上启下作用的主程序构成,程序 思路还是比较清晰。其中正弦波的程序较为繁琐,因为是通过查表指令产生的, 所以要列出个含有较多字符的表格。 当然还是存在不足的地方,比如不能实现频率与幅度的可调,显示电路跟 键盘电路有待进一步改进。 智能信号发生器 22 参考文献 1 吴杰.基于 ISP 技术的电子公告牌系统J.科技资讯 2008.NO.14:83-87. 2 杨恢先,黄辉先.单片机原理及应用M.人民邮电出版社,2006. 3 李川,汪秋蒙.ISP 技术的原理及实

41、现方法J.科技资讯.2007,35 期:93-94. 4 万光毅.单片机实验与实践教程M.北京航空航天大学出版社.2005.1. 5 张毅刚.单片机原理及应用M.高等教育出版社.2003:160-190. 6 曾一江.单片机微机原理与接口技术M.科学出版社,2006. 7 王新强.基于 AT89S52 的智能信号发生器J.河南机电高等专科学校学报, 2006,14(3):37-39. 8 马忠梅.单片机的 C 语言应用程序设计M.北京:北京航空航天大学出版 社.2006 9 康华光,陈大钦.电子技术基础M.高等教育出版社,1998. 10周润景.基于 Proteus 的电路与单片机仿真系统设计

42、与仿真M.北京航空航天 大学出版社. 2005. 智能信号发生器 23 附录 1 程序 KEY1 BIT P1.0 KEY2 BIT P1.1 KEY3 BIT P1.2 KEY4 BIT P1.3 ;按键 KEY1:锯齿波 按键 KEY2:三角波 按键 KEY3: 正弦波 ;按键 KEY4: 方波; ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV SP,#50H SCAN_KEY1:MOV A,P1 ANL A,#0FH CJNE A,#0EH,SCAN_KEY2 LJMP B1 SCAN_KEY2:MOV A,P1 ANl A,#0FH CJNE A,#0DH

43、,SCAN_KEY3 LJMP B2 SCAN_KEY3:MOV A,P1 ANl A,#0FH CJNE A,#0BH,SCAN_KEY4 LJMP B3 SCAN_KEY4:MOV A,P1 ANl A,#0FH CJNE A,#07H,SCAN_KEY1 LJMP B4 ;利用 dac0832 产生锯齿波; B1:CLR P1.4 SETB P1.5 SETB P1.6 SETB P1.7 SANTOO:MOV A ,#00H MOV DPTR,#7FFFH LLOOP:MOVX DPTR,A INC A CJNE A,#0FFH,LLOOP LJMP SCAN_KEY1 ;利用 dac

44、0832 产生三角波; B2: CLR P1.5 SETB P1.4 SETB P1.6 SETB P1.7 TRIAN:MOV A ,#00H MOV DPTR,#7FFFH UP: MOVX DPTR,A INC A JNZ UP DOWN: DEC A MOVX DPTR,A JNZ DOWN LJMP SCAN_KEY2 ;利用 dac0832 产生正弦波; ;在表格里取数送到指定地址 B3: CLR P1.6 SETB P1.4 SETB P1.5 SETB P1.7 SINE: MOV DPTR,#7FFFH push dph 智能信号发生器 23 push dpl MOV DPT

45、R,#sinTab LOOP: CLR A MOVC A,A+DPTR CJNE A,#129,LOOP1 RET LOOP1: pop dpl pop dph MOVX DPTR,A INC DPTR AJMP LOOP sinTab:DB 128,132,137,141,146,150,154,159,163,167 DB 171,176,180,184,188,191,195,199,203,206 DB 210,213,216,219,222,225,228,231,233,236 DB 238,240,242,244,246,247,249,250,251,252 DB 253,25

46、4,254,255,255,255,255,255,254,254 DB 253,252,251,250,249,247,246,244,242,240 DB 238,236,233,231,228,225,222,219,216,213 DB 210,206,203,198,195,192,188,184,180,176 DB 172,167,163,159,155,150,146,141,137,133 DB 128,124,119,115,111,106,102,97,93,89,85 DB 81,77,73,69,65,61,57,54,50,47,43,40,37 DB 34,31,

47、28,25,23,20,18,16,14,12,10,9,7 DB 6,5,4,3,2,2,1,1,1,1,1,2,2,3,4,5,6 DB 7,9,10,12,14,16,18,20,23,25,28,30,33,36 DB 40,43,46,50,53,57,60,64,68,72,76,80,84 DB 88,93,97,101,106,110,114,119,123,128,129 LJMP SCAN_KEY3 ;利用 dac0832 产生方波; B4: CLR P1.7 SETB P1.4 SETB P1.6 SETB P1.5 SQUN:MOV DPTR,#7FFFH MOV A

48、,#0FFH MOVX DPTR,A LCALL Delay MOV A ,#00H MOVX DPTR,A LCALL Delay LJMP SCAN_KEY4 Delay:MOV R7,#10H DLY0: MOV R6,#0EDH NOP DLY1: DJNZ R6,DLY1 DJNZ R7,DLY0 RET END 智能信号发生器 24 附录 2 仿真效果图 智能信号发生器 25 东北石油大学课程设计成绩评价表 课程名称单片机课程设计 题目名称智能信号发生器 学生姓名单培杰学号080601240229 指导教 师姓名 段志伟职称 讲师 序号评价项目指 标满分 评分 1 工作量、工作态 度和出勤率 按期圆满的完成了规定的任务,难易程度和工作量 符合教学要求,工作努力,遵守纪律,出勤率高, 工作作风严谨,善于与他人合作。 20 2课程设计质量 课程设计选题合理,计算过程简练准确,分析问题 思路清晰,结构严谨,文理通顺,撰写规范,图表 完备正确。 45 3创新 工作中有创新意识,对前人工作有一些改进或有一 定应用价值。 5 4

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1