ADC0809状态机.ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ADC0809状态机

微机原理与接口技术 实 验 实验4 逐次比较式A/D转换器0809的原理及编程 实验目的 1.熟悉逐次逼近式A/D转换器芯片的工作原理。 2.了解 A/D 转换芯片0809的接口设计方法。 3.掌握 A/D 转换器0809简单的应用编程。 A/D转0809结构框 转换原理 实验电路图 ▼ 0809引脚定义 ADC0809是8路输入的8位逐次逼近A/D转换器,其转换时间为16个外部时钟周期。 其主要端口定义如下: ① IN7~IN0:八个模拟量输入端。 ② D7~D0:数字量输出端。 ③ ENABLE:输出允许信号。当此信号被选中时,允许从A/D转换器的锁存器中读取数字量。高电平有效。 ④ START:启动A/D转换,当START为高电平时,A/D转换开始。 ⑤ ALE:地址锁存允许,高电平有效。当ALE为高电平时,允许C、B、A所示的通道被选中,并把该通道的模拟量接入A/D转换器。 ⑥ EOC:转换结束信号。当A/D转换结束后,发出一个正脉冲,表示A/D转换完毕。此信号可用作A/D转换是否完成的检测信号。 ⑦ ADDA、ADDB、ADDC:通道号选择端,C为最高位,A为最低位。 ⑧ CLOCK:外部时钟(本实验采用500KHz的时钟频率)。 ⑨ Vref(+),Vref(-):参考电压端,用来提供D/A转换器权电阻的标准电平(本实验采用典型值:Vref(+)=+4.096V,Vref(-)=0V)。 ▼A/D转换时序 ▼ 被测电压与A/D转换结果关系 ▼ 数据及控制信号接口 本实验共用到三个端口: X0H :0809的0通道地址,输入/输出端口,控制字任意。 X3H :输出端口,8255的控制端口。 X2H :输入端口,查询0809转换状态信号(“0”表示正在转换;“1”表示转换完毕)。 编程与调试 (一)0通道测量电压 1.程序说明 本实验由实验箱的右上角的电压调节器调节输入电压的Vx大小,并送入0809的0通道。实验测得的电压值显示在实验主板的LED上。 2.编程思路 3.编程步骤 ① EPP端口初始化。 ② 8255初始化。 ③ 启动芯片0809开始转换。 选择0809的0通道(地址X0H),然后任意写一个字节,利用WR引脚启动0809进行转换。 ④ 循环读取转换状态量,直到PC5=1 读取A/D转换完毕的数字量。 ⑥ 将读取的数据转换成电压值V。 ⑦ 在LED上的显示被测电压值。 汇编 源程序 CH EQU 30H DPCNT EQU 31H DPBUF EQU 33H GDATA EQU 32H ST BIT P3.0 OE BIT P3.1 EOC BIT P3.2 ORG 00H LJMP START ORG 0BH LJMP T0X ORG 30H START: MOV CH,#0BCH MOV DPCNT,#00H MOV R1,#DPCNT MOV R7,#5 MOV A,#10 MOV R0,#DPBUF LOP: MOV @R0,A INC R0 DJNZ R7,LOP MOV @R0,#00H INC R0 MOV @R0,#00H INC R0 MOV @R0,#00H MOV TMOD,#01H MOV TH0,#(65536-4000)/256 MOV TL0,#(65536-4000) MOD 256 SETB TR0 SETB ET0 SETB EA WT: CLR ST SETB ST CLR ST WAIT: JNB EOC,WAIT SETB OE MOV GDATA,P0 CLR OE MOV A,GDATA MOV B,#100 DIV AB MOV 33H,A MOV A,B MOV B,#10 DIV AB MOV 34H,A MOV 35H,B SJMP WT T0X: NOP MOV TH0,#(65536-4000)/256 MOV TL0,#(65536-4000) MOD 256 MOV DPTR,#DPCD MOV A,DPCNT MOVC A,@A+DPTR MOV P2,A INC DPCNT MOV A,DPCNT CJNE A,#8,NEXT MOV DPCNT,#00H NEXT: RETI DPCD: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH,00H DPBT: DB 0FEH,0FDH,0FBH,0F7H DB 0EFH,0DFH,0BFH,07FH END C语言 源程序 #include AT89X52.H unsigned char code dispbitcode[]={0xfe,0xfd

您可能关注的文档

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档