单片机课程设计报告:电压表(附程序).doc_第1页
单片机课程设计报告:电压表(附程序).doc_第2页
单片机课程设计报告:电压表(附程序).doc_第3页
单片机课程设计报告:电压表(附程序).doc_第4页
单片机课程设计报告:电压表(附程序).doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电压表 【课题】电压表【设计要求】设计一个量程可变的数字电压表,用3个LED数码管显示,电压表量程为0200mV(显示0200mV)、200mV2V(显示0.2V2V)。【设计原理】一、实验电路图2、 工作原理如上图所示,实验中主要用到的芯片有运算放大器、继电器、ADC0832、8951单片机及其外围设备。电压表的量程为两档,0200mV和200mV2V。其相对应的运放的放大增益是25倍和2.4倍,这样即使是最大的输入其通过运放后的输出电压都会小于5V,其通过限幅电路后电压均为其真实值。然后模拟输入电压由AD0832输入,经过模数转换后送给单片机。由p0口输出字形,同时由p1.4的电平控制74LS573的锁存和直通状态。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以提高转换精度。若其满足相应的条件则直接将其转换成BCD码并直接送数显示即可。实验中用到了模数转换器ADC0832,其引脚图如右图所示,ADC0832是8位逐次逼近型AD转换器, 单一正5V电源供电,为片选, CLK提供串行输入输出时钟信号,DO用于串行数字输出,CHO和CHl为双通道模拟输入端, 它可用软件设定为单端或差分输人。在差分方式中,通道口地址的选择由DI逐位输入,GND是数字、模拟公共地,()为芯片电源、参考电压公共端。为低电平时启动转换,使所有逻辑电路使能,此时DO端为高阻,DI端等待指令,在整个转换过程中必须置为低。然后使DI端输入第一个逻辑高电平表示起始位,ADC0832的输入配置在多路器寻址时序中进行,多路器地址通过DI端移入转换器,多路器地址选择模拟输入通道。DI端的数据移入多路器地址移位寄存器是在每个时钟的上升跳变时发生的,因此每次向DI端置入一位数据时,在CLK端输出一个从0到1的跳变。然后CLK端输入第2个、第3个脉冲进行通道选择,第3个脉冲的下降沿开始转换,DI端转为高阻状态,DO端脱离高阻状态,CLK端输入第4个脉冲的下降沿开始读取DO端的一位数据,依次类推,从第4个到第11个脉冲共读取8位数。ADCO832在输出端以最高位(MSB)开头的数据流后,又以最低位(LSB)开头重输出一遍数据流,最低位共用。这样便实现了AD转换,其转换后的数字量输入到8951。ADC0832工作时序图如下所示:3、 程序流程图延时调用显示程序调用大量程BCD转换程序调用显示程序调用小量程BCD转换程序进行AD转换判断电压是否大于200mV系统初始化开始4、 程序ORG 0000HMAIN: CLR P1.2 ;初始化 SETB P1.4 ;P1.4置1,使74HC573工作TEST: MOV SP,#60H ACALL DELAY ;调用延时程序 ACALL CONV ;调用AD转换程序 ACALL JUDGE ;调用BCD转换程序 ACALL DISPLAY;调用显示程序 LJMP TESTCONV: SETB P3.0 ;初始化通道选择 CLR P3.2 NOP NOP CLR P3.3 ;拉低/CS端 NOP NOP SETB P3.2 ;拉高CLK端 NOP NOP CLR P3.2 ;拉低CLK端,形成下降沿 SETB P3.0 NOP NOP SETB P3.2;拉高CLK端 NOP NOP CLR P3.2 ;拉低CLK端,形成下降沿2 CLR P3.0 ;1-0选择1通道 NOP NOP SETB P3.2 ;拉高CLK端 NOP NOP CLR P3.2 ;拉低CLK端,形成下降沿3 SETB P3.0 NOP NOP MOV R7,#8 ;准备送下后8个时钟脉冲RECEIVE: MOV C,P3.1 ;接收数据 MOV ACC.0,C RL A ;左移一次 SETB P3.2 NOP NOP CLR P3.2 ;形成一次时钟脉冲 NOP NOP DJNZ R7,RECEIVE ;循环7次 MOV C,P3.1 ;接收数据 MOV ACC.0,C SETB P3.3 ;拉高/CS端 CLR P3.2 ;拉低CLK端 SETB P3.1 ;拉高数据端,回到初始状态 MOV 30H,A ;转换后的数字量存入30H RETJUDGE:CJNE A,#19H,LOOP ;判断电压是否等于200mV SJMP BCDCON1 ;等于200mV时采用小量程显示程序LOOP:JC BCDCON1 ;小于200mV时采用小量程显示 SJMP BCDCON2 ;大于2200mV时采用大量程显示DONE:RETBCDCON2: ;大量程SETB P1.2 MOV A,30H MOV B,#7FH DIV AB ADD A,#0AH ;调整地址偏移量 MOV 40H,A ;BCD码最高位送40H MOV A,B ;低位送A MOV B,#0DH DIV AB MOV 41H,A ;BCD码次高位送41H MOV A,B CJNE A,#0AH,LOOP1 ;余数大于10时,将其调整为9,避免取到带小数点的字型码 MOV A,#09H SJMP X LOOP1:JC X MOV A,#09H X:MOV 42H,A ;BCD码低位送R3 RETBCDCON1: ;小量程CLR P1.2 MOV A,30H MOV B,#0AH MUL AB ;将其数字量扩大十倍,之后采用跟大量程时相似的算法 MOV 31H,B ORL A,31H MOV B,#7FH DIV AB MOV 40H,A ;BCD码高位送40H MOV A,B ;低位送A MOV B,#0CH DIV AB CJNE A,#0AH,LOOP2 MOV A,#09H SJMP Y LOOP2:JC Y MOV A,#09H Y:MOV 41H,A ;BCD码次高位送41H MOV 42H,B ;BCD码低位送42H RETDISPLAY: SETB P1.5 SETB P1.6 SETB P1.7 MOV DPTR,#TAB1 MOV A,40H MOVC A,A+DPTR ;查字形表 MOV P0,A ;P0口送字形 CLR P1.4 SETB P1.4 CLR P1.5 ACALL DELAY SETB P1.5 MOV DPTR,# TAB1 MOV A,41H MOVC A,A+DPTR ;查字形表 MOV P0,A CLR P1.4 ;P0口作字形 SETB P1.4 CLR P1.6 ACALL DELAY SETB P1.6 MOV DPTR,# TAB1 MOV A,42H MOVC A,A+DPTR ;查字形表 MOV P0,A CLR P1.4 ;P0口作字形 SETB P1.4 CLR P1.7 ACALL DELAY SETB P1.7 RETTAB1:DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H DB 0FDH,61H,0DBH,0F3H,67H,0B7H,0BFH,0E1H,0FFH,0F7HDELAY: MOV R3,#03H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论