单片机课程设计报告:电压表(附程序)

上传人:第*** 文档编号:34246487 上传时间:2018-02-22 格式:DOC 页数:10 大小:429.46KB
返回 下载 相关 举报
单片机课程设计报告:电压表(附程序)_第1页
第1页 / 共10页
单片机课程设计报告:电压表(附程序)_第2页
第2页 / 共10页
单片机课程设计报告:电压表(附程序)_第3页
第3页 / 共10页
单片机课程设计报告:电压表(附程序)_第4页
第4页 / 共10页
单片机课程设计报告:电压表(附程序)_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《单片机课程设计报告:电压表(附程序)》由会员分享,可在线阅读,更多相关《单片机课程设计报告:电压表(附程序)(10页珍藏版)》请在金锄头文库上搜索。

1、电压表【课题】电压表【设计要求】设计一个量程可变的数字电压表,用3个LED数码管显示,电压表量程为0200mV(显示0200mV)、200mV2V(显示0.2V2V)。【设计原理】一、实验电路图2、工作原理如上图所示,实验中主要用到的芯片有运算放大器、继电器、ADC0832、8951单片机及其外围设备。电压表的量程为两档,0200mV和200mV2V。其相对应的运放的放大增益是25倍和2.4倍,这样即使是最大的输入其通过运放后的输出电压都会小于5V,其通过限幅电路后电压均为其真实值。然后模拟输入电压由AD0832输入,经过模数转换后送给单片机。由p0口输出字形,同时由p1.4的电平控制74LS

2、573的锁存和直通状态。P1.5、p1.6、p1.7控制字位。P1.2控制继电器的工作状态,当P1.2低电平时,三极管工作在截止状态,继电器线圈无电流通过,继电器处于常闭状态,那么相对应的运放的放大增益为25倍。而当P1.2为高电平时,三极管工作在饱和状态,继电器线圈有电流通过,产生电磁力将继电器的开关吸到常开状态,其对应的放大增益即变为2.4倍。对于一个模拟输入,现将其放大2.4倍,然后由AD输入并相应转化,如果它的输出要是小于0.5V,也就是19H,则选择此档位是不精确的,也说明此时的输入电压介于0200mV之间。那么我们就需要让P1.2置低电平,将相应的放大倍数改成25以提高转换精度。若

3、其满足相应的条件则直接将其转换成BCD码并直接送数显示即可。实验中用到了模数转换器ADC0832,其引脚图如右图所示,ADC0832是8位逐次逼近型AD转换器, 单一正5V电源供电, 为片选, CSCLK提供串行输入输出时钟信号,DO用于串行数字输出,CHO和CHl为双通道模拟输入端, 它可用软件设定为单端或差分输人。在差分方式中,通道口地址的选择由DI逐位输入,GND是数字、模拟公共地, ( )为芯片电源、cVREP参考电压公共端。为低电平时启动转换,使所有逻辑电路使能,此时DO端为高阻CS,DI端等待指令, 在整个转换过程中必须置为低。然后使DI端输入S第一个逻辑高电平表示起始位,ADC0

4、832的输入配置在多路器寻址时序中进行,多路器地址通过DI端移入转换器,多路器地址选择模拟输入通道。DI端的数据移入多路器地址移位寄存器是在每个时钟的上升跳变时发生的,因此每次向DI端置入一位数据时,在CLK端输出一个从0到1的跳变。然后CLK端输入第2个、第3个脉冲进行通道选择,第3个脉冲的下降沿开始转换,DI端转为高阻状态,DO端脱离高阻状态,CLK端输入第4个脉冲的下降沿开始读取DO端的一位数据,依次类推,从第4个到第11个脉冲共读取8位数。ADCO832在输出端以最高位(MSB)开头的数据流后,又以最低位(LSB)开头重输出一遍数据流,最低位共用。这样便实现了AD转换,其转换后的数字量

5、输入到8951。ADC0832工作时序图如下所示:3、程序流程图开始系统初始化进行AD转换判断电压是否大于200mV 调用大量程BCD转换程序调用小量程BCD转换程序调用显示程序调用显示程序延时4、程序ORG 0000HMAIN: CLR P1.2 ;初始化SETB P1.4 ;P1.4置1,使74HC573工作TEST:MOV SP,#60HACALL DELAY ;调用延时程序ACALL CONV ;调用AD转换程序ACALL JUDGE ;调用BCD转换程序ACALL DISPLAY;调用显示程序LJMP TESTCONV:SETB P3.0 ;初始化通道选择CLR P3.2NOPNOP

