題目。寫出乙個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儲...