pic单片机课程设计:信号发生器

上传人:第*** 文档编号:55315662 上传时间:2018-09-27 格式:PDF 页数:23 大小:1.64MB
返回 下载 相关 举报
pic单片机课程设计:信号发生器_第1页
第1页 / 共23页
pic单片机课程设计:信号发生器_第2页
第2页 / 共23页
pic单片机课程设计:信号发生器_第3页
第3页 / 共23页
pic单片机课程设计:信号发生器_第4页
第4页 / 共23页
pic单片机课程设计:信号发生器_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《pic单片机课程设计:信号发生器》由会员分享,可在线阅读,更多相关《pic单片机课程设计:信号发生器(23页珍藏版)》请在金锄头文库上搜索。

1、福州大学PIC 课程设计信号发生器哈哈,福大的学弟学妹们有福了。学生姓名: XXXXXXXXXX 学号: 011100XXXX 专业班级:电气学院 2011级 XX班指导教师: XXXXXXXXX 二一四年 6 月 27 日目录1、概述 1 2、课程设计内容 1 2.1 、整体方案 1 2.2 、硬件设计 2 2.3 、软件设计 4 3、仿真结果 7 4、设计体会 11 1 1、概述信号发生器是一种常用的信号源,广泛应用于电子电路、自动控制系统和教学实验等领域。 目前使用的信号发生器大部分是函数信号发生器,且特殊波形发生器的价格昂贵。本设计采用 PIC16F887单片机作为逻辑控制单元, 利用

2、 MCP4821芯片转换单片机发出的数据, 经过放大器放大产生正弦波、三角波、锯齿波和方波信号。通过外部按键切换波形,通过电位计经过AD转化控制信号周期大小。本设计利用液晶显示芯片1602 作为显示单元,显示波形的类型和波形的周期。信号发生器在显示生活中也起到很重要的作用,是电子技术领域的一种常用设备,长期以来都是由模拟电路构成的。这类仪器作为信号源, 在高频范围内其频率稳定度高,可调性好。然而,在科学研究和生产实践中,如工业过程控制、生物医学等领域, 通常需要用低频信号源。 由模拟电路生成低频信号性能不能令人满意,而且用于低频其RC很大。大电阻、大电容在制造上有困难,参数准确度难以保证,同时

3、体积大、漏电损耗显著。利用单片机用程序设计方法产生波形,其频率底限几乎无限度、稳定度好,频率幅值可以由电位计调整。本设计实现的功能为:1、装置能生成正弦波、三角波、锯齿波、方波,通过波形切换按键进行切换。 2、装置波形周期能通过电位计调节。3、生成波形设有两档,以满足更高周期(更低频率)的要求。2、课程设计内容2.1 、整体方案本设计采用 PIC16F887单片机作为逻辑控制单元, 通过 MCP4821 芯片转换单片机发出的数据,经过放大器放大产生正弦波、三角波、锯齿波和方波信号。通过电位计经过 AD转化控制信号周期大小,通过外部按键切换波形。利用液晶显示芯片 1602 作为显示单元,显示波形

4、的类型和波形的周期。 整体框图如下图(图一)所示。2 PIC16F887 单片机LCD1602 显示模块外部按键DA 转换模块 MCP8421 芯片放大器输出 TL082CP电位计图一:整体框图2.2 、硬件设计这次课设所用到的硬件模块有PIC16F887单片机芯片、 LCD1602液晶显示芯片、MCP8421 芯片、 TL082CP放大器、按键和电位计。硬件电路图如下图(图二所示)图二:整体硬件图3 (1)单片机模块: PIC16F877 本次课程设计所用的单片机为PIC16F877是 16F877 的升级版,主要参数与877A类似,但使用更为灵活、有的参数更加细化(如RB口的使用),而价格

5、比877A更低。 887 引脚与 877A兼容,但增加了一些功能。(2)显示模块: LCD1602 1602液晶也叫 1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者 5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义 CGRAM,显示效果也不好)。采用 4 位数据线接线方式, RD口的低四位和 LCD的高 4 位连接,节省单片机的 I/O 口。 液晶显示器用来显示时间, 星期和温度,首先要进行显示时间定位,即写入命令。

6、然后进行显示数据输入,即定初数据。VEE和 VSS都拉低, VDD 拉高电平。 RS为 0 时,写命令,为 1 时写数据; R/W为 1 时表示读, 0 时表示写;E数据使能端,下降沿送入有效。RD0 RD3 ,数据输入端,使用液晶显示器端口的高 4 位。 RD7用于背光显示 (RD7=1),RV1用于调整背光亮度,上电后要延时15ms 后,才能进行初始化。硬件连接图如下图(图三)图三:LCD1602硬件连接图4 (3)DA转换模块: MCP8421 芯片Microchip Technology lnc.的 MCP482X 器件为 2.7V-5.5V 、低功耗、地 DNL的 12 位数模转换器

7、, 具有内部带隙电压基准, 可选 2x 缓冲器输出和串行外设接口(SPI) 。本设计通过 SPI 通讯与 MCP8421 芯片通讯,将数据量转化成模拟量。(4)放大器模块: TL082CP芯片TL082CP芯片是双列 8 引脚封装。结型场效应管高阻输入, 工作电压 =+/-18V ,静态电流 =1.4mA ,输入偏置电流 =30PA ,转换速率 =16V/us,功耗=680mW,增益带宽=3MHz ,输入失调电压 =2-5mV ,工作温度 =-55-125 C,电压反馈型。本设计 DA转换后,通过 TL082CP芯片,经过一电压跟随器和一级放大输出所要的波形。DA转换模块和放大器模块硬件连接图

