基于单片机的函数信号发生器设计毕业设计(编辑修改稿)内容摘要:
内部振荡方式。 由于单片机内部有一个高增益的反相放大器,当外接晶振后,就构成了自激振荡,并产生振动时钟脉冲。 晶振通常选用 6MHZ、 12MHZ、 24MHZ。 本设计中时钟电路图如图 43,选择了 12MHZ和晶振分别接引脚 XTAL1 和 XTAL2,电容 C1, C2 均选择为 30pF,对振荡器的频率有稳定作用,当频率较大时,正弦波、方波、三角波及锯齿波中每一点的延时 时间为几微妙,故延时时间还加上指令时间才能获得较大的频率波形 [12]。 华东交通大学理工学院毕业设计 9 A T 89 C 52OCS1OCS 2OCS 3OCS 4C1C2C310pF10pF10pF4MH z3 2 . 7 68 K H zX1X2 43 时钟电路设计 键盘电路 通常单片机外部扩展键盘的方式有独立式键盘,矩阵键盘以及专门的键盘电路。 独立式键盘就是一个 I/O 口扩展一个开关,这种方式程序编写比较容易,只需要检测单片机 I/O 某一时刻是否为低电平就能检测出其的按键输入情况,而且按键和 I/O 口一一对应,所以能够轻松识别按键的值, 如图 43所示为独立按键接口电路。 本设计中采用的是 3 个独立的功能按键。 S1 用来切换现在产生的波形。 当没有按下 S1 时信号发生器产生方波信号。 第一次按下 S1 时,将切换成三角波信号。 第二次按下 S1 时,将切换产生正弦波信号。 第三次按下 S1 时,又产生方波信号。 这样一直循环。 S2 用来调节输出的函数信号的频率。 当没有按下 S2 时,产生的函数信号最高。 当按下 S2 时,波形频率降低,同时还要对应向 LED 显示缓冲区给定一个频率值提供当前频率显示所需要的数据。 S2按 7次一个循环。 当第 7 次按下时恢复到最高频率输出。 S3 用来启动对输出的函数信号电压值测量。 当 S3 没有按下时,单片机只向 DAC0832 送波形 数据表和显示当前波形的频率。 按下 S3 后,单片机除了向 DAC0832 送波形数据表外,还要每隔一小段时间对读取 ADC0809 转换电压值,并且换算出来,送给 LED 显示当前电压。 此时不再显示当前波形频率 [13]。 华东交通大学理工学院毕业设计 10 T 89 C 44 独立式键盘 矩阵键盘相比独立式键盘其扩充的量大大增加,例如常见的 4*4 矩阵键盘占用的 I/O 口为 4+4=8 个,当需要扩充为 20 键输入时只需要 4+5=9 个 I/O 口,而采用独立式键盘的时候要分别用掉 16 个 I/O 口和 20 个 I/O 口,由于单片机 的I/O 口数量有限,很难将大量的 I/O 口用于,显然矩阵键盘能够大大的减少系统I/O 口的使用,矩阵键盘的缺点是编写程序比较麻烦,需要上拉电阻系统的连线和元器件都增加。 当采用行扫描方式读取键值时,需要 4个上拉电阻,提供需要的高电平,当采用线反转法式需要采用 8个上拉电阻,显然整个电路的接线都将变得更加复杂。 矩阵式按键键盘中,分为行线和列线两种,行线和列线与矩阵按键开关的两端相连接,其中行线是连接到+ 5V 电源上。 当没有按键按下时,行线会处于高电平状态;当有按键动作时,行线和列线将导通。 这是矩阵式按键来识别按键是否按 下的关键策略 [14]。 T 89 C .7K0K1K2K3K5K6K4K8 K7K9 K1 1K10K12 K14K13 K15 行线列线5V 45 矩阵式键盘 华东交通大学理工学院毕业设计 11 D/A 转换模块 DAC0832 转换器简介 DAC0832 是双列直插式 8位 D/A 转换器。 能完成数字量输入到模拟量 (电流 )输出的转换。 其主要参数如下:分辨率为 8 位,转换时间为 1μ s,满量程误差为 177。 1LSB,参考电压为 (+10~ 10)V,供电电源为 (+5~ +15)V,逻辑电平输入与TTL 兼容。 从图 中可见,在 DAC0832 中有两级锁存器,第一级锁存器称为输入寄存器,它的允许锁存 信号为 ILE,第二级锁存器称为 DAC 寄存器,它的锁存信号也称为通道控制信号 XFER。 图 46 DAC0832引脚图 图 46 中,当 ILE 为高电平,片选信号 CS 和写信号 WR1 为低电平时,输入寄存器控制信号为 1,这种情况下,输入寄存器的输出随输入而变化。 此后,当WR1 由低电平变高时,控制信号成为低电平,此时,数据被锁存到输入寄存器中,这样输入寄存器的输出端不再随外部数据 DB 的变化而变化。 对第二级锁存来说,传送控制信 号 XFER 和写信号 WR2 同时为低电平时,二级锁存控制信号为高电平, 8 位的 DAC 寄存 器的输出随输入而变化,此后,当 WR2由低电平变高时,控制信号变为低电平,于是将输入寄存器的信息锁存到 DAC寄存器中。 DAC0832 各引脚编号及其作用: 号 CS 引脚:片选信号输入线,低电平有效; 号 WR1 引脚:为输入寄存器的写选通信号; 号 AGND 引脚:模拟地,模拟信号和基准电源的参考地; , 1316号 D0D7 引脚:数据输入线, TLL 电平; 号 V ref 引脚:基准电压输入( 10V~ +10V); 号 RFB 引脚 :反馈信号输入线,芯片内部有反馈电阻; 号 DGND 引脚:数字地; 号 IOUT1 引脚:电流输出线,当输入全为 1时, IOUT1最大; 华东交通大学理工学院毕业设计 12 号 IOUT2 引脚:电流输出线,其值与 IOUT1 为一常数; 号 XFRE 引脚:数据传送控制信号输入线,低电平有效; 号 WR2 引脚:为 DAC 寄存器写选通输入线; 号 ILE 引脚:数据锁存允许控制信号输入线,高电平有效; 号 V cc 引脚:电源输入线( +5V~ +15V) Vref。 本次设计选择的 D/A转化器是 DAC0832,是一款 8分辨率的 D/A转换集成芯片。 与微处理器完全兼容。 这个 DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。 D/A转换器由 8位输入锁存器、 8位 DAC寄存器、 8位 D/A转换电路及转换控制电路构成。 AT89C51单片机控制两片 DAC0832的原理如图 47所示。 8 0 C51 单 片 机D A C0 8 3 2D A C0 8 3 2基 准 电 压输 出 47 单片机控制 DAC0832的 D/A转换 因为 AT89C51 单片 机自身便有一个 64K 的程序存储器,所以不用扩展外加程序存储器。 由单片机编程即可由单片机输出所需要信号的数字量,再由 D/A 转换器将数字量转化为模拟电流输出,通过运放转化为模拟电压输出。 D/A 数模转换器的最大输出电压是由其输入的基准电压来控制的,所以只要能控制 D/A 的基准电压便可以控制输出幅度,实现幅度可调。 所以设计用两片 DAC0832 来输出信号,第一片 D/A 用来输出信号,第二片 D/A 用来控制压。 其中用 P0 口作为两片 D/A的数据总线, P2 口的 和 口用来控制两片 D/A 的选通 [15]。 本文选用价格低 廉、接口简单、转换控制容易并具有 8 位分辨率的数模转换器。 DAC0832。 DAC0832 主要由 8 位输入寄存器、 8 位 DAC 寄存器、 8 位D/A 转换器以及输入控制电路四部分组成。 但实际上, DAC0832 输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,是准模拟量的输出。 DAC0832 是电流型输出,在应用时外接运放使之成为电压型输出。 华东交通大学理工学院毕业设计 13 显示电路设计 显示电路是用来显示波形信号的频率,使得整个系统更加合理,从经济的角度出发,所以显示器件采用 LED 数码管显示器。 而且 LED 数码管是采用共阳极接法,当主 控端口输出一个低电平后,与其相对应的数码管即变亮,显示所需数据。 本次设计要求对输出波形的频率,幅值和波形进行输出,所以要扩展显示模块,常用的显示模块 LCD 有 7 端数码管, LCD1602和 12864 等液晶显示屏。 为了降低设计的成本和扩展的难度,本次设计选择使用 7 段数码管。 LED 显示器工作方式有两种:静态显示方式和动态显示方式。 静态显示的特点是每个数码管的段选必须接一个 8位数据线来保持显示的字形码。 当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。 这种方法的优点是占用 CPU 时间少,显示便于监测和控 制。 缺点是硬件电路比较复杂,成本较高。 动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。 选亮数码管采用动态扫描显示。 所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。 动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的 [16]。 AGFEDCB DP 1 65432 图 48 显示器 华东交通大学理工学院毕业设计 14 第 4章 软件设计 设计构思 幅度控制:由于 D/A 数模转换器输出的最大幅度可以用其基准电压来控制,所以控制第二片 D/A 数模转换器输出给第一片 D/A 数模转换器的电压值就可控制信号幅度。 因此,送入第二片的值是几个固定的值。 由于 DAC0832 内部具有锁存器,所以只需向第二片 D/A 送值一次,直到下一次改变信号幅度。 频率控制:单片机内部数据只有 0、 1 之分,所产生的信号也都是离散信号。 为了能够让单片机输出所需的数字信号,我们采用对信号采样、量化的方法来实现由单片机产生所需信号。 在本设计中,对信号的四分之一周期采 样 19 个幅度值,通过反复查表来输出幅度值,而整个信号是通过正查表和逆向查表来实现的。 采样的点越密,信号失真度也就越小。 两次采样点的输出时间间隔是由定时、计数器来控制的,因此,通过控制不同的计数初值就可以控制整个信号的频率。 计数时间 =信号周期 /72。 计数次数 =计数时间 /机器周期。 对应的,计数初值 =65536-计数次数。 单片机只能产生离散频率的信号,所以所得到的信号频率不是连续的,而是离散的频率点。 由于这部分计算位数较多,不适合用单片机编程来计算计数初值,所以本设计中将各频率的计数初值算出,让单片机按控制命令来 查表控制频率。 正弦波和三角波的频率控制方法都与上述方法相同,而方波的频率控制是半周期计数,经过半周期只需改变输出为最大或最小电平即可 [17]。 主程序流程图。基于单片机的函数信号发生器设计毕业设计(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。