北邮课程设计_简易信号发生器
简易信号发生器设计课程设计

摘要波形发生器是一种常常利用的信号源,普遍地应用于电子电路、自动控制系统和教学实验等领域。
本次课程设计利用的AT89C51 单片机组成的发生器可产生锯齿波、三角波、正弦波等多种波形,波形的周期能够用程序改变,并可按照需要选择单极性输出或双极性输出,具有线路简单、结构紧凑等长处。
在本设计的基础上,加上按钮控制和LED显示器,则可通过按钮设定所需要的波形频率,并在LED上显示频率、幅值电压,波形可用示波器显示。
用AT89C51单片机采用程序设计方式组成的波形发生器,可产生方波、三角波、正弦波,再通过DA转换器DAC0832将数字信号转换成模拟信号,并通过LM324集成运放把信号放大,通过示波器将波形显示在屏幕上。
波形的周期可用程序改变,此设计具有线路简单、结构紧凑、性能优越等特点。
通过仿真测试,其性能指标达到了设计要求,均达到了课程设计的目的。
一、设计原理数字信号能够通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方式来取得所需要的波形。
AT89C51单片机本身就是一个完整的微型运算机,具有组成微型运算机的各部份部件:中央处置器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、按时器/计数器和串行通信接口等,只要将AT89C51再配置键盘及其接口、显示器及其接口、数模转换及波形输出、指示灯及其接口等四部份,即可组成所需的波形发生器,其信号发生器组成原理框图如下图所示。
图信号发生器原理框图AT89C51是整个波形发生器的核心部份,通进程序的编写和执行,产生各类各样的信号,当数字信号电路抵达转换电路,将其转换成模拟信号也就是所需要的输出波形。
并通过滤波放大电路将波形输出出来。
二、设计内容一、运用keil软件对程序进行编写,运行程序,并进行程序修改。
二、运用protues软件进行硬件电路仿真设计。
3、将程序下载到仿真单片机中,并观测输出波形。
4、对程序进行修改,再次运行仿真软件,直到输出理想的波形。
简易信号发生器课程设计

简易信号发生器课程设计一、课程目标知识目标:1. 理解信号发生器的基本原理,掌握其组成部分及功能;2. 学会使用简易信号发生器产生不同频率、不同幅度的正弦波、方波和三角波;3. 掌握信号发生器在实际应用中的使用方法,如调整频率、幅度和波形。
技能目标:1. 能够正确组装和调试简易信号发生器,具备基本的动手实践能力;2. 学会运用信号发生器进行简单的信号分析和处理,提高实际操作技能;3. 培养学生对电子电路的故障排查和解决问题的能力。
情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发其探索精神和创新意识;2. 增强学生的团队合作意识,学会在小组讨论中倾听他人意见,共同解决问题;3. 培养学生严谨、认真、负责的学习态度,养成良好的实验操作习惯。
本课程针对高年级学生,结合学科特点,注重理论知识与实践操作的相结合,旨在提高学生的动手能力、创新意识和实际应用能力。
课程设计遵循由浅入深、循序渐进的原则,使学生能够充分理解信号发生器的原理,掌握相关技能,并培养积极的情感态度价值观。
通过本课程的学习,学生将能够独立完成简易信号发生器的组装、调试和应用,为后续电子技术课程打下坚实基础。
二、教学内容1. 信号发生器的基本原理及组成部分- 介绍信号发生器的功能、分类及工作原理;- 分析简易信号发生器的电路结构,包括振荡器、放大器、波形整形电路等。
2. 简易信号发生器的组装与调试- 指导学生根据电路图正确组装简易信号发生器;- 教授调试方法,使学生能够调整信号发生器输出不同频率、不同幅度的正弦波、方波和三角波。
3. 信号发生器的应用- 介绍信号发生器在电子实验、信号分析和故障诊断等方面的应用;- 演示如何使用简易信号发生器进行信号处理和实验操作。
4. 教学内容安排与进度- 第一章节:信号发生器的基本原理及组成部分(2课时)- 第二节点:简易信号发生器的组装与调试(4课时)- 第三节点:信号发生器的应用(2课时)5. 教材章节及内容列举- 教材第四章:振荡器原理及设计;- 教材第五章:放大器原理及设计;- 教材第六章:波形整形电路及信号发生器应用。
课设报告——简易信号发生器

简易信号发生器设计摘要随着电子技术的飞快发展,单片机也应用得越来越广泛,基于单片机的智能仪器的设计技术不断成熟。
单片机构成的仪器具有高可靠性,高性价比。
单利用单片机采用程序设计方法来产生波形,线路相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强等优点,而且还能对波形进行细微的调整,改良波形,易于程序控制。
只要对电路稍加修改,调整程序,就能实现功能的升级。
本系统利用单片机AT89C51采用程序设计方法产生正弦波、三角波、方波、锯齿波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,并通过按键来控制四种波形的类型选择。
本次设计主要由信号发生模块、数模转换模块和仿真模块。
关键词:单片机;数模转换;液晶显示屏目录第1章概述 (1)第2章系统总体方案选择 (1)2.1 系统硬件设计图 (1)2.2系统软件设计 (1)第3章各单元硬件设计及工作原理 (2)3.1单片机最小系统的设计 (2)3.2 函数信号发生器的设计 (2)3.2.1DAC0832芯片工作方式的选择 (2)3.2.2DAC0832芯片外围电路的设计 (2)3.3LCD12864显示屏 (3)3.3.1LCD12864与LCD1602的区别 (3)3.3.2LCD12864显示屏原理及其硬件设计 (3)第4章软件设计与说明 (3)4.1软件设计思路 (3)4.2波形数据输出程序设计 (4)4.3LCD12864显示程序设计 (5)第5章调试结果及其说明与使用说明 (6)5.1调试过程中遇到的问题 (6)5.1.1LCD12864显示问题 (6)5.1.2幅值调节问题 (6)5.2使用说明 (6)第6章总结 (7)第7章参考文献 (8)附录 (9)第1章概述在本系统中,设计的要求为产生三角波、正弦波、方波信号,要求频率和幅值可调。
并且显示内容可以在LCD显示出来,在本系统中,主控为AT89C51单片机,D/A 转换芯片采用的为ADC0832,LCD显示屏采用LCD12864,本系统设置有三个控制按键,分别为频率转换按键、波形切换按键、幅值切换按键,通过这三个按键,可以对输出的波形进行控制,波形幅值为0—5V,分为5个幅值挡位,频率范围为40Hz—400Hz,分为50个频率挡位。
北邮课程设计-简易信号发生器

课程设计:简易数字信号发生器题目学院:电子工程学院专业:光电信息科学与工程班级:一、课程设计要求以msp430单片机为核心,通过一个DA (数字模拟)转换芯片,将单片机输出的方波、三角波、正弦波(数字信号)转换为模拟信号输出。
提供芯片:msp430G2553/msp430f5529 DAC0832、REF102、LM384、OP07。
1. 基本要求(1)供电电压VDD= 5V~12V ;(2)信号频率:5~500Hz(可调);(3)输出信号电压可调范围:>0.5*VDD,直流偏移可调:>0.5*VDD;(4)完成输出信号切换;(5)方波占空比:平滑可调20%~80%;(6)通带内正弦波峰峰值稳定度误差:<± 10%负载1K);(7)提交设计报告。
2. 发挥部分(1)信号频率:5~2000Hz(可调);(2)多通道同时输出同频正弦波,方波,三角波。
(频率可调);(3)输出频率与幅度可调的正弦波与余弦波,相位误差w土度;(4)自由发挥。
二、系统硬件和软件框图1、系统硬件框图图1系统硬件框图2、软件框图图2系统软件框图各函数的作用和相互关系:在主函数中首先对系统的时钟、I/O 口、定时器进行了初始化。
初始化完毕,开启总中断。
接着进入循环等待定时器中断子程序的执行。
按键中断函数主要对三个菜单按键的动作进行处理。
这三个菜单按键可以实现波形的切换,频率的加减,信号的使能输出。
在按键中断函数中修改的信号频率大小和波形的种类这两个参数会被主函数和定时器中断函数调用。
三、硬件系统设计1、方案论证与选择利用DAC0832的11号管脚做为信号输出端,8号管脚输入基准电压,将其输出的电流信号再转换为电压信号进行检测调试。
利用DAC0832的8号管脚做为信号输出端,11号管脚输入基准电压,其输出直接为电压信号,可以直接利用示波器进行检测调试。
综上,方案二省去了电流信号转电压信号的过程,实行起来更加简便。
所以最终采用方案二。
北邮电子电路实验函数信号发生器实验报告

