1樓:匿名使用者
題目寫清楚些,到底是用定時計數器來實現數值變化,還是用按鍵來實現。
2樓:匿名使用者
沒有呼叫子程式 ,你用了乙個ret
org 0000h
mov tmod,#06h
mov th0,#0
mov tl0,#0
mov r7,#15
setb tr0
mov dptr,#table
s1:mov a,tl0
movc a,@a+dptr
mov p1,a
mov a,tl0
cjne a,#16,s1
mov tl0,#0
ajmp s1
table:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0c0h,0f9h,0a4h,0b0h,99h,92hend
3樓:
這是全部的程式?
你是用什麼鍵盤?
鍵盤的功能,程式貌似沒操作啊!這程式跟鍵盤貌似沒關係!
4樓:做而論道
可以簡化一下:
;--------------------------org 0000h
mov dptr, #table
mov tmod, #05h
setb tr0
s0: mov tl0, #0
s1: mov a, tl0
cjne a, #16, s2
sjmp s0
s2: movc a, @a + dptrmov p1, a
sjmp s1
;--------------------------table: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0c0h,0f9h,0a4h,0b0h,99h,92h
;--------------------------end
******************************==下面的更簡單:
;--------------------------org 0000h
mov dptr, #table
mov tmod, #05h
mov tl0, #0
setb tr0
s1: mov a, tl0
anl a, #15
movc a, @a + dptr
mov p1, a
sjmp s1
;--------------------------table: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0c0h,0f9h,0a4h,0b0h,99h,92h
;--------------------------end
5樓:匿名使用者
什麼意思? 前十五次都好使??? 你有顯示程式沒? 把程式都發出來。
早說啟動定時器還有ea, et0呢? 我看這個程式是不行~~~
用組合語言寫一程式,利用定時計數器,定時一秒,乙個數碼管秒個位加1,同時有八個led燈在迴圈流動。
6樓:匿名使用者
org 0000h
ljmp begin
org 000bh
ljmp t0isr
org 0030h
begin:
mov sp,#5fh
mov tmod,#01h
mov th0,#3ch
mov tl0,#0b0h
mov a,#0
mov dptr,#table
movc a,@a+dptr
mov p1,a
setb tr0
setb et0
setb ea
mov r2,#0
mov r4,#0
mov r7,#0
sjmp $
t0isr:
clr tr0
mov th0,#3ch
mov tl0,#0b0h
setb tr0
inc r7
cjne r7,#10,t01
t01:
jc t0e
mov r7,#0
inc r2
inc r4
cjne r2,#10,t02
t02:
jc lp
mov r2,#0
lp:mov a,r2
mov dptr,#table
movc a,@a+dptr ;找到相應位顯示**mov p1,a
cjne r4,#9,t03
t03:
jc leddis
mov r4,#1
leddis:
mov a,#0ffh
clr c
push 04h
leddis1:
rlc a
djnz r4,leddis1
mov p0,a
pop 04h
t0e:
reti
table: ; 共陰極數碼管顯示**表db 3fh,06h,5bh,4fh,66h ;01234db 6dh,7dh,07h,7fh,6fh ;56789end
組合語言程式設計,乙個按鍵,乙個2位數碼管,實現按鍵計數顯示在數碼管上。 10
7樓:匿名使用者
;假設硬體定義如下
key equ p1.0 ;0=鍵按下
dat equ p0 ;數碼管顯示資料口
dat_s1 equ p1.1 ;個位0=選中
dat_s2 equ p1.2 ;十位0=選中
val equ 30h ;計數值
keyval equ 31h ;按鍵狀態
org 0000h
sjmp sta
org 000bh
sjmp t0_isr
org 0030h
sta:
clr ea
mov tmod,#01h
mov th0,#0ech
mov tl0,#78h ;5ms
setb et0
setb tr0
mov keyval,#0 ;無鍵按下
mov val,#0
clr 00h ;1=鍵按下未抬起
lcall display
sjmp $
t0_isr:
clr tr0
mov th0,#0ech
mov tl0,#78h ;5ms
setb tr0
jb key,t0_e ;無鍵按下轉t0_e
inc keyval
mov a,keyval
cjne a,#3,t0_1 連續三次檢測到按鍵,則按鍵有效
t0_1:
jc t0_re ;
setb 00h
jnb t0_re ;判斷按鍵是否抬起
t0_2:
clr 00h
inc val
sjmp t0_re
t0_e:
jb 00h,t0_2 ;有效鍵抬起
mov keyval,#0
t0_re:
lcall display ;顯示
reti
;------------------------------------------
display:
mov a,val
lcall h2bcd
mov a,r2
anl a,#0fh
clr dat_s1
setb dat_s2
mov dat,a
mov a,r2
swap a
anl a,#0fh
clr dat_s2
setb dat_s1
mov dat,a
ret;------------------------------------------
;hex->bcd
;in:a=0~ffh
;out:r3r2=百十個位
;------------------------------------------
h2bcd:
mov b,#100
div ab
mov r3,a
mov a,#10
xch a,b
div ab
swap a
add a,b
mov r2,a
ret;------------------------------------------
ledtab:
db 0c0h ;0
db 0f9h ;1
db 0a4h ;2
db 0b0h ;3
db 099h ;4
db 092h ;5
db 082h ;6
db 0f8h ;7
db 080h ;8
db 090h ;9
db 088h ;a
db 083h ;b
db 0c6h ;c
db 0a1h ;d
db 086h ;e
db 08eh ;f
db 000h ;' '
;------------------------------------------end
微控制器 用組合語言編寫程式,要求如下: 1、採用定時器的中斷方式實現0.1s的定時; 2、數碼管4 50
8樓:匿名使用者
**上寫個程式都至少幾百塊的,你還是找你身邊會的幫你吧
9樓:
討論下可以,一點都不會就不合適了
組合語言實現鍵盤輸入兩個數並向加
data segment max equ 20 num1 db max max dup 0 num2 db max max dup 0 input db 0ah 0dh please input a number sum db 0ah 0dh max dup 0 data ends stack se...
關於組合語言問題入棧出棧什麼用,組合語言中入棧出棧問題
組合語言中堆疊的操作有專門的語句指令。入棧指令是 push 出棧指令是 pop 比如 mov a,30h 將乙個壓縮bcd碼送累加器apush acc 壓棧保護 anl a,0fh 保留低四位 mov 30h,a 回送給30h pop acc 出棧 swap a 高低四位互換 anl a,0fh 保...
用組合語言編寫程式的時候執行出現out of memory是什麼回事
記憶體溢位 請用edit開啟那個檔案,看是否其中有非ascii的字元 分號後的除外 很多時候是將分號寫成了中文下的分號了,改成英文下的分號就可以了,再看看程式。一般是你的程式越界或者溢位了 組合語言編譯提示out of memory 記憶體溢位 data segment data1 db 98,80...