完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我在做一个测温系统,采用RC充放电来进行测温。参考资料如下: 图中: P1.0、P1.1和P1.2是单片机的3个I/O脚; RK为100k的精密电阻; RT为100K-精度为1%的热敏电阻; R1为100Ω的普通电阻; C1为0.1μ的瓷介电容。 其工作原理为:1.先将P1.0、P1.1、P1.2都设为低电平输出,使C1放电至放完。 2.将P1.1、P1.2设置为输入状态,P1.0设为高电平输出,通过RK电阻对C1充电,单片机内部计时器清零并开始计时,检测P1.2口状态,当P1.2口检测为高电平时,即C1上的电压达到单片机高电平输入的门嵌电压时,单片机计时器记录下从开始充电到P1.2口转变为高电平的时间T1。 3.将P1.0、P1.1、P1.2都设为低电平输出,使C1放电至放完。 4.再将P1.0、P1.2设置为输入状态,P1.1设为高电平输出,通过RT电阻对C1充电,单片机内部计时器清零并开始计时,检测P1.2口状态,当P1.2口检测为高电平时,单片机计时器记录下从开始充电到P1.2口转变为高电平的时间T2。 5.从电容的电压公式: 可以得到:T1/RK=T2/RT,即 RT=T2×RK/T1 通过单片机计算得到热敏电阻RT的阻值。并通过查表法可以得到温度值。 现在的问题是,我采用89c2051单片机,用proteus进行仿真,仿真不出来。不知道“将P1.0、P1.2设置为输入状态”是什么意思,是让P1.0和P1.2为0吗?但是那样发现电容上的电压就是R1上的电压了,根本不会继续增加而使P1.2变为高电平。求高手知道。是不是我选的单片机不对。 |
|
相关推荐
8个回答
|
|
设置输入状态必须先向端口写1。
|
|
|
|
|
|
|
|
我觉得你这个做输入口得用P0口,P1口内部有上拉电阻会影响你输入的电平值。 写1是把内部的mos管截止,P1口会出现高电平,但是如果这时你外部是低电平,则变为低电平,外部为高,则还为高。 |
|
|
|
2.将P1.1、P1.2设置为输入状态.这句话是什么意思啊?后面要求能检测电容充电达到门嵌电压,使P1.2检测到高电平。那么这里所说的设置为输入状态就应该是写0啊。 但问题是仿真的时候,电容不能到达高电平。 |
|
|
|
写1是把内部的mos管截止,P1口会出现高电平,但是如果这时你外部是低电平,则变为低电平,外部为高,则还为高。所以要是把端口清零(那就不要指望电容上充电使端口达到高电平),肯定是不行的。内部把他拉低,外部就别想把它拉高。
|
|
|
|
对于51,XX=P1就是读取输入了
|
|
|
|
路过。。。。。。。。
|
|
|
|
不会同,???中那么回事
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
464 浏览 0 评论
478 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
439 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
994 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1056 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11780 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 10:24 , Processed in 0.820110 second(s), Total 54, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号