北邮电⼦电路实验函数信号发⽣器实验报告北京邮电⼤学电⼦电路综合设计实验实验报告实验题⽬:函数信号发⽣器院系:信息与通信⼯程学院班级:姓名:学号:班内序号:⼀、课题名称:函数信号发⽣器的设计⼆、摘要:⽅波-三⾓波产⽣电路主要有运放组成,其中由施密特触发器多谐振荡器产⽣⽅波,积分电路将⽅波转化为三⾓波,差分电路实现三⾓波-正弦波的变换。
该电路振荡频率由第⼀个电位器调节,输出⽅波幅度的⼤⼩由稳压管的稳压值决定;正弦波幅度和电路的对称性分别由后两个电位器调节。
关键词:⽅波三⾓波正弦波频率可调幅度三、设计任务要求:1.基本要求:设计制作⼀个⽅波-三⾓波-正弦波信号发⽣器,供电电源为±12V。
1)输出频率能在1-10KHZ范围内连续可调;2)⽅波输出电压Uopp=12V(误差<20%),上升、下降沿⼩于10us;3)三⾓波输出信号电压Uopp=8V(误差<20%);4)正弦波信号输出电压Uopp≥1V,⽆明显失真。
2.提⾼要求:1)正弦波、三⾓波和⽅波的输出信号的峰峰值Uopp均在1~10V范围内连续可调;2)将输出⽅波改为占空⽐可调的矩形波,占空⽐可调范围30%--70%四、设计思路1.结构框图实验设计函数发⽣器实现⽅波、三⾓波和正弦波的输出,其可采⽤电路图有多种。
此次实验采⽤迟滞⽐较器⽣成⽅波,RC积分器⽣成三⾓波,差分放⼤器⽣成正弦波。
除保证良好波形输出外,还须实现频率、幅度、占空⽐的调节,即须在基本电路基础上进⾏改良。
由⽐较器与积分器组成的⽅波三⾓波发⽣器,⽐较器输出的⽅波信号经积分器⽣成三⾓波,再经由差分放⼤器⽣成正弦波信号。
其中⽅波三⾓波⽣成电路为基本电路,添加电位器调节使其频率幅度改变;正弦波⽣成电路采⽤差分放⼤器,由于差分放⼤电路具有⼯作点稳定、输⼊阻抗⾼、抗⼲扰能⼒较强等优点,特别是作为直流放⼤器时,可以有效地抑制零点漂移,因此可将频率很低的三⾓波变换成正弦波。
2.系统的组成框图五、分块电路与总体电路的设计1.⽅波—三⾓波产⽣电路如图所⽰为⽅波—三⾓波产⽣电路,由于采⽤了运算放⼤器组成的积分电路,可得到⽐较理想的⽅波和三⾓波。
简易信号发生器

湖南工学院课程设计说明书课题名称:简易信号发生器设计专业名称:电气工程及其自动化学生班级:学生姓名:学生学号:指导教师:课程设计任务书简易信号发生器设计(一)设计目的1、掌握信号发生器的设计方法和测试技术。
2、了解单片函数发生器IC8038的工作原理和应用。
3、学会安装和调试分立元件与集成电路组成的多级电子电路小系统。
(二)设计技术指标与要求1、设计要求(1)电路能输出正弦波、方波和三角波等三种波形;(2)输出信号的频率要求可调;(3)拟定测试方案和设计步骤;(4)根据性能指标,计算元件参数,选好元件,设计电路并画出电路图;(5)在面包板上或万能板或PCB板上安装电路;(6)测量输出信号的幅度和频率;(7)撰写设计报告。
2、技术指标频率范围:100Hz~1KHz 1KHz~10KHz;输出电压:方波V P-P≤24V,三角波V P-P=6V,正弦波V P-P=1V;方波t r小于1uS。
(三)设计提示1、方案提示:(1)设计方案可先产生正弦波,然后通过整形电路将正弦波变成方波,再由积分电路将方波变成三角波;也可先产生三角波-方波,再将三角波变成正弦波。
(2)也可用单片集成芯片IC8038实现,采用这种方案时要求幅度可调。
2、设计用仪器设备:示波器,交流毫伏表,数字万用表,低频信号发生器,实验面包板或万能板,智能电工实验台。
3、设计用主要器件:(1)双运放NE5532(或747) 1只(或741 2只)、差分管3DG100 4个、电阻电容若干;(2)IC8038、数字电位器、电阻电容若干。
4、参考书:《电子线路设计·实验·测试》谢自美主编华中科技大学出版社《模拟电子技术基础》康华光主编高等教育出版社《模拟电子技术》胡宴如主编高等教育出版社(四)设计报告要求1、选定设计方案;2、拟出设计步骤,画出设计电路,分析并计算主要元件参数值;3、列出测试数据表格;4、调试总结,并写出设计报告。
课设报告——简易信号发生器

