基于单片机AT89C51控制DS18B20温度传感器对水温的控制系统

全部回答4
默认 最新
  • 就拿我是个51初学者来说吧!这个应该很容易做的呀!看郭天祥视频还做不出来,就看天狼星的视频,他们的视频里都有现成的DS18B20源代码。硬件就用个ULN2003来驱动继电器
    0 点赞
  • dq bit p3.3 ;ds18b20的数据口位p3.3 tph data 20h ;存放温度值的高字节 tpl data 21h ;存放温度值的低字节 org 0 jmp reset org 100h reset: call ds18b20_reset ;设备复位 mov a,#0cch ;跳过rom命令 call ds18b20_writebyte ;送出命令 mov a,#044h ;开始转换 call ds18b20_writebyte ;送出命令 jnb dq,$ ;等待转换完成 call ds18b20_reset ;设备复位 mov a,#0cch ;跳过rom命令 call ds18b20_writebyte ;送出命令 mov a,#0beh ;读暂存存储器 call ds18b20_writebyte ;送出命令 call ds18b20_readbyte ;读温度低字节 mov tpl,a ;存储数据 call ds18b20_readbyte ;读温度高字节 mov tph,a ;存储数据 jmp $ ;************************************** ;延时x*10微秒(12m) ;不同的工作环境,需要调整此函数 ;************************************** delayx0us: ;2 当改用1t的mcu时,请调整此延时函数 nop ;1 nop ;1 nop ;1 nop ;1 nop ;1 nop ;1 nop ;1 nop ;1 djnz r7,delayx0us ;2 ret ;2 ;************************************** ;复位ds18b20,并检测设备是否存在 ;入口参数:无 ;出口参数:无 ;************************************** ds18b20_reset: clr dq ;送出低电平复位信号 mov r7,#48 ;延时至少480us call delayx0us setb dq ;释放数据线 mov r7,#6 ;等待60us call delayx0us mov c,dq ;检测存在脉冲 mov r7,#42 ;等待设备释放数据线 call delayx0us jc ds18b20_reset ;如果设备不存在,则继续等待 ret ;************************************** ;从ds18b20读1字节数据 ;入口参数:无 ;出口参数:acc ;************************************** ds18b20_readbyte: clr a push 0 mov 0,#8 ;8位计数器 readnext: clr dq ;开始时间片 nop nop setb dq ;准备接收 nop nop mov c,dq ;读取数据 rrc a mov r7,#6 ;等待时间片结束 call delayx0us djnz 0,readnext pop 0 ret ;************************************** ;向ds18b20写1字节数据 ;入口参数:acc ;出口参数:无 ;************************************** ds18b20_writebyte: push 0 mov 0,#8 ;8位计数器 writenext: clr dq ;开始时间片 nop nop rrc a ;输出数据 mov dq,c mov r7,#6 ;等待时间片结束 call delayx0us setb dq ;准备送出下一位数据 djnz 0,writenext pop 0 ret end
    0 点赞
  • 硬件部分,51最小系统,ds18b20与89c51的连接这个郭天祥的的教程(十天学会单片机)视频中讲,源码和原理图都讲了,对于你做硬件来说,原理图拿过来,用dxp或者99se画好,1个红色LED,电路如何接,参考跑马灯,别说这个都不会,郭天祥中都讲过3位数码管怎么连接单片机,不会就百度原理图如何画,我想跟你说的是供电,看清楚51是5v还是3.3v供电,你们这个项目是比较简单,估计老师也就是做一下答辩,有笔记本没有,USB出来刚好就是5V,直接把5V电和地拿过来连在板子上,供电处,3.3V怎么办呢,去淘宝买5V转3.3V的转换芯片,没有笔记本,也行就直接电池盒呗,这个别说不会,3.3v的用2节电池(1.5v),5V的用(3节电池),电压实际上是查了一点的,你这个项目来说是没什么影响,如果你们那个老师要严谨一点的,你直接给它6节电池,然后去淘宝买7805转换芯片,这里为什么是6节了因为7805最小是8V到5V的,很多芯片都行的,7805只是觉得学校用的多,还有一个办法买变压器,这个就跟电池盒。怎么去转换类似,你做的就是画原理图生成PCB板子,和焊接板子画板属于硬件部分,包括焊接板子,软件部分编程,没什么说的参考一下天祥十天学会单片机,关于18b20和数码管跑马灯3个历程就好了,
    0 点赞
  • 设计电路,参考一下带数码管的开发板神马的,然后根据硬件,分别调通DS18B20,数码管。控制部分一般用继电器,很好控制。最后根据你的控制方法设计主程序的流程,把调通的各部分关联起来就好了。 硬件部分只是做实物,包括单片机小系统及其电源设计,外围传感器接口,数码管驱动电路,继电器控制电路等,如果要自己做电路板,还需要在电脑上做PCB设计,用到一些设计软件。
    0 点赞

没有更多内容了

返回顶部
产品求购 求购