ADC0809AD转换器基本应用技术

合集下载

AD转换器ADC0809

AD转换器ADC0809

;每个通道采样24次 每个通道采样24次 每个通道采样24 ; 1→START: 启动转换 ;将0809某通道地址DX压入堆栈 某通道地址DX压入堆栈 将0809某通道地址DX ;8255PB口地址 8255PB口地址 8255PB ;读入PB0 检测EOC 读入PB0 检测EOC 读入PB0:检测 ; AL∧01H: EOC=PB0=1? ∧ ; EOC=PB0=0,循环等待 循环等待 数字量在PA ;PB0=1,ADC0809数字量在PA 口 ,ADC0809数字量在 PA口 ; PA口→ AL ;数字量存入内存 数字量存入内存 ; 恢复某通道地址 ; CX-1→CX, CX≠0:循环采样24次 CXCX≠0:循环采样24 ≠0:循环采样24次 ;取下一通道地址 取下一通道地址 ;修改大循环计数值 修改大循环计数值 ; BL≠0:循环采样取下一通道 BL≠0:循环采样取下一通道
二、8位A/D转换器ADC0809的工作原理 A/D转换器ADC0809的工作原理 转换器ADC0809
1、 ADC0809的内部组成 ADC0809的内部组成
⑴8路模拟开关及地址 锁存与译码电路—— 锁存与译码电路 选择8 选择8个模拟输入通道 信号之一完成A/D转换; A/D转换 信号之一完成A/D转换; ⑵8位A/D转换器(逐次 A/D转换器( 转换器 逼近型) 逼近型)——完成所选 完成所选 通道的模拟信号的A/D 通道的模拟信号的A/D 转换; 转换; 三态输出锁存缓冲— ⑶三态输出锁存缓冲 锁存A/D A/D转换后的数字 锁存A/D转换后的数字 结果; 结果; ⑷控制逻辑与时序— 控制逻辑与时序 控制芯片的工作并提供转换所需的时序。 控制芯片的工作并提供转换所需的时序。
主程序: 主程序: DATA1 SEGMENT ORG 2000H AREA DB 200 DUP(?) ( ) … DATA1 ENDS ;定义堆栈段 定义堆栈段 DB 50 DUP(?) ( ) … STACK1 ENDS ;定义数据段 定义数据段

AD芯片ADC0809

AD芯片ADC0809
A/D芯片ADC0809
0809是逐次逼近式转换芯片,所以在介绍此芯片之前, 先学习逐次逼近式A/D转换原理。
A/D转换芯片与 CPU 接口连接需要注意的问题
(1)启动信号:电平启动和脉冲启动 (2)转换结束与转换数据的读取: — 程序查询方式 — 中断方式 — CPU等待方式 — 固定的迟延程序方式
在中断方式下的A/D转换,程序设计比较简单。在主程 序,只要一条输出指令就可以启动A/D转换。假设A/D转换 器的端口号为PROTAD,则执行指令: O这个指令中AL的内容无关紧 要,执行这个指令主要是为了产生一个写脉冲以启动A/D转 换器。转换结束后,A/D芯片会产生一个转换结束信号 (EOC),此信号产生中断请求,并连接到8259A的IR0, 再通过8259A向CPU发出中断请求,CPU响应后,便转去 执行中断处理程序。该中断处理程序就是完成读取转换结 果,其主要是一条输入指令: IN AL , PORTAD 这条指令在执行时,使三态输出门打开,从而CPU获得数 据。
START: LEA BX, DATA CONV: OUT 37H,AL ; 启动转换 TEST: IN AL ,66H ;输入状态 AND AL ,80H ;检测DONE标记 JZ TEST ;未完成,等待 IN AL, 65H ;输入转换后的数据 MOV [BX], AL ;存入内存 RET ;结束

实验六 ADC0809AD转换实验

实验六 ADC0809AD转换实验

实验六 ADC0809AD转换实验一、实验目的1、掌握ADC0809AD芯片的工作原理和使用方法。

2、掌握如何使用51单片机配合ADC0809AD芯片实现模拟量转换。

