跪求哪個高手給個stc89c51微控制器的溫度能在數碼管上顯示,然後數碼管顯示20度就會報警的程式

時間 2021-09-01 18:43:15

1樓:

tmplequ29h

tmphequ28h

flag1equ38h

datainbitp3.7

org00h

ljmpmain1

org03h

ljmpzint0

org13h

ljmpzint1

org30h

main1:setbit0

setbea

setbex0

setbit1

setbex1

setbp3.6

setbp3.2

mov74h,#0

mov75h,#0

mov76h,#9

mov77h,#0

main:lcallget_temper

lcallcvttmp

lcalldisp1

ajmpmain

init_1820:setbdatain

nopclrdatain

movr1,#3

tsr1:movr0,#107

djnzr0,$

djnzr1,tsr1

setbdatain

nopnop

nopmovr0,#25h

tsr2:jnbdatain,tsr3

djnzr0,tsr2

clrflag1

sjmptsr7

tsr3:setbflag1

clrp1.7

movr0,#117

tsr6:djnzr0,$

tsr7:setbdatain

retget_temper:setbdatainlcallinit_1820

jbflag1,tss2

nopret

tss2:mova,#0cch

lcallwrite_1820

mova,#44h

lcallwrite_1820

acalldisp1

lcallinit_1820

mova,#0cch

lcallwrite_1820

mova,#0beh

lcallwrite_1820

lcallread_1820

retwrite_1820:movr2,#8clrc

wr1:clrdatain

movr3,#6

djnzr3,$

rrca

movdatain,c

movr3,#23

djnzr3,$

setbdatain

nopdjnzr2,wr1

setbdatain

retread_1820:movr4,#2movr1,#29h

re00:movr2,#8

re01:clrc

setbdatain

nopnop

clrdatain

nopnop

nopsetbdatain

movr3,#9

re10:djnzr3,re10

movc,datain

movr3,#23

re20:djnzr3,re20

rrca

djnzr2,re01

mov@r1,a

decr1

djnzr4,re00

retcvttmp:mova,tmph

anla,#80h

jztmpc1

clrc

mova,tmpl

cpla

adda,#1

movtmpl,a

mova,tmph

cpla

addca,#0

movtmph,a

mov73h,#0bh

sjmptmpc11

tmpc1:mov73h,#0ah

tmpc11:mova,tmpl

anla,#0fh

movdptr,#tmptab

movca,@a+dptr

mov70h,a

mova,tmpl

anla,#0f0h

swapa

movtmpl,a

mova,tmph

anla,#0fh

swapa

orla,tmpl

h2bcd:movb,#100

divab

jzb2bcd1

mov73h,a

b2bcd1:mova,#10

xcha,b

divab

mov72h,a

mov71h,b

tmpc12:nop

disbcd:mova,73h

anla,#0fh

cjnea,#1,disbcd0

sjmpdisbcd1

disbcd0:mova,72h

anla,#0fh

jnzdisbcd1

mova,73h

mov72h,a

mov73h,#0ah

disbcd1:ret

tmptab:db0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9

disp1:movr1,#70h

movr0,#74h

movr5,#0feh

play:movp1,#0ffh

mova,r5

movp2,a

mova,@r1

movdptr,#tab

movca,@a+dptr

movp1,a

mova,@r0

movca,@a+dptr

movp0,a

mova,r5

jbacc.1,loop1

clrp1.7

clrp0.7

loop1:lcalldl1ms

incr1

incr0

mova,r5

jnbacc.3,endout

rlamovr5,a

mova,73h

cjnea,#1,dd2

sjmpledh

dd2:mova,72h

cjnea,#0ah,dd3

mov72h,#0

dd3:mova,76h

cjnea,72h,ddh

sjmpddl

ddh:jncplay1

sjmpledh

ddl:mova,75h

cjnea,71h,ddl1

sjmpledh

ddl1:jncplay1

ledh:clrp3.6

sjmpplay

play1:setbp3.6

sjmpplay

endout:movp1,#0ffh

movp2,#0ffh

rettab:db0c0h,0f9h,0a4h,0b0h,99hdb92h,82h,0f8h,80h,90h,0ffh,0bfhdl1ms:movr6,#5

dl1:movr7,#100

djnzr7,$

djnzr6,dl1

retzint0:pushacc

inc75h

mova,75h

cjnea,#10,zint01

mov75h,#0

zint01:popacc

reti

zint1:pushacc

inc76h

mova,76h

cjnea,#10,zint11

mov76h,#0

zint11:popacc

reti

zzz1:movdptr,#tab

movca,@a+dptr

movp0,a

reti

end報警值自己可以調節

2樓:走在時間的前頭

就是一個溫度報警器吧,是使用c語言還是組合語言呢?我用c語言做過類似的設計,如果需要,可以互相交流一下哈,或者你可以用lcd1602試試看。

3樓:微控制器技術宅

貼出你的電路,不然給你程式也不可能有得了。硬體電路不一樣

4樓:龍吟星本尊

有償代做!需要的聯絡!

5樓:職業背黑鍋

stc89c51片內有測溫模組?

stc89c51微控制器上的數碼管怎麼消隱?

6樓:匿名使用者

微控制器 數碼管 掃描顯示

用少量的 io 口完成多位數碼管掃描顯示,一般在程式中需要加入顯示消隱,即在 先關閉 數碼管 再寫入段碼 接著寫入 位選碼,電路** 傳不上

#include

#define uchar unsigned char#define uint unsigned intsbit led0 = p3^2;

sbit led1 = p3^3;

sbit led2 = p3^4;

sbit led3 = p3^5;

void main(void)

}void timer0(void) interrupt 1 // t0 中斷 1 ( int0 中斷 0 )

if(a==2)

if(a==3)

if(a==4)}

7樓:影蝶幽話

在每次送完段選資料後,在送入位選資料之前,需要加上一句“p0=0xff;”,這條語句就是“消影”。

寫個片段:

dula=1;

p0=table[1];

dula=0;

p0=0xff;//送位選資料前關閉所有顯示wela=1;

p0=0xfe;

wela=0;

delayms(10);

(對共陽極數碼管)

8樓:匿名使用者

你可以用晶片74hc245,還有一些有消隱引腳的數字晶片,可以上網查查

9樓:匿名使用者

可以清資料,也可以清位選,你看差辦

stc 89c51微控制器數碼管 顯示

10樓:文

這種 不管網上還是 課本上都多的是啊

11樓:匿名使用者

靜態顯示或者動態顯示,看看書本就知道了

AT89C51的微控制器,晶振是11 0592MHZ的,算延時,要有計算步驟,謝謝

9 void delay 50us uint t 50us延遲函式 10 c 0x0d45 d3 setb c 1 c 0x0d46 ef mov a,r7 1 c 0x0d47 9400 subb a,0x00 2 c 0x0d49 ee mov a,r6 1 c 0x0d4a 9400 subb...

用AT89C51微控制器的P2口控制Led的流水燈的C程式看不懂

緱淑蘭印醜 include void delay1ms unsigned intcount 延時函式,延遲時間為count 1ms 由佑平仇鸞 1000 0000右移ledindex位,延遲時間為count 1ms j 點亮一個led 把leddirection取反 延時函式 regx52 ledi...

要求用AT89C51微控制器的P1口點亮發光二極體分為兩組

真的是很簡單的,用點心學幾天就可以寫,看到沒人回,幫忙 12m include void timer0 init void main void timer0 isovf interrupt 1 程式如下 絕對沒有錯 led燈的一端接p1口的各各引腳,另一端接地。同時在p1口的每個管腳上加1k的上拉電...