热门关键词:

DHT11-资料-汇编-C语言程序

  • 该文件为rar格式
  • 文件大小:391.21KB
  • 浏览次数
  • 发布时间:2015-04-22
文件介绍:

本资料包含三维模型文件1个、pdf文件1个,下载需要1积分

DHT11-资料-汇编-C语言程序

;用单片机的定时器测得 复位后高电平可以维持15us,然后被dht11拉低85us
;dht11发出-个83us的高电平作为响应信号。之后开始数据传输,先传输高位,
;数据间,低电平维持时间是54us,0的高电平维持23-27us,1的高电平维持73-79us
;故,判断时间可以定在高电平开始后的第50us(以下程序用的是45us)
;读出的数据写到30-34单元
;显示段码接口P2,位码P1低三位译码得到
;段码写在40-47单元
;如果读数间隔太小,会引起错误
;读数判断原理上的问题导致-旦器件出错,单片机则会死循环
;读数原理:计算高电平的时间长度,与标准45比较

dout equ p3.6 ;数据接口

org 0000h
ljmp start

org 0100h
start:
lcall delay250
lcall delay250

s4: clr dout
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
setb dout

mov p2,#0
jb dout,$ ;释放等待
jnb dout,$;响应的低电平
jb dout,$;响应的高电平
mov r1,#30h
s3: mov r2,#8
s2: jnb dout,$ ;低电平检测
mov r4,#0 ;r4高电平计时
s1: inc r4 ;1
jb dout,s1 ;2 高电平检测
cjne r4,#15,s5
; cpl c ;只有整体对a取反有作用,不知道为什么
s5:rlc a ;1
djnz r2,s2 ;2
mov ###r1,a ;2转存数据
mov a,#0
inc r1 ;1
cjne r1,#35h,s3 ;2

setb dout;拉高总线
lcall chuli ;处理数据

lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数
lcall display ;显示函数

ljmp s4

chuli:
mov a,30h
mov b,#10
cpl a
div ab
mov 40h,a
mov 41h,b
mov 42h,#0
mov 43h,#0
mov a,32h
mov b,#10
cpl a
div ab
mov 44h,a
mov 45h,b
mov 46h,#0
mov 47h,#0
ret

display:
mov r0,#40h ;地址
mov r3,#8 ;显示位数
mov p1,#0
mov dptr,#tab
dis1:mov a,###r0
movc a,###adptr
mov p2,a
lcall delay1
mov p2,#0
inc r0
inc p1
djnz r3,dis1
ret

delay1: ;延时1ms
mov r7,#4
d1:mov r6,#250
d2:nop
nop
djnz r6,d2
djnz r7,d1
ret

delay20: ;延时20ms
mov r5,#20
d20:lcall delay1
djnz r5,d20
ret

delay250: ;延时250ms
mov r5,#250
d250:lcall delay1
djnz r5,d20
ret

tab:
db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;0-9

正在加载...请等待或刷新页面...
发表评论
验证码 验证码加载失败