彙編程式按鈕max

2022-05-16 13:35:11 字數 3210 閱讀 8911

1樓:匿名使用者

max7219不太好用,特別不穩定。不如用兩個4094.也是序列通訊。

加減計數簡單多了,二位數十進位制連續加減調整位閃爍彙編程式,

以前寫的,肯定有好多漏洞或錯誤。請自己分析,希望對你有所幫助。

org 0000h

ajmp start

org 000bh ;定時器0的中斷向量地址

ajmp time0 ;跳轉到真正的定時器程式處

org 30h

start: mov tmod,#00000001b ;定時/計數器0工作於方式1

mov th0,#15h

mov tl0,#0a0h ;即數5536

setb ea ;開總中斷允許

setb et0 ;開定時/計數器0允許

setb tr0

setb p0.0

clr p0.1

clr p2.7

mov r3,#c0h

mov r4,#c0h

ajmp bh1

bh10: lcall ajys

jb p2.4,bh1

cpl p2.7

bh11: jnb p2.4,bh11

lcall ajys

jnb p2.4,bh11

ajmp bh1

jiaks: mov r1,#0

mov r3,#c0h

mov p1,r3

ajmp bh1

jianks: mov r1,#9

mov r3,#90h

mov p1,r3

bh1: jnb p2.4,bh10

jnb p2.2,jia

jnb p2.3,jian

jnb p2.5,bcsj ;bcsj意思是儲存資料

jnb p2.7,bh1

ajmp bh2

;*************************===

jia: lcall ajys ;加

jb p2.2,bh1

inc r1

cjne r1,#10,d1

ajmp jiaks

d1: mov a,r1

mov dptr,#table

movc a,@a+dptr

cpl a

mov r3,a

mov p1,a

lcall ajys

ajmp bh1

;*************************===

jian: lcall ajys ;減

jb p2.3,bh1

dec r1

cjne r1,#ffh,d2

ajmp jianks

d2: mov a,r1

mov dptr,#table

movc a,@a+dptr

cpl a

mov r3,a

mov p1,a

lcall ajys

ajmp bh1

;*************************===

jiaks2: mov r2,#0

mov r4,#c0h

mov p1,r4

ajmp bh2

jianks2: mov r2,#9

mov r4,#90h

mov p1,r4

bh2: jnb p2.4,bh10

jnb p2.2,jia2

jnb p2.3,jian2

jnb p2.5,bcsj

jnb p2.7,bh1

ajmp bh2

;*************************===

jia2: lcall ajys

jb p2.2,bh2

inc r2

cjne r2,#10,d3

ajmp jiaks2

d3: mov a,r2

mov dptr,#table

movc a,@a+dptr

cpl a

mov r4,a

mov p1,a

lcall ajys

l5: ajmp bh2

;*************************===

jian2: lcall ajys

jb p2.3,bh2

dec r2

cjne r2,#ffh,d4

ajmp jianks2

d4: mov a,r2

mov dptr,#table

movc a,@a+dptr

cpl a

mov r4,a

mov p1,a

lcall ajys

ajmp bh2

;*************************===

table: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh

ajys: mov r6,#255

l102: mov r5,#255

l92: djnz r5,l92

djnz r6,l102

rettime0: ;定時器0的中斷處理程式

push acc

push psw ;將psw和acc推入堆疊保護

cpl p0.0

cpl p0.1

jb p0.0,l8

jb p0.1,l9

l8: mov p1,r3

jnb p2.7,dsq1

ajmp dsq2

l9: mov p1,r4

jb p2.7,dsq1

ajmp dsq2

dsq1: mov th0,#eeh

mov tl0,#88h

ajmp sss

dsq2: mov th0,#77h

mov tl0,#88h ;重置定時常數

sss: pop psw

pop acc

reti

bcsj: mov 21h,r1

mov 22h,r2

ajmp bh1end

2樓:匿名使用者

網上查好久只看到測試程式什麼後面自己寫的問題肯定很多望高手賜教,感激不盡我用的是彙編,如果你是彙編,我還能幫你看看,可c語言就不行了,它們認識

求彙編程式

假設三個數放在記憶體的地址num處 num dw 100,30,78 用氣泡排序的方法 mov cx,3 外層迴圈次數 dec cx loop1 mov di,cx 儲存迴圈次數mov bx,0 內層迴圈的初始狀態,從頭開始loop2 mov ax,num bx cmp ax,num bx 2 同後...

下面這段彙編程式的含義是什麼

def dsp28x usdelay 定義以個名字是 dsp28x usdelay 的函式 sect ramfuncs 設定這個函式所存放的段 global dsp28x usdelay 表明此函式可以為外部函式等所呼叫 dsp28x usdelay 函式名,函式實體的開始 sub acc,1 計數...

高手幫看一下這個彙編程式

問題出在這一句上 next add word ptr bx 2應該是 next add bx,2 begin cmp word ptr bx n1jc next 小於800的跳過inc num繼續比較下一個數cmp word ptr bx n2 jnc next 這裡修改jna為jnc不低於 即大於...