完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
` 本帖最后由 iysheng 于 2015-9-27 23:10 编辑 今天下午,把以前从maxim官网上申请的样片,焊在了洞洞板上,附上一张照片和效果图啊:由于线太短了,图片拍的不好,请见谅啊:并写了程序(最开始是按照摩托罗拉总线写的),依照如下的时序图:
写的读写函数如下:
刚开始的时候,没有添加上面红色的部分:P1=0XFF;实验现象就是不正确,都会来的数总是不变,然后,我从网上看了,别人写的读写函数,直接复制粘贴过来了,现象就有了。(复位引脚要接高电平,最开始我没有接)。 然后,我就以为是我没有复位引脚没有接高电平,导致我的程序现象不对的,遗憾的是,我把DS12C887的复位引脚接了高电平,实验证明, 我的程序依旧是不对的。接着,我继续修改我的摩托罗拉总线函数,还是不对,索性,我按照intel 总线的时序,他们的读写时序图分别如下: 写了我的读写函数的代码,如下所示(事后证明错误是一个,都是少了P1=0XFF;不知道为什么???):
刚开始的时候,还是不行,我就继续修改,因为我是为了锻炼我看时序图的能力,所以我不看别人的程序,实在是想不出来是什么问题了,我看我自己的代码和别人的差别,谁知道就是少了:P1=0XFF;这是为什么呢?为什么读取数据之前,要先写入0xff呢?这个可以从手册上面找出对应的话吗?求指导啊,,,,, ` |
|
相关推荐
2个回答
|
|
这个问题很简单,与时许没有直接关系,而是与51的IO口读操作有关。51单片机的IO是准双向口,即可以做输出口也可以做双向口。做输出时,端口的状态是被输出寄存器锁存的。如果你先把一个IO做输出,之后再做输入,那么读到的端口值取决于两方面,一是外部电路的电平,这是你真正想要的。二是端口输出寄存器的电平,如果寄存器为0,即使你外部电路是高电平,读到的也是0。所以在使用传统51单片机时,要记住的一点是:读某个端口之前,先向该端口写1,目的是使端口的输出寄存器输出1,此时该端口是弱上拉,可以被外部电路拉低。当然,如果你能保证它始终为1(只用该端口做输入),可省略写1这一步。今年来有很多增强型的1单片机,是可以配置IO的模式的,达到真正的双向口,此时可省去读之前先写1的步骤。具体要看芯片的数据手册
最佳答案
|
|
|
|
1522495332 发表于 2015-9-27 23:00 谢谢你,真的是这样。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
377 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
536 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
540 浏览 0 评论
950 浏览 0 评论
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
1403 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11762 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 10:56 , Processed in 0.642907 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号