简易信号发生器设计摘要随着电子技术的飞快发展,单片机也应用得越来越广泛,基于单片机的智能仪器的设计技术不断成熟。
单片机构成的仪器具有高可靠性,高性价比。
单利用单片机采用程序设计方法来产生波形,线路相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强等优点,而且还能对波形进行细微的调整,改良波形,易于程序控制。
只要对电路稍加修改,调整程序,就能实现功能的升级。
本系统利用单片机AT89C51采用程序设计方法产生正弦波、三角波、方波、锯齿波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,并通过按键来控制四种波形的类型选择。
本次设计主要由信号发生模块、数模转换模块和仿真模块。
关键词:单片机;数模转换;液晶显示屏目录第1章概述 (1)第2章系统总体方案选择 (1)2.1 系统硬件设计图 (1)2.2 系统软件设计 (1)第3章各单元硬件设计及工作原理 (2)3.1 单片机最小系统的设计 (2)3.2 函数信号发生器的设计 (2)3.2.1 DAC0832芯片工作方式的选择 (2)3.2.2 DAC0832芯片外围电路的设计 (2)3.3 LCD12864显示屏 (3)3.3.1 LCD12864与LCD1602的区别 (3)3.3.2 LCD12864显示屏原理及其硬件设计 (3)第4章软件设计与说明 (3)4.1 软件设计思路 (3)4.2 波形数据输出程序设计 (4)4.3 LCD12864显示程序设计 (5)第5章调试结果及其说明与使用说明 (6)5.1调试过程中遇到的问题 (6)5.1.1 LCD12864显示问题 (6)5.1.2 幅值调节问题 (6)5.2使用说明 (6)第6章总结 (7)第7章参考文献 (8)附录 (9)概述在本系统中,设计的要求为产生三角波、正弦波、方波信号,要求频率和幅值可调。
并且显示内容可以在LCD 显示出来,在本系统中,主控为AT89C51单片机,D/A 转换芯片采用的为ADC0832,LCD 显示屏采用LCD12864,本系统设置有三个控制按键,分别为频率转换按键、波形切换按键、幅值切换按键,通过这三个按键,可以对输出的波形进行控制,波形幅值为0—5V ,分为5个幅值挡位,频率范围为40Hz —400Hz ,分为50个频率挡位。
简易信号发生器课程设计

