/************************************************ 跳线设置: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; } //这个函数在原来的动态扫描中直接调用就行了 }
[此贴子已经被作者于2009-12-16 19:32:41编辑过]
|