资源目录
压缩包内文档预览:(预览前20页/共46页)
编号:552100
类型:共享资源
大小:333.37KB
格式:ZIP
上传时间:2015-12-05
上传人:QQ28****1120
认证信息
个人认证
孙**(实名认证)
辽宁
IP属地:辽宁
6
积分
- 关 键 词:
-
毕业设计论文
- 资源描述:
-
集成运放参数测试仪,毕业设计论文
- 内容简介:
-
集成运放参数测试仪 程序设计 内容摘要: 该课题设计的运算放大器闭环参数测试系统是基于 MSC-51 单片机控制模块,并且由 LCD( Liquid Crystal Display)显示模块,键盘模块,数据采集和转换模块, 采用 DDS 芯片( AD9851)实现了 40kHz 4MHz 的扫频输出模块等五部分组成。 采用辅助运放测试方法,可对运放的输入失调电压、输入失调电流、交流差模开环电压增益和交流共模抑制比以及单位增益带宽进行测量。在软件上,用 C语言来编程实现。其要实现的功能包括:对来自 TLC2543A/D 转换的数字信 号进行接收、分析 、 计算和对 结果 的显示; 通过 不同键值的接收、分析来控制对不同对象的测量 ,并在 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 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 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. 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 interface; 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 CLanguage DDS LCD interface nts目 录 前言 1 一、系统原理框图 1 二、硬件单元电路设计与实现 2 (一) iocV 、 ioI 、 vdA 、 cmrK 四个参数的测试电路 2 (二) 单位增益带宽测量电路 3 (三) 测试 vd CMRAK、 的信号源 3 (四) 峰峰值检测电路的设计 4 (五) A/D 采样电路 4 (六) 扫频信号源 4 (七) 键盘接口电路 5 (八) 显示接口电路 5 三、软件设计 6 (一) 软件功能设计 6 (二) 系统软件框图和程序流程图 6 (三) 软件模块设计 7 四、系统测试 19 (一)程序调试方法 19 (二)软件调试 19 (三)联机调试 20 五、结束语 20 六、感谢词 20 参考文献 20 附录一 21 附录二 22 附录三 36 (一) TLC2543 36 (二) LCD 液晶显 示器 36 附录四 38 nts 1 集成运放参数测试仪 程序设计 前言 目前国内外市场上各种型号的集成运放参数测试仪已经相当多,而且普遍性都采用“辅助放大器的测量方法”,使测试仪的整个系统具有稳定性好,精确度高,范围大的特点,而且测试仪测试参数一般包括:正向最大输出电压 +oppV,负向最大输出电压 -oppV,正向 最大共模输出电压 +icmV,负向最大共模输出电压 -icmV,正转换速率 + rS,负转换速率 -rS,静态工作电流qI,输入失调电压iocV,共模抑制比cmrK,开环增益带宽乘积 BW,输入失调电流 Iio ,开环电压增益vdA,基极偏置电流ibI等 15 项。 但这种测试仪有一种共同的特点电路系统复杂,成本高,因此在某些应用领域中不能普遍使用。在此我们根据 GB3442 86半导体集成电路运算电压放大器测试方法的基本原理规定的测试方法来设计,主要测试参数包括:输入失调电压iocV,共模抑制比cmrK,开环增益宽带乘积 BW,输入失调电流ioI,开环电压增益vdA等 5 个,而且用 MSC51 系列单片机作为中央处理器,这样大大降低了成本,并且具有显示功能,使用方便,体积小,适合搬移,系统稳定。 在软件方面,汇编语言是能直接控制单片机的底层语言 ,而且在控制硬件和位操作等方面表现很优异,程序运行时效率也很高,但当用汇编语言来编制复杂的数学运算类型的程序时就显得有些不方便。而使用 C51 高级语言开发 MSC51 系列单片机比汇编语言优越地多,如程序编写直观易懂、便于移植、便于修改和维护、便于进行模块 化程序设计、提高计算精度等。虽然高级语言在产生代码方面会比较长些,而且运行速度相对来说会慢些但对于当今作为开发的计算机软件来说优化程序的编译已经不是问题。在次我们结合了该设计自身的特点和需要,综合分析了以上的优、缺点最后决定采用 C 语言来编程,实现这个课题的功能,从而也提高其使用性。该成品可方便用于小型实验或个人实验室等场合。 一、 系统原理框图 该系统包括软件和硬件两个方面,程序被下载到单片机中,自动进行一系列测试工作,而且可以通过良好的人机界面对其进行选择、控制。其整体系统原理框图如图 1 所示。 图 1 系统原理框图 运 放 参 数 测 试 电 路 数据采集 测试参数选择 高频信号源 增 益 控 制 单 片 机 LCD 显示输出 键 盘 输 入 nts 2 二、 硬件单元电路设计与实现 (一) iocV 、 ioI 、 vdA 、 cmrK 四个参数的测试电路 按照 GB3442 86半导体集成电路运算 (电压 )放大器测试方法的基本原理规定的辅助直流测试法,可实现运算放大器直流参数的准确测量。该方案的测试原理如图 2 所示。 +-+-被测运放辅助运放R f R 1R iR iR 2K 1K 2R R V LR f数字电压表( 4 位半以上 )图 2 GB3442 86 规定的运算放大器直流参数测试方法 它是国标推荐的测试方法也是目前国际普遍采用的一种测试方法,具有稳定性好、精度高、范围大等特点,可测量各种集成运算放大器的输入失调电压、失调电流、共模抑制比、差模开环增益等参数,测试方便,测量输出的电压范围合适。而辅助运放对系统增益的稳定性有很关键的作用,虽然也会引起自激,但可以通过一定的方法来抑制。 测试这四个参数的电路可以集成在两个电路里。首先可以将测试iocV、ioI这两个参数的电路通过继电器做成一个电路系统,如图 3所示。电容 Cu 是补偿分布电容,用来抑制自激的发生,而 Cu的值是通过实验获得的:先将数百皮法的瓷片电容接入电路选定位置,观察自激信号的变化,直到取得使自激信号最小的电容值为止。然后将测试vdA、cmrK这两个参数的电路也集成一个电路系统,如图 4 所示。 这样通过两个核心测量电路就可以完成所有参数测试,同时 通过对继电器的控制 实现了测量的自动化,而且大大简化了电路 。 1234567 8K 23R1R 111kR 121k113322w15 0kR31 00R41 00R5 1MR61MR f 2 2 0kR f 12 0kR73 0kR83 0K3261 574u11M542 71 83 614111013129U27 65 0C4C31 04 *2+ 12 vQ1N P ND1D I O D E32184U 3AT L 0 82+ 12 v- 1 2v- 1 2v+ 12 v+ 12 v+ 12 v- 1 2vR 133 0KCuC R 2C R 1R3 0012J1C O N 2567U 3BT L 0 82图 3 输入失调电压和输入失调电流测试电路 nts 3 R 11 1kR 12 1kR 13 1kR 14 1 00R 15 4 3kw25 0kC 74 7u C 81uR 3 1 00R 41 00R f 2 2 0kR 73 0kR 83 0K3261 574u 11M542 71 83 614111013129U 27 65 0C 4C 31 04 *2R f 12 0k RL1 0KR 1+ 12 vB1C2E3Q2N P ND4D I O D E1234567 8K 2132184U 3 AT L 0 8232184U 4 AT L 0 82567U 4 BT L 0 82+ 12 v- 1 2v- 1 2v+ 12 vD3D I O D E+ 12 v- 1 2v+ 12 v+ 12 v- 1 2vR 143 0KC uC R 2 R3 001 2J2C O N 24 v 5 H z图 4 电压增益和共模抑制比测试电路 其测试电路和过程如下: 、 当继电器 1、 4 分别脚接向 3、 6 脚时 ,测得辅助运放的输出电压记为 VL0 ,则有: L0fi iIO VRRRV 、 当继电器 1、 4 分别脚接向 2、 5 脚时 ,测得辅助运放的输出电压记为 VL1,则有: R VVRR RI L0L1fi iIO 、当把 信号源输出(电压为 VS)接到继电器的第 1 脚时,测得辅助运放输出电压为 VL0,则有 )dB(lg20 ifiLOSVD R RRVVA 、当把 信号源输出(电压为 VS)接到继电器的第 4 脚时,测得辅助运放输出电压为 VL0,则有 )dB(lg20 ifiLOSCMR R RRVVK 通过上述方法就可测得所要测试的四个参数。 (二) 单位增益带宽测量电路 单位增益带宽测量电路为一个反向比例放大器,从 P1.3 口输入正弦信号的幅值,改变信号频率,当 P1.3 口的输入电压幅值下降到 3dB 时的频率即为单位增益带宽。 (三) 测试vd CMRAK、的信号源 用文氏电桥电路实现产生 4V、 5Hz的正弦波。 它 是由 RC 振荡电路构成的低频正弦信号发生器。通过调节电路中的电阻和电容值的大小,可以产生不同频率和幅度的正弦信号,而且信号比较纯。该电路简单、信号幅度稳定,其稳定度优于 1%。经过仿真后发现该电路只能产生400KHz以内的信号,但这个频率范围已经满足我们的要求。 nts 4 (四) 峰峰值检测电路的设计 3261 574U2T L 7 1 0C1C A PC2C A PC3C A PC4C A PR11 0KR21 0KR31 0KR41 0KR51 0KR61 0K D1D I O D ED2D I O D E12J1C O N 2V C CI N P U T 32184U 1 AO P 07图 5 峰值检波图 该电路主要由一个二极管和两个电容组成,用于检测扫频信号源的峰值。实际测量表明,该峰值检测电路在 40kHz 4MHz 具有很好的线性度。该电路如图 5 所示。 (五) A/D 采样电路 为保证测量精度,该部分电路采用 12 位串行口 TLC2543。电路如图 6 所示 。 E A / V P31X119X218R E S E T9RD17WR16I N T 012I N T 113T014T115P 101P 112P 123P 134P 145P 156P 167P 178P 0039P 0138P 0237P 0336P 0435P 0534P 0633P 0732P 2021P 2122P 2223P 2324P 2425P 2526P 2627P 2728P S E N29A L E / P30T X D11R X D10I C 1A T 8 9S 51A N 01A N 12A N 23A N 34A N 45A N 56A N 67A N 78A N 89GND10A N 911A N 1 012R E F -13R E F +14/ C S15D A T A O U T16D A T A I N P U T17I / O C L K18E O C19VCC20I C 18T L C 25 43/ W R/ R DV C CD0D1D2D3D4D5D6D7P 20P 21P 22C20 .1C6123456789101112J P 1T L C 25 43 I N P O R TP 15P 16P 17S E RI AL A/ DP 23P 24R E S E TK E Y _I N T 0C7C8J Z H E NV C CI N T 1 P 3.3T0T1P 10P 11P 12P 13P 14C31 0U图 6 A/D 采样电路图 (六) 扫频信号源 采用直接数字频率合成芯片( AD9851)来产生扫频信号 。它的频率稳定度完全由有源晶振的频率稳定度决定,具有较高的频率输出范围,而且可以直接由单片机的输出来控制频率的大小。 经过输出扫频测试, DDS 芯片可以在 10 秒内连续、稳定输出频率在 40kHz 4MHz 范围内连续变化的正弦波。其电路原理图如图 7所示。 AD9851 采用并行送控制字的方式将频率控制字送入芯片。 频率控制字 FSW 与最终合成的信号频率 0f 之间的转换公式为: 320 2/FS Wff c 若系统时钟频率 cf 为 30MHz,则最大分辨率 0f =30 106 232Hz=0.007Hz。远超出本题 1kHz 分辩力的要求。 nts 5 D31D22D13D 0 L S B4P G N D5P V C C6W _ C L K7F Q _U D8REF_CLK9AGND10AVDD11R s e t12V O U T N13V O U T P14V I N N -15V I N P +16D A C B P17AVDD18AGND19I O U T B20I O U T21R E S E T22DVDD23DGND24D 7 M S B S L O A D25D626D527D428I C 1A D 9 85 1R1L 12L6L9L1C 1 3C 1 9C 2 0 C 2 1C 1 0 C 1 8V C CV C CV C C1-2out3+4X T A L 2C 2 5C 2 7C 2 8C 2 9L 13in123o ut4U2U P C 16 5 1C 2 2 C 2 3L 15L 16C 3 0V C CV C CV C CR2R 1 0C 2 6L 1412345678J21234J31122J41122J5R9R8V C C图 7 扫频信号源图 (七) 键盘接口电路 键盘的接收部分电路如图 8所示: I N / C L K1IN2IN3IN4IN5IN6IN7IN8IN9IN10IN11IN13IO14IO15IO16IO17IO18IO19IO20IO21IO22IO23U1G A L 22 V 1 0B 2 5 L P ( 2 4 )1 2 3 4 5 6 7 8 9P R 24 .7 KV C C1234K E Y 01234K E Y 11234K E Y 2A02A13A24A35A46A57A68A79B018B117B216B315B414B513B612B711E19D I R1U27 4A L S 2 45V C CV C CD0D1D2D3D4D5D6D7K E Y _C SK E Y _I N T12345678J1I / O图 8 键盘接收电路图 当有按键时就触发外中断 0,再通过控制片选端 (KEY_CS)来读取当前按键的键值,这个信号是由 74LS138 实现的,其地址为 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所示, 根据资料我们 在硬件设计时将其管脚与单片机的连接如下: 控制线: P2.3 连 CS2,P2.2 连 CS1,P2.1 连 R/W,P2.0 连 R/S, P2.4 连 E; 数据线: D0D7 分别与 P0.0P0.7 相连接; nts 6 因此液晶显示器和单片机的接口电路连接如图 9 所示。 表 1 液晶显示器管脚分配 20 19 18 17 16 15 14 13 12 11 SLK SLA VOUT RSTB CS2 CS1 DB7 DB6 DB5 DB4 10 9 8 7 6 5 4 3 2 1 DB3 DB2 DB1 DB0 E R/W RS VO VDD Vss 456U 3 B7 4H C 0 0R S T111213U 3 D7 4H C 0 0E/ C S 1/ C S 2R / SR / W/ R S TE A / V P31X119X218R E S E T9RD17WR16I N T 012I N T 113T014T115P 101P 112P 123P 134P 145P 156P 167P 178P 0039P 0138P 0237P 0336P 0435P 0534P 0633P 0732P 2021P 2122P 2223P 2324P 2425P 2526P 2627P 2728P S E N29A L E / P30T X D11R X D10I C 1A T 89 S 5 1/ O E1D02D13D24D35D46D57D68D79GND10LE11O712O613O514O415O316O217O118O019V C C20I C 27 4L S 5 73/ O E1D02D13D24D35D46D57D68D79GND10LE11O712O613O514O415O316O217O118O019V C C20I C 87 4L S 5 73/ W R/ R DV C CV C CD0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7A0A1A2A3A4A5A6A7A8A9A 1 0A 1 1A 1 2A 1 3A 1 4A 1 5H I G H 8 B I T A D R E S S L O C KA1B2C3E14E25E36Y015Y114Y213Y312Y411Y510Y69Y77I C 2 07 4H C 1 3 8V C C7 52 4 C ST L C 0 8 2 0 C S123I C 2 1 A7 4L S 0 2456I C 2 1 B7 4L S 0 28910I C 2 1 C7 4L S 0 2111213I C 2 1 D7 4L S 0 2/ W R6 28 1 2 8 A D H 86 28 1 2 8 A D H 8K E Y _C S/ R DK E Y _R DL C D _W RC6P 15P 16P 17P 24R E S E TK E Y _I N T 0C8J Z H E NV C CI N T 1 P 3 .3T0T1P 10P 11P 12P 13P 141 2I C 2 8 A7 4L S 0 4R 2 43 3/ 2 WV C C Q1B D 1 40R71 0KP 3. 41234567891011121314151617181920L C D 2M S C - G 1 28 6 4D0D1D2D3D4D5D6D7ER / WR / SVOV C CGND/ C S 2/ C S 1VOUT/ R S TL E D +L E D -C7W21 5KV C CVO123J M PVOUT图 9 显示接口电路图 三、 软件设计 (一) 软件功能设计 软件系统以界面直观、利于操作、便于维护和升级为基础。而 且为了增强系统的抗干扰性,还增加了软件陷阱处理,防止软件的“跑飞”。 对于软件功能的设计不仅仅是对程序的简单设计,还包括对各电路间 接口 的 设计 ,接口设计 描述 的是 软件如何与外界系统进行通信,软件内部如何通信、以及软件和软件的使用人员之间如何通信 等 问题。一个接口意味着一个信息流(例如,数据或控制流等) , 因此, 在这里的一个重点就是要实现如何更好的分配 数据和控制流 ,从而实现整个功能。 (二) 系统软件框图和程序流程图 AT89C52 是美国 ATMEL 公司生产的低电压,高性能 CMOS 8 位单片机,片内含 8K bytes 的Flash ROM 和 256 bytes 的 SRAM。器件采用 ATMEL 公司的高密度、非易失性存储技术生产,与标准 MCS-51 指令系统及 8052 产品引脚兼容。本系统 以单片机 AT89C52 为主控核心, 系统软件和硬件的接口框图如图 10 所示,程序流程图如图 11 所示。与单片机相连的接口电路还包括键盘接口电路, LCD 接口电路,转换模块接口电路。 nts 7 图 10 系统软件和硬件的接口框图 图 11 程序流程图 (三) 软件模块设计 软件设计工作是建立在自顶而下 和 模 块化的设计方法之上的。这就是说 , 软件应在逻辑上分割为实现特定功能部分 的子程序,既程序编写的模块化,这样无论在设计、编码、还是以后的维护上都提供了很大的方便。在此我们 根据接口电路的需要可以把该程序分为六个模块:主程序模块、显示模块、键盘模块、高频输出模块、转换模块、数据处理模块。虽然每个模块之间都是利用数据的传送将他们联系起来,但在功能的实现上都是独立的。 TLC2543 读入信号 自动测试 计算每路的值 计算参数 Uio、Uco、 Avd、 Kcmr并显示 输 出 频 率 为4M400KHz 的波形 计算带宽增益 键值 1 有按键 键值 0 键值 2 初始化界面 初始化界面 键盘输入 51 单片机 LCD 显示 A/D转换模块 测试板 nts 8 主程序模块 该模块主要包括 main()函数。 在将程序进行模块化时当然还要将各个子程序联系起来,在主程序里就是要实现它们之间逻辑关系的联系,而且基于单 片机自身的特点,主程序应该是一个死循环的过程,否则程序执行完一次程序后就会跑飞,而不能实现整体功能,因而使整个系统处于瘫痪状态,此时只能通过重新断电和通电才能使系统重新运行,即使这样该系统还是会再次进入瘫痪状态。因此只能利用死循环来解决这个问题,这也是对单片机编程的一种常用的方法。 在主程序模块中,主要实现的功能为:刚开机时,对外围设备进行初始化设置,然后显示主界面,即欢迎界面;等待按键,通过按键标志来判断是否要调用按键处理函数 keycl()。在 keycl()函数中包括对不同键值的判断,并调用数据采集、分析 、处理、显示等函数。因此主函数的流程图如图 12 所示。该主函数处于一种死循环的状态。 图 12 主函数流程图 主函数的程序如下所示: /*/ /* 主函数 */ /*/ void main() unsigned char k,adbuf,dabuf,rambuf; idata unsigned int *para=&ramaddr; ad2543(0x0C); /预先将要读取数据的通道数送入 dabuf=0xff; P3_4=1; /改变继电器 INTlcd(); /* 调初始化函数 */ CLEAR(); /* 调清屏函数 */ EA=1; EX0=1; 开始 显示主界面 有按键否 判断键值,并调用显示模块、调用键盘模块子程序、转换模块和数据处理模块子程序 结束 N Y nts 9 IT0=1; flag=0; fw(); /复位 while(1) /使程序处于死循环 if(flag=1) /当有按键按下时 keycl(); /调用键盘处理函数包括对数据采集、分析、计算 其中 INTlcd()函数, CLEAR()函数和 fw()函数将在附录一里给出。 显示模块 显示模块主要是负责跟液 晶显示器接口的程序模块,包括液晶的驱动程序和结果显示程序。 该模块主要是由 xianshi()函数组成,它的功能是将处理结果数据显示在 LCD 上。流程图如图 13 所示。其中调用了写中文函数 whz(),写西文函数 wcode()。 流程图如图 14 所示,以及 两个判忙函数 BUSYM(), BUSYR(),两个写指令函数 PR1(), PR4(),两个写数据函数 PR2(), PR5(),该模块在设计时主要考虑单片机和液晶之间的管脚连接,以及液晶自身的地址分配。在此我们参考了液晶显示器的使用手册,分析了在硬件上单片机的管脚分配情况,因此 单片机和液晶的接口电路如图 9。其地址控制说明如图 15 所示, 接口管脚电平说明如表 2 所示。 图 13 显示模块流程图 图 14 写中、西文函数流程图 开始 液晶忙 送要显示的数据 结束 N Y 开始 取出要计算的每一位 调用写西文函数显示结果 结束 nts 10 图 15 地址控制说明图 表 2: LCD 管脚电平说明表 Pin No. Symbol Level Description 1 VSS 0V Ground 2 VDD 5.0V Supply voltage for logic 3 VO Input voltage for LCD 4 RS H/L H:Date signal, L:Instruction signal 5 R/W H/L H:Read mode, l:write mode 6 E H,H-L Chip enable signal 7 DB0 H/L Data bit 0 8 DB1 H/L Data bit 1 9 DB2 H/L Data bit 2 10 DB3 H/L Data bit 3 11 DB4 H/L Data bit 4 12 DB5 H/L Data bit 5 13 DB6 H/L Data bit 6 14 DB7 H/L Data bit 7 15 CS1 H Chip select signal for KS0108B(1) 16 CS2 H Chip select signal for KS0108B(2) 17 RSTB L Reset signal 18 VOUT -5V Output voltage for LCD 19 SLA 4.2v Side light anode 20 SLK 0V Side light cathode 由液晶显示器的资料可知 LCD 是由两片 KS0108B 组成,且在液晶显示器上片选 CS1,CS2 都是高电平有效, E 脚:芯片使能端,是高电平或下降沿到来时有效,即只有当它为高电平或下降沿来时才能进行读、写入数据或者写指令操作,当该管脚为低电平时为忙状态,因此结合硬件电路的设计可得到液晶显示器的地址分配为: #define cwadd2 XBYTE0xb400 /*第二片写状态地址 */ #define cradd2 XBYTE0xf600 /*第二片读状态地址 */ nts 11 #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 page 0xb8 /设置页地址 在显示数据之前一定要进行对液晶进行判忙工作,只有当液晶处于空闲状态才能对液晶进行写入操作,因此在开始对液晶进行写入指令和数据之前要先调用两个 判忙函数,一个是BUSYM()即对左片判忙,还有一个是 BUSYR()即对右片进行判忙。而且只有当液晶是处于空闲和开状态的时候,才能进行下一个操作,否则将在此进入死循环中。 其中写指令函数 PR1(), PR4(),主要功能是设置液晶显示器的地址;写数据函数 PR2(),PR5()是在地址设置后将要显示的数据写入到液晶显示器中;写中文函数 whz()是显示中文字符,写西文函数 wcode()是显示西文字符。以下给出了 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.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 #define ramaddr XBYTE0X0001 #define keyaddr XBYTE0XC000 sbit ACC_0=ACC0; sbit ACC_1=ACC1; sbit ACC_2=ACC2; sbit ACC_3=ACC3; sbit ACC_4=ACC4; sbit ACC_5=ACC5; sbit ACC_6=ACC6; sbit ACC_7=ACC7; #define dacs XBYTE 0X9fFF /高频信号源产生地址 #define display_on 0x3f; #define display_off 0x3e; #define para1 0x40; #define 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 cj4=cjn4; nts 23 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=&cradd1,*lcdpointer2=&cradd2; code unsigned char CHTAB488= 0x00,0x3E,0x51,0x49,0x45,0x3E,0x00,0x00, /*0=0h*/ 0x00,0x00,0x42,0x7F,0x40,0x00,0x00,0x00, /*1=1h*/ 0x00,0x42,0x61,0x51,0x49,0x46,0x00,0x00, /*2=2h*/ 0x00,0x21,0x41,0x45,0x4B,0x31,0x00,0x00, /*3=3h*/ 0x00,0x18,0x14,0x12,0x7F,0x10,0x00,0x00, /*4=4h*/ 0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00, /*5=5h*/ 0x00,0x3C,0x4A,0x49,0x49,0x30,0x00,0x00, /*6=6h*/ 0x00,0x01,0x01,0x79,0x05,0x03,0x00,0x00, /*7=7h*/ 0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00, /*8=8h*/ 0x00,0x06,0x49,0x49,0x29,0x1E,0x00,0x00, /*9=9h*/ 0x00,0x7E,0x11,0x11,0x11,0x7E,0x00,0x00, /*A=ah*/ 0x00,0x41,0x7F,0x49,0x49,0x36,0x00,0x00, /*B=bh*/ 0x00,0x3E,0x41,0x41,0x41,0x22,0x00,0x00, /*C=ch*/ 0x00,0x41,0x7F,0x41,0x41,0x3E,0x00,0x00, /*D=dh*/ 0x00,0x7F,0x49,0x49,0x49,0x49,0x00,0x00, /*E=eh*/ 0x00,0x7F,0x09,0x09,0x09,0x01,0x00,0x00, /*F=fh*/ 0x00,0x3E,0x41,0x41,0x49,0x7A,0x00,0x00, /*G=10h*/ 0x00,0x7F,0x08,0x08,0x0
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。