怎麼使用組合語言實現,利用定時器使數碼管的計數一次顯示不同的數字。這是我編寫的程式

2022-07-07 18:37:48 字數 5015 閱讀 6286

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...