二、实验原理ADC0809AD是一种8位分辨率、并行输出、单通道,3MHz 工作速率的A/D转换器。

ADC 有两个输入电压端子,IN+和IN-,它们之间加入了一个内部参考电压源(RE),所以在输入模拟信号时常在IN+端连接信号输入,而IN-端接地。

当选用RE = +2.5 V时,IN+的输入范围约为0-VREF,在本实验中选用的是RE = +5 V,所以IN+的输入范围约为0-5V。

当外部触发信号TRIGGER开启后,ADC执行转换操作。

在转换时,电压采样保持时间通常为 100 ns,最长转换时间为 200 us,当转换结束时,ADC将数字输出置在低电平并发出一个中断请求(INTR)信号。

转换结果可以通过 8个输出线路(DB0-DB7)获得。

三、实验器材2、*1 9针座(1x9 Pin Socket)。

3、*1 51单片机学习板。

4、*1 电阻10KΩ。

5、*1 电压源。

6、*1 面包板。

7、*5 条杜邦线。

四、实验步骤1、根据下表将ADC0809AD芯片插入到面包板中。

ADC0809AD引脚码ADC0809AD引脚名称功能1 A0- A/D输入(低、多路)引脚17 AGND 模拟地18 VREF/2 参考电压输出19 VCC 数字电源2、将9脚座插入面包板的横向边缘上。

3、使用杜邦线将ADC0809AD转换器连接到学习板上,并根据原理部分对芯片引脚进行接线。

4、将一个10KΩ的电阻连接到ADC0809AD芯片的IN+引脚和GND之间。

6、使用杜邦线将ADC0809AD芯片的DB0-DB7引脚连接到学习板的P0.0-P0.7引脚上。

7、将学习板的P0.0-P0.7引脚转为输出模式。

五、实验代码#include <reg52.h>// SFR位定义sfr ADC_CONTR = 0xBC; // ADC控制寄存器sfr ADC_RES = 0xBD; // ADC结果寄存器sfr ADC_RESL = 0xBE; // ADC结果低字节寄存器sfr P0 = 0x80; // P0口// 公用函数void delay(int time) // 延时函数{int i, j;for (i = 0; i < time; i++) {for (j = 0; j < 125; j++);}}while (1) {ADC_CONTR |= 0x08; // 开始转换while (!(ADC_CONTR & 0x10)); // 等待转换结束P0 = ADC_RES; // 将结果输出到P0口delay(1000); // 延时1000ms}}根据程序分析,程序采用了循环语句控制ADC的转换、输出,程序中实现的是ADC的一次转换。

模数转换器ADC0809应用原理

模数转换器ADC0809应用原理

模数转换器ADC0809应用原理模数转换器(Analog-to-Digital Converter,简称ADC)是一种将模拟信号转换为数字信号的电子元件。

在电子领域中,模数转换器有着广泛的应用,其中最常见的就是采集模拟信号,并将其转换为数字信号进行处理。

ADC0809是一种八位分辨率的8通道模数转换器,它可以将输入模拟信号转换为一个八位的二进制数字。

ADC0809的工作原理ADC0809采用了单倍增量逐次比较式ADC,其基本工作原理是,将输入的模拟信号与一个参考电压进行比较,输出相应的数字信号。

具体工作流程如下图所示:___________________________________ ________________________| 时钟||___________________________________________________________________|______________ ________ ________ ________ ________| 输入模拟信号 | | 比较器0 | | 比较器1 | | ...... | | 比较器7 ||_____________| _________ |________| |________| |________| |________|| | || || | ___________ | ___________ | ___________ || |__| |__|__||__|__| |__|| 串—并串—并串—并串—并八个比较结果反相器(INV)| ________ ________ ________|______________________________| 反相器| | 反相器 | | ...... | | 反相器 ||________| |________| |________| |________|| | | || | | || | | |V V V V____ ____ ________ ________ ________| | | | | ...... | | || D0 ~ D7 |_______| D0 ~ D7 |_______| D0 ~ D7 |_______| D0 ~ D7 ||____ _____| |________| |________| |________|| | | || | | || | | || | | || | | |____ ____ ________ ________ ________| | | | | ...... | | || 转换器 | | 转换器 | | ...... | | 转换器 | |____ _____| |________| |________| |________|| | | || | | || | | |V V V V____ ____ ________ ________ ________| | | | | ...... | | || A0 ~ A7 |_______| A0 ~ A7 |______| A0 ~ A7 |_______| A0 ~ A7 ||____ _____| |________| |________| |________| ADC0809采样过程通过时序的序列完成,当转换器满足转换条件时为转换器一个时钟等分周期“CLK R”,其转换过程又称为一次采样,转换结果产生在结束时取样“EOC”有效之后的下一次时钟上升沿ACTIVE EDGE时,由拨动设置开关的方式进行设定(ADDRESS A, B, C, OE)。

