基于at89s52单片机的程控放大器设计内容摘要:

的大小写、常用的符号和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母 “A” 的代码是 01000001B( 41H),显示时模块把地址 41H 中的点阵字符图形显示出来 ,我们就能看到字母 “A”。 表 22 CGROM 和 CGRAM中字符代码与字符图形对应关系 高 位 低 位 0000 0010 0011 0100 0101 0110 0111 1010 1011 1100 1101 1110 1111 0000 CG RAM (1) 0 @ P ` p 一 タ ミ α P 0001 (2) ! 1 A Q a q □ ア チ ム б q 0010 (3) 2 B R b r 「 イ 川 メ β θ 0011 (4) 3 C S c s 」 ウ テ モ c ∞ 0100 (5) $ 4 D T d t \ エ ト ャ μ Ω 0101 (6) % 5 E U e u ロ オ ナ ュ Β ο 0110 (7) amp。 6 F V f v テ カ ニ ョ Ρ ∑ 12 0111 (8) 39。 7 G W g w ァ キ ヌ ラ ξ π 1000 (1) ( 8 H X h x ィ ク ネ リ ∫ Х 1001 (2) ) 9 I Y i y ゥ ケ ノ ル 1 у 1010 (3) * : J Z j z ェ コ リ レ j 千 1011 (4) +。 K [ k { ォ サ ヒ ロ x 万 1100 (5) , L \ l | セ シ フ ヮ ≌ 177。 1101 (6) = M ] m } ュ ス ヘ ン ∈ + 1110 (7) . N ^ n ~ ョ セ ホ ハ ≠ 1111 (8) / ? O _ o ¢ ツ ソ マ ロ ō 1602 液晶模块内部的控制器共有 11 条控制指令,如表 23 所示。 它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。 指令 1:清显示,指令码 01H,光标复位到地址 00H 位置 指令 2:光标复位,光标返回到地址 00H 指令 3:光标和显示模式设置 1/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。 高电平表示有效,低电平则无效 指令 4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是 否闪烁,高电平闪烁,低电平不闪烁。 指令 5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光 R/L: 1向右移动; 0向左移动。 指令 6:功能设置命令 DL 高电平时为 4位总线,低电平时为 8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示 5x7 的点阵字符,高电平时显示 5x10 的点阵字符 指令 7:字符发生器 RAM 地址设置 指令 8: DDRAM 地址设置 指令 9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。 13 指令 10:写数据 指令 11:读数据 表 23 1602 液晶模块的控制指令 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。 要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表 24 是 DM162 的内部显示地址。 表 24 DM162 的内部显示地址 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 40H 41H 42H 43H 44H 45H 46H 47H 48H 49H 4AH 4BH 4CH 4DH 4EH 4FH 比如第二行第一个字符的地址是 40H,那么是否直接写入 40H 就可以将光标定位在第二行第一个字符的位置呢。 这样不行,因为写入显示地址时要求最高位 D7恒 定 为 高 电 平 1 所 以 实 际 写 入 的 数 据 应 该 是 01000000B( 40H)+10000000B(80H)=11000000B(C0H)。 控制显示电路原理图如图 26所示。 14 EA/VP31X119X218RESET9RD17WR16INT012INT113T014T1151234567839383736353433322122232425262728PSEN29ALE/P30TXD11RXD10U1AT89C5130pFC130pFC212MHz10μFC310kΩR1+5VS1RST+5VD0D1D2D3D4D5D6D7CSDAWR+5VVSS1VDD2VEE3RS4RW5E6D07D18D29D310D411D512D613D7141kΩR0RSRWEERSRW1 2 3 4 5 6 7 816 15 14 13 12 11 10 91kΩR2液晶 1602 图 26 单片机最小系统和液晶显示电路 形放大模块 该部分主要由一片 DAC0832 和一块 LM324N 运算放大器组成。 DAC0832 属于 8 位倒 T 型电阻网络 D/A 转换器。 其内部结构如图 27 所示。 通过单片机的 P1 口 向DAC0832 发送数字编码, 控制 D/A 内部 S1~S7 共 8个模拟开关的断与合,以此来调节内部的阻值,可以有 256 种状态,并且可以实现步进调节。 同时,模拟开关的电阻很小,这样可以减小放大倍数的误差。 DAC0832 是电流输出型,示波器上显示波形,通常需要电压信号,电流信号到电压信号的转换可以由运算放大器 LM324N实现。 系统电路连接如图 28所示。 15 图 27 DAC0832 内部结构图 图 28 DAC0832 电路连接图 通过单片机控制另一块 DAC0832 可以产生 0 到 12V 的直流偏置电压,然后通过减法运算电路可以将双极性信号变成单极性。 电路如下: 16 图 29 D/A转换电路采用 DAC0832 来实现,首先来介绍下 DAC0832 芯片。 DAC0832 是 8 位 D/A 转换集成芯片 ,该 芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。 DAC0832 由 8 位输入锁存器、 8 位 DAC 寄存器、 8 位 D/A 转换电路及转换控制电路构成。 DAC0832 输出结果为电流量,单电源供电,其主要特性参数如下:  分辨率为 8位;  电流稳定时间 1μ s;  可单缓冲、双缓冲或直接数字输入;  只需在满量程下调整其线性度;  单一电源供电( +5V~ +15V);  低功耗, 20mW。 DAC0832 结构框图及引脚说明 17 图 210 DAC0832 的结构框图和引脚 (2)DAC0832 工作过程 ① CPU 执行输出指令,输出 8位数据给 DAC0832; ② 在 CPU 执行输出指令的同时,使 ILE、 /CS、 /WR1 三个控制信号端都有效, 8 位数据锁存在 8位输入寄存器中; ③ 当 /WR /XFER 两个控制信号端都有效时, 8位数据再次被锁存到 8位 DAC寄存器,这时 8位 D/A 转换器开始工作, 8位数据转换为相对应的模拟电流,从 Iout1和 Iout2 输出。 (3)DAC0832 的工作方式 : 双缓冲方式 ; 单缓冲方式 ; 直通方式 (4)DAC0832 接口电路 图 211 18 第三章 单片机软件设计 主程序和子程序都存放在 AT89S52 单片机中。 该程序的主要功能是 : 开机以后负责查键,即做键盘扫描及显示工作,然后根据用户所按的键转到相应的子程序进行处理,利用程序控制 D/A 电阻网络中阻值的变化 ,并利用 LM324N 运算放大器来将其 输出 转换成电压形式,以此来输出放大或者衰减后的正弦波 , 同时在四位数码管中显示出所放大的倍数。 控制程序流程图如图 31所示 . 初 始 化按 下 独 立键 盘 的 位 置按 下 独 立键 盘 的 位 置拨 码键 盘复 位键 盘步 进 以 0 . 4倍 放 大峰 值 检 测电 路显 示 放 大 倍 数波 形 输 出A / D 转 换自 动 增 益 部 分 图 31 波形放大部分程序流程图 本系统程序代码如下。 1. 函数声明及变量定义 为方便程序的编写,把部分常用的变量进行伪定义,把实现一定功能的程序编写为一个函数,有利于程序的编写。 include。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。