8、如下图( 图四) 图四: DA转换及放大器硬件连接图2.3 、软件设计本设计以 PIC16F887单片机为主控器,有数模转换电路,运算放大器等组成低频信号发生器。主要思想为:通过TMR2 定时器定时的通过SPI 通讯向 MCP8421 芯片输出数据进行 DA转换,在主循环中不断的进行AD采样,和向 LCD1602 显示模块输入数据显示所要显示所生成的波形和周期。主程序及中断的流程图如下图(图五) 。5 主程序开始AD 转换LCD 显示程序初始化TMR2 中断Wave=1输出正弦波 的点Wave=2输出三角波 的点Wave=3输出锯齿波 的点Wave=4输出方波的 点TMR2IF=0YESYES

9、YESYESNONONONO中断结束RB 口中断延时 10毫秒RB0=1Wave=4Wave=1Wave+RB1=1K=1K=0 T2CON=0b0 0000100K=1 T2CON=0b0 0000101延时 30毫秒YESYESNOYESNOYESNONO中断结束图五:程序及中断流程图主函数不断的进行AD转换以及 LCD显示,将 AD转换值赋给 PR2以调节输出波形周期, LCD显示输出为何波形,周期为多少。通过定时器二TMR2中断定时输出波形的点,调整定时器的定时时间即可改变输出波形的周期。 RB 口按键中断用于切换波形和调档。调档即调整定时器二的预分频比。6 各子程序流程图如图下图(图

10、六) 。AD 转换开始AD 转换 初始化采样延时GO=1GO=1等待ADIF=0转化结果存入 AD_RESULTPR2=AD_RE SULT返回DA 转换开始DA转换 初始化CS=0分两次 SPI 传数据给MCP8421LDAC=0LDAC=1CS=1返回LCD 初始化功能设置显示开关控 制光标、画面 位移设置清屏设置返回LCD 写数据入口写入 D3-D0延时高四位与 第四位交换写入 D7-D4延时返回LCD 显示LCD 初始化选通LCD1602写入数据显 示初始地址写入显示数 据的代码执行显示返回显示计算周期 TBCD码转换LCD 显示返回图六:个子程序流程图7 3、仿真结果如下图为方正结果

11、:方波波形图锯齿波波形图8 三角波波形图正弦波波形图9 现在以正弦波为例,显示周期调整和换挡的功能。分别为高档和低档时的波形:高档时的正弦波波形低档时的正弦波波形10 电位计调得较大电位计调得较小11 4、设计体会课程设计是培养学生综合运用所学知识, 发现, 提出, 分析和解决实际问题,锻炼实践能力的重要环节, 是对学生实际工作能力的具体训练和考察过程. 随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。 因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。本次设计的一个非常的的收获是意识到结构框架的对整个设计的重要性,设计时应该遵

12、循“先整体后隔离”和“循序渐进”的思路。“先整体后隔离”:先根据要实现的功能确定整体框架,明确那些要放在主函数中?那些要放在中断中?需要用到哪些模块?先写好程序流程图,再深入解决每个小模块,子程序。“循序渐进”:程序不能一些子就完成,因此,可分模块完成,先让程序完成较为基本的功能, 在逐一添加模块。 这样一旦出问题就能尽快的确定问题出来哪里。本次的设计遇到的很多的问题,通过问题的解决,我不断的提高自己检测问题和解决问题的能力,并从中收获颇多有所总结。以为对如何排查问题的总结:故障的排查可以从“空间”和“时间”上排查。“空间”上排查即为:把整个系统划分为几个模块, 如软件模块, 硬件模块, 其中

13、软硬件又可以因具体情况再加以细分,然后通过软件调试设置断点,和用万用表检查硬件模块来缩小范围,最终确定问题所在。“时间”上的排查即为:把要实现的结果在流程上划分为几个阶段,然后逐个排查运行到各个阶段是否与预期的情况一样,从而确定问题出来哪里。12 程序如下:#include _CONFIG(0x00F1); _CONFIG(0x3FFF); #define uchar unsigned char #define uint unsigned int #define nn 100 /*-DA转换相关宏定义-*/ #define SHDN RE2 #define CS RE1 #define LDA

14、C RE0 /*-LCD相关宏定义 -*/ #define LCD_RS RD4 #define LCD_RW RD5 #define LCD_E RD6 #define LCD_LED RD7 #define COM 0/定义命令为0 #define DATA 1/ 定义数据为1 /*-SPI 通讯相关宏定义-*/ #define SPI_WRITE(A) SSPBUF=A; while(BF=0); BUF=SSPBUF /*- 全局变量设置-*/ unsigned int X; /DA 转换的变量数字量unsigned int AD_RESULT; char BUF,N; char wave; /波形代号char k; /档次,对应两个分频比。bit K; /档次,对应两个分频比。unsigned int T; /周期char dis16=“T= . ms “; /正弦波表格,const unsigned int SIN100= 2048,2111,2173,2235,2297,2357,2416,2474,2530,2584, 2636,2685,2733,2777,2819,2857,2892,2924,2953,2978, 2999,3017,3030,3040,3046,3048,3046,3040,3030,301

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号