微机原理实验之模数转换器ADC0809的使用

微机原理实验之模数转换器ADC0809的使用

微机原理实验之模数转换器ADC0809的使用2011年05月18日星期三 10:04实验器材:模数转换器0809,8255(作为显示结果用的),实验台线路。

实验目的:貌似比较简单,就是知道ADC0809可以进行模数转换,了解一下它的地址分配,以及如何实现片选的,不知到同学们是否达到了这个目的,貌似很多人接好线,看看可以运行就撤退了。

实验内容:用ADC0809把滑动变阻器限制的电压转化成某个范围内的数字量并通过8255显示在发光二极管上。

实验步骤:一、接线。

1.ADC0809的接线。

从左上角引过滑动变阻器限制的输入电压连接到ADC0809的输入端I0上。

系统0.5M时钟频率发生器连接到ADC0809的CLK上,作为其工作的时钟信号。

将三条地址选择线A,B,C分别接到系统的A0,A1,A2上。

74LS138的210h~217h接到ADC0809A 的CS端。

(这里其实是两个门电路的公共输入端,起到了片选的效果)。

2.8255的接线。

CS端接到74LS138的200h~207h上,把A口与8个发光二极管对应相连。

二、程序。

code segmentassume cs:codestart:;init 8255 A output at mode 0mov dx,203hmov al,80hout dx,allp:;activate ADC0809mov dx,210hout dx,al;if you connect A,B,C with A0,A1,A2,al内容无所谓,but if 连D0,D1,D2,here al must be 0;delay 100us to wait for 0809 conversionmov cx,100del:loop del;display the outcome with 8255in al,dxmov dx,200hout dx,aljmp lpcode endsend start三、操作及结果。

应用adc0809的ad转换设计

应用adc0809的ad转换设计

应用ADC0809的A/D转换设计摘要此次设计的主要内容是利用ADC0809设计制做A/D转换器,电位器提供模拟量输入,编制程序,将模拟量转换成二进制数字量,51单片机通过8255的PA口输出到发光二极管进行显示,并将8位二进制数转换为3位BCD码并在3位数码管上进行显示,并在此基础上进行扩展。

由于热敏电阻输出量为模拟量,同样通过ADC0809进行A/D转换,并将其输出值在发光二极管以及3位数码管上进行显示,来反映温度的变化。

压力传感器的输出量经过ADC0809进行模数转换后经发光二极管以及数码管的显示来反映压力的变化。

