毕业设计(论文)-集成运放参数测试仪--程序设计.doc

上传人:来看看 文档编号:3954575 上传时间:2019-10-11 格式:DOC 页数:48 大小:680KB
返回 下载 相关 举报
毕业设计(论文)-集成运放参数测试仪--程序设计.doc_第1页
第1页 / 共48页
毕业设计(论文)-集成运放参数测试仪--程序设计.doc_第2页
第2页 / 共48页
毕业设计(论文)-集成运放参数测试仪--程序设计.doc_第3页
第3页 / 共48页
毕业设计(论文)-集成运放参数测试仪--程序设计.doc_第4页
第4页 / 共48页
毕业设计(论文)-集成运放参数测试仪--程序设计.doc_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《毕业设计(论文)-集成运放参数测试仪--程序设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-集成运放参数测试仪--程序设计.doc(48页珍藏版)》请在三一文库上搜索。

1、集成运放参数测试仪程序设计 内容摘要:该课题设计的运算放大器闭环参数测试系统是基于 MSC-51 单片机控制模块,并且 由 LCD(Liquid Crystal Display)显示模块,键盘模块,数据采集和转换模块,采用 DDS 芯 片(AD9851)实现了 40kHz4MHz 的扫频输出模块等五部分组成。采用辅助运放测试方法,可 对运放的输入失调电压、输入失调电流、交流差模开环电压增益和交流共模抑制比以及单位增 益带宽进行测量。在软件上,用 C 语言来编程实现。其要实现的功能包括:对来自 TLC2543A/D 转换的数字信号进行接收、分析、计算和对结果的显示;通过不同键值的接收、分析来控制

2、对 不同对象的测量,并在 LCD 上显示对应的人机界面;对来自 DDS 的高频信号源的频率进行控制 来实现对集成运放的带宽参数的测试和显示。而且具有自动量程转换、自动测量功能和良好的 人机交互性。 关键词:单片机 C 语言 DDS LCD 人机交互界面 The Instrument for testing the Parameters of Integrated Operation Amplifier program design Abstract:This system is designed based on C51 microcontroller to measure the close

3、 loop parameters of the operation amplifier. The system conclude five modules: LCD (liquid crystal display) display module, keyboard module, data collection module, conversion module, and the module of generating sweep sine-wave signal with frequency range from 40 kHz to 4 MHz, using the DDS chip of

4、 AD9851. The system can measure the input offset voltage、the input offset current、the open loop AC differential mode voltage gain、the AC common mode rejection ratio and unit gain bandwidth,using the measure method of assistant amplifier. The data can be display on the LCD which is using of C program

5、. And the function concludes: receiving, analysing and calculating the digital signals from TLC2543A/D then send them to show; accepting different key value on keyboards, analysing and processing it for controlling the measurement of different target and display on the LCD with different computer in

6、terface; controlling the bandwidth of HF signal source from DDS chip to measure the integrated transport bandwidth parameters and display the result. Whats more C51 microcontroller can control relays to complete auto measurement range switching ,auto measuring and good interface. Key Words:MCU CLang

7、uage DDS LCD interface 目 录 前言.1 一、系统原理框图1 二、硬件单元电路设计与实现2 (一)、四个参数的测试电路.2 ioc V io I vd A cmr K (二) 单位增益带宽测量电路.3 (三) 测试的信号源3 vdCMR AK、 (四) 峰峰值检测电路的设计.4 (五) A/D 采样电路.4 (六) 扫频信号源.4 (七) 键盘接口电路.5 (八) 显示接口电路.5 三、软件设计6 (一) 软件功能设计.6 (二) 系统软件框图和程序流程图.6 (三) 软件模块设计.7 四、系统测试19 (一)程序调试方法.19 (二)软件调试.19 (三)联机调试.20

8、 五、结束语20 六、感谢词20 参考文献.20 附录一.21 附录二.22 1 附录三.36 (一)TLC2543.36 (二)LCD 液晶显示器36 附录四.38 2 集成运放参数测试仪 程序设计 前言 目前国内外市场上各种型号的集成运放参数测试仪已经相当多,而且普遍性都采用“辅助 放大器的测量方法” ,使测试仪的整个系统具有稳定性好,精确度高,范围大的特点,而且测 试仪测试参数一般包括:正向最大输出电压+,负向最大输出电压-,正向最大共模输出 opp V opp V 电压+,负向最大共模输出电压-,正转换速率+ ,负转换速率-,静态工作电流, icm V icm V r S r S q

9、I 输入失调电压,共模抑制比,开环增益带宽乘积 BW,输入失调电流,开环电压增益 ioc V cmr KIio ,基极偏置电流等 15 项。 vd A ib I 但这种测试仪有一种共同的特点电路系统复杂,成本高,因此在某些应用领域中不能普遍 使用。在此我们根据 GB344286半导体集成电路运算电压放大器测试方法的基本原理规定 的测试方法来设计,主要测试参数包括:输入失调电压,共模抑制比,开环增益宽带 ioc V cmr K 乘积 BW,输入失调电流,开环电压增益等 5 个,而且用 MSC51 系列单片机作为中央处理 io I vd A 器,这样大大降低了成本,并且具有显示功能,使用方便,体积

10、小,适合搬移,系统稳定。 在软件方面,汇编语言是能直接控制单片机的底层语言,而且在控制硬件和位操作等方面 表现很优异,程序运行时效率也很高,但当用汇编语言来编制复杂的数学运算类型的程序时就 显得有些不方便。而使用 C51 高级语言开发 MSC51 系列单片机比汇编语言优越地多,如程序 编写直观易懂、便于移植、便于修改和维护、便于进行模块化程序设计、提高计算精度等。虽 然高级语言在产生代码方面会比较长些,而且运行速度相对来说会慢些但对于当今作为开发的 计算机软件来说优化程序的编译已经不是问题。在次我们结合了该设计自身的特点和需要,综 合分析了以上的优、缺点最后决定采用 C 语言来编程,实现这个课

11、题的功能,从而也提高其使 用性。该成品可方便用于小型实验或个人实验室等场合。 一、 系统原理框图 该系统包括软件和硬件两个方面,程序被下载到单片机中,自动进行一系列测试工作,而 且可以通过良好的人机界面对其进行选择、控制。其整体系统原理框图如图 1 所示。 运 放 参 数 测 试 电 路 数据采集 测试参数选择 高频信号源 增 益 控 制 单 片 机 LCD 显示输出 键 盘 输 入 3 图 1 系统原理框图 二、硬件单元电路设计与实现 (一) ioc V 、四个参数的测试电路 io I vd A cmr K 按照 GB344286半导体集成电路运算(电压)放大器测试方法的基本原理规定的辅助直

12、 流测试法,可实现运算放大器直流参数的准确测量。该方案的测试原理如图 2 所示。 + - + - 被测运放 辅助运放 Rf R1 Ri Ri R2 K1 K2 R R VL Rf 数字电压表 (4位半以上) 图 2 GB344286 规定的运算放大器直流参数测试方法 它是国标推荐的测试方法也是目前国际普遍采用的一种测试方法,具有稳定性好、精度高、 范围大等特点,可测量各种集成运算放大器的输入失调电压、失调电流、共模抑制比、差模开 环增益等参数,测试方便,测量输出的电压范围合适。而辅助运放对系统增益的稳定性有很关 键的作用,虽然也会引起自激,但可以通过一定的方法来抑制。 测试这四个参数的电路可以

13、集成在两个电路里。首先可以将测试、这两个参数的电 ioc V io I 路通过继电器做成一个电路系统,如图 3 所示。电容 Cu 是补偿分布电容,用来抑制自激的发 生,而 Cu 的值是通过实验获得的:先将数百皮法的瓷片电容接入电路选定位置,观察自激信 号的变化,直到取得使自激信号最小的电容值为止。然后将测试、这两个参数的电路 vd A cmr K 也集成一个电路系统,如图 4 所示。这样通过两个核心测量电路就可以完成所有参数测试,同 时通过对继电器的控制实现了测量的自动化,而且大大简化了电路。 1 2 3 4 5 6 78 K23 R1 R11 1k R12 1k 1 1 3 3 2 2 w1

