標(biāo)題:
單片機數(shù)碼管0-99按鍵加減1匯編程序
[打印本頁]
作者:
daniu
時間:
2014-12-27 18:20
標(biāo)題:
單片機數(shù)碼管0-99按鍵加減1匯編程序
;============================================================
;程序編寫人:蘭建
;編寫地點:51hei培訓(xùn)機構(gòu)
;時間:5月23日下午 星期六
;功能:本程序?qū)崿F(xiàn)P0口的對2個數(shù)碼管顯示0到99,一個按鍵實現(xiàn)加1,
; 到99回到0;一個按鍵實現(xiàn)減1,減到0回到99,低電平亮
;P2口實現(xiàn)對數(shù)碼管的片選功能
;============================================================
;//////開始初始化////////////////////////
SHUCHU EQU P0 ;定義P0口為輸出口
PIANXUAN EQU P2 ;定義P2口為片選口
SHUZI EQU 30H ;設(shè)置處理數(shù)據(jù)存放地址
;========================程序開始===========================
ORG 00H ;程序開始
LJMP MAIN ;跳到MAIN
ORG 0030H ;入口地址
;========================主程序=============================
MAIN:
MOV SHUZI,#00
MOV DPTR,#TAB ;查表初始化
MOV P1,#0F3H ;設(shè)置P1.0、P1.1口為輸入
START:CALL JISUAN ;計算處理
CALL DISPLAY ;查表顯示
L1:JNB P1.0,L2 ;若P1.0=0,則跳到L2
JNB P1.1,L3 ;若P1.1=0,則跳到L3
LJMP START ;跳到MAIN
L2:CALL JIACHULI ;加1處理
L2_0:MOV R1,#255
L2_2:CALL JISUAN ;計算處理
CALL DISPLAY ;顯示
CALL DELAY ;延時
DJNZ R1,L2_2
L2_1:JNB P1.0,L2 ;若P1.1為0,則跳到L2
JNB P1.1,L3 ;若P1.1為0,則跳到L3
LJMP START ;循環(huán)
L3:CALL JIANCHULI ;減1處理
LJMP L2_0 ;返回顯示
;========================計算子程序=========================
;輸入:30H
;輸出:"A和B"
;實現(xiàn)的功能:把30H的數(shù)據(jù)的十位和個位分離出來
;============================================================
JISUAN:MOV A,SHUZI ;數(shù)據(jù)放在A中
MOV B,#10 ;除數(shù)放在B中
DIV AB ;商放在A中,余數(shù)放在B中
RET
;========================顯示子程序==========================
;輸入:"A"
;輸出:"P0口"
;實現(xiàn)的功能:把A的數(shù)輸出到P0口顯示,十位和個位分開顯示
;============================================================
DISPLAY:MOVC A,@A+DPTR
MOV SHUCHU,A ;顯示十位
MOV PIANXUAN,#00H ;片選
CALL DELAY
MOV A,B
MOVC A,@A+DPTR
MOV SHUCHU,A ;顯示個位
MOV PIANXUAN,#01H ;片選
CALL DELAY ;延時
RET
;========================處理子程序=========================
;輸入:無
;輸出:無
;實現(xiàn)的功能:把30H地址加1
;============================================================
JIACHULI:MOV A,SHUZI
CJNE A,#99,LL ;若A不等于9,則跳到LL
MOV A,#00
JMP L4
LL:INC A ;自加一
L4:MOV SHUZI,A
RET
;========================處理子程序==========================
;輸入:無
;輸出:無
;實現(xiàn)的功能:把30H地址減1
;============================================================
JIANCHULI:MOV A,SHUZI
CJNE A,#00,LLL ;若A不等于0,則跳到LLL
MOV A,#99
JMP L5
LLL:DEC A ;自減一
L5:MOV SHUZI,A
RET
;========================延時程序============================
;輸入;無
;輸出: 無
;實現(xiàn)的功能:延時一段時間
;============================================================
DELAY:
MOV R6,#09
L7:MOV R5,#25
L8:DJNZ R5,L8
DJNZ R6,L7
RET
;=====================共陽查表數(shù)據(jù)============================
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
;=======================程序結(jié)束==============================
END
復(fù)制代碼
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1