为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

CT107D_pcf8591_光敏电阻

2012-06-24 5页 doc 21KB 57阅读

用户头像

is_650474

暂无简介

举报
CT107D_pcf8591_光敏电阻/*光敏电阻:根据光的强度,改变电阻,从而输出模拟电压,此为ADpcf8591的AIN1输入端,接下来怎么做,你懂的*/ #include #define rst573 P2&=0x1f #define ledY4C P2|=0x80 #define beeY5C P2|=0xa0 #define smgY6C P2|=0xc0 #define smgY7C P2|=0xe0 sbit sclIIC=P2^0; sbit sdaIIC=P2^1; sbit P04=P0^4; sbit P06=P0^6; ...
CT107D_pcf8591_光敏电阻
/*光敏电阻:根据光的强度,改变电阻,从而输出模拟电压,此为ADpcf8591的AIN1输入端,接下来怎么做,你懂的*/ #include #define rst573 P2&=0x1f #define ledY4C P2|=0x80 #define beeY5C P2|=0xa0 #define smgY6C P2|=0xc0 #define smgY7C P2|=0xe0 sbit sclIIC=P2^0; sbit sdaIIC=P2^1; sbit P04=P0^4; sbit P06=P0^6; sbit P36=P3^6; sbit rs1602=P2^0; sbit wr1602=P2^1; sbit en1602=P1^2; void delay4us() {;;} void delay6us(unsigned char us) { while(us--); } void init107() { P36=0; rst573; //close led P0=0xff; ledY4C; rst573; //close bee P06=0; P04=0; beeY5C; rst573; //close smg P0=0x00; smgY6C; rst573; } void startIIC() { sdaIIC=1; delay4us(); sclIIC=1; delay4us(); sdaIIC=0; delay4us(); sclIIC=0; delay4us(); } void stopIIC() { sdaIIC=0; delay4us(); sclIIC=1; delay4us(); sdaIIC=1; delay4us(); sclIIC=0; delay4us(); } void response() { unsigned char i; sdaIIC=1; i=200; sclIIC=1; delay4us(); while(sdaIIC==1&&i--); sclIIC=0; } void writeIIC(unsigned char temp) { unsigned char i; for(i=8;i;i--) { temp<<=1; sdaIIC=CY; delay4us(); sclIIC=1; delay4us(); sclIIC=0; delay4us(); } } unsigned char readIIC() { unsigned char temp,i; for(i=8;i;i--) { temp<<=1; sclIIC=1; delay4us(); temp|=sdaIIC; delay4us(); sclIIC=0; delay4us(); } return temp; } void ADpcf8591() { startIIC(); writeIIC(0x90); response(); writeIIC(0x01);//对准AIN1 response(); stopIIC(); } unsigned char readAD() { unsigned char temp; startIIC(); writeIIC(0x91); response(); temp=readIIC(); response(); stopIIC(); return temp; } void dat1602(unsigned char dat) { unsigned char temp; do { rs1602=0; wr1602=1; en1602=1; temp=P0; }while(temp&0x80); rs1602=1; wr1602=0; P0=dat; en1602=1; en1602=0; } void com1602(unsigned char com) { unsigned char temp; do { rs1602=0; wr1602=1; en1602=1; temp=P0; }while(temp&0x80); rs1602=0; wr1602=0; P0=com; en1602=1; en1602=0; } void init1602() { com1602(0x38);//显示模式设置指令 1602固定的第一句指令 com1602(0x0e);//光标打开,不闪烁 com1602(0x06);//写入一个字符后指针地址加1,写一个字符时整屏不移动 // com1602(0x07);//写入一个字符后指针地址加1,写一个字符时整屏移动 com1602(0x01);//清屏显示,数据指针清0 } void main() { unsigned char vol,vol1; init107(); ADpcf8591(); init1602(); while(1) { vol=readAD(); if(vol!=vol1) { com1602(0x80); vol1=vol; dat1602(vol/100+'0'); delay6us(255); dat1602(vol%100/10+'0'); delay6us(255); dat1602(vol%10+'0'); delay6us(255); } } }
/
本文档为【CT107D_pcf8591_光敏电阻】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索