/*
并行A/D 0809模数转换实验
实验连线:
P2.7(A15) ---------- A或非门输入1
P3.6(WR) ----------- A或非门输入2
ADC0809 SC/ALE ----- A或非门输出
P2.7(A15) ---------- B或非门输入1
P3.7(RD) ----------- B或非门输入2
ADC0809 OE --------- B或非门输出
ADC0809 IN0 -------- 模拟电压 0-5V
ADC0809 CLK -------- 51 ALE
ADC0809 D0..D7 ----- 51 P0.0(AD0)..P0.7(AD7) 数据总线
ADC0809 ADD-ABC ---- 51 A0..A3 地址总线
实验现象:
单步或断点方式运行程序,调节0~5V模拟量,观察ADC0809的读出值和转换后的电压值。
*/
#include <intrins.h>
#define DELAY8US() _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_()
char code RESERVE[3] _at_ 0x3b; //为MON51预留3个字节用于暂停
unsigned char xdata CS0809IN0 _at_ 0x0300;
void main()
{
unsigned char ad; //ADC0809读出值
float adv; //对应的电压值
while(1)
{
CS0809IN0 = 0;
DELAY8US();
ad = CS0809IN0; //读出值
adv = ad * 5.0 / 255; //电压值
_nop_(); //在此行设置断点,全速运行到此行时,观察ad和adv的值
}
}

被折叠的 条评论
为什么被折叠?



