/************************************************
跳线设置:J2的23端插上跳线帽,双排针除PSEN外全部插上,J7拔掉
晶振:11.0592M
显示效果:
1,在Q9上插入光敏或者热敏电阻,在数码管上显示数字量
如用手遮住Q9上的光,则可看到数字的变化
相关知识点:
1,类似ADC0804数模转换的操作
************************************************/
#include"AT89x52.h"
#define uint unsigned int
#define uchar unsigned char
sbit ADC0804_SC=P2^0;
sbit ADC0804_RD=P3^7;
sbit ADC0804_WR=P3^6;
sbit DUAN=P2^6; //74HC573的LE端 LED的段选端
sbit WEI=P2^7; //74HC573的LE端 LED的位
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void adc0804_start() //AD0804的启动函数
{
ADC0804_WR=1;
ADC0804_WR=0;
ADC0804_WR=1;
}
main()
{
uchar ADC0804_data;
ADC0804_SC=0; //让SC一直为低
WEI=1;
P0=0xff;
WEI=0;
while(1)
{
adc0804_start(); //启动ADC0804
delay(5); //延时
ADC0804_RD=0; //RD为低
delay(5); //延时
ADC0804_data=P1; //将ADC0804的数据传出
delay(5); //延时
ADC0804_RD=1; //RD为高
delay(5); //延时
P0=ADC0804_data;
} //这个函数在原来的动态扫描中直接调用就行了
}
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |