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樓:匿名使用者
靜態顯示或者動態顯示,看看書本就知道了
STC89C51微控制器復位,51微控制器復位後各暫存器狀態是怎樣的
該微控制器正常工作時復位端電壓應保持低電平狀態,復位時給復位端加上一個短暫的高電平即可使微控制器程式復位。該復位電路的工作原理是,電源通過電解電容再通過電阻串聯到地,電容兩段並聯一按鍵開關,正常工作時電容隔斷電源電壓,微控制器復位端相當於通過電阻接地。因電路中無電流,所以復位端電壓為0伏。當執行過程...
STC89C51微控制器怎麼使用內部AD轉換
你家的stc89c51微控制器有內部adc?stc系列的微控制器如果內部有adc,在型號後面都跟有 ad 字樣!stc官網裡的pdf文件裡面都有程式設計例子,ad轉換的例子拿來改改就能使用。 stc官網上有例子的,大概有以下幾個過程 adc contr adc contr 0x80 10000000...
89c51微控制器的ad轉換的作用
哎喲帶你看娛樂 將離散的數字訊號轉換為連續變化的模擬訊號。d a轉換器為計算機或其它數字系統與模擬量控制物件之間聯絡的橋樑,它的任務是將離散的數字訊號轉換為連續變化的模擬訊號。在工業控制領域中,d a轉換器是不可缺少的重要組成部分。由於輸出埠為輸出口,所以在資料埠的設計時要遵守輸出要鎖存的設計原則,...