基于单片机的数字信号电路到达转换成模拟信号的方法

四、总结本次的设计中利用AT89C52和DAC0832以及放大器完成电路的设计,用开关来控制各种波形的发生及转换,用单片机输出后,经过模数转换器生成波形,最终可以通过示波器观察。基于单片机的信号发生器设计,这信号发生器的设计涉及一个典型的控制过程。

2. 信号为所需输出波形。 波形ROM表将信号在一个周期内等间隔分成128个点,存储在单片机的ROM中。 通过DAC可以产生指定的波形。 不同波形的产生本质上是通过输出二进制数字量的相应变化来实现的。本题中,方波信号是利用定时器中断来产生的。 每次中断时,输出信号都会逐位反转; 三角波信号是输出的二进制数字信号。 输出的二进制数字信号依次加1,到达0xff时减1,并实时进行D/A转换得到数字信号; 输出的二进制数字信号依次加1得到锯齿波信号,达到0xff时置0x00,实时进行D/A转换后的数字信号。 将输出的二进制数字信号转换为梯形波 的二进制数字信号

3、D/A转换得到; 正弦波是利用MATLAB对正弦曲线进行均匀采样,然后等间隔获取y方向的二进制值,然后依次输出,再通过D/A转换得到。 2. 硬件组成 2.1 主芯片介绍 (1) DAC0832 芯片介绍 DAC0832 采用双缓冲接口方式。 其传输控制端接地,输入存储的ILE连接至+5V电源。 地址码用于二次输出操作以完成数据。 发送和激活转换,第一个操作是P2.6为高电平,P0口数据线上的数据被锁存到DAC0832的输入寄存器中。第二个操作是写控制信号有效,发送控制端为低电平,输入寄存器的内容被锁存到DAC0832的DAC寄存器中,D/A转换器开始处理DAC寄存器中锁存的8位。 数据大约转换为。

4. 1/2 个时钟周期后,输出端子(IOUT2、IOUT1)建立稳定的电流输出。 运放的作用是将DAC0832输出的模拟电流信号转换为电压波形。 DAC0832是8位D/A转换器,采用单电源供电,可在+5+15V范围内正常工作。 参考电压范围为10V,电流建立时间为1s,CMOS工艺,功耗低20mW。 DAC0832的内部结构框图如下图所示。 图(2)DAC0832工作原理图 DAC0832的外部引脚及功能介绍如下: 图(3)DAC0832引脚图 DAC0832内部结构信息:有两级芯片内输入寄存器的数量,使得DAC0832具备双缓冲、单缓冲和直通三种输入模式,以适应各种电路的需要(如需要多个D/A异步输入、同步输入)

5.转换等)。 D/A转换结果以电流形式输出。 如果需要相应的模拟信号,可以通过高输入阻抗线性运算放大器来实现这种供电功能。 运放的反馈电阻可以通过RFB端参考片内固有电阻,也可以外接DI0DI7:数据输入线,TLL电平。 ILE:数据锁存器允许控制信号输入线,高电平有效。 CS:片选信号输入线,低电平有效。 WR1:输入寄存器的写选通信号。 XFER:数据传输控制信号输入线,低电平有效。 WR2:DAC寄存器的写选通输入线。 Iout1:电流输出线。 输入全为1时Iout1最大。 Iout2:电流输出线。 其值与Iout1之和是一个常数。 Rfb:反馈信号输入线,芯片内部有反馈电阻。 Vcc:电源输入线

6. (+5v+15v) Vref:参考电压输入线 (-10v+10v) AGND:模拟地,模拟信号和参考电源的参考地。 DGND:数字地,两地线在参考电源处共用地更好(2)单片机AT89C52简介:AT89C52是一款低电压、高性能CMOS 8位微处理器,具有4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory),俗称微控制器。 微控制器的可擦除只读存储器可重复擦除1000次。 该器件采用 ATMEL 高密度非易失性存储器制造技术制造,兼容行业标准 MCS-51 指令集和输出引脚。得益于通用的 8 位 CPU 和闪存

7. ATMEL 的 AT89C52 结合在单个芯片中,是一款高效的微控制器。 AT89C2 微控制器为许多嵌入式控制系统提供了高度灵活且廉价的解决方案。 外观及引脚排列如下图所示: 图(4)单片机引脚排列图 AT89C52 引脚说明: VCC:电源电压。 GND:接地。 P0 口:P0 口是一个 8 位开漏双向 I/O 口,每个引脚可吸收 8TTL 栅极电流。 当第一次向P1端口引脚写入1时,定义为高阻输入。 P0可用于外部程序数据存储器,可定义为数据/地址的第八位。 FIASH编程时,P0口作为原始代码输入口。 当FIASH进行验证时,P0输出原始代码。 此时P0外部必须拉高。 P1 端口:P1 端口是一个 8 位双向 I/O 端口,内部带有上拉电阻。

8. P1口缓冲器可接收并输出4TTL栅极电流。 P1口引脚写1后,内部拉高,可作为输入使用。 当P1端口被外部下拉至低电平时,将输出电流。 这是由于内部上拉所致。 在 FLASH 编程和验证期间,P1 端口作为第八个地址被接收。 P2端口:P2端口是一个8位双向I/O端口,内部带有上拉电阻。 P2端口缓冲器可以接收和输出4路TTL栅极电流。 当“1”写入P2端口时,其引脚被内部上拉。 上拉电阻拉高,作为输入。 因此,当用作输入时,P2端口引脚被外部拉低,输出电流。 这是由于内部上拉所致。 当端口 P2 用于访问外部程序存储器或 16 位地址外部数据存储器时,端口 P2 输出地址的高八位。当给定地址“1”时,读取时利用内部上拉,写入外部八位地址数据存储器。

9. 端口P2 输出其特殊功能寄存器的内容。 P2口接收FLASH编程和验证时的高八位地址信号和控制信号。 P3端口:P3端口引脚是8个双向I/O端口,内部有上拉电阻,可以接收和输出4路TTL栅极电流。 当向P3端口写入“1”时,它们被内部上拉至高电平并用作输入。 作为输入时,由于外部下拉为低电平,端口 P3 将因上拉而输出电流(ILL)。 RST:复位输入。 当振荡器复位器件时,RST 引脚必须保持高电平两个机器周期。 ALE/PROG:访问外部存储器时,地址锁存器允许使用输出电平来锁存地址的状态字节。 在FLASH编程时,该引脚用于输入编程脉冲。 正常情况下,ALE端子以恒定频率周期输出正脉冲信号。 该频率是振荡器频率的 1/6。

10. 因此,它可以用作外部输出的脉冲或用于计时目的。 然而,请注意,每当用作外部数据存储器时,ALE 脉冲都会被跳过。 如果要禁用 ALE 输出,请将 SFR8EH 地址设置为 0。 此时,ALE仅在MOVX和MOVC指令为ALE时才起作用。 此外,该引脚被稍微拉高。 如果微处理器处于外部执行状态 ALE 禁用,则设置该位无效。 /PSEN:外部程序存储器的选通信号。 在从外部程序存储器获取指令期间,/PSEN 在每个机器周期被置位两次。 但当访问外部数据存储器时,这两个有效的/PSEN信号将不会出现。 /EA/VPP:当/EA保持低电平时,在此期间使用外部程序存储器(0000H-FFFFH),无论是否有内部程序存储器。注意,当使用加密方法1时,/EA将

11.内部锁被RESET; 当/EA端保持高电平时,内部程序存储器被存储。 在 FLASH 编程期间,该引脚还用于施加 12V 编程电源(VPP)。 XTAL1:反向振荡放大器的输入和内部时钟运算电路的输入。 XTAL2:反相振荡器的输出。 2.2 硬件连接图 (5) 硬件连接图 3. 软件设计总体框图 函数发生器设计 K1 键梯形波 K2 键三角波 K3 键方波 K0 键锯齿波 K4 键正弦波图 (6) 总体设计功能图设计思路:使用中断。 当五个开关中任意一个闭合时,跳转到中断程序。 在中断程序中,判断哪个按钮被关闭,跳转到相应的程序,进行输出波形的操作。 每输出一个点后,判断按钮是否断开。 如果仍然关闭,则继续输出。 如果断开连接,

12. 中断程序结束。 3.1 锯齿波的产生过程 锯齿波的实现过程是先定义一个初始值,然后进行加法运算。 要添加的步数取决于所需的频率。 然后加到一定数后,重置为初始值,然后重复前面的操作,如此循环下去。 锯齿波生成流程图如下: 定义变量ifor(i=0;i255;i+) P0=i 判断按钮是否断开,否则返回,是则开始。 3.2 梯形波产生过程。 梯形波的实现是设定一个初始值,然后加一,当加到一定数时延迟,然后减一。 到达初始值后,返回上一步操作,继续加一、延时、减一。梯形波生成流程图如下图所示: 开始定义变量 ifor(i=0;i0;i -) 否,判断按钮是否断开,是 返回3.3 三角波生成过程 三角波的实现是设置一个

13.初始值。 当它与某个值相加时,会执行减法运算。 当它减少到初始值时,它会加一。 三角波生成流程图如下图所示: 开始定义变量ifor(i=0;i0;i-)否,判断按钮是否断开。 返回3.4 方波生成过程。 要实现方波,只需在开始时设置一个初始值即可。 然后直接输出这个值就可以了。 输出一段时间后,将数据复位,然后再输出这段数据一段时间,但此时的时间必须与前一段时间相等。 这是方波。 如果两次时间不同,则相当于一个脉冲波。方波生成流程图如下图所示: 周期开始,给A赋值0x00。Delay给A赋值0xff。Delay判断按键是否断开并返回开始。 3.5 正弦波的产生过程 正弦波的实现需要查表。 每次查表,输出一个值,然后查下一个数

14. 继续输出该值。 当输出波形的所有 256 个值时,从头继续输出。 正弦波产生流程图如下图所示: 开始查表,输出No,判断按钮是否断开,返回4。 总结 本设计中使用AT89C52、DAC0832和放大器来完成电路设计,开关用于控制各种波形。 经过生成和转换后,用单片机输出,通过模数转换器生成波形,最后可以通过示波器观察。 基于单片机的信号发生器设计。 该信号发生器的设计涉及一个典型的控制过程。 模数转换器DAC0832由单片机控制产生所需电流,然后利用运算放大器LM324将电流输出线性转换为电压输出。 然后该电压被运算放大器放大以获得足够幅度的信号。 可以产生一系列规则波形。 这种信号发生装置在控制领域有着广泛的应用。 最终的信号发生器满足了问题的所有要求:生成五个波形。 正弦波、三角波、矩形波、锯齿波、梯形波。 这个有趣的实验让我对课程有了更深入的了解。附录:1.原理图2.PCB图

单片机

深圳扣丁学堂Android开发新语言培训学校招生说明书

2024-4-8 5:00:27

单片机

关于学习51单片机的一些错误言论,何为精通?

2024-4-8 6:01:31

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索