第一章方案的选择1.1 方案一:由文氏电桥产生正弦振荡,然后通过比较器得到方波,方波积分可得三角波。
这一方案为一开环电路,结构简单,产生的正弦波和方波的波形失真较小。
但是对于三角波的产生则有一定的麻烦。
幅度稳定性难以达到要求。
而且通过仿真实验会发现积分器极易产生失调。
1.2 方案二:利用ICL8038芯片构成8038集成函数发生器。
8038集成函数发生器是一种多用途的波形发生器,可以用来产生正弦波、方波、三角波和锯齿波,其振荡频率可通过外加的直流电压进行调节,所以是压控集成信号产生器。
由于外接电容C的充、放电电流由两个电流源控制,所以电的变化与时间成线形关系,从而可以获得理想的三角波输出。
容C两端电压uc8038电路中含有正弦波变换器,故可以直接将三角波变成正弦波输出。
另外还可以将三角波通过触发器变成方波输出。
该方案的特点是十分明显的:⑴线性良好、稳定性好;⑵频率易调,在几个数量级的频带范围内,可以方便地连续地改变频率,而且频率改变时,幅度恒定不变;⑶不存在如文氏电桥那样的过渡过程,接通电源后会立即产生稳定的波形;⑷三角波和方波在半周期内是时间的线性函数,易于变换其他波形。
综合上述分析,我们采用了第二种方案来产生信号。
第二章基本原理2.1 函数发生器的组成函数发生器一般是指能自动产生正弦波、方波、三角波的电压波形的电路或者仪器。
电路形式可以采用由运放及分离元件构成;也可以采用单片集成函数发生器。
根据用途不同,有产生三种或多种波形的函数发生器,本课题介绍方波、三角波、正弦波函数发生器的方法。
函数信号发生器是是由基础的非正弦信号发生电路和正弦波形发生电路组合而成。
下面我们将分别对各个波形的发生进行分析,从而达到在合成电路时使电路更加合理。
2.2 RC 桥式正弦波振荡器(文氏电桥振荡器)图2-1为RC 桥式正弦波振荡器。
其中RC 串、并联电路构成正反馈支路,同时兼作选频网络,R 1、R 2、R W 及二极管等元件构成负反馈和稳幅环节。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计题目:简易数字信号发生器学院:电子工程学院专业:光电信息科学与工程班级:一、课程设计要求以msp430单片机为核心,通过一个DA(数字模拟)转换芯片,将单片机输出的方波、三角波、正弦波(数字信号)转换为模拟信号输出。
提供芯片:msp430G2553/msp430f5529、DAC0832、REF102、LM384、OP07。
1.基本要求(1)供电电压 VDD= 5V~12V;(2)信号频率:5~500Hz(可调);(3)输出信号电压可调范围:≥0.5*VDD,直流偏移可调:≥0.5*VDD;(4)完成输出信号切换;(5)方波占空比:平滑可调20%~80%;(6)通带内正弦波峰峰值稳定度误差:≤±10%(负载1K);(7)提交设计报告。
2.发挥部分(1)信号频率:5~2000Hz(可调);(2)多通道同时输出同频正弦波,方波,三角波。
(频率可调);(3)输出频率与幅度可调的正弦波与余弦波,相位误差≤±5度;(4)自由发挥。
二、系统硬件和软件框图1、系统硬件框图图1 系统硬件框图2、软件框图图2 系统软件框图各函数的作用和相互关系:在主函数中首先对系统的时钟、I/O口、定时器进行了初始化。
初始化完毕,开启总中断。
接着进入循环等待定时器中断子程序的执行。
按键中断函数主要对三个菜单按键的动作进行处理。
这三个菜单按键可以实现波形的切换,频率的加减,信号的使能输出。
在按键中断函数中修改的信号频率大小和波形的种类这两个参数会被主函数和定时器中断函数调用。
三、硬件系统设计1、方案论证与选择方案一:利用DAC0832的11号管脚做为信号输出端,8号管脚输入基准电压,将其输出的电流信号再转换为电压信号进行检测调试。
方案二:利用DAC0832的8号管脚做为信号输出端,11号管脚输入基准电压,其输出直接为电压信号,可以直接利用示波器进行检测调试。
综上,方案二省去了电流信号转电压信号的过程,实行起来更加简便。
所以最终采用方案二。
2、硬件电路系统设计系统主控部分采用MSP430G2452 LaunchPad开发板;外围电路主要包括DAC 模块、放大电路、电源及按键模块。
(1)DAC模块:DAC模块采用的是DAC0832。
DAC0832 是8分辨率的D/A 转换集成芯片。
与微处理器完全兼容。
这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
其主要特性如下:* 分辨率为8位;* 电流稳定时间1us;* 可单缓冲、双缓冲或直接数字输入;* 只需在满量程下调整其线性度;* 单一电源供电(+5V~+15V);* 低功耗,20mW其引脚功能如下:* D0~D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);* ILE:数据锁存允许控制信号输入线,高电平有效;* CS:片选信号输入线(选通数据锁存器),低电平有效;* WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。
由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;* XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;* WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。
由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。
* IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;* IOUT2:电流输出端2,其值与IOUT1值之和为一常数;* Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;* Vcc:电源输入端,Vcc的范围为+5V~+15V;* VREF:基准电压输入线,VREF的范围为-10V~+10V;* AGND:模拟信号地;* DGND:数字信号地。
DAC电路原理图如下:(2)放大模块:放大电路模块只要采用的是LM358运算放大器。
LM358内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式。
其主要特性如下:* 内部频率补偿* 直流电压增益高(约100dB)* 单位增益频带宽(约1MHz)* 源电压范围宽:单电源(3—30V);双电源(±1.5一±15V)* 低功耗电流,适合于电池供电;低输入偏流* 低输入失调电压和失调电流* 共模输入电压范围宽,包括接地* 差模输入电压范围宽,等于电源电压范围我们采用的是单电源同相放大。
同时为了给信号加入偏置电压,采用了加法器的设计。
LM358引脚图及引脚功能如图所示。
放大电路原理图如下:(3)电源模块:实验中用到的电压主要有12V,5V,3.5V①12V:12V电压主要是给DAC0832,REF102以及LM358提供工作电压,其来源是由稳压电源直接产生的。
②5V:5V电压主要是做为基准电压源,其产生来源是REF102与运放OP07搭建产生的。
其电路图如图所示③3.5V:其作用主要是给DAC0832的19管脚置于高电平。
其来源是msp430G2553的VCC管脚产生的。
3、总电路原理图4、焊接的万能板四、 软件系统设计1、程序主流程如图8所示为程序主流程图:2、程序设计系统程序主要分为以下几个模块:初始化程序、主程序、输出程序和中断函数。
2.1初始化程序初始化程序主要完成的引脚的配置void IO_init(void){P1DIR=0xf0;P1REN |=BIT1+BIT2+BIT3;P1IE |=0x0E;P1IES|=0x0E;P2DIR=0x0f; //P2的低四位作为输出}2.2主程序主程序要负责总体程序管理功能以及AD使能。
int main(void){// Stop watchdog timer to prevent time out resetWDTCTL = WDTPW + WDTHOLD;IO_init();DCO_init();ADC_init();_enable_interrupts();Timer_A0_init();while(1){ADC10CTL0 |= ENC + ADC10SC;}//return 0;}2.3 按键中断程序主要完成按键的读取,以及相应的输出量赋值。
#pragma vector = PORT1_VECTOR__interrupt void PORT1_ISR(void){//-----启用Port1事件检测函数-----P1_IODect(); //检测通过,则会调用事件处理函数P1IFG=0; //退出中断前必须手动清除IO口中断标志}void P1_IODect(void){unsigned int Push_Key=0;//-----排除输出IO的干扰后,锁定唯一被触发的中断标志位-----Push_Key=P1IFG&(~P1DIR);//-----延时一段时间,避开机械抖动区域-----__delay_cycles(10000); //消抖延时//----判断按键状态是否与延时前一致-----if((P1IN&Push_Key)==0) //如果该次按键确实有效{//----判断具体哪个IO被按下,调用该IO的事件处理函数-----switch(Push_Key){// case BIT0: P10_Onclick(); break;case BIT1:{WaveSelect+=5;tt=1;switch(WaveSelect){case 5: break;case 10: break;case 15: break;// case 20: break;default: WaveSelect=5;break;}}; break;case BIT2:{if(tt==1){num=num+1;Tccr0=keynum[num];}if(num==100)num=1;} break;case BIT3:{if(tt==1){num=num-1;Tccr0=keynum[num];}if(num==0)num=99;}break;default: break; //任何情况下均加上default}}}2.4输出程序使用TimerA0计数器进行输出使能#pragma vector =TIMER0_A0_VECTOR__interrupt void Timer_A0(void) //CCIFG中断被响应后,该标志位自动清零{if(WaveSelect==5){if(j<200){write_dac(sindata[j]) ; //正弦波产生//j++;j+=4;}elsej=0;TA0CCR0 =Tccr0;}if(WaveSelect==10){if(ttcout==0){if(tcoutm<200){write_dac(tcoutm) ; //三角波产生上升段tcoutm = tcoutm+8;}elsettcout=1;TA0CCR0 =Tccr0;}if(ttcout==1){if(tcoutm>0){write_dac(tcoutm) ; //三角波产生下降段tcoutm = tcoutm-8;}elsettcout=0;TA0CCR0 =Tccr0;}}if(WaveSelect==15){if(ttcout==0){if(tcoutn<h_time){write_dac(high) ; //方波产生上升段tcoutn+=4;}elsettcout=1;TA0CCR0 =Tccr0;}if(ttcout==1){if(tcoutn<200){write_dac(low) ; //方波产生下降段tcoutn+=4;}elsetcoutn=0;ttcout=0;TA0CCR0 =Tccr0;}}}3、各模块之间关系五、实现功能说明1、实现的基本要求(1)供电电压 VDD= 5V~12V;(2)信号频率:5~500Hz(可调);(3)输出信号电压可调范围:≥0.5*VDD,直流偏移可调:≥0.5*VDD;(4)完成输出信号切换;(5)方波占空比:平滑可调20%~80%;(6)通带内正弦波峰峰值稳定度误差:≤±10%(负载1K);2、实现的提高要求(1)信号频率:5~2000Hz(可调);(2)自由发挥,实现了频率的平滑可调。
六、程序调试与运行结果1、切换波形产生的正弦波,三角波,方波,锯齿波。
如图:2、频率范围可调输出频率范围5~2000Hz可调。