您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页单片机课程设计实验报告111

单片机课程设计实验报告111

来源:筏尚旅游网
 单片机课程设计 实验报告

—电压表 指导教师:王建强 学院:电气工程 班级:电气0810 1

一、 实验要求

1.应用ADC0832芯片在三个LED数码管显示 2. 显示量程为:0-0.2V显示0-199(mv)

0.2V-2V显示199-1.99(v)

3.实现电压量程的切换,数据采样,电压采样等功能

二、元件分析

1、ADC0832芯片特点

8位分辨率。逐次逼近型。

5V电源供电时,基准电压为5V。输入模拟电压范围为0~5V。 输入和输出电平与TTL和CMOS兼容。 有两个可供选择的模拟输入通道。

在250KHz时钟频率时,转换时间为32 u s。

2、管脚说明

CS片选使能端,低电平有效。

CH0模拟输入通道0,差分输入时。作为IN+或IN一使用。 CH1模拟输入通道1,差分输入时,作为IN+或IN一使用。 GND电源地

DI模拟输入选择输入端。 DO模数转换数据串行输出端。 CLK芯片时钟输入。

VCC/REF芯片工作电源与基准电压输入端。

3、ADC0832工作时序

2

当把ADC0832的CS置高,内部所有寄存器清0,芯片禁止使用。当ADC0832的CS由高变低时,且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK 输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。

ADC0832配置位逻辑表

输入形式 配置位 CH0 差分 0 0 单端 1 1 CH1 0 1 0 1 选择通道号 CH0 + - + + CH1 - + 在第1 个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入2 位数据用于选择通道功能。当此2 位数据为“1”、“0”时,只对CH0 进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当2 位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当2 位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进行 输入。到第3 个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。

3

也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATD0。随后输出8位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。

三、电路图

四、实验内容

1、电路的工作原理

调节滑动变阻器给运放正端输入小于2V的电压,该电压通过运放放大后接入ADC0832,ADC0832在软件设定下对放大后的电压进行AD转换,得到对应的二进制码,再通过软件判断,对该电压进行合适的档位选择(0~0.2V选用25倍档位;0~2V选用2.5倍档位)。选用合适的档

4

位得到正确的二进制码后,进行BCD转换,然后通过LED数码显示读出被测电压的值。

2、电路硬件部分剖析

硬件电路主要由四部分组成,量程选择模块、AD转换模块、数码显示模块、单片机和一些电路。

(1)量程选择模块由可调输入电源、继电器、运算放大器和限压电路组成可调电源由负载5V电压的滑动变阻器构成,调节触头即可改变输入运放“+”端的电压。继电器的作用就是通过开关的变换以改变接入运放“-”端和输出端的电阻。

(2) 档位的选择也是以此为硬件基础的。继电器的电磁铁一端接+5V

电源,另一端则接在NPN型三极管的集电极。三极管的基极则与单片机的P1.2.相连,借助软件设计,改变P1.2的电平即可控制继电器的工作状态,进而改变接入电压的放大倍数,从而达到改变档位的要求。 (3)数码显示模块由三个八段数码管、两片数码管驱动芯片74HC245和一片锁存和缓冲芯片74HC573以及单片机P0口(字形)、P1.5、P1.6、P1.7(字位)构成。

(4) 限压电路主要功能是为了防止电压超过ADC0832的正常转换电压ADC0832芯片主要起着AD转换的作用。单片机用CS52,外围电路包括:6MHZ晶振,复位电路,电源和一些为使单片机正常工作的相应连接。

5

、程序流程图

量 程 选 择

模 拟 转 单 换 片 电 机 路 总设计方框图 LED 数 码 管 显 示 6

3

开始 调用AD转换的子程序 调用转换量程子程序 调BCD码转换子程序 调数码管显示子程序 主程序程序流程图 7

主程序

AD转换子程序

开始 片选CS置低电选择模拟输入通道 八位数进行AD转换 利用Cy存串行数据 A左移一位 将Cy中数据送ACC.0 R7-1=0? A送入30H中 返回主程序 AD转换子程序流程图

8

档位选择程序

开始 N P1.2=1? Y 30H=255? N Y Cy清零 P1.2置低电平,换0~2V档 30H=25 N Cy=1? Y P1.2置高电平,换0~0.2V档 返回AD转换子程序 返回主程序 档位选择程序流程图

9

BCD码转换程序

A中数据除以127对应的AD转换就是二进制码除以2.5,得到实际电压值所对应的二进制码,然后再除以51以得到实际电压值的最高位,故总的来看,A中数据除以127(127=2.5x51)。

开始 将30H中数据送A A中数据乘以200 高字节 存R4 A中数据除以B(100) 商 N 存40H P1.2=1? Y A送 41H B送 42H 42H送 R4 返回主程序 BCD码转换程序流程图

10

显示子程序 P0口送#00H,关显示 P0口送#00H,关显示 开始 字形表首地址送DPTR 字形表首地址送DPTR 中数据送A作字形偏移量 LED_1根据A+DPTR取字形送P0口 LED_2中数据送A作字形偏移量 根据A+DPTR取字形送P0口 P1.5置低平,P1.6、P1.7显置高电平示 P1.6置低平,P1.5、P1.7显置高电平示 P1.7置低平,P1.5、P1.6显置高电平示 P0口送#00H,关显示 第一个数码管显示 第二个数码管显示 字形表首地址送DPTR LED_3中数据送A作字形偏移量 根据A+DPTR取字形送P0口

11

第三个数码管显示 返回主程序 子程序流程图 4、程序

ORG 0000H MAIN: CLR P1.2 CLR 00H SETB P1.4 L1: MOV SP,#60H ACALL DELAY ACALL CONV ACALL JUDGE ACALL DISPLAY LJMP L1

CONV: 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端,形成下降沿 CLR P3.0 ;1-0选择1通道 NOP NOP

SETB P3.2 ;拉高CLK端 NOP NOP

CLR P3.2 ;拉低CLK端,形成下降

沿

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. ;拉高数据端,

回到初始状态

MOV 30H,A RET

JUDGE:JB 00H,LOOP

CJNE A,#0FFH,LOOP1

SETB 00H ;大量程 SETB P1.2 SJMP DONE

LOOP:CJNE A,#19H,LOOP2 CLR 00H ;小量程 CLR P1.2 SJMP DONE LOOP1:CLR 00H CLR P1.2

LCALL BCDCON SJMP DONE LOOP2:JC CLEAR

LCALL BCDCON SJMP DONE CLEAR:CLR 00H CLR P1.2 SJMP DONE DONE:RET

BCDCON: MOV A,30H MOV B,#200 MUL AB

12

MOV R4,B MOV A,R4 MOV B,#100 DIV AB MOV 40H,A MOV A,B MOV B,#10 DIV AB MOV 41H,A MOV 42H,B

DISPLAY:SETB P1.5 SETB P1.6 SETB P1.7 NUMBER1:JB P1.2,LED 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 SJMP NUMBER2

LED:MOV DPTR,#TAB2 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 A,41H

MOVCA,@A+DPTR ;查字形表

MOV P0,A

CLRP1.4 ;P0口作字形 SETB P1.4

CLR P1.6 ACALL DELAY SETB P1.6

NUMBER3: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 RET TAB1:

DB

0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H ;不带小数点的字形表

TAB2:

DB

0FDH,61H,0DBH,0F3H,67H,0B7H,0BFH,0E1H,0FFH,0F7H ;带小数点的字形表

DELAY: MOV R3,#0AH ;延时程序 DELAY1:MOV R4,#0FFH DELAY2:DJNZ R4,DELAY2 DJNZ R3,DELAY1 RET

13

NUMBER2:MOV DPTR,# TAB1 五、仿真图

六、总结

这次的单片机课程设计给了我很大的收获,在做课程设计的实验前,我以为不会难做,应该很快就能将实验报告做完。直到做完测试实验时,我才知道其实并不容易做,但学到的知识与难度成正比,使我受益匪浅。我认为在做实验前,一定要将课本上的知识吃透,因为这是做实验的基础。做这个实验的时候,你要清楚各个元件的功能。如何使用。例如ADC0832芯片的使用功能,如果你不清楚它的功能,在做实验时才去摸索,这将使你极大地浪费时间,使你事倍功半。做实验时,一定要亲力亲为,务必要将每个步骤,每个细节弄清楚,弄明白,实验后,还要复习,思考,这样,你的印象才深刻,记得才牢固,否则,过后不久你就会忘得一干二净,这还不如不做.通过这次单片机的课程设计,我对

14

单片机的知识有了更深的认识和了解,学习到了基本理论在实践中综合运用的初步经验,掌握了ADC0832的功能应用,电压变设计的基本方法、设计步骤,培养综合设计与编程的能力。更重要的是培养了我们的实践技能,同时提高了硬件电路的分析和解决实际问题的能力。而且使我学到了不少实用的知识。更重要的是,做实验的过程,思考问题的方法,这与做其他的实验是通用的,真正使我们受益匪浅。所以我们更应该学好课内的知识才能不断地应用于实践。在实践中不断提高自己的能力。

15

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务