版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1学学 号:号: 51湖南文理学院机械工程学院机械工程学院课课 程程 设设 计计题题 目目基于基于 AT89C52 单片机的单片机的简易函数信号发生器设计简易函数信号发生器设计专专 业业机械电子工程机械电子工程班班 级级机电机电 08101 班班姓姓 名名谭鹏辉谭鹏辉指导教师指导教师陈卫国陈卫国2011 年12 月07日2课程设计任务书课程设计任务书姓 名谭鹏辉学 号51班 级机电 08101 班课程名称单片机课程设计课程性质必修设计时间2011 年 11 月 28 日 2011 年 12 月 9 日设计名称基于 AT89C52 单片机的简易函数信号发生器设计设计要求1)以单片机为核心,经过
2、D/A 转换和放大电路的处理,最后输出信号;2)要求能输出正弦波、三角波、锯齿波和方波四种信号;3)输出信号可以通过按键来改变4)完成系统电路设计;5)完成系统软件设计;6)完成系统 Proteus 下的仿真。5)完成课程设计报告。 计划与进度时间:二周1)方案设计 2 天2)电路设计 2 天3)软件设计 3 天 4)软、硬件联调 2 天 5)系统仿真 2 天6)答辩 1 天7)完成报告 2 天任课教师意 见年年 月月 日日教研室主任签 名年年 月月 日日说明平时考勤:20% 设计:30% 仿真:20% 答辩:10%设计报告:20% 共计 100 分。3 目目 录录目 录 .摘 要 .4第一章
3、 绪论 .51.1 单片机概述 .51.2 信号发生器的分类 .51.3 研究内容 .5第二章 函数信号发生器设计 .62.1课程设计的目的.62.2 课程设计要求 .6第三章 设计方案 .73.1 系统主要功能 .73.2 系统硬件构成及功能 .7 2.2.1 AT89C52 单片机及其说明 .7 3.2.2 资源分配 .10 3.2.3 D/A 转换模件部件 .11 3.2.4 外部控制模块部件 74LS22 .12 3.2.5 放大部分.123.3 系统软件设计及接口电路 .13 3.3.1 信号频率数据采集.13 3.3.2 正弦波产生程序.13 3.3.3 三角波产生程序.14 3.
4、3.4 方波产生程序 .14 3.3.5 锯齿波产生程序.15 3. 3. 6 信号放大模块设计.15 3. 3. 7 数模转换模块设计.16第四章 仿真图及及结果分析.17 4.1 波形发生器的调试与测试.17 4.2 仿真结果图.18第五章 总结与展望.20参考文献.21附录一 元器件清单.22附录二 程序清单.23附录三 电路原理图.304摘要摘要本次作品是一个基于单片机设计的函数信号发生器。函数信号发生器的设计方法有多种,利用单片机设计的函数信号发生器具有编程灵活,功能更以扩充等实际的优点。利用单片机设计的函数信号发生器能够产生正弦波,锯齿波,三角波,方波,并实现对频率和占空比的调节,
5、以及液晶屏显示波形名称和波形频率,波形的切换和频率的调节以及占空比的改变都可以用按键实现。在编程语言上,我们选择自身比较熟悉的C 语言,这样在后期波形的调试及与硬件衔接方面更容易发挥出自身优势。经过设计及后期长时间的调试,设计的所有功能均已实现。关键词:单片机,函数发生器,液晶 LCD 5 第一章第一章 绪论绪论1.1 单片机概述随着大规模集成电路技术的发展,中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、(I/O)接口、定时器/计数器和串行通信接口,以及其他一些计算机外围电路等均可集成在一块芯片上构成单片微型计算机,简称为单片机。单片机具有体积小、成本低,性能稳定、使用
6、寿命长等特点。其最明显的优势就是可以嵌入到各种仪器、设备中,这是其他计算机和网络都无法做到的9,10。1.2 信号发生器的分类信号发生器应用广泛,种类繁多,性能各异,分类也不尽一致。按照频率范围分类可以分为:超低频信号发生器、低频信号发生器、视频信号发生器、高频波形发生器、甚高频波形发生器和超高频信号发生器。按照输出波形分类可以分为:正弦信号发生器和非正弦信号发生器,非正弦信号发生器又包括:脉冲信号发生器,函数信号发生器、扫频信号发生器、数字序列波形发生器、图形信号发生器、噪声信号发生器等。按照信号发生器性能指标可以分为一般信号发生器和标准信号发生器。前者指对输出信号的频率、幅度的准确度和稳定
7、度以及波形失真等要求不高的一类信号发生器。后者是指其输出信号的频率、幅度、调制系数等在一定范围内连续可调,并且读数准确、稳定、屏蔽良好的中、高档信号发生器。1.3 研究内容本文是做基于单片机的信号发生器的设计,将采用编程的方法来实现三角波、锯齿波、矩形波、正弦波的发生。根据设计的要求,对各种波形的频率和幅度进行程序的编写,并将所写程序装入单片机的程序存储器中。在程序运行中,当接收到来自外界的命令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出6第二章:函数信号发生器的设计第二章:函数信号发生器的设计设计一个基于单片
8、机的函数信号发生器,该函数信号发生器可以输出四种波形,有正弦波,锯齿波,三角波,方波。在此基础上进一步实现对波形频率和占空比的调节,并用液晶屏分两行显示波形名称和波形频率。2.1 课程设计的目的:1、巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决实际课题设计的能力。2、培养针对课题需要,选择和查阅有关手册、图表及文献资料的能力,提高组成系统、编程、调试的动脑动手能力。3、通过对课题设计方案的分析、选择、比较,熟悉运用单片机系统开发、软硬件设计的方法内容及步骤。4、掌握 DAC0832,LM324,74LS22 的接口电路,及使用方法。5、熟悉掌握函数信号发生器的工作原理。2
9、.2 课程设计要求:1、熟悉组成系统中的实验模块原理,画出实验原理图。2、 写出完整的设计任务书:课题的名称、系统的功能、硬件原理图、软件框图、元件清单、程序清单、参考资料。3、输出几种波形,实现对频率和占空比的调节,以 1HZ 作为步进进行调节。7第三章:设计方案第三章:设计方案3.1 系统主要功能该函数信号发生器可以输出四种波形,有正弦波,锯齿波,三角波,方波。在此基础上进一步实现对波形频率和占空比的调节,并用液晶屏分两行显示波形名称和波形频率。3.2 系统硬件构成及功能函数信号发生器的设计总体框图如图所示,主要有单片机 AT89C52,电源,键盘模块,LCD1602 显示模块构成。按案件
10、模块:由 5 个复位开关与 74LS21 组成的系统通过对单片机传输中断信号来实现波形切换及频率和占空比的调节。显示模块:用 LCD1602,分行显示波形类型和波形频率的显示。电源模块:电源模块有 220V 市变电压经变压,整流,稳压得到+ -5V, + -12V 的电压,维持系统正常工作。系统的总体框图如图 1 所示:图 1 系统总体框图 3.2.1 AT89C52 单片机及其说明数数据据存存储储器器AT89C52 有 256 个字节的内部 RAM,80H-FFH 高 128 个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高 128 字节的 RAM 和特殊功能寄存器的地址是相同的,但物
11、理上它们是分开的。 当一条指令访问 7FH 以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高 128 字节 RAM 还是访问特殊功能寄存器。如果指令是直接寻址方式则为访问特殊功能键盘显示控制器显示模块键盘模块波形输出模块电 源源主控器AT89C528寄存器。 例如,下面的直接寻址指令访问特殊功能寄存器0A0H(即 P2 口)地址单元。 MOV 0A0H,#data 间接寻址指令访问高 128 字节 RAM,例如,下面的间接寻址指令中, R0 的内容为 0A0H,则访问数据字节地址为 0A0H, 而不是 P2 口(0A0H) 。 MOV R0,#data 堆栈操作也是
12、间接寻址方式,所以,高128 位数据 RAM 亦可作为堆栈区使用。 定时器 0 和定时器 1: 3.2.2 资源分配晶振采用 12MHZ。P1 口的 P1.0-P1.4 分别与四个按键连接,分别控制波形切换、频率加、频率减,占空比加,占空比减。P2 口与 DAC0832 的 D0-D7 数据输入端相连。P3 口用来控制 DAC0832 的输入寄存器选择信号 CS。3.2.3 D/A 转换模块部件DAC0832 芯片原理管脚功能介绍(如图 6 所示)Vcc20Iout111lsbDI07Iout212DI16DI25Rfb9DI34DI416Vref8DI515DI614msbDI713ILE1
13、9WR218CS1WR12Xfer17U2DAC0832图 3 DAC0832 管脚图DI7DI0:8 位的数据输入端,DI7 为最高位。ILE:数据锁存允许控制信号输入线,高电平有效。CS:选片信号输入线(选通数据锁存器),低电平有效。WR1:数据锁存器写选选通输入线,负脉冲有效,由 ILE、CS、WR1 的逻辑组合产生 LE1,当 LE1 为高电平时,数据锁存器状态随输入数据线变化,LE1 的负跳变时将输入数据锁存。XFER:数据传输控制信号输入线,低电平有效,负脉冲有效。9WR2:DAC 寄存器选通输入线,负脉冲有效,由 WR2、XFER 的逻辑组合产生LE2,当 LE2 为高电平时,D
14、AC 寄存器的输出随寄存器的输入而变化,LE2 的负跳变时将数据锁存器的内容打入 DAC 寄存器并开始 D/A 转换。IOUT1:模拟电流输出端 1,当 DAC 寄存器中数据全为 1 时,输出电流最大,当 DAC 寄存器中数据全为 0 时,输出电流为 0。IOUT2:模拟电流输出端 2, IOUT2 与 IOUT1 的和为一个常数,即IOUT1IOUT2常数。RFB:反馈电阻引出端,DAC0832 内部已经有反馈电阻,所以 RFB 端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。VREF:参考电压输入端,此端可接一个正电压,也可接一个负电压,它
15、决定 0至 255 的数字量转化出来的模拟量电压值的幅度,VREF 范围为(+10-10)V。VREF 端与 D/A 内部 T 形电阻网络相连。Vcc:芯片供电电压,范围为(+5+15)V。AGND:模拟量地,即模拟电路接地端。DGND:数字量地。3.2.4 外部控制模块部件 74LS22图 474LS22 为四输入双与门A1,B1,C1,D1为第一个与门的输入,Y1为第一个与门的输出。A2,B2,C2,D2为第一个与门的输入,Y2为第一个与门的输出。在此系统中用来给单片机提供中断信号。3.2.5 放大部分 LM32410LM324 引脚图(管脚图) 图 5 LM324 引脚图简介: LM32
16、4 系列器件为价格便宜的带有真差动输入的四运算放大器。与单电源应用场合的标准运算放大器相比,它们有一些显著优点。该四放大器可以工作在低到 3.0 伏或者高到 32 伏的电源下,静态电流为 MC1741 的静态电流的五分之一。共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。它有 5 个引出脚,其中“+”、 “-”为两个信号输入端, “V+”、 “V-”为正、负电源端, “Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端 Vo 的信号与该输入端的位相反;Vi+(+)为同相输入端,表示运放输出端 Vo 的信号与该输入端的相位相同。3.3 系统的软
17、件设计及接口电路3.3.1 信号频率数据采集本程序通过外部中断,接收减频或加频按键,单片机内部对接受的值经过运算得出波形的输出延时,从而产生频率的改变。电路较为简单,成本较低。3.3.2 正弦波产生程序输入正弦波的采样点,计算出 256 个(一个周期内)正弦波信号值。然后通过输出的两点间的延时来实现调频。依次循环输出,可得出正弦波。采点值放在 table2中,程序如下:void sin()/正弦波unsigned int i;for(i=0;i256;i+)11DAC0832=table2i;delay(pinlv/256);3.3.3 三角波产生程序设个自变量 i 让它不断地自加 1,直到加
18、到 255 时,t=i,对 t 进行不断地自减 1直到减到 t=0,然后再不断地重复上述过程产生三角波。程序如下:void tran()/三角波unsigned char i;for(i=0;i0;i-)DAC0832=i;delay(pinlv/64);3.3.4 方波产生程序设个自变量 i=0 使之延时一段时间,再另 i=255 时在延时与 i=0 相同的时间,然后再重复上述过程。程序如下:12void fang()/方波DAC0832=0;delay(pinlv/2);DAC0832=0 xff;delay(pinlv/2);3.3.5 锯齿波产生程序锯齿波中的斜线用一个个小台阶来逼近,
19、在一个周期内从最小值开始逐步递增,当达到最大值后又回到最小值,如此循环,当台阶间隔很小时,波形基本上近似于直线。适当选择循环的时间,可以得到不同的周期锯齿波。锯齿波发生原理与方波类似,只是高低两个时延的常数不同,所以用延时法,来产生锯齿波,设个自变量 i 让它不断地自加 1,直到叫到 255,DAC0832 可以又自动归 0,然后再不断地重复上述过程。程序如下:void jvchi()/锯齿波unsigned char i;for(i=0;i255;i+)DAC0832=i;delay(pinlv/256);133.3.6信号放大模块设计从单片机中输出的数字信号经过 DAC0832 转换后,由
20、于信号的幅值比较小,所以需要放大。采用常规的放大方式,采用两片运放,实现两级放大,设计的电路如图 6:图 6 图 6 放大电路接口3. 3. 7数模转换模块设计本设计模数转换采用常见的芯片:DAC0832,本设计采用直通方式进行模数转换。为了简洁起见,在仿真图中采用网络节点的方式进行连线,从单片机 P0 口输出的数据直接连接到模数芯片 DAC0832 的数据口。如图: 图 7 DA 转换接口电路 14 第四章第四章 仿真图及结果分析仿真图及结果分析 4.1 波形发生器的调试与测试本系统是在 protues 下仿真,使用 Keil C 编程。从而实现其设计及仿真。在测试本系统是采用的是将设置的数
21、值与示波器所测值进行对比,进而可以知道本系统的性能。频率测试数据: 设定频率(HZ)示波器测试频率(HZ) 相对误差%3.93.961.57.87.931.2815.6316.133.19154.2 仿真结果图正弦波仿真图 图 8 正弦波图三角波仿真图16 图 9 三角波图锯齿波仿真图 图 10 锯齿波图方波仿真图17 图 11 方波图第五章第五章 总结总结与展望与展望本次的设计中利用 AT89C52 和 DAC0832 以及放大器完成电路的设计,用开关来控制各种波形的发生及转换,用单片机输出后,经过模数转换器生成波形,最终可以通过示波器观察。在这次的软件设计中,程序设计采用的是汇编语言。汇编
22、语言具有速度快,可以直接对硬件进行操作的优点,它可以极好的发挥硬件的功能。但是汇编语言也存在编写的代码非常难懂,不好维护,很容易产生 bug,难于调试的缺点。因此,在大型程序的设计中,多采用 C 语言进行程序编译。C 语言简洁高效,是最贴近硬件的高级编程语言,经过多年的发展,现在已成熟为专业水平的高级语言。而且,现在单片机产品推出时纷纷配套了 C 语言编译器,应用广泛。不过就本次课程设计来说,汇编语言还是适用的。由于真正意义上的程序设计还不多,因此还不是很得心应手,所以在设计中遇到一些问题和一些难点。比如:在程序设计中如何实现程序结构的最优化,以达到较高的质量。这是以后设计中要注意的问题。 通
23、过这次课程设计,我进一步了解了波形发生器的原理,在实际动手操作过程中,使我接触了许多我以前没接触过的元件,而且重新温习了刚学不久的汇编语言,使我学得了许多知识,使我获益匪浅。这次课程设计,使我的动手能力得到了很大的提高,更使我们懂得理论知识的重要性,没有理论的指导一切实际行动都是盲目的,且实际操作是我们得到的理论知识得到验证,更能增加对理论知识的理解。18参考文献1 程全.基于 AT89C52 实现的多种波形发生器的设计J.周口师范学院学报,2005.22(5):5758.2 周明德.微型计算机系统原理及应用M.北京:清华大学出版社,2002.341364.3 刘乐善.微型计算机接口技术及应用
24、M.北京:北京航空航天大学出版社,2001.258264.4 童诗白.模拟电路技术基础M.北京:高等教育出版社,2000.171202.5 杜华.任意波形发生器及应用J.国外电子测量技术,2005.1:3840.6 张友德.单片微型机原理、应用与实践M.上海:复旦大学出版社,2004.4044. 7 程朗.基于 8051 单片机的双通道波形发生器的设计与实现J.计算机工程与应用,2004.8:100103.8 张永瑞.电子测量技术基础M.西安:西安电子科技大学出版社,2006.61101.9 李叶紫. MCS-51 单片机应用教程M.北京:清华大学出版社,2004.232238.19附录附录
25、1 元器件清单元件名称数量备注AT89C52174LS221LM3241电阻310k排阻14.7K液晶显示屏1LCD1602滑动变阻器110K晶振112MHZ20附录附录 2 程序清单#include#define uchar unsigned char#define uint unsigned int/#define Fosc 24000000/12000000 /12 分频后的频率#define DAdata P0/DA 数据端口sbit DA_S1= P20; / 控制 DAC0832 的 8 位输入寄存器,仅当都为 0 时,可以输出数据(处于直通状态),否则,输出将被锁存sbit DA
26、_S2= P21; / 控制 DAC0832 的 8 位 DAC 寄存器,仅当都为 0 时,可以输出数据(处于直通状态),否则,输出将被锁存sbit key= P32;uchar wavecount; /抽点计数uchar THtemp,TLtemp;/传递频率的中间变量/uint T_temp;uchar judge=1; /在方波输出函数中用于简单判别作用uchar waveform; /当其为 0、1、2 时,分别代表三种波uchar code freq_unit4=10,50,200,10; /三种波的频率单位 sawtoothuchar idata wavefreq4=1,1,1,1
27、; /给每种波定义一个数组单元,用于存放单位频率的个数uchar code lcd_hang1=Sine Wave Triangle Wave Square Wave sawtooth Wave Select Wave: press No.1 key! ;uchar idata lcd_hang216=f= Hz ;/*uchar code wave_freq_adjust= /频率调整中间值 0 xff,0 xb8,0 x76,0 x56,0 x43,0 x37,0 x2e,0 x26,0 x20,0 x1c, /正弦波频率调整中间值0 xff,0 x8e,0 x5a,0 x41,0 x32
28、,0 x28,0 x20,0 x1b,0 x17,0 x0e, /三角波频率调整中间值0 xff,0 x8e,0 x5a,0 x41,0 x32,0 x28,0 x20,0 x1b,0 x17,0 x0e; uint code wave_freq_adjust= /频率调整中间值 380,184,118,86,67,55,46,28,38,32,295,142, 90,65,50,40,32,27,23,14,295,142, 90,65,50,40,32,27,23,14; */*uchar code waveTH= 0 xfc,0 xfe,0 xfe,0 xff,0 xff,0 xff,0
29、 xff,0 xff,0 xff,0 xff,0 xfc,0 xfe,0 xfe,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,210 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff;uchar code waveTL= 0 xf2,0 x78,0 xfb,0 x3c,0 x63,0 x7d,0 x8f,0 x9d,0 xa8,0 xb1,0 x17,0 x0b,0 xb2,0 x05,0 x37,0 x58,0 x70,0 x82,0 x90,0 x9b, 0 x4d,0 xa7,0 x
30、c4,0 xd3,0 xdc,0 xe2,0 xe6,0 xea,0 xec,0 xee;*/*这两组数组很重要,需要根据波形来调试,选择合适的值,使输出波形达到频率要求*/uchar code waveTH= 0 xfd,0 xfe,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xfd,0 xfe,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xec,0 xf6,0 xf9,0 xfb,0 xfc,0 xfc,0 xfd,0 xfd,0 xfd,0 xfe;uchar code wav
31、eTL= 0 x06,0 x8a,0 x10,0 x4e,0 x78,0 x93,0 xa8,0 xb3,0 xbe,0 xc6, /正弦波频率调整中间值0 xac,0 xde,0 x48,0 x7a,0 x99,0 xaf,0 xbb,0 xc8,0 xd0,0 xde,/三角波频率调整中间值0 x88,0 x50,0 x90,0 x32,0 x34,0 xbe,0 x4a,0 xa3,0 xe5,0 x2c; /*/uchar code triangle_tab= /每隔数字 8,采取一次0 x00,0 x08,0 x10,0 x18,0 x20,0 x28,0 x30,0 x38,0 x
32、40,0 x48,0 x50,0 x58,0 x60,0 x68,0 x70,0 x78,0 x80,0 x88,0 x90,0 x98,0 xa0,0 xa8,0 xb0,0 xb8,0 xc0,0 xc8,0 xd0,0 xd8,0 xe0,0 xe8,0 xf0,0 xf8,0 xff,0 xf8,0 xf0,0 xe8,0 xe0,0 xd8,0 xd0,0 xc8,0 xc0,0 xb8,0 xb0,0 xa8,0 xa0,0 x98,0 x90,0 x88,0 x80,0 x78,0 x70,0 x68,0 x60,0 x58,0 x50,0 x48,0 x40,0 x38,0 x
33、30,0 x28,0 x20,0 x18,0 x10,0 x08,0 x00;uchar code sine_tab256=/输出电压从 0 到最大值(正弦波 1/4 部分)0 x80,0 x83,0 x86,0 x89,0 x8d,0 x90,0 x93,0 x96,0 x99,0 x9c,0 x9f,0 xa2,0 xa5,0 xa8,0 xab,0 xae,0 xb1,0 xb4,0 xb7,0 xba,0 xbc,0 xbf,0 xc2,0 xc5,0 xc7,0 xca,0 xcc,0 xcf,0 xd1,0 xd4,0 xd6,0 xd8,0 xda,0 xdd,0 xdf,0 x
34、e1,0 xe3,0 xe5,0 xe7,0 xe9,0 xea,0 xec,0 xee,0 xef,0 xf1,0 xf2,0 xf4,0 xf5,0 xf6,0 xf7,0 xf8,0 xf9,0 xfa,0 xfb,0 xfc,0 xfd,0 xfd,0 xfe,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,/输出电压从最大值到 0(正弦波 1/4 部分)0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xfe,0 xfd,0 xfd,0 xfc,0 xfb,0 xfa,0 xf9,0 xf8,0 xf7,0 xf6,0 xf5,0 x
35、f4,0 xf2,0 xf1,0 xef,0 xee,0 xec,0 xea,0 xe9,0 xe7,0 xe5,0 xe3,0 xe1,0 xde,0 xdd,0 xda,0 xd8,0 xd6,0 xd4,0 xd1,0 xcf,0 xcc,0 xca,0 xc7,0 xc5,0 xc2,0 xbf,0 xbc,0 xba,0 xb7,0 xb4,0 xb1,0 xae,0 xab,0 xa8,0 xa5,0 xa2,0 x9f,0 x9c,0 x99 22,0 x96,0 x93,0 x90,0 x8d,0 x89,0 x86,0 x83,0 x80,/输出电压从 0 到最小值(正弦波
36、1/4 部分)0 x80,0 x7c,0 x79,0 x76,0 x72,0 x6f,0 x6c,0 x69,0 x66,0 x63,0 x60,0 x5d,0 x5a,0 x57,0 x55,0 x51,0 x4e,0 x4c,0 x48,0 x45,0 x43,0 x40,0 x3d,0 x3a,0 x38,0 x35,0 x33,0 x30,0 x2e,0 x2b,0 x29,0 x27,0 x25,0 x22,0 x20,0 x1e,0 x1c,0 x1a,0 x18,0 x16 ,0 x15,0 x13,0 x11,0 x10,0 x0e,0 x0d,0 x0b,0 x0a,0 x0
37、9,0 x08,0 x07,0 x06,0 x05,0 x04,0 x03,0 x02,0 x02,0 x01,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,/输出电压从最小值到 0(正弦波 1/4 部分)0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x01,0 x02 ,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07,0 x08,0 x09,0 x0a,0 x0b,0 x0d,0 x0e,0 x10,0 x11,0 x13,0 x15 ,0 x16,0 x18,0 x1a,0 x1c,0 x1e,0 x20,0
38、x22,0 x25,0 x27,0 x29,0 x2b,0 x2e,0 x30,0 x33,0 x35,0 x38,0 x3a,0 x3d,0 x40,0 x43,0 x45,0 x48,0 x4c,0 x4e,0 x51,0 x55,0 x57,0 x5a,0 x5d,0 x60,0 x63,0 x66 ,0 x69,0 x6c,0 x6f,0 x72,0 x76,0 x79,0 x7c,0 x80; uchar code sawtooth_tab=0 x00,0 x02,0 x04,0 x06,0 x08,0 x0a,0 x0c,0 x0e,0 x10,0 x12,0 x14,0 x16,
39、0 x18,0 x1a,0 x1c,0 x1e,0 x20,0 x22,0 x24,0 x26,0 x28,0 x2a,0 x2c,0 x2e,0 x30,0 x32,0 x34,0 x36,0 x38,0 x3a,0 x3c,0 x3e,0 x40,0 x42,0 x44,0 x46,0 x48,0 x4a,0 x4c,0 x4e,0 x50,0 x52,0 x54,0 x56,0 x58,0 x5a,0 x5c,0 x5e,0 x60,0 x62,0 x64,0 x66,0 x68,0 x6a,0 x6c,0 x6e,0 x70,0 x72,0 x74,0 x76,0 x78,0 x7a,
40、0 x7c,0 x7e,0 x80,0 x82,0 x84,0 x86,0 x88,0 x8a,0 x8c,0 x8e;/0 x90,0 x92,0 x94,0 x96,0 x98,0 x9a,0 x9c,0 x9e,0 xa0,0 xa2,0 xa4,0 xa6,0 xa8,0 xaa,0 xac,0 xae,0 xb0,0 xb2,0 xb4,0 xb6,0 xb8,0 xba,0 xbc,0 xbe,/0 xc0,0 xc2,0 xc4,0 xc6,0 xc8,0 xca,0 xcc,0 xce,0 xd0,0 xd2,0 xd4,0 xd6,0 xd8,0 xda,0 xdc,0 xd
41、e,0 xe0,0 xe2,0 xe4,0 xe6,0 xe8,0 xea,0 xec,0 xee;void delay(uchar z) uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void triangle_out()/三角波输出 DAdata=triangle_tabwavecount+;if(wavecount64) wavecount=0;DA_S1=0; /打开 8 位输入寄存器DA_S1=1; /关闭 8 位输入寄存器23void sine_out() /正弦波输出 DAdata=sine_tabwavecount+;DA_S1=0; /打开
42、8 位输入寄存器DA_S1=1; /关闭 8 位输入寄存器void square_out() /方波输出 judge=judge; if(judge=1) DAdata=0 xff;else DAdata=0 x00;DA_S1=0; /打开 8 位输入寄存器DA_S1=1; /关闭 8 位输入寄存器void sawtooth_out() /锯齿波输出DAdata=sawtooth_tabwavecount+;if(wavecount71) wavecount=0;DA_S1=0; /打开 8 位输入寄存器DA_S1=1; /关闭 8 位输入寄存器/*1602 液晶的相关函数*/#define
43、 lcd_ports P1sbit rs=P22;sbit rw=P23;sbit lcden=P24;void write_com(uchar com)rs=0;/置零,表示写指令lcden=0;lcd_ports=com;delay(5);lcden=1;delay(5);lcden=0;void write_date(uchar date)rs=1;/置 1,表示写数据(在指令所指的地方写数据)lcden=0;24lcd_ports=date;delay(5);lcden=1;delay(5);lcden=0;void disp_lcd(uchar addr,uchar *temp1)uchar num;write_com
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 芦笋春季培土施肥方案
- 高血压慢病营养干预方案指南
- 肉牛饲养管理技术规程
- 全员安全知识竞赛活动方案
- 产后调理药膳食材搭配规范
- 老年人营养补充膳食搭配指引
- 新客户签约入户见面礼仪规范
- 常用家电清洗安全作业实施手册
- 客户服务质量投诉处理响应预案
- 环保设施运行维护保养制度
- 2025年江苏苏海投资集团有限公司及下属子公司对外公开招聘工作人员57人备考题库附答案详解
- 2025江苏南京晓庄学院招聘体育专任教师2人(公共基础知识)测试题带答案解析
- DB32∕T 5267-2025 城市桥梁数字孪生监测系统设计标准
- 临时用电安全培训考试题及答案
- 消防队道路交通事故救援
- 急危重症患者评估
- 2025年广西高考生物试卷真题(含答案)
- 中国热射病诊断与治疗指南(2025版)解读 2
- 小学生讲解西湖
- 2025年军队文职人员招聘考试(会计学)历年参考题库含答案详解(5套)
- (高清版)DB11∕T 3046-2025 健康体检质量控制规范
评论
0/150
提交评论