关键词:ADC0809 A/D转换 51单片机发光二极管数码管the design of the A/D conversion based onADC0809AbstractThe main content of this design is that use the ADC0809 make a A/D conversion.The ADC0809 get Analog signal from Potentiometers. Program and transform it into Digital as Binary. The 51Single-chip sent the digital to Light-emitting diodes by the A I/O interface of 8255,change the 8 bit Binary number into 3 bit BCD code , then develops it.The output of the thermistor is analog, use the ADC0809 make a A/D conversion and sent to Light-emitting diodes and Digital tube display it the aim is to Reflect the diversification of temperature. ADC0809 change the output of pressure sensor into digital data and Be displayed by Light-emitting and Digital tube,from this we can see the change of pressure we gave.Keywords:ADC0809A/Dconversion 51Single-chip Light-emitting目录1 绪论 (1)1.1 A/D转换概述 (1)1.1.1 A/D转换的概念 (1)1.1.2 A/D转换器的类型 (1)1.2 A/D转换在现实中的应用 (1)2 A/D转换的硬件介绍 (2)2.1 总体硬件介绍 (2)2.2 电位器概述 (2)2.3 ADC0809概述 (3)2.3.1 ADC0809的内部逻辑结构 (3)2.3.2 ADC0809的外部特征 (4)2.3.3 逐次逼近型A/D转换方法 (5)2.4 MC51单片机概述[4] (6)2.5 8255可编程并行I/O接口芯片概述 (7)2.5.1芯片引脚及其内部结构 (7)2.5.2 8255的内部结构 (8)2.6 发光二极管概述 (9)2.7 LED数码管概述 (10)3 A/D转换的具体设计及程序实现 (11)3.1 A/D转换的总体设计 (11)3.2 51单片机的中断 (11)3.2.1 中断的基本概念 (11)3.2.2 程序的入口地址 (12)3.2.3 中断响应的条件、过程与时间 (12)3.3 ADC0809的工作过程 (13)3.3.1 ADC0809与51单片机的连接 (15)3.3.2 ADC0809工作流程图及程序实 (16)3.4 8255的工作方式 (16)3.4.1 8255的工作方式及编程 (17)3.4.2 8255A的三种工作方式的功能及应用 (17)3.4.3 8255与51单片机的连接及工作 (19)3.5 发光二极管以及LED数码管的显示 (21)3.5.1 发光二极管的显示 (21)3.5.2 LED动态显示方式及实现 (21)4.设计扩展 (24)扩展1:利用热敏电阻检测温度的变化 (24)扩展2:利用压力传感器检测压力的变化 (25)5.总结 (26)参考文献 (27)致谢 (28)1 绪论1.1 A/D转换概述1.1.1 A/D转换的概念模数转换亦称模拟一数字转换,与数/模转换相反,是将连续的模拟量(如象元的灰阶、电压、电流,电压,温度等)通过取样转换成离散的数字量。

adc0809模数转换器用户手册

adc0809模数转换器用户手册

ADC0809模数转换芯片概述ADC0809是8位逐次逼近型A/D 转换器。

它由一个8路模拟开关、一个地址 锁存译码器、一个A/D 转换器和一个三态输出锁存器组成(见下图)。

多路开关 可选通8个模拟通道,允许8路模拟量分时输入,共用A/D 转换器进行转换。

三 态输出锁存器用于锁存A/D 转换完的数字量,当0E 端为高电平时,才可以从三 态输出锁存器取走转换完的数据。

ADC0809内部结构图ADC0809的工作原理图XX 是ADC0809的引脚图。

引脚功能说明如下:• IN0〜IN7: 8个输入通道的模拟输入端 • DO (2一8)〜D7 (2'1): 8位数字量输出端 • START :启动信号,加上正脉冲后,A/D 转换开始进行• ALE :地址锁存信号。

由低至高电平时,把三位地址信号送入通道号地址锁存器,并经译码器得到地址输出,以选择相应的模拟输入通道。

• EOC:转换结束信号,是芯片的输出信号。

转换开始后,EOC 信号变低: 转换结束时,EOC 返回高电平。

这个信号可以作为A/D 转换的状态信号 来査询,也可以直接用作中断请求信号。

• 0E :输出允许控制端(开数字星输出三态们)。

• CLK :时钟信号。

最高允许值为640kHzo地锁与码址存译8路二A/D____态 转输换----------------出器----------------存器▲ ▲IN3 EOCIN1DODiIN4 D2IN5D3D4D6 D7LVREFX*)VREFX-)8模 拟开 关• $EF+和%EF-:A/D 转换器的参考电压。

• Vcc-电源电斥。

由于是CMOS 芯片,允许电斥范鬧宽,可以是+5V 〜+15V 。

ADC0809两种封装形式8位模拟开关地址输入通道的关系见表XXo 模拟开关的作用和8选1的 CD4051作用相同表XX 8位模拟开关功能表ADDC ADDB ADDA 输入通道号 0 0 0 INO 0 0 1 INI 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 111IN7ADC0809芯片的转换速度在最高时钟频率卞为lOOus 左右。

