单片机测电压
- 格式:doc
- 大小:1.23 MB
- 文档页数:18
单片机测电压电流原理随着电子技术的不断发展,单片机作为一种重要的嵌入式系统,广泛应用于各个领域。
在电力系统中,电压和电流的测量是非常重要的,而单片机测电压电流的原理则是实现这一目标的关键。
单片机测电压电流的原理基于模拟电压和电流的转换,通过将模拟信号转换为数字信号,然后经过处理得到所需的电压和电流数值。
我们需要了解单片机的工作原理。
单片机是一种集成电路,包含了处理器、内存、输入输出接口等多个部分。
它可以通过编程来控制各种设备和传感器的工作。
在单片机测电压方面,一般采用模拟转数字转换器(ADC)来实现。
ADC能够将模拟电压信号转换为数字信号,以便单片机进行处理。
具体来说,ADC将连续变化的模拟电压信号分成若干个离散的量化电平,然后将其转换为相应的数字值。
在单片机测电流方面,一般采用电流传感器来实现。
电流传感器是一种能够将电流信号转换为电压信号的装置。
通过将电流信号转换为电压信号,再通过ADC转换为数字信号,可以得到电流的数值。
单片机测电压电流的原理可以概括为以下几个步骤:1. 使用电压传感器将待测电压信号转换为电压信号。
2. 将电压信号输入到ADC中,进行模数转换。
3. 单片机通过编程获取ADC转换后的数字值。
4. 根据ADC转换的数字值和相关系数,计算出电压的实际值。
同样地,测量电流的步骤也类似:1. 使用电流传感器将待测电流信号转换为电压信号。
2. 将电压信号输入到ADC中,进行模数转换。
3. 单片机通过编程获取ADC转换后的数字值。
4. 根据ADC转换的数字值和相关系数,计算出电流的实际值。
需要注意的是,在进行电压和电流测量之前,我们需要根据具体的电路参数和传感器特性进行一定的校准和系数调整,以保证测量的准确性和精度。
除了测量电压和电流,单片机还可以通过其他方式实现对电力系统的监测和控制。
例如,可以通过单片机控制继电器的开关,实现对电路的断开和闭合。
还可以通过单片机与电力系统的通信接口,实现远程监测和控制。
单片机电压测量实验报告引言:本实验旨在通过单片机对电路电压进行测量,了解单片机的模数转换功能以及其应用。
通过实验,我们可以进一步掌握单片机的电压测量原理和方法,并能够使用单片机进行电压的实时测量。
实验原理:单片机的模数转换功能是实现电压测量的关键。
我们使用的单片机通过模数转换器将模拟信号转换为数字信号,然后通过计算和显示模块将数字信号转换为可读取的电压数值。
实验仪器和材料:1. 单片机开发板2. 电源供应器3. 多用途测试仪4. 面包板5. 电阻、电容等元件实验步骤:1. 连接电路:将电源供应器连接到开发板的电源接口,并通过面包板将待测电压输入口与开发板的模拟输入引脚连接。
2. 编写程序:使用适当的编程语言,编写程序以在开发板上控制单片机进行电压测量。
3. 烧录程序:将编写好的程序通过编程器将其烧录到单片机中。
4. 实施测量:按照实验要求依次输入不同的电压值,并观察开发板上的显示结果。
5. 记录数据:根据实验测得的数据,记录下每次测量的电压数值。
6. 结果分析:通过对测量数据的分析,了解测量准确性以及测量误差的来源。
实验结果:通过实验,我们得到了一系列测量结果。
这些结果表明单片机对电压的测量是可行和准确的。
根据实验数据,我们可以分析出测量误差主要来自于电源稳定性和电阻的精度等因素。
同时,在实际应用中,也需要注意影响电压测量结果的干扰因素,如温度、湿度等。
结论:本实验通过单片机进行电压测量,实现了对电路电压的准确测量。
同时,我们也认识到了单片机模数转换功能的重要性和应用前景。
在今后的实际应用中,单片机的电压测量技术将会得到广泛的应用。
致谢:感谢指导老师对本实验的指导和支持,感谢实验中的合作伙伴们的辛勤工作和帮助。
单片机测电压电流设计要求:1、用单片机测30-36V的直流电压,0-10A的直流电流;2、用单片机测30-36V交流电压有效值、平均值、交流电压的频谱分析;3、用单片机测0-10A交流电流的有效值、平均值、峰值。
一、设计思路用调理电路电路将电压和电流采入AD转换器,AD转换器将电压电流转化为数字信号,使用单片机与AD进行数据传输,在单片机的内部进行处理后,在LED或者LCD上进行显示。
可设计出一个选择开关,选择是进行电压还是电流的测量.可测电压电流的范围和精度取决于AD的精度,分辨率越高,精度越高.总体框图二、设计方案选择1、主控芯片方案1:选用专用转化芯片INC7107实现电压和电流的测量和实现,用四位数码管显示出最后的转换电压和电流的结果。
缺点是精度比较低,内部电压转换和控制部分不可控制。
优点是价格低廉。
方案2:选用单片机MSC80C51和A/D转换芯片ADC0809实现电压和电压的转换和控制,用四位数码管显示出最后的转换电压结果。
缺点是价格稍贵;优点是转换精度高,且转换的过程和控制、显示部分可以控制。
基于课程设计的要求选用方案2.ADC0809的精度不高,不是很好用,初级用户才用。
2、显示部分方案1:选用2个单体的共阴极数码管。
优点是价格比较便宜;可以实现电路要求。
方案2:选用一个并联在一起的共阴极数码管,外加两个三极管驱动。
因为还需要驱动,相对方案一有些复杂,且价格有点贵。
故基于课程设计的要求选用方案1。
三、电路设计原理模拟电压和电流经调理电路电路筛减调理电路后,经隔离干扰送到A/D转换器进行A/D转换。
然后送到单片机中进行数据处理。
处理后的数据送到LED 中显示。
同时通过串行通讯与上位通信。
硬件电路及软件程序。
而硬件电路又大体可分为调理电路电路、A/D转换电路、LED显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;一般I/O接口芯片的驱动能力是很有限的,在LED显示器接口电路中,输出口所能提供的驱动电流一般是不够的尤其是设计中需要用到多位LED,此时就需要增加LED驱动电路。
基于MSP430单片机的交流电压测量设计 东南大学仪器科学与工程学院许欢 摘要:在单片机的一些测量中,有时候需要我们直接测量交流信号,现介绍一种基于msp430单片机实现的交流电压的测量方法。
关键字:MSP430单片机,交流电压,测量,中断日常生活及学习中, 我们一般需要之间测量交流信号, 测量交流信号的方法有很多, 而在 应用单片机的测量中,我们常常用来测量直流电压,现在将介绍一种基于 msp430单片机实 现的交流电压的测量方法。
系统的构成主要分硬件设计和软件设计两块来介绍。
硬件设计:为了保证硬件电路设计的通用性, 采用单级性电压测量的方法,将输入的双极性电压转换成单级性电压进行测量。
整个电路主要包括极性转换电路和输入处理电路。
其中,极性转换电路主要由放大电路实现,在此我采用MCP 601放大芯片。
MCP601芯片:(Microchip 公司的一款高性能的放大芯片)Vcc 管脚:电源管脚 GND 管脚:接地管脚 VIN-管脚:负输入端管脚 VIN+管脚:正输入端管脚 OUT 管脚:输出管脚 极性转换电路设计:在进行A/D 转换时,我们一般会采用芯片的工作电压作为 A/D 转换的参考电压。
由于一般 芯片的工作电压都为正电压, 而我们在这里要测量交流电压, 所以要对输入的交流信号进行 极性转换,将双极性变成单级性。
下图为极性转换电路:如图所示,该芯片共有 8个管脚,在极性转换电路中,ADOUT 为输出信号。
输出信号是在输入信号 ADIN 的基础上叠加了一个直流分量,调节上面的Vref 的值就可以改变直流分量的值。
如果调节Vref 使直流分量的值为1.5V ,并且此时输入信号是幅值为 1.5V 的交流正弦信号,那么输出信号就为最大值为3V ,最小值为0V 的单级性正弦信号。
在极性转换电路基础上我们将很容易设计出我们要的 输入电路。
输入处理电路:在极性转换电路基础上,输入处理电路需要将 220V 的交流电压信号变为幅值为1.5V 左右的交流信号,此外,还需要为MCP 601提供适当的参考电压信号。
基于单片机的电池电压检测方案设计电池电压检测是电子产品中非常重要的一项功能,通过检测电池的电压可以判断电池的剩余容量,从而提醒用户更换电池或充电。
本文将介绍一种基于单片机的电池电压检测方案设计。
硬件设计方面,我们需要准备以下器件:1. 单片机:选择一款能够满足需求的单片机,一般情况下,单片机的ADC(模数转换器)模块可以用来检测电池的电压,我们可以根据电池的电压范围选择合适的ADC参考电压和分辨率。
2. 电阻分压电路:将电池的电压通过电阻分压,使得电压范围适合单片机的ADC输入范围。
根据电池电压范围和ADC输入范围的关系,选择合适的两个电阻值。
3. 储存元件:电池电压是一个持续变化的值,为了能够记录电池电压的变化情况,我们需要选择一个合适的储存元件,比如电容或者电感等。
4. 显示器件:为了方便用户查看电池的电压情况,我们可以选择一个合适的显示器件,比如液晶显示屏或者LED。
5. 其他辅助器件:包括电源模块、按键开关等。
软件设计方面,我们需要进行以下步骤:1. 配置单片机的ADC模块:根据选用的单片机型号,进行ADC模块的配置,包括参考电压的选择、分辨率的设置等。
2. 初始化输入输出:设置输入通道和输出口的初始化状态。
3. 读取ADC值:通过单片机的ADC模块,读取电压分压电路输出的模拟电压值。
4. 转换电压数值:将读取到的模拟电压值通过一定的算法转换为实际电压值。
5. 储存电压数值:将转换后的电压数值记录到储存元件中,可以选择定时记录或者按键触发记录。
6. 显示电压数值:通过显示器件,将电压数值显示给用户。
通过硬件和软件的配合,我们可以实现一个基于单片机的电池电压检测方案。
用户可以通过显示器件实时了解电池的电压情况,及时更换或充电,以免影响正常使用。
通过储存元件记录电压变化情况,可以提供给用户更详细的电池使用情况报告。
单片机监测锂电池电压的方法
单片机监测锂电池电压的方法有多种,其中常用的主要有以下三种:
1. 电压测量法:这种方法是直接通过测量电池两端的电压来监测电池状态。
在单片机的ADC引脚上接一个参考电压,将锂电池的正极通过一个电阻接到ADC的输入端,然后将ADC的输出值通过单片机读取并处理。
2. 电流积分法:这种方法是通过测量电池的充放电电流,并将电流值积分得到电量。
在放电过程中,将锂电池的电流通过一个采样电阻转换为电压,然后将该电压值通过ADC输入到单片机中,对电压值进行积分运算,最终得到电池的电量。
3. 库仑计法:这种方法是通过测量电池的充放电电流和电压来计算电量。
在单片机中集成一个库仑计芯片,通过该芯片的输入端采集锂电池的电流和电压信号,然后将信号处理后得到电量。
以上三种方法各有优缺点,可以根据具体应用场景和要求选择适合的方法。
同时,还需要注意防止过充过放、防止电池温度过高、防止干扰等问题。
基于单片机的直流电压电流检测的设计一设计要求用单片机做一个电压,电流检测装置。
(1)电压的范围:DC10-36V,要求精度1%以内。
(2)电流DC 0.1-3A,要求精度1%以内。
(3)用液晶显示电压,电流值(4)通过按键可切换电压,电流显示。
(5)每组做一个实物,实物要求用通用板焊接完成,单片机自选。
二设计简介:利用单片机系统与模数转换芯片、显示模块,按键选择等的结合构建直流电压电流表。
由于单片机的发展已经成熟,利用单片机系统的软硬件结合,可以组装出许多的应用电路来。
此方案的原理是模数(A/D)转换芯片的基准电压端,被测量电压输入端分别输入基准电压和被测电压。
模数(A/D)转换芯片通过按键选择模块将被测量电压或电流输入端所采集到的模拟电压或电流信号转换成相应的数字信号,然后通过对单片机系统进行软件编程,使单片机系统能按规定的时序来采集这些数字信号,通过一定的算法计算出被测量电压或电流的值。
最后单片机系统将计算好了的被测电压电流值按一定的时序送入显示电路模块加以显示。
三.单片机简介及本设计单片机的选择在这一设计中,我们涉及到了一个关键系统模块——单片机系统模块,而目前单片机的种类是很繁多的,主要有主流的8位单片机和高性能的32位单片机,结合本设计各方面因素,8位单片机对于本设计已经是绰绰有余了,但将用哪一种类8的单片机呢。
单片机是指一个集成在一块芯片上的完整计算机系统,具有一个完整计算机所需要的大部分部件:CPU,内存,总线系统等。
而目前常用的单片机的8位有51系列单片机,AVR单片机,PIC单片机。
应用最广的8位单片机还是intel的51系列单片机。
51系列单片机的特点是:硬件结构合理,指令系统规范,加之生产历史悠久,世界有许多芯片公司都买了51的芯片核心专利技术,并在其基础上扩充其性能,使得芯片的运行速度变得更快,性价比更高。
AVR单片机是atmel公司推出较新的单片机,它的显著特点是:高性能,低功能,高速度,指令单周期为主,但性格方面比51单片机要高。
单片机测电压电流设计要求:1、用单片机测30-36V的直流电压,0-10A的直流电流;2 、用单片机测30-36V交流电压有效值、平均值、交流电压的频谱分析;3、用单片机测0-10A交流电流的有效值、平均值、峰值。
一、设计思路用调理电路电路将电压和电流采入AD转换器,AD转换器将电压电流转化为数字信号,使用单片机与AD进行数据传输,在单片机的内部进行处理后,在LED或者LCD上进行显示。
可设计出一个选择开关,选择是进行电压还是电流的测量•可测电压电流的范围和精度取决于AD的精度,分辨率越高,精度越高•调理电路总体框图二、设计方案选择1、主控芯片方案1:选用专用转化芯片INC7107实现电压和电流的测量和实现,用四位数码管显示出最后的转换电压和电流的结果。
缺点是精度比较低,内部电压转换和控制部分不可控制。
优点是价格低廉。
方案2:选用单片机MSC80C51和A/D转换芯片ADC0809实现电压和电压的转换和控制,用四位数码管显示出最后的转换电压结果。
缺点是价格稍贵;优点是转换精度高,且转换的过程和控制、显示部分可以控制。
基于课程设计的要求选用方案 2.ADC0809的精度不高,不是很好用,初级用户才用。
2、显示部分方案1:选用2个单体的共阴极数码管。
优点是价格比较便宜;可以实现电路要求。
方案2:选用一个并联在一起的共阴极数码管,外加两个三极管驱动。
因为还需要驱动,相对方案一有些复杂,且价格有点贵。
故基于课程设计的要求选用方案1三、电路设计原理模拟电压和电流经调理电路电路筛减调理电路后,经隔离干扰送到A/D转换器进行A/D转换。
然后送到单片机中进行数据处理。
处理后的数据送到LED 中显示。
同时通过串行通讯与上位通信。
硬件电路及软件程序。
而硬件电路又大体可分为调理电路电路、A/D转换电路、LED显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;一般I/O接口芯片的驱动能力是很有限的,在LED显示器接口电路中,输出口所能提供的驱动电流一般是不够的尤其是设计中需要用到多位LED,此时就需要增加LED驱动电路。
第1篇一、实验目的本实验旨在研究STM32L476单片机在电池供电较低情况下,如何通过HAL库编程和DMA多通道采集ADC,实现对外部电池电压的精准测量。
实验重点在于解决电池供电低于外部校准电压时,ADC采集不准确的问题,并通过内部基准修正技术提高测量精度。
二、实验原理1. ADC原理:模数转换器(ADC)将模拟信号转换为数字信号,用于测量电压等物理量。
STM32L476单片机内置12位ADC,能够将模拟电压转换为数字值。
2. DMA多通道采集:直接内存访问(DMA)是一种高速数据传输技术,允许ADC在单个转换周期内连续采集多个通道的数据,提高采集效率。
3. 内部基准修正:STM32L476单片机内部具有基准电压源,可以通过调整内部基准电压,修正因电池供电低导致的ADC采集误差。
三、实验设备1. STM32L476G-DISCOVERY开发板2. 3.6V电池3. 7.2V通信电池4. LCD点阵液晶屏5. 二极管6. 稳压芯片7. 万用表四、实验步骤1. 搭建实验电路:将电池、二极管、稳压芯片和STM32L476开发板连接成电路,确保电路稳定可靠。
2. 编程:a. 使用HAL库编程,配置ADC为12位单次转换模式。
b. 设置DMA为多通道采集模式,连续采集多个通道的电压数据。
c. 使用内部基准修正功能,调整内部基准电压,修正采集误差。
3. 测试:a. 使用万用表测量电池电压,确保实验条件符合要求。
b. 在不同电池电压下,观察LCD点阵液晶屏显示的电压值,验证测量精度。
c. 比较开启背光灯和关闭背光灯时的电压采集结果,分析误差原因。
五、实验结果与分析1. 电压采集结果:在电池电压为3.2V时,ADC采集到的电压值约为3.2V,测量精度较高。
2. 误差分析:a. 开启背光灯时,电压采集结果偏高,原因是背光灯电流较大,导致接入板子的电压降低。
b. 电池供电低于外部校准电压时,ADC采集误差较大,通过内部基准修正功能,可以有效降低误差。
交流电压220V如何⽤单⽚机测量电压?通过单⽚机测量电压,是将模拟量转化为数字量,必须使⽤A/D(模数)转换接⼝,⼤部分的单⽚机都会⾃带A/D转换接⼝(ADC接⼝),若使⽤的单⽚机没有ADC接⼝,⽽且不想更换其它单⽚机,也可以使⽤A/D转换芯⽚进⾏外扩,有SPI接⼝、数据总线接⼝等。
提问者要求测量220V交流电的电压,具体实现⽅式有好⼏种⽅法,其⽬的都是将220V⾼压信号缩⼩降为满⾜A/D采样范围的低压信号,接⼊A/D接⼝进⾏A/D转换。
▲交流电压表表头(1)⽅法1:直接采⽤⾼精度电阻分压的⽅式进⾏降压,然后经过差分运放(该差分运放的放⼤倍数为1),差分运放的主要作⽤是有跟随器的作⽤,作为输⼊的缓冲级,起到隔离缓冲作⽤(跟随器输⼊阻抗很⼤,输出阻抗很⼩)。
后级接个RC电路进⾏滤波,消除纹波⼲扰,原理图如下所⽰:▲220V交流电压采集原理图1如上图,220V交流输⼊,采⽤电阻分压,由于交流电属于正弦波,有负半周的波形,该半周的电压为负值,所以必须将整体电压进⾏抬⾼,所以上图使⽤5V电压串联R145=4.7K的电阻将整体电压进⾏抬⾼。
计算⽅法:先计算Q点的电压,根据戴维宁定理分两部分进⾏,当交流输⼊为0时,Q点的电压V1为5V根据电阻R145与R138//R141//R142的分压,V1约1.5V左右;当R145接地时,计算220V交流输⼊时的电压V2,V2约为0.68V左右,该电压为交流电,最⼤值为0.68V×1.414≈0.96V,最⼩值为-0.96V;所以V1与V2进⾏叠加之后的电压为最⼩值为0.54V,最⼤值为2.44V的正弦波,频率为50HZ。
Q点的电压经过差分跟随器进⾏缓冲隔离,然后通过RC电路进⾏滤波,最后输出接⼊单⽚机的AD采样接⼝即可,基准源的电压必须⼤于2.44V,可采⽤3V或3.3V等作为基准源。
采样频率最好⼤于1KHZ,确保每个交流波形周期可以采到20个点以上,然后通过有效值计算,算出其有效值电压,再减去叠加的偏置电压,乘以电路缩⼩系数可得到220V交流电压的有效值。
仲恺农业工程学院20010 —2011学年第二学期课程设计课题名称:基于AT89c51单片机的数字电压表设计时间: 2011.06.01—2011.06.9系部:机电工程系班级:姓名:指导教师:[摘要]本文介绍一种基于89c51单片机的一种电压测量电路,该电路采用ICL7135高精度、双积分A/D转换电路,测量范围直流0-±2000伏,使用LCD液晶模块显示,可以与PC机进行串行通信。
正文着重给出了软硬件系统的各部分电路,介绍了双积分电路的原理,89c51的特点,ICL7135的功能和应用,LCD1601的功能和应用。
该电路设计新颖、功能强大、可扩展性强。
[关键词]电压测量,ICL7135,双积分A/D转换器,1601液晶模块第一章前言1.1概述目前,由各种单片机机A/D 转换器构成的测量数字电压的结构,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。
本章重点介绍单片A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原理。
1.2系统原理及基本框图如图1.1所示,模拟电压经过档位切换到不同的分压电路衰减后,经隔离干扰送到A/D转换器进行A/D转换,然后送到单片机中进行数据处理。
处理后的数据送到LCD中显示,同时通过串行通讯与上位机通信。
图1.1系统基本方框图第二章硬件设计2.1输入电路图2.1.1量程切换开关图2.1.2衰减输入电路输入电路的作用是把不同量程的被测的电压规范到A/D转换器所要求的电压值。
智能化数字电压表所采用的单片双积分型ADC芯片ICL7135,它要求输入电压0-±2V。
本仪表设计是0-1000V电压,灵敏度高所以可以不加前置放大器,只需衰减器,如图3.1.2所示9M、900K、90K、和10K电阻构成1/10、1/100、1/1000的衰减器。
衰减输入电路可由开关来选择不同的衰减率,从而切换档位。
为了能让CPU自动识别档位,还要有图3.1.1的硬件连接。
2.2 A/D转换电路A/D转换器的转换精度对测量电路极其重要,它的参数关系到测量电路性能。
本设计采用双积A/D转换器,它的性能比较稳定,转换精度高,具有很高的抗干扰能力,电路结构简单,其缺点是工作速度较低。
在对转换精度要求较高,而对转换速度要求不高的场合如电压测量有广泛的应用。
2.2.1双积A/D转换器的工作原理图2.2.1.1双积A/D 转换器如图所示:对输入模拟电压和基准电压进行两次积分,先对输入模拟电压进行积分,将其变换成与输入模拟电压成正比的时间间隔 T1,再利用计数器测出此时间间隔,则计数器所计的数字量就正比于输入的模拟电压;接着对基准电压进行同样的处理。
在常用的A/D 转换芯片中,ICL7135与其余几种有所不同,它是一种四位半的双积分A/D转换器,具有精度高(精度相当于14位二进制数)、价格低廉、抗干扰能力强等优点。
本文介绍用单片机并行方式采集ICL7135的数据以实现单片机测电压功能的设计方案。
图2.2.1.2双积A/D转换器的波形图7135是采用CMOS工艺制作的单片4位半A/D转换器,其所转换的数字值以多工扫描的方式输出,只要附加译码器,数码显示器,驱动器及电阻电容等元件,就可组成一个满量程为2V的数字电压表。
(1)7135主要特点如下:①双积型A/D转换器,转换速度慢。
②在每次A/D转换前,内部电路都自动进行调零操作,可保证零点在常温下的长期稳定。
在20000字(2V满量程)范围内,保证转换精度1字相当于14bitA/D转换器。
③具有自动极性转换功能。
能在但极性参考电压下对双极性模拟输入电压进行A/D转换,模拟电压的范围为0~±1.9999V。
④模拟出入可以是差动信号,输入电阻极高,输入电流典型值1PA。
⑤所有输出端和TTL电路相容。
⑥有过量程(OR)和欠量程(UR)标志信号输出,可用作自动量程转换的控制信号。
⑦输出为动态扫描BCD码。
⑧对外提供六个输入,输出控制信号(R/H,BUSH,ST,POL,OR,UR),因此除用于数字电压表外,还能与异步接收 /发送器,微处理器或其它控制电路连接使用。
⑨采用28外引线双列直插式封装,外引线功能端排列如图所示。
(2)与单片机系统的串行连接在ICL7135与单片机系统进行连接时,使用并行采集方式,要连接BCD码数据输出线,可以将ICL7135的/STB信号接至AT89C52的P3.2(INT0)。
ICL7135需要外部的时钟信号,本设计采用CD4060来对4M信号进行32分频得到125KHz的时钟信号。
CD4060计数为14级2进制计数器,在数字集成电路中可实现的分频次数最高,而且CD4060还包含振荡电路所需的非门,使用更为方便。
图2.2.2.3 ICL7135与系统的连接图图2.2.2.4CD4060时钟发生电路2.3单片机部分单片机选用的是ATMEL公司新推出的AT89S52,如图2.3.1所示。
该芯片具有低功耗、高性能的特点,是采用CMOS工艺的8位单片机,与AT89C51完全兼容。
AT89S52还有以下主要特点:①采用了ATMEL公司的高密度、非易失性存储器(NV-SRAM)技术;②其片内具有256字节RAM,8KB的可在线编程(ISP)FLASH存储器;③有2种低功耗节电工作方式:空闲模式和掉电模式④片内含有一个看门狗定时器(WDT),WDT包含一个14位计数器和看门狗定时器复位寄存器(WDTRST),只要对WDTRST按顺序先写入01EH,后写入0E1H,WDT便启动,当CPU由于扰动而使程序陷入死循环或“跑飞”状态时,WDT即可有效地使系统复位,提高了系统的抗干扰性能。
图 2.3.1 89S52引脚图2.4液晶显示部分显示接口用来显示系统的状态,命令或采集的电压数据。
本系统显示部分用的是LCD 液晶模块,采用一个16×1的字符型液晶显示模块,点阵图形式液晶由 M 行×N 列个显示单元组成,假设 LCD 显示屏有64行,每行有 128列,每 8列对应 1 个字节的 8 个位,即每行由 16 字节,共 16×8=128个点组成,屏上 64×16 个显示单元和显示 RAM 区 1024 个字节相对应,每一字节的内容和屏上相应位置的亮暗对应。
一个字符由 6×8 或 8×8点阵组成,即要找到和屏上某几个位置对应的显示 RAM 区的 8 个字节,并且要使每个字节的不同的位为‘1’,其它的为‘0’,为‘1’的点亮,为‘0’的点暗,这样一来就组成某个字符。
但对于内带字符发生器的控制器来说,显示字符就比较简单了,可让控制器工作在文本方式,根据在LCD 上开始显示的行列号及每行的列数找出显示 RAM对应的地址,设立光标,在此送上该字符对应的代码即可。
2.4.1 1601使用说明图2.4.1.1 1601引脚图表2.4.1.1 LCD1601液晶模块的引脚续表2.4.1.1 LCD1601液晶模块的引脚寄存器选择,如表所示:表2.4.1.2 寄存器选择控制线操作Busy flag(DB7):在此位未被清除为“0”时,LCD将无法再处理其他指令要求。
(1)显示地址:内部地址计数器的计数地址:SB7=0(DB0~DB6)第一行00、01、02……等,第二行40、41、42……等,可配合检测DB7=1 (RS=0,R/W=1)读取目前显示字的地址,判断是否需要换行。
表2.4.1.3 LCD1601 16×1显示字的地址(2)外部地址:DB7=1,亦即80H+内部计数地址,可以用此方式将字显示在某一位置。
LCD各地址列举如下表:表2.4.1.4 LCD1601 16×1 显示字的外部地址16×1 16字1行 1601表2.4.1.5 LCD1601 的指令组2.4.2 液晶显示部分与89c51的接口如图所示:用89S52的P2口作为数据线,用P0.1、P0.2、P0.3分别作为LCD 的E 、R/W 、RS 。
其中E 是下降沿触发的片选信号,R/W 是读写信号,RS 是寄存器选择信号本模块设计要点如下:显示模块初始化:首先清屏,再设置接口数据位为8位,显示行数为1行,字型为5×7点阵,然后设置为整体显示,取消光标和字体闪烁,最后设置为正向增量方式且不移位。
向LCD 的显示缓冲区中送字符,程序中采用2个字符数组,一个显示字符,另一个显示电压数据,要显示的字符或数据被送到相应的数组中,完成后再统一显示.首先取一个要显示的字符或数据送到LCD 的显示缓冲区,程序延时2.5ms,判断是否够显示的个数,不够则地址加一取下一个要显示的字符或数据。
2.5 通讯模块89S52内部已集成通信接口URT ,只需扩展一片MAX232芯片将输出信号转换成RS-232协议规定的电平标准, MAX232 是 一 种 双 组 驱 动 器 / 接 收 器 ,每个接收器将EIA/TIA-232-E 电平输入转换为5V TTL/CMOS 电平。
每个驱动器将TTL/CMOS 输入电平转换 为 EIA/TIA-232-E 电平。
即EIA 接口,就是把5V 转换为-8V 到-15V 电位0V 转换为8V 到15V 再经RXD 输出,接收时由RXD 输入,把-8V 到-15V 电位转换为5V ,8V 到15V 转换为0V 。
MAX232的工作电压只需5V ,内部有振荡电路产生正负9V 电位。
2.4.2.1 液晶与89S52的接口图2.5.2 MAX232元件图图2.5.2 MAX232引脚功能图第三章 系统的软件设计3.1主程序设计ICL7135A/D 与单片机连接电路的软件设计系统的程序流程图如图所示。
主程序一开始运行则设置堆栈起始地址为70H ,设置中断寄存器,用来对ICL7135的中断进行计数,每5次后清零,完成一次数据采集工作,然后设置ICL7135的STB 端的中断的优先级。
紧接着LCDM1601B 进行一次清屏,使其各个指令、数据寄存器的值进行清空,屏幕不显示任何字符。
以前面对1601B 的介绍,只要将01H 送到数据总线,使RS=0,R/W=0,E 有个下降沿的脉冲就可以完成清屏工作。
用以下指令实现 MOV P2,#01H ;送到数据DB7---DB0,调用子程序 ENABLE ,由于下降沿时,内部数据要送到RAM 区,所以要有一个延时子程序,使这个下降沿持续2.5毫秒。
内部RAM 有指令代码后就开始对RAM 进行清零,所以屏幕原有的字符将被清除。
接着对1601进行功能的设定。
MOV P2,#01111000B ,按表3.1.1来看是设定显示器按2行显示,每行8位,5×7点阵。