6、CLR P3.3 ;拉低/CS端NOPNOPSETB P3.2 ;拉高CLK端NOPNOPCLR P3.2 ;拉低CLK端,形成下降沿SETB P3.0NOPNOPSETB P3.2;拉高CLK端NOPNOPCLR P3.2 ;拉低CLK端,形成下降沿2CLR P3.0 ;1-0选择1通道NOPNOP SETB P3.2 ;拉高CLK端NOPNOPCLR P3.2 ;拉低CLK端,形成下降沿3SETB P3.0NOPNOPMOV R7,#8 ;准备送下后8个时钟脉冲RECEIVE:MOV C,P3.1 ;接收数据MOV ACC.0,CRL A ;左移一次SETB P3.2NOPNOPCLR P

7、3.2 ;形成一次时钟脉冲NOPNOPDJNZ R7,RECEIVE ;循环7次MOV C,P3.1 ;接收数据MOV ACC.0,CSETB P3.3 ;拉高/CS端CLR P3.2 ;拉低CLK端SETB P3.1 ;拉高数据端,回到初始状态MOV 30H,A ;转换后的数字量存入30HRETJUDGE:CJNE A,#19H,LOOP ;判断电压是否等于200mVSJMP BCDCON1 ;等于200mV时采用小量程显示程序LOOP:JC BCDCON1 ;小于200mV时采用小量程显示SJMP BCDCON2 ;大于2200mV时采用大量程显示DONE:RETBCDCON2: ;大量程

8、SETB P1.2MOV A,30HMOV B,#7FHDIV ABADD A,#0AH ;调整地址偏移量MOV 40H,A ;BCD码最高位送40HMOV A,B ;低位送AMOV B,#0DHDIV ABMOV 41H,A ;BCD码次高位送41HMOV A,BCJNE A,#0AH,LOOP1 ;余数大于10时,将其调整为9,避免取到带小数点的字型码MOV A,#09HSJMP XLOOP1:JC XMOV A,#09HX:MOV 42H,A ;BCD码低位送R3RETBCDCON1:;小量程CLR P1.2MOV A,30HMOV B,#0AHMUL AB ;将其数字量扩大十倍,之后采

9、用跟大量程时相似的算法MOV 31H,BORL A,31HMOV B,#7FHDIV ABMOV 40H,A ;BCD码高位送40HMOV A,B ;低位送A MOV B,#0CHDIV ABCJNE A,#0AH,LOOP2MOV A,#09HSJMP YLOOP2:JC YMOV A,#09HY:MOV 41H,A ;BCD码次高位送41HMOV 42H,B ;BCD码低位送42HRETDISPLAY:SETB P1.5SETB P1.6SETB P1.7MOV DPTR,#TAB1MOV A,40HMOVC A,A+DPTR ;查字形表MOV P0,A ;P0口送字形CLR P1.4SE

10、TB P1.4CLR P1.5ACALL DELAYSETB P1.5MOV DPTR,# TAB1MOV A,41HMOVC A,A+DPTR ;查字形表MOV P0,ACLR P1.4 ;P0口作字形SETB P1.4CLR P1.6 ACALL DELAYSETB P1.6MOV DPTR,# TAB1MOV A,42HMOVC A,A+DPTR ;查字形表MOV P0,ACLR P1.4 ;P0口作字形SETB P1.4CLR P1.7ACALL DELAYSETB P1.7RETTAB1:DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6HDB 0FDH,61H,0DBH,0F3H,67H,0B7H,0BFH,0E1H,0FFH,0F7HDELAY: MOV R3,#03HDELAY1:MOV R4,#0FFHDELAY2:DJNZ R4,DELAY2DJNZ R3,DELAY1RETEND5、扩展将示波器接在ADC0832的DO端从波形可看出转换之后的数字量,波形如图所示,上图为DO端输出量,下图为时钟脉冲。由图可以看出,第四个时钟脉冲开始读取准换后的数字量,则对应的数字量为01101110

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号