14、 50k R3 100 R4 100 R51M R6 1M Rf220k Rf1 20k R7 30k R8 30K 3 2 6 1 5 74 u1 1M 5 4 2 7 1 8 3 6 14 11 10 13 12 9 U2 7650 C4C3 104*2+12v Q1 NPN D1 DIOD E 3 2 1 84 U3A TL 082 +12v -12v -12v +12v +12v +12v -12v R13 30K Cu CR2 CR1 R 300 1 2 J1 CO N2 5 6 7 U3B TL 082 图 3 输入失调电压和输入失调电流测试电路 4 R11 1k R121k R1

15、3 1k R14 100 R15 43k w2 50k C7 47uC8 1u R3100 R4 100 Rf220k R7 30k R8 30K 3 2 6 1 5 74 u1 1M 5 4 2 7 1 8 3 6 14 11 10 13 12 9 U2 7650 C4C3 104*2 Rf1 20kRL 10K R1 +12v B 1 C 2 E 3 Q2NPN D4 DIOD E 1 2 3 4 5 6 78 K21 3 2 1 84 U3A TL 082 3 2 1 84 U4A TL 082 5 6 7 U4B TL 082 +12v -12v -12v +12v D3 DIOD E

16、 +12v -12v +12v +12v -12v R14 30K Cu CR2 R 300 1 2 J2 CO N2 4v 5H z 图 4 电压增益和共模抑制比测试电路 其测试电路和过程如下: 、当继电器 1、4 分别脚接向 3、6 脚时,测得辅助运放的输出电压记为 VL0 ,则有: L0 fi i IO V RR R V 、当继电器 1、4 分别脚接向 2、5 脚时,测得辅助运放的输出电压记为 VL1,则有: R VV RR R I L0L1 fi i IO 、当把信号源输出(电压为 VS)接到继电器的第 1 脚时,测得辅助运放输出电压为 VL0,则 有 )dB(lg20 i fi LO

17、 S VD R RR V V A 、当把信号源输出(电压为 VS)接到继电器的第 4 脚时,测得辅助运放输出电压为 VL0,则 有 )dB(lg20 i fi LO S CMR R RR V V K 通过上述方法就可测得所要测试的四个参数。 (二)单位增益带宽测量电路 单位增益带宽测量电路为一个反向比例放大器,从 P1.3 口输入正弦信号的幅值,改变信 号频率,当 P1.3 口的输入电压幅值下降到 3dB 时的频率即为单位增益带宽。 (三)测试的信号源 vdCMR AK、 用文氏电桥电路实现产生 4V、5Hz 的正弦波。它是由 RC 振荡电路构成的低频正弦信号 发生器。通过调节电路中的电阻和电

18、容值的大小,可以产生不同频率和幅度的正弦信号,而且 信号比较纯。该电路简单、信号幅度稳定,其稳定度优于 1%。经过仿真后发现该电路只能产 生 400KHz 以内的信号,但这个频率范围已经满足我们的要求。 5 (四)峰峰值检测电路的设计 3 2 6 1 5 74 U2 TL 710 C1 CAP C2 CAP C3 CAP C4 CAP R1 10K R2 10K R3 10K R4 10K R5 10K R6 10KD1 DIODE D2 DIODE 1 2 J1 CON2 VCC INPUT3 2 1 84 U1A OP07 图 5 峰值检波图 该电路主要由一个二极管和两个电容组成,用于检测

19、扫频信号源的峰值。实际测量表明, 该峰值检测电路在 40kHz4MHz 具有很好的线性度。该电路如图 5 所示。 (五)A/D 采样电路 为保证测量精度,该部分电路采用 12 位串行口TLC2543。电路如图 6 所示。 EA /VP 31 X1 19 X2 18 RE SE T 9 RD 17 WR 16 INT 0 12 INT 1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21

20、22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 AL E/P 30 TX D 11 RX D 10 IC1 AT 89S51 AN 0 1 AN 1 2 AN 2 3 AN 3 4 AN 4 5 AN 5 6 AN 6 7 AN 7 8 AN 8 9 GND 10 AN 9 11 AN 10 12 RE F- 13 RE F+ 14 /CS 15 DA TA O UT 16 DA TA INPUT 17 I/O CLK 18 EO C 19 VCC 20 IC18 TL C2543 /WR /RD VCC D0 D1 D2 D3 D4

21、D5 D6 D7 P20 P21 P22 C2 0.1 C6 1 2 3 4 5 6 7 8 9 10 11 12 JP1 TL C2543 IN PO RT P15 P16 P17 SE RIAL A/D P23 P24 RE SE T KE Y_IN T0 C7 C8 JZHE N VCC INT 1 P3.3 T0 T1 P10 P11 P12 P13 P14 C3 10U 图 6 A/D 采样电路图 (六)扫频信号源 采用直接数字频率合成芯片(AD9851)来产生扫频信号。它的频率稳定度完全由有源晶振 的频率稳定度决定,具有较高的频率输出范围,而且可以直接由单片机的输出来控制频率的大

22、小。经过输出扫频测试,DDS 芯片可以在 10 秒内连续、稳定输出频率在 40kHz4MHz 范围内连 续变化的正弦波。其电路原理图如图 7 所示。 AD9851 采用并行送控制字的方式将频率控制字送入芯片。频率控制字 FSW 与最终合成的 信号频率 0 f 之间的转换公式为: 32 0 2/FSWff c 若系统时钟频率 c f 为 30MHz,则最大分辨率 0 f =30106232Hz=0.007Hz。远超出本题 1kHz 分 辩力的要求。 6 D3 1 D2 2 D1 3 D0 LSB 4 PGND 5 PVCC 6 W_CLK 7 FQ_UD 8 REF_CLK 9 AGND 10

23、AVDD 11 Rset 12 VOUT N 13 VOUT P 14 VINN- 15 VINP+ 16 DACBP 17 AVDD 18 AGND 19 IOUTB 20 IOUT 21 RESET 22 DVDD 23 DGND 24 D7 MSB SLO AD 25 D6 26 D5 27 D4 28 IC1 AD9851 R1 L12 L6 L9 L1 C13 C19 C20C21C10C18 VCC VCC VCC 1 - 2 out 3 + 4 XTAL 2 C25 C27 C28 C29 L13 in 1 23 out 4 U2 UPC1651 C22C23 L15 L16 C

24、30 VCC VCC VCC R2 R10 C26 L14 1 2 3 4 5 6 7 8 J2 1 2 3 4 J3 1 1 2 2 J4 1 1 2 2 J5 R9 R8 VCC 图 7 扫频信号源图 (七)键盘接口电路 键盘的接收部分电路如图 8 所示: IN/CL K 1 IN 2 IN 3 IN 4 IN 5 IN 6 IN 7 IN 8 IN 9 IN 10 IN 11 IN 13 IO 14 IO 15 IO 16 IO 17 IO 18 IO 19 IO 20 IO 21 IO 22 IO 23 U1 GAL22V10B25L P(24) 1 2 3 4 5 6 7 8 9 P

25、R2 4.7K VCC 12 34 KEY0 12 34 KEY1 12 34 KEY2 A0 2 A1 3 A2 4 A3 5 A4 6 A5 7 A6 8 A7 9 B0 18 B1 17 B2 16 B3 15 B4 14 B5 13 B6 12 B7 11 E 19 DIR 1 U2 74ALS245 VCC VCC D0 D1 D2 D3 D4 D5 D6 D7 KEY_CS KEY_INT 1 2 3 4 5 6 7 8 J1 I/O 图 8 键盘接收电路图 当有按键时就触发外中断 0,再通过控制片选端(KEY_CS)来读取当前按键的键值,这个信 号是由 74LS138 实现的,其

26、地址为 C000H;键值的编辑则是采用一块 PLD 芯片GAL22V100 和 一个双向选通芯片 74LS245 来实现;数据的读入和其他的数据一样都是通过总线的方式, (74ALS245 的输出端 B0 到 B7 与单片机的 P0 口相连接)。键值的四位由低到高分别对应 P0.0、P0.1、P0.2、P0.3。该键盘中各键的功能分配如下: KEY0:屏幕复位,键值为 0; KEY1:进入参数测试界面,键值为 1; KEY2:进入幅频特性测试界面,键值为 2。 (八)显示接口电路 采用 MSC-G12864 液晶显示器。该液晶显示器的管脚分配和管脚功能使用如表 1 所示,根 据资料我们在硬件设

27、计时将其管脚与单片机的连接如下: 控制线:P2.3 连 CS2,P2.2 连 CS1,P2.1 连 R/W,P2.0 连 R/S,P2.4 连 E; 数据线:D0D7 分别与 P0.0P0.7 相连接; 7 因此液晶显示器和单片机的接口电路连接如图 9 所示。 表 1 液晶显示器管脚分配 20191817161514131211 SLKSLAVOUTRSTBCS2CS1DB7DB6DB5DB4 10987654321 DB3DB2DB1DB0ER/WRSVOVDDVss 4 5 6 U3B 74HC00 RST 11 12 13 U3D 74HC00 E /CS1 /CS2 R/S R/W /

28、RST EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE /P 30 TXD 11 RXD 10 IC1 AT89S51 /OE 1 D0 2 D1 3 D2 4 D3

29、 5 D4 6 D5 7 D6 8 D7 9 GND 10 LE 11 O7 12 O6 13 O5 14 O4 15 O3 16 O2 17 O1 18 O0 19 VCC 20 IC2 74LS573 /OE 1 D0 2 D1 3 D2 4 D3 5 D4 6 D5 7 D6 8 D7 9 GND 10 LE 11 O7 12 O6 13 O5 14 O4 15 O3 16 O2 17 O1 18 O0 19 VCC 20 IC8 74LS573 /WR /RD VCC VCC D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D

30、2 D3 D4 D5 D6 D7 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 HIGH 8BIT A DRESS LO CK A 1 B 2 C 3 E1 4 E2 5 E3 6 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 IC20 74HC138 VCC 7524 CS TL C0820 CS 1 2 3 IC21A 74LS02 4 5 6 IC21B 74LS02 8 9 10 IC21C 74LS02 11 12 13 IC21D 74LS02 /WR 628128 ADH

31、8 628128 ADH 8 KEY_CS /RD KEY_RD LCD_WR C6 P15 P16 P17 P24 RESET KEY_INT 0 C8 JZ HEN VCC INT1 P3.3 T0 T1 P10 P11 P12 P13 P14 12 IC28A 74LS04 R24 33/2W VCCQ1 BD140 R7 10K P3.4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 LCD2 MSC-G12864 D0 D1 D2 D3 D4 D5 D6 D7 E R/W R/S VO VCC GND /CS2 /CS1 VOU

32、T /RST LE D+ LE D- C7 W2 15K VCC VO 1 2 3 JMP VOUT 图 9 显示接口电路图 三、 软件设计 (一)软件功能设计 软件系统以界面直观、利于操作、便于维护和升级为基础。而且为了增强系统的抗干扰 性,还增加了软件陷阱处理,防止软件的“跑飞”。 对于软件功能的设计不仅仅是对程序的简单设计,还包括对各电路间接口的设计,接口 设计描述的是软件如何与外界系统进行通信,软件内部如何通信、以及软件和软件的使用人员 之间如何通信等问题。一个接口意味着一个信息流(例如,数据或控制流等) ,因此,在这里 的一个重点就是要实现如何更好的分配数据和控制流,从而实现整个功能

33、。 (二)系统软件框图和程序流程图 AT89C52 是美国 ATMEL 公司生产的低电压,高性能 CMOS 8 位单片机,片内含 8K bytes 的 Flash ROM 和 256 bytes 的 SRAM。器件采用 ATMEL 公司的高密度、非易失性存储技术生产, 与标准 MCS-51 指令系统及 8052 产品引脚兼容。本系统以单片机 AT89C52 为主控核心,系统软 件和硬件的接口框图如图 10 所示,程序流程图如图 11 所示。与单片机相连的接口电路还包括 键盘接口电路,LCD 接口电路,转换模块接口电路。 8 图 10 系统软件和硬件的接口框图 图 11 程序流程图 (三)软件模

34、块设计 软件设计工作是建立在自顶而下和模块化的设计方法之上的。这就是说,软件应在逻辑上 分割为实现特定功能部分的子程序,既程序编写的模块化,这样无论在设计、编码、还是以后 的维护上都提供了很大的方便。在此我们根据接口电路的需要可以把该程序分为六个模块:主 程序模块、显示模块、键盘模块、高频输出模块、转换模块、数据处理模块。虽然每个模块之 间都是利用数据的传送将他们联系起来,但在功能的实现上都是独立的。 TLC2543 读入信号 自动测试 计算每路的值 计算参数 Uio、Uco、Avd 、Kcmr 并显示 输出频率为 4M400KHz 的 波形 计算带宽增益 键值 1 有按键 键值 0 键值 2

35、 初始化界面 初始化界面 键 盘 输 入 51 单片机 LCD 显示 A/D 转换 模块 测 试 板 9 主程序模块 该模块主要包括 main()函数。 在将程序进行模块化时当然还要将各个子程序联系起来,在主程序里就是要实现它们之间 逻辑关系的联系,而且基于单片机自身的特点,主程序应该是一个死循环的过程,否则程序执 行完一次程序后就会跑飞,而不能实现整体功能,因而使整个系统处于瘫痪状态,此时只能通 过重新断电和通电才能使系统重新运行,即使这样该系统还是会再次进入瘫痪状态。因此只能 利用死循环来解决这个问题,这也是对单片机编程的一种常用的方法。 在主程序模块中,主要实现的功能为:刚开机时,对外围

36、设备进行初始化设置,然后显示 主界面,即欢迎界面;等待按键,通过按键标志来判断是否要调用按键处理函数 keycl()。在 keycl()函数中包括对不同键值的判断,并调用数据采集、分析、处理、显示等函数。因此主函 数的流程图如图 12 所示。该主函数处于一种死循环的状态。 开始 显示主界面 有按键 否 判断键值,并调用显示模块、 调用键盘模块子程序、转换 模块和数据处理模块子程序 结束 N Y 图 12 主函数流程图 主函数的程序如下所示: /*/ /* 主函数 */ /*/ void main() unsigned char k,adbuf,dabuf,rambuf; idata unsig

37、ned int *para= ad2543(0x0C); /预先将要读取数据的通道数送入 dabuf=0xff; P3_4=1; /改变继电器 INTlcd(); /* 调初始化函数 */ CLEAR(); /* 调清屏函数 */ EA=1; EX0=1; 10 IT0=1; flag=0; fw(); /复位 while(1) /使程序处于死循环 if(flag=1) /当有按键按下时 keycl(); /调用键盘处理函数包括对数据采集、分析、计算 其中 INTlcd()函数,CLEAR()函数和 fw()函数将在附录一里给出。 显示模块 显示模块主要是负责跟液晶显示器接口的程序模块,包括液

38、晶的驱动程序和结果显示程 序。该模块主要是由 xianshi()函数组成,它的功能是将处理结果数据显示在 LCD 上。流程图如 图 13 所示。其中调用了写中文函数 whz(),写西文函数 wcode()。流程图如图 14 所示,以及两 个判忙函数 BUSYM(),BUSYR(),两个写指令函数 PR1(),PR4(),两个写数据函数 PR2(), PR5(),该模块在设计时主要考虑单片机和液晶之间的管脚连接,以及液晶自身的地址分配。 在此我们参考了液晶显示器的使用手册,分析了在硬件上单片机的管脚分配情况,因此单片机 和液晶的接口电路如图 9。其地址控制说明如图 15 所示,接口管脚电平说明如

39、表 2 所示。 开始 取出要计算 的每一位 调用写西文函数显 示结果 结束 开始 液晶忙 送要显示的数据 结束 N Y 图 13 显示模块流程图 图 14 写中、西文函数流程图 11 图 15 地址控制说明图 表 2: LCD 管脚电平说明表 Pin No.SymbolLevelDescription 1VSS0VGround 2VDD5.0VSupply voltage for logic 3VO-Input voltage for LCD 4RSH/LH:Date signal, L:Instruction signal 5R/WH/LH:Read mode, l:write mode 6

40、EH,H-LChip enable signal 7DB0H/LData bit 0 8DB1H/LData bit 1 9DB2H/LData bit 2 10DB3H/LData bit 3 11DB4H/LData bit 4 12DB5H/LData bit 5 13DB6H/LData bit 6 14DB7H/LData bit 7 15CS1HChip select signal for KS0108B(1) 16CS2HChip select signal for KS0108B(2) 17RSTBLReset signal 18VOUT-5VOutput voltage fo

41、r LCD 19SLA4.2vSide light anode 20SLK0VSide light cathode 由液晶显示器的资料可知 LCD 是由两片KS0108B组成,且在液晶显示器上片选 CS1,CS2 都 是高电平有效,E 脚:芯片使能端,是高电平或下降沿到来时有效,即只有当它为高电平或下 降沿来时才能进行读、写入数据或者写指令操作,当该管脚为低电平时为忙状态,因此结合硬 件电路的设计可得到液晶显示器的地址分配为: #define cwadd2 XBYTE0xb400 /*第二片写状态地址*/ #define cradd2 XBYTE0xf600 /*第二片读状态地址*/ 12 #

42、define dwadd2 XBYTE0xb500 /*第二片写数据地址*/ #define cwadd1 XBYTE0xb800 /*第一片写状态地址*/ #define cradd1 XBYTE0xfa00 /*第一片读状态地址*/ #define dwadd1 XBYTE0xb900 /*第一片写数据地址*/ #define display_on 0x3f; /开显示 #define display_off 0x3e; /关显示 #define para1 0x40; /*设置列地址*/ #define start_line0 0x0c0; /*开始显示行为第 0 行*/ #define

43、 page 0xb8 /设置页地址 在显示数据之前一定要进行对液晶进行判忙工作,只有当液晶处于空闲状态才能对液晶进 行写入操作,因此在开始对液晶进行写入指令和数据之前要先调用两个判忙函数,一个是 BUSYM()即对左片判忙,还有一个是 BUSYR()即对右片进行判忙。而且只有当液晶是处于空 闲和开状态的时候,才能进行下一个操作,否则将在此进入死循环中。 其中写指令函数 PR1(),PR4(),主要功能是设置液晶显示器的地址;写数据函数 PR2(), PR5()是在地址设置后将要显示的数据写入到液晶显示器中;写中文函数 whz()是显示中文字符, 写西文函数 wcode()是显示西文字符。以下给

44、出了 xianshi()函数具体程序,其它的程序在附录里 给出,这里就不一一详述。 /*/ /* 显示结果 */ /*/ void xianshi(void) float k; int j; unsigned char i,last,hang,lie; for(i=64;i0;j-) /要显示的数据共 5 位从最后一位开始显示 k=averagei-(int)averagei; /获得最后一位小数 if (kad0ij+1) temp=ad0ij; ad0ij=ad0ij+1; ad0ij+1=temp; /比出最小值 放在倒数第二位 for (i=0;i #include “AT89X52.

45、h“ #include #include #include #define cwadd2 XBYTE0xB800 #define cradd2 XBYTE0xFa00 #define dwadd2 XBYTE0xB900 #define dradd2 XBYTE0xFb00 #define cwadd1 XBYTE0xB400 #define cradd1 XBYTE0xF600 #define dwadd1 XBYTE0xB500 #define dradd1 XBYTE0xF700 #define daaddr XBYTE0X2fff #define adaddr XBYTE0X5fff

46、#define ramaddr XBYTE0X0001 #define keyaddr XBYTE0XC000 sbitACC_0=ACC0; sbitACC_1=ACC1; sbitACC_2=ACC2; sbitACC_3=ACC3; sbitACC_4=ACC4; sbitACC_5=ACC5; sbitACC_6=ACC6; sbitACC_7=ACC7; #define dacs XBYTE 0X9fFF /高频信号源产生地址 #define display_on 0x3f; #define display_off 0x3e; #define para1 0x40; #define

47、start_line0 0xc0; idata unsigned char keyv; sbit sclk = P10; /TLC2543 时钟信号线 sbit din = P11; /TLC2543 串行数据输入线 sbit dout = P12; /TLC2543 串行数据输出线 sbit cs = P14; /TLC2543 片选信号线 sbit jdq0 = P30; /继电器标志 sbit jdq1=P31; /继电器标志 bdata char cjn; sbit cj0=cjn0; sbit cj1=cjn1; sbit cj2=cjn2; sbit cj3=cjn3; sbit

48、cj4=cjn4; 25 sbit cj5=cjn5; sbit cj6=cjn6; sbit cj7=cjn7; bit cj; bit flag; unsigned int com,dat1; float xf,yf; unsigned char code_1,count1; idata unsigned int ad058; float average5; sbit fq_up=P16; sbit reset=P17; idata unsigned int vio8,vlo8; idata unsigned char *lcdpointer1= code unsigned char CHTAB48

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1