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的上拉電...