(1)三态数据口D0~D7:用于向CPU传送八路数字信号
(2)模拟输入接口IN0~IN7:用于输入8路模拟信号
(3)通道选择ADDA~ADDC:用于选择模拟通道
(4)参考电压AVREF+与AVREF-:用于ADC转换的参考电压
(5)地址锁存ALE:用于锁存地址
(6)时钟脉冲输入CLK:用于给器件工作提供时钟脉冲
(7)输出使能ENABLE:置1输出数字信号
(8)转换结束信号EOC:转换结束后,端口置0
(9)启动信号START:用于启动AD转换器
ADC0809利用ADDA、ADDB、ADDC来选择通道,通道选择如下表所示。
ADDA | ADDB | ADDC | 通道 |
---|---|---|---|
0 | 0 | 0 | IN0 |
0 | 0 | 1 | IN1 |
0 | 1 | 0 | IN2 |
0 | 1 | 1 | IN3 |
1 | 0 | 0 | IN4 |
1 | 0 | 1 | IN5 |
1 | 1 | 0 | IN6 |
1 | 1 | 1 | IN7 |
(1)由外部给出IN0~IN7任意一路模拟信号
(2)CPU给出通道选择信号,用于选择对应的INx
(3)CPU给出ALE地址锁存信号,用于锁存通道选择信号
(4)CPU给出START信号,启动AD转换器
(5)ADC0809转换结束后发出EOC信号
(6)CPU接收到EOC信号,发出OE信号将数据输出
例题:利用ADC0809的通道0将0~5V的电压值显示在串口上,要求串口波特率9600,无校验位,停止位1个,数据位8个。
解析过程:根据上几部分的内容配置串口,然后根据硬件连接可知,ADDA对应A8,ADDB对应A9,ADDC对应A10,8255A的A0对应A6,A1对应A7,所以对应的地址如下所示:
通道0地址:0000 00000000 0000 B,即0000 H;
数据读取地址:0000 0000 0000 0000 B,即0000 H;
端口设置地址:0000 1000 1100 0000 B,即00C0 H;
ADC0809控制地址:00001000 1000 0000 B,即0080 H;
8251A控制地址0001 10000010 0000 B,即1820 H;
8251A数据地址0001 10000000 0000 B,即1810 H。
综上所述,源代码如下图所示:
全部0条评论
快来发表一下你的评论吧 !