模数转换实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机控制ADC0809的模数转换与显示

一、实验内容和要求

本题目对单片机控制ADC0809(Proteus的元件库中没有ADC0809,用ADC0808来代替)的通道3的电压模拟量进行模数转换,转换为数字量后,显示在3位数码管上。调节图中的电位器,可观察到数码管显示的电压值在变化。

二、实验主要仪器设备和材料

计算机一台

三、实验方法、步骤及结果测试

所有操作都在ISIS中进行,步骤如下。

(一)、Proteus电路设计

1.从Proteus库中选取元器件

(1)AT89C51:单片机;

(2)RES:电阻;

(3)7SEG-MAPX4-CC-BLUE

(4)CAP、CAP-ELEC:电容、电解电容

(5)CRYSTAL:晶振;

(6)BUTTON:开关

(7)BUTTON

(8)ADC0808

(9)POT-HG

(10)LED-YELLOW

(11)MAX7219

(12)RESONATOR

2.放置元器件、放置电源和地、连线、元器件属性设置、电气检测

所有操作都在ISIS中进行

完成的电路图设计如图

(二)、源程序设计

1、流程图

2、通过Keil u Vision4建立工程,再建立源程序文件

源程序如下

主机程序:

LED_0 EQU 30H

LED_1 EQU 31H

LED_2 EQU 32H

ADC EQU 35H

CLOCK BIT P2.4

ST BIT P2.5

EOC BIT P2.6

OE BIT P2.7

ORG 00H

SJMP START

ORG 0BH

LJMP INT_T0

START:

MOV LED_0, #00H

MOV P2,#0FFH

MOV LED_1,#00H

MOV LED_2,#00H

MOV DPTR,#TABLE

MOV TMOD,#02H ;设置定时器工作方式2 MOV TH0,#245

MOV TL0,#00H

MOV IE,#82H ;开总中断和定时器0中断

SETB TR0 ;启动定时器0

WAIT:

CLR ST

SETB ST

CLR ST

JNB EOC,$ ;判断A/D转换结束否

SETB OE ;允许数据量输出

MOV ADC,P3

CLR OE

MOV A,ADC

MOV B,#51

DIV AB

MOV LED_2, A

MOV A,B

MOV B,#5

DIV AB

MOV LED_1, A

MOV LED_0, B

LCALL DISP ;跳至显示子程序

SJMP WAIT

INT_T0: ;定时器T0中断子程序

CPL CLOCK

RETI

DISP: ;显示子程序

MOV A, LED_0

MOVC A,@A+DPTR

CLR P2.3 ;显示数码管右边第一位数字

MOV P0,A

LCALL DELAY

SETB P2.3

MOV A, LED_1

MOVC A,@A+DPTR

CLR P2.2 ;显示数码管右边第二位数字

MOV P0,A

LCALL DELAY

SETB P2.2

MOV A,LED_2

MOVC A,@A+DPTR

CLR P2.1 ;显示数码管右边第三位数字

ORL A,#80H ;显示小数点

MOV P0,A

LCALL DELAY

SETB P2.1

RET

DELAY: ;延时子程序

MOV R6, #10

D1:

MOV R7,#250

DJNZ R7,$

DJNZ R6, D1

RET

TABLE:

DB 3FH, 06H, 5BH, 4FH, 66H

DB 6DH, 7DH, 07H, 7FH, 6FH

END

通过按钮“Build target”编译源程序,生成目标代码文件*.hex文件。若编译失败,对程序修改调试直至编译成功。

(三)、Proteus仿真

1、加载目标代码

右击选中的ISIS编辑区中的单片机AT89C51,再单击打开其属性窗口,在“Program File”右侧框中输入目标代码“*.hex”文件,再在Clock Frequency 栏中设置12MHz,仿真系统则以12MHz的时钟频率运行。

2、仿真

单击仿真按钮进行仿真,仿真运行片段如下图所示:

相关文档
最新文档