1樓:匿名使用者
這個以前課程設計做過 你留個郵箱 我發你
2樓:匿名使用者
能把別人發給你的給我**下,行不?謝謝
3樓:匿名使用者
我也正在做這個設計,一起努力!
基於at89c51和ds18b20和lcd1602的溫度檢測記錄系統的c語言程式
4樓:匿名使用者
你好!程式完成了嗎?可以寫
5樓:qq講
基於at89c51和ds18b20和lcd1602的溫度檢測記錄系統的c語言程式我還可以給!
用c語言對stc89c52晶片程式設計,實現對ds18b20採集溫度並顯示出來,求程式
求at89c51微控制器與ds18b20的c語言程式,溫度設定為10℃—70℃最小區分度為 0
6樓:匿名使用者
temper_l equ 36h ;存放讀出溫度低位資料
temper_h equ 35h ;存放讀出溫度高位資料
temper_num equ 60h ;存放轉換後的溫度值
flag1 bit 00h
dq bit p3.3 ;一線匯流排控制埠
org 0000h
ljmp main
org 0100h
main:
mov sp,#70h
lcall get_temper ;從ds18b20讀出溫度資料
lcall temper_cov ;轉換讀出的溫度資料並儲存
sjmp $ ;完成一次數字溫度採集
;-------讀出轉換後的溫度值
get_temper:
setb dq ; 定時入口
bcd: lcall init_1820
jb flag1,s22
ljmp bcd ; 若ds18b20不存在則返回
s22: lcall delay1
mov a,#0cch ; 跳過rom匹配------0cc
lcall write_1820
mov a,#44h ; 發出溫度轉換命令
lcall write_1820
noplcall delay
lcall delay
cba: lcall init_1820
jb flag1,abc
ljmp cba
abc: lcall delay1
mov a,#0cch ; 跳過rom匹配
lcall write_1820
mov a,#0beh ; 發出讀溫度命令
lcall write_1820
lcall read_18200 ;read_1820
ret;-------讀ds18b20的程式,從ds18b20中讀出一個位元組的資料
read_1820:
mov r2,#8
re1: clr c
setb dq
nopnop
clr dq
nopnop
nopsetb dq
mov r3,#7
djnz r3,$
mov c,dq
mov r3,#23
djnz r3,$
rrc a
djnz r2,re1
ret;-------寫ds18b20的程式
write_1820:
mov r2,#8
clr c
wr1: clr dq
mov r3,#6
djnz r3,$
rrc a
mov dq,c
mov r3,#23
djnz r3,$
setb dq
nopdjnz r2,wr1
setb dq
ret;-------讀ds18b20的程式,從ds18b20中讀出兩個位元組的溫度資料
read_18200:
mov r4,#2 ; 將溫度高位和低位從ds18b20中讀出
mov r1,#36h ; 低位存入36h(temper_l),高位存入35h(temper_h)
re00: mov r2,#8
re01: clr c
setb dq
nopnop
clr dq
nopnop
nopsetb dq
mov r3,#7
djnz r3,$
mov c,dq
mov r3,#23
djnz r3,$
rrc a
djnz r2,re01
mov @r1,a
dec r1
djnz r4,re00
ret;-------將從ds18b20中讀出的溫度資料進行轉換
temper_cov:
mov a,#0f0h
anl a,temper_l ; 捨去溫度低位中小數點後的四位溫度數值
swap a
mov temper_num,a
mov a,temper_l
jnb acc.3,temper_cov1 ; 四捨五入去溫度值
inc temper_num
temper_cov1:
mov a,temper_h
anl a,#07h
swap a
add a,temper_num
mov temper_num,a ; 儲存變換後的溫度資料
lcall bin_bcd
ret;-------將16進位制的溫度資料轉換成壓縮bcd碼
bin_bcd:
mov dptr,#temp_tab
mov a,temper_num
movc a,@a+dptr
mov temper_num,a
rettemp_tab:
db 00h,01h,02h,03h,04h,05h,06h,07h
db 08h,09h,10h,11h,12h,13h,14h,15h
db 16h,17h,18h,19h,20h,21h,22h,23h
db 24h,25h,26h,27h,28h,29h,30h,31h
db 32h,33h,34h,35h,36h,37h,38h,39h
db 40h,41h,42h,43h,44h,45h,46h,47h
db 48h,49h,50h,51h,52h,53h,54h,55h
db 56h,57h,58h,59h,60h,61h,62h,63h
db 64h,65h,66h,67h,68h,69h,70h,71h
db 72h,73h,74h,75h,76h,77h,78h,79h
db 80h,81h,82h,83h,84h,85h,86h,87h
db 88h,89h,90h,91h,92h,93h,94h,95h
db 96h,97h,98h,99h
;-------ds18b20初始化程式
init_1820:
setb dq
nopclr dq
mov r0,#80h
tsr1: djnz r0,tsr1 ; 延時
setb dq
mov r0,#25h ;96us-25h
tsr2: djnz r0,tsr2
jnb dq,tsr3
ljmp tsr4 ; 延時
tsr3: setb flag1 ; 置標誌位,表示ds1820存在
ljmp tsr5
tsr4: clr flag1 ; 清標誌位,表示ds1820不存在
ljmp tsr7
tsr5: mov r0,#06bh ;200us
tsr6: djnz r0,tsr6 ; 延時
tsr7: setb dq
ret;-------重新寫ds18b20暫存儲存器設定值
re_config:
jb flag1,re_config1 ; 若ds18b20存在,轉re_config1
retre_config1:
mov a,#0cch ; 發skip rom命令
lcall write_1820
mov a,#4eh ; 發寫暫存儲存器命令
lcall write_1820
mov a,#00h ; th(報警上限)中寫入00h
lcall write_1820
mov a,#00h ; tl(報警下限)中寫入00h
lcall write_1820
mov a,#7fh ; 選擇12位溫度解析度
lcall write_1820
ret;------------------延時子程式
delay:
mov r7,#00h
min: djnz r7,ys500
retys500: lcall ys500us
ljmp min
ys500us:mov r6,#00h
djnz r6,$
retdelay1: mov r7,#20h
djnz r7,$
retend
用at89c51與ds18b20做數字溫度計proteus怎麼連線**圖和c語言程式設計?
7樓:高店村四組
ds18b20有3個腳,vcc接電源,gnd接地,dq接資料口,是at89c51的一個引腳就可以了,硬體電路非常簡單,這也是ds18b20的巨大優點。重點是c語言程式設計,這個程式你可以網上搜,肯定有的。
用at89s52微控制器控制ds18b20測溫,求程式。 5
8樓:匿名使用者
你好!是c語言程式嗎,有個你看看是不是能滿足要求
printf 「x d,y d n」,x,y 有誰知道C 裡這是做什麼用的
在螢幕上輸出 x,y的內容 如,x 10,y 20 執行上面的語句後螢幕上顯示10,20 然後換行 n為回車 輸出x 幾,y 幾並換行,d表示x,y的值為整數,n為換行符 這個是c語言裡面繼承過來的標準輸出函式,具體看參考資料 將x,y的值以整型輸出 這代表什麼意思啊。每部分都什麼意思啊 謝謝 你這...
有誰知道這個落款的意思和出處,有誰知道這個落款的意思和出處?
清朝內廷有專職的畫師,甚至包括一些西方來的傳教士。這個畫坊應該是民間的。能不能說說這個裴氏畫坊的所在區域?某某氏書坊,就看清3個字!對於書畫俺不懂 這個落款是什麼意思?落款是在書畫上的,所以這不叫落款叫底章,一般在陶瓷器皿底部,你 上的底章是漢印,佈局方正平直,文字的點畫簡略 明快 熱烈,右上為樂字...
誰知道這幅油畫的名字和作者,有誰知道這幅油畫的名字,出自哪個作者?
作者 nikolai kornilovich bodarevsky名字 ukrainian girl tending geese 補充 關於作者,我查詢到三個名字,1.nikolai kornilovich bodarevsky 2.nikolai kornilievich bodarevsky 3...