历史上的今天
今天是:2025年07月30日(星期三)
2021年07月30日 | 学习笔记 从零开始学单片机(5) A/D转化
2021-07-30 来源:eefocus
所谓A/D转换器就是模拟/数字转换器(Analog to Digital Converter 简称ADC)是将输入的模拟信号转换成为数字信号。这里我们用ADC0804做这个试验,下面的图示它的引脚图。

/CS:芯片选择信号。
VREF:辅助参考电压。
/WR:用来启动转换的控制,当/WR自1变为0时,转换器被清除;当/WR回到1时,转换正式启动。
/RD:外部读取转换结果的控制脚输出信号。
/INTR:中断请求信号输出,低电平动。
AGND,DGND:模拟信号以及数字信号接地。
CLK IN,CLK R:时钟输入或接振荡元件(R,C),频率约限制在100KHz~1460KHz。
VIN(+),VIN(-):差动模拟电压输入。输入单端正电压时,VIN(-)接地。
DB0~DB7:8位数字输出。
ADC0804电压输入与数字输出关系如表所示

接下来看看实验电路的原理图

片选CS接P2.4,RD接P3.7,WR接P3.6,为了简单起见INTR没有使用它
AD芯片的VIN(+)接一个可调电阻,改变阻值能够带来不同的电压,以此作为输入。
写程序前还得看看时序图
不同的电阻值显示0-255不同大小的值,延时时间略长,有点闪烁
#include #include sbit ADCS = P2^4; //ADC0804片选信号,低电平有效 sbit ADWR = P3^6; //ADC0804写信号,低电平有效 sbit ADRD = P3^7; //ADC0804读信号,低电平有效 unsigned char code_table[]= { 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0 }; sbit Led8En = P2^6; //数码管,锁存器使能信号,高电平有效 ,数码管输出P0 sbit Led8CS = P2^7; //数码管片选,锁存器使能信号,电平有效,低电平选中 void delay(unsigned int times); void dlight(unsigned char i, unsigned char number, unsigned int duration); void ADC0804(); void main() { while(1) { ADC0804(); delay(100); } } void delay(unsigned int times) { unsigned int i,j; for (i=0; i _nop_(); } void ADC0804() { unsigned char temp; ADCS = 0; ADWR = 0; delay(1); ADWR = 1; ADCS = 1; delay(10); ADCS = 0; ADRD = 0; _nop_(); temp = P1; ADRD = 1; ADCS = 1; dlight(0xEE,code_table[temp % 10],1); dlight(0xDD,code_table[temp / 100],1); dlight(0xBB,code_table[(temp/10 )% 10],1); } void dlight(unsigned char cs, unsigned char display, unsigned int duration) { Led8CS = 1; P0=cs; //片选 Led8CS = 0; Led8En = 1; P0=display; //. a b c d e f g, 高电平亮 Led8En = 0; delay(duration); }
史海拾趣
|
系统:wince 5.0 开发工具: vs C# 2008 SDK :.net compact framework 3.5 问题描述: 开始在windows xp 执行这段代码没有问题,能画图: &nb ...… 查看全部问答> |
|
一个划时代的伟大产品-超级硬件调试器横空出世 程序员中多年来一直流传着一种传说,除了市面上能够见到的为数不多的几种调试软件之外,还存在着一种神秘的硬件调试器,其功能强大无比。任何调试软件调不了的程序,硬件调试器都能搞 ...… 查看全部问答> |
|
PIC16单片机的C编译起哪儿下载?如何与MAPLAB一起使用? 找了很长时间,网上都没有PIC16单片机得C编译器(很多都是DEMO)。还有,如果有了这个单片机,如何在MAPLAB中使用这个编译器?… 查看全部问答> |
|
1.最近我用sci调试RS485的时候遇到一个怪现象: 有时候(不是全部,重新加载程序的时候一般都是)cpu明明有数据发出来,SCIRX,SCITX波形正常,可是485驱动芯片出来的两线信号发不出来,示波器只能看到负半波.只要我把与其通信的人机界面的通讯口拔出来 ...… 查看全部问答> |
|
MSP430Ware 入门介绍较以往其他版本,德州仪器 IDE CCS V5.1 程序更加简练有效,运行更加快捷,开发环境也更加直观。这里将着重介绍CCS v5.1一个新的组成部份- TI资源管理器(TI Resource Explorer)。TI资源管理器向客户提供一种直接简单的途径进 ...… 查看全部问答> |
|
/*来源于网络非原创*/ STM32-FSMC-LCD详解LCD有如下控制线: CS:Chip Select 片选,低电平有效 RS:Register Select 寄存器选择 WR:Write 写信号,低电平有效 RD:Read 读信号,低电平有效 RESET:重启信号,低电平有效 DB0-DB15:数据线 ...… 查看全部问答> |
|
最近车上的前阅读灯坏了,想用LED代替,又省电又明亮。 网上找了下关于AMC7135的电路,在计算供电电阻的时候发现一个小错误,分享出来免得大家碰到的时候浪费时间。 百度文库找了个文档,链接就不发了,百度一下很多的。这个是12V串三个的线路 ...… 查看全部问答> |