adc0809原理

adc0809原理

adc0809原理ADC0809是一款8位串行输入模数转换器(ADC),由National Semiconductor(现为德州仪器)开发和生产。

它的原理是将输入的模拟信号转换成对应的数字信号,用于数字系统的处理和分析。

ADC0809采用逐次逼近型模数转换技术,具有8个模拟输入通道,并且能完成8位精度的转换。

它的输入范围为0-5V,输入阻抗为100kΩ。

ADC0809包含一个8位逐次逼近型模数转换器、一个输入多路选择器、一个时钟驱动电路、一个控制逻辑和一个数据锁存器。

ADC0809的工作原理如下:首先,用户通过使用时钟信号来驱动转换器的工作。

时钟信号一般由控制器提供,控制器通过多个IO引脚向ADC0809发送指令信号。

时钟信号使得转换器按照指定的频率工作。

其次,输入模拟信号经过模拟开关输入,并通过输入多路选择器将选中的信号路径引入到采样保持电路中。

ADC0809的输入多路选择器可以选择8个不同的输入通道。

输入模拟信号经过采样保持电路后,被锁存并保持一段时间以进行后续处理。

然后,转换器根据锁存的模拟信号进行逐步逼近型模数转换。

逐序地,转换器首先将8位比较器的基准电压与DAC输出进行比较。

如果DAC输出高于基准电压,则比较器输出为高电平,否则为低电平。

比较器输出经过一个选择和存储逻辑单元(LCU),得到一个3位的二进制数,供数值控制逻辑(NCL)使用。

NCL 根据LCU的输出向DAC施加增量或减量,使得DAC输出逐渐逼近输入模拟量。

最后,转换器通过串行接口将转换后的数字结果通过数据锁存器传送到输出端,供控制器读取。

串行接口为8位的串行输出,由转换器的输出引脚提供。

转换后的数字结果可以进行进一步的数字处理和显示。

需要注意的是,ADC0809的转换精度和转换速率在一定程度上有一定的权衡。

为了提高转换精度,需要减小转换速率。

当转换速率较高时,转换精度可能会下降。

因此,在具体应用中需要根据需求选择合适的转换速率和精度。

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

27.ADC0809A/D转换器基本应用技术1.基本知识ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。

它是逐次逼近式A/D转换器,可以和单片机直接接口。

(1).ADC0809的内部逻辑结构由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D 转换器和一个三态输出锁存器组成。

多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。

三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。

(2).引脚结构IN0-IN7:8条模拟量输入通道ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。

地址输入和控制线:4条ALE为地址锁存允许输入线,高电平有效。

当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。

A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。

通道选择表如下表所示。

C B A 选择的通道0 0 0 IN00 0 1 IN10 1 0 IN20 1 1 IN31 0 0 IN41 0 1 IN51 1 0 IN61 1 1 IN7数字量输出及控制线:11条ST为转换启动信号。

当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。

EOC为转换结束信号。

当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。

OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。

OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。

D7-D0为数字量输出线。

CLK为时钟输入信号线。

因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(+),VREF(-)为参考电压输入。

2.ADC0809应用说明(1).ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。

(2).初始化时,使ST和OE信号全为低电平。

(3).送要转换的哪一通道的地址到A,B,C端口上。

(4).在ST端给出一个至少有100ns宽的正脉冲信号。

(5).是否转换完毕,我们根据EOC信号来判断。

(6).当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。

3.实验任务如下图所示,从ADC0809的通道IN3输入0-5V之间的模拟量,通过ADC0809转换成数字量在数码管上以十进制形成显示出来。

ADC0809的VREF接+5V电压。

4.电路原理图图1.27.15.系统板上硬件连线(1).把“单片机系统板”区域中的P1端口的P1.0-P1.7用8芯排线连接到“动态数码显示”区域中的A B C D E F G H端口上,作为数码管的笔段驱动。

(2).把“单片机系统板”区域中的P2端口的P2.0-P2.7用8芯排线连接到“动态数码显示”区域中的S1 S2 S3 S4 S5 S6 S7 S8端口上,作为数码管的位段选择。

(3).把“单片机系统板”区域中的P0端口的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端口上,A/D转换完毕的数据输入到单片机的P0端口(4).把“模数转换模块”区域中的VREF端子用导线连接到“电源模块”区域中的VCC端子上;(5).把“模数转换模块”区域中的A2A1A0端子用导线连接到“单片机系统”区域中的P3.4P3.5P3.6端子上;(6).把“模数转换模块”区域中的ST端子用导线连接到“单片机系统”区域中的P3.0端子上;(7).把“模数转换模块”区域中的OE端子用导线连接到“单片机系统”区域中的P3.1端子上;(8).把“模数转换模块”区域中的EOC端子用导线连接到“单片机系统”区域中的P3.2端子上;(9).把“模数转换模块”区域中的CLK端子用导线连接到“分频模块”区域中的/4端子上;(10).把“分频模块”区域中的CK IN端子用导线连接到“单片机系统”区域中的ALE端子上;(11).把“模数转换模块”区域中的IN3端子用导线连接到“三路可调压模块”区域中的VR1端子上;6.程序设计内容(1).进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕,若完毕则把数据通过P0端口读入,经过数据处理之后在数码管上显示。

(2).进行A/D转换之前,要启动转换的方法:ABC=110选择第三通道ST=0,ST=1,ST=0产生启动转换的正脉冲信号7.汇编源程序CH EQU 30HDPCNT EQU 31HDPBUF EQU 33HGDATA EQU 32HST BIT P3.0OE BIT P3.1EOC BIT P3.2ORG 00HLJMP STARTORG 0BHLJMP T0XORG 30HSTART: MOV CH,#0BCHMOV DPCNT,#00HMOV R1,#DPCNTMOV R7,#5MOV A,#10MOV R0,#DPBUFLOP: MOV @R0,AINC R0DJNZ R7,LOPMOV @R0,#00HINC R0MOV @R0,#00HINC R0MOV @R0,#00HMOV TMOD,#01HMOV TH0,#(65536-4000)/256MOV TL0,#(65536-4000) MOD 256SETB TR0SETB ET0SETB EAWT: CLR STSETB STCLR STWAIT: JNB EOC,WAITSETB OEMOV GDATA,P0CLR OEMOV A,GDATAMOV B,#100DIV ABMOV 33H,AMOV A,BMOV B,#10DIV ABMOV 34H,AMOV 35H,BSJMP WTT0X: NOPMOV TH0,#(65536-4000)/256MOV TL0,#(65536-4000) MOD 256MOV DPTR,#DPCDMOV A,DPCNTADD A,#DPBUFMOV R0,AMOV A,@R0MOVC A,@A+DPTRMOV P1,AMOV DPTR,#DPBTMOV A,DPCNTMOVC A,@A+DPTRMOV P2,AINC DPCNTMOV A,DPCNTCJNE A,#8,NEXTMOV DPCNT,#00HNEXT: RETIDPCD: DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FH,00HDPBT: DB 0FEH,0FDH,0FBH,0F7HDB 0EFH,0DFH,0BFH,07FHEND8.C语言源程序#include <AT89X52.H>unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00}; unsigned char dispbuf[8]={10,10,10,10,10,0,0,0};unsigned char dispcount;sbit ST=P3^0;sbit OE=P3^1;sbit EOC=P3^2;unsigned char channel=0xbc;//IN3 unsigned char getdata;void main(void){TMOD=0x01;TH0=(65536-4000)/256;TL0=(65536-4000)%256;TR0=1;ET0=1;EA=1;P3=channel;while(1){ST=0;ST=1;ST=0;while(EOC==0);OE=1;getdata=P0;OE=0;dispbuf[2]=getdata/100;getdata=getdata%10;dispbuf[1]=getdata/10;dispbuf[0]=getdata%10;}}void t0(void) interrupt 1 using 0 {TH0=(65536-4000)/256;TL0=(65536-4000)%256;P1=dispcode[dispbuf[dispcount]]; P2=dispbitcode[dispcount];dispcount++;if(dispcount==8){dispcount=0;}}。

相关文档
最新文档