用51微控制器組合語言,寫乙個60s倒計時的程式

2021-07-09 14:58:48 字數 2083 閱讀 7717

題目。寫出乙個60s倒計時的組合語言,不要用c語言寫,用組合語言。

再設定乙個按鍵,按一下,停止倒計時,再按一下,恢復倒計時。

;---------------------------------------

;假設系統晶振為 12mhz

;顯示電路可見:

;按鍵連線在p3.2

;---------------------------------------

org  0000h

ljmp main

org  0003h

ljmp x0_int

org  000bh

ljmp t0_int

;---------------------------------------

org  0100h

main:                            ;初始化

mov  tmod, #01h

mov  tl0, #(65536 - 50000) mod 256

mov  th0, #(55536 - 50000) / 256

setb tr0

setb et0

setb ex0

setb ea

mov  dptr, #tab          ;表首址送dptr

mov  r1, #0

mov  r2, #0

mov  r3, #20

;---------------------------------------

m_loop:

call dis

sjmp m_loop

;---------------------------------------

t0_int:

mov  tl0, #(65536 - 50000) mod 256

mov  th0, #(55536 - 50000) / 256

djnz r3, t0_e

mov  r3, #20

dec  r1

cjne r1, #255, t0_e

mov  r1, #9

dec  r2

cjne r2, #255, t0_e

mov  r2, #5

t0_e:

reti

;---------------------------------------

x0_int:

call dis

jnb  p3.2, x0_int

cpl  tr0

reti

;---------------------------------------

dis:                             ;顯示程式.

mov  a,  r2              ;顯示十位.

movc a,  @a+dptr

clr  p2.1

mov  p1, a

setb p2.0                ;十位的位選.

call dly

mov  a,  r1              ;個位顯示.

movc a,  @a+dptr

clr  p2.0                ;關閉十位的顯示.

mov  p1, a

setb p2.1                ;個位的位選.

call dly

ret;------------------------------

tab:    db  0xc0,0xf9,0xa4,0xb0,0x99  ;共陽極段碼 0~4

db  0x92,0x82,0xf8,0x80,0x90  ;共陽極段碼 5~9

;---------------------------------------

dly:    mov  r6, #20            ;10ms延時.

d1:     mov  r7, #248

djnz r7, $

djnz r6, d1

ret;---------------------------------------

end原題**:

tiri微控制器 51微控制器 微控制器組合語言學習

mcs 51微控制器的特殊功能暫存器 符號位址 功能介紹 bf0h b暫存器 acce0h 累加器psw d0h程式狀態字 th2 cdh定時器 計數器2 高8位 tl2 cch定時器 計數器2 低8位 rcap2h cbh外部輸入 p1.1 計數器 自動再裝入模式時初值暫存器高八位 rcap2l ...

組合語言 微控制器基礎

以老師上課講的例題為例,進行程式分析。前兩步為跳過中斷區,一般程式都直接加上 org 0000h ljmp main org 1000h 定義源位址為1000h main mov a,30h 將 立即數30h 賦給 累加器a movc a,a pc 將 累加器a 下一條命令後程式計數器的值 對應位址...

微控制器彙編程式設計300例 微控制器基礎組合語言程式設計例項

微控制器組合語言程式設計 1 編寫程式,用位處理指令實現 p1.4 p1.0 p1.1 p1.2 p1.3 的邏輯功能。mov c,p1.1 anl c,p1.2 orl c,p1.0 orl c,p1.3 mov p1.3,c 2 編寫程式,若累加器a的內容分別滿足下列條件,則程式轉到lable儲...