51测试网 单片机教程XL2000开发板 单片机学习 自制编程器 单片机资料 软件下载 电子技术产品介绍如何购买 论坛

点击察看说明书(64页彩色PDF文档)

1.1 系统简介

4.3 ISP引脚连接

端口按键判断

红外线遥控555硬件振荡器

1.2 模块接口定义

5.1 仿真概述

矩阵按键识别技术

汉字显示屏PS2键盘实验
2.1 软件安装  5.2 KEIL软件指南

74LS14反向器

1602液晶显示屏SD卡实验
2.2 软件界面介绍 

51引脚说明

74LS138译码器

8155试验

485通信实验 
2.3 软件操作

八路跑马灯

74LS164串入并出

24C02储存

DS1302实时时钟
3.1 USB驱动安装

继电器控制

74LS165并入串出步进电机产生hex文件
3.2 特别usb安装 

8路拨动开关

dac0832应用

93c46演示

常见问题解答
4.1 ISP介绍 

数码管静态扫描 

模拟/数字转换器

串行双向通信系统配置指南
4.2 下载头之插头定义

数码管动态扫描

小喇叭警报器18B20温度显示购买方式

                    

                      实验12 模拟/数字转换器ADC0804

 

     所谓A/D转换器就是模拟/数字转换器(Analog to Digital Converter 简称ADC)是将输入的模拟信号转换成为数字信号。

ADC0804的规格及引脚图:

/CS:芯片选择信号。

VREF:辅助参考电压。

/RD:外部读取转换结果的控制脚输出信号。

/INTR:中断请求信号输出,低电平动

 CLK IN,CLK R:时钟输入或接振荡元件(R,C),频率约限制在100KHz~1460KHz

VCC:电源供应以及作为电路的参考电压。

/WR:用来启动转换的控制当/WR自HI变为LO时,转换器被清除;当/WR回到HI时,转换正式启动;

DB0~DB7:8位数字输出。

AGND,DGND:模拟信号以及数字信号接地。

VIN(+),VIN(-):差动模拟电压输入。输入单端正电压时,VIN(-)接地;

ADC0804电压输入与数字输出关系如表所示

 

十六进制

 

二进制码

与满刻度的比率

相对电应值VREF=2.560伏

高四位字节

低四位字节

高四位字节电压

低四位字节电压

F

1111

15/16

15/256

4.800

0.300

E

1110

14/16

14/256

4.480

0.280

D

1101

13/16

13/256

4.160

0.260

C

1100

12/16

12/256

3.840

0.240

B

1011

11/16

11/256

3.520

0.220

A

1010

10/16

10/256

3.200

0.200

9

1001

9/16

9/256

2.880

0.180

8

1000

8/16

8/256

2.560

0.160

7

0111

7/16

7/256

2.240

0.140

6

0110

6/16

6/256

1.920

0.120

5

0101

5/16

5/256

1.600

0.100

4

0100

4/16

4/256

1.280

0.080

3

0011

3/16

3/256

0.960

0.060

2

0010

2/16

2/256

0.640

0.040

1

0001

1/16

1/256

0.320

0.020

0

0000

 

 

0

0

相关原理:

程序运行照片:

接线方法:

1、用一个2PIN数据线插入CPU部分JP53(P3口)的P3.6,P3.7另一端插入ADC0804部分的输入端J3.

2、用一根8PIN的数据排线, 一端插入ADC0804部分的数据输入端JP35, 另一端插入CPU部分JP44(P1口)

3、用一根8PIN的数据排线, 一端插入八路指示灯部分的JP32, 另一端插入CPU部分JP51(P0口)

   运行照片,用一个小螺丝刀调整AD转换部分的ADJ3 可以看到P0口引出的8个LED逐次变化。 

 

程序流程图:

汇编语言参考程序:

ad_cs equ P3.6
ad_wr equ P2.0
ad_rd equ P3.7
ad_input_port equ p1
org 0000h
ajmp main
org 0080h
main:
lcall adc_demo
ajmp main
;// 启动AD转换
Adc_Start:
clr ad_cs
nop
clr ad_wr
nop
setb ad_wr
nop
setb ad_cs
nop
ret
Adc_Read: ;// 读AD转换
mov ad_input_port,#0ffh
clr ad_cs
nop
clr ad_rd
nop
nop
mov a,AD_INPUT_PORT
nop
setb ad_rd
nop
setb ad_cs
ret
;// AD转换读取延时程序,显示读到的数值
Adc_Demo:
lcall Adc_Start
lcall delay1ms
lcall adc_read
clr p2.0
clr p2.3
mov p0,a
ret
delay1ms:
mov r7,#10
tt1:
mov r6,#50
djnz r6,$ ;2us
djnz r7,tt1
ret
end

 

c语言参考程序:

#include<reg51.h> //头文件
#define uchar unsigned char //宏定义,为方便编程
#define uint unsigned int
#define ADDATA P1 //宏定义,将P1口定义为0804输出数据位
#define LED P0 //宏定义,将P0口定义为LED
sbit _WR=P2^0; //定义P2.0为数据写入位
sbit CS=P3^6; //定义P3.6为ADC0804片选位
sbit _RD=P3^7; //定义P3.7为数据读取位
void delay_run() //AD转换间隔延迟函数
{
uchar ii,jj;
for(ii=0;ii<200;ii++)
for(jj=0;jj<200;jj++);
}
void delay() //片选及读写数据位保持延迟
{
uchar i=200;
while(i--);
}
char code SST516[3] _at_ 0x003b; //仿真器保留
main() //主函数
{
uchar value=0; //定义一变量,用于存放AD转换完的数据
while(1)
{
CS=0; //拉低片选位
_WR=0; //拉低写数据位
delay(); //延迟
_WR=1; //拉高写数据位,启动AD转换
CS=1; //拉高片选位
CS=0; //拉低片选位
_RD=0; //拉低读数据位,读取AD转换数据
value=ADDATA;
delay(); //延迟
_RD=1; //拉高读数据位
CS=1; //拉高片选
LED=value; //将AD转换的数据赋给P0,驱动LED
delay_run(); //AD转换间隔延迟
}
}

精致外观

精致外观

精致外观

精致外观

精致外观

精致包装

精致包装

精致包装

配套附件

配套附件

使用手册

使用手册

使用手册

配套附件

配套附件

配套附件

配套附件

配套附件

配套附件

配套附件

精致细节

精致细节

精致细节

精致细节

配套光盘