正弦波、方波、三角波的发生电路设计(编辑修改稿)内容摘要:

间的关系不满足相反的关系.则本次遥控接收有误.数据应丢弃。 在同一个遥控器上.所有按键的数据码均不相同。 数据码为十六进制的 0CH,数据反码为十六进制的 0F3H(注意低位在前 ).两者之和应为 0FFH。 10 复位电路 这种复位电路的工作原理是:单片机 的复位电路在刚接通电时,刚开始电容是没有电的,电容内的电阻很低,通电后, 5V的电通过电阻给电容进行充电,电容两端的电会由 0V 慢慢的升到 4V 左右(此时间很短一般小于 秒), RC构成的微分电路在上电瞬间产生一个微分脉冲,其宽度大于两个机器周期, 89C51 将复位。 正因为这样,复位脚的电由低电位升到高电位,引起了内部电路的复位工作, RST 端电压慢慢下降,降到一定电压值以后,即为低电平,单片机开始正 常工作(这是单片机的上电复位,也叫初始化复位);当按下复位键时,电容两端放电,电容又回到 0V 了,于是又进行了一次复 位工作(这是手动复位原理)。 下图 4为复位电路 图 4 复位电路 显示部分电路 为了节约成本,采用 1602 来作为显示器,用独立按键来控制不同的显示,能完成基本的显示功能。 图 5 LCD 液晶显示电路 11 电源部分 本电源设计了两个接口,方便不同接口的电源接入,并且在电源部分加上滤波电容,起过滤接入电源的杂波的作用,为了电路中得到 +12V、 12V 和 +5V 的直流工作电压,用变压器变压后再通过芯片和电容设计出所需要的电路。 图 6 电源电路 外部时钟电路 图 7 采用 的晶 振和两个 22pf 的电容组成时钟电路部分 图 7 外部时钟电路 显示接口电路 功能 :驱动 Led液晶显示器 ,扫描按钮。 LCD1602 液晶显示和一个矩阵的按钮。 按键时 , 通过 P2 口将数字信号发送到LCD1602,LCD1602 显示 液晶点阵设计 ,如字母、数字、符号 ,其外部电压 5 v。 扫描通过使用软件程序实现 ,当按键时 ,立即扫描发现 ,立即调用子程序 ,执行相应的功能。 与单片机连接如图 8 所示 : 12 图 8 部分电路图 独立按键部分 图 9 为用独立按键来控制不同的输出波形 图 9 独立按键 波形转换电路 功能 :转换波形样本值编码模拟值 ,完成波形的输出。 由一块 DAC0832和 LF356运放。 13 DAC0832 是两个输入数据寄存器 的 8 位 DAC。 当前生产的 DAC 芯片分为两种 ,一种 是 芯片内部数据寄存器设置 ,不需要 外加电路 ,就 可以直接与微机接口 连接。 另一种类型的芯片没有数据寄存器、输出信号变化状态的数据输入行 ,所以你不能直接与微机接口 连接 ,必须通过并口与微机接口 相连。 DAC0832 有 20 条引线的 双列直插式 CMOS 设备 ,里面有两个级别的数据寄存器 ,完成 8 位 D / A转换 ,且 不需要额外的电路。 DAC0832 是电流输出类型 ,在 示波器上显示波形 ,通常需要电压信号和电流信号 , 电压信号的转换可以使用运算放大器 LF356 实现。 单片机发送 DAC0832 数字编码 ,生成不同的输出。 先利用采样定理对各种波形进行抽样,然后把各种采样值进行编码,收到的数字量存入各个波形表,执行程序时通过查表的方法依次取出 ,D / A 转换后输出波形可以计算出来。 假如 N 个点构成波形的一个周期 ,DAC0832 输出 N个 样本值 , 样本点 能 形成 一个 轨迹 , 即 ,一个周期。 重复输出 N 点之后 ,成为第二个周期。 利用单片机的晶振控制输出周期的速度,也就是控制输出的 波形的频率。 从而控制输出波形和振幅和频率 ,如 正弦波,取 20 个样值点。 具体连接的电路图如图 10 所示: 示 : 图 10 D/A 转换的电路连接图 串口通信模块 图 11 中通过 MAX232 进行 TTL 电平和 232 电平转换,从而单片机和上位机之间通信提供通道。 14 图 11 串口通信电路 通信电路的目的就是让通信双发的电平匹配,单片机用的是 TTL 电平,上位机的串口用的是232 电平。 TTL 电平的逻辑 1 的电压范围是 + 到 +5V,逻辑 0 的电压范围是 0 到 +; 232 电平的逻辑 1 的电压范围是 15V 到 5V,逻辑 0 的电压范围是 +5V 到 +15V。 因此设计串口通信电路就是让这两种电平统一。 15 第三章 软件设计 信号发生器的软件设计包括主程序、延时子程序、系统初始化程序、键盘中断子程序、定时器中断子程序。 主程序 include unsigned char i,sqar_num=128。 //最大值 100,默认值 50 unsigned char cho=0。 //0:正弦波。 1:方波。 2:三角波。 unsigned char num=0。 unsigned char TIME0_H=0xff,TIME0_L=0xd9。 //定时器 0的初值设置;全局变量 .对应正弦波 sbit chg= P1^0。 //三角波 100Hz. sbit freq_u=P1^1。 sbit freq_d=P1^2。 sbit duty_u=P1^3。 sbit duty_d=P1^4。 sbit cs =P3^7。 bit flag=0。 unsigned int FREQ=50。 //初始化频率 ,50HZ sbit rs=P3^5。 sbit lcdcs=P3^0。 unsigned char TempBuffer[7]。 unsigned char value1[]={Frequency:}。 void delay(unsigned int ms) { unsigned int i,j。 for (j=0。 jms。 j++) for (i=0。 i120。 i++)。 } unsigned char code sin_num[]={ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 12, 12, 13, 14, 15, 15, 16, 17, 18,18, 19, 20, 21, 16 22, 23, 24, 25, 25, 26, 27, 28, 29, 30, 31, 32,34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 49, 50, 51,52, 54, 55, 56, 57,59,60, 61, 63, 64, 66, 67, 68, 70, 71, 73, 74, 75, 77, 78, 80,81,83, 84, 86, 87, 89, 90, 92, 93, 95, 96, 98, 99, 101,102, 104,106,107,109,110,112,113,115,116,118,120,121,123,124,126, 128, 129, 131, 132, 134, 135, 137, 139, 140, 142, 143, 145, 146, 148, 149, 151, 153, 154, 156, 157, 159, 160, 162, 163, 165, 166, 168, 169, 171, 172, 174, 175, 177, 178, 180, 181,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。