完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 杨洪雨 于 2012-12-1 15:53 编辑
#include #include #include"typedef.h" #include "display.h" ***it ds=P3^7; uchar ok; void delayus(unsigned char us) { while(us--); } void initds() { ds=1; delayus(2); ds=0; delayus(85); ds=1; delayus(8); if(ds==0) //detect 1820 success! { ok=1; P0=0; }//判断是否应答 else ok=0; //detect 1820 fail! } void write_byte(uchar dat) { uchar i; for(i=0;i<8;i++) { ds=0; _nop_(); ds=dat&0x01; delayus(5);//51 ds=1; dat>>=1; } delayus(4); } uchar read_byte() { uchar i,val=0; for(i=0;i<8;i++) { ds=0; _nop_(); ds=1; val>>= 1; if(ds) {val|=0x80; } delayus(2);//至少1us回复时间 } initds(); 晶振是十二m;为何总显示255呢,郁闷,时序也没错啊!咋就不对 |
|
相关推荐
4 个讨论
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-7 15:27 , Processed in 0.689032 second(s), Total 55, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号