1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉
標題:
單片機數碼管靜態顯示0到9匯編程序
[打印本頁]
作者:
daniu
時間:
2014-12-27 18:29
標題:
單片機數碼管靜態顯示0到9匯編程序
;============================================================
;程序編寫人:蘭建
;編寫地點:51hei培訓機構
;時間:5月23日下午 星期六
;功能:本程序實現P0口的對數碼管靜態顯示0到9;
; 分時顯示0到5;動態顯示0到9,低電平亮
; P2口實現對數碼管的片選功能
;==========================開始初始化============================
SHUCHU EQU P0 ;定義P0口為輸出口
PIANXUAN EQU P2 ;定義P2口為片選口
CISHU EQU 10 ;0-9,共10個數字
CISHU1 EQU 6 ;定義片選個數
SHUZI EQU 30H ;定義處理數據存放地址
ORG 00H ;程序開始
LJMP MAIN ;跳到MAIN
ORG 30H ;入口地址
;=========================主程序================================
MAIN:CLR A ;數碼管顯示初始化
CALL JINGTAI ;靜態顯示0-9
CLR A ;數碼管顯示初始化
CALL DONGTAI1 ;分時顯示123456
CLR A ;數碼管顯示初始化
CALL DONGTAI2 ;動態顯示0-9
CLR A ;數碼管顯示初始化
JMP MAIN ;返回MAIN
;=====================靜態顯示0-9子程序==========================
;輸入:"30H"
;輸出:"P0"
;實現的功能:把A的數輸出到P0口顯示
;================================================================
JINGTAI:MOV SHUZI,#00 ;輸出數據初始化
MOV PIANXUAN,#00H ;設置片選
MOV R0,#CISHU ;把查表次數放R0
MOV DPTR,#TAB ;查表初始化
L1:CALL CHABIAO ;查表
CALL DISPLAY ;顯示
MOV R1,#200
L1_0:CALL DELAY ;延時
DJNZ R1,L1_0
CALL CHULI ;處理
DJNZ R0,L1 ;若R0減一不為0,進行下一個數字顯示
RET
;=====================分時顯示123456子程序======================
;輸入:"30H"
;輸出:"P0"
;實現的功能:把A的數輸出到P0口顯示
;===============================================================
DONGTAI1:MOV SHUZI,#00 ;輸出數據初始化
MOV R1,0 ;設置片選
MOV PIANXUAN,R1
MOV R0,#CISHU1 ;把查表次數放R0
MOV DPTR,#TAB ;查表初始化
L2:CALL CHABIAO ;查表
CALL DISPLAY ;顯示
MOV R2,#100
L2_0:CALL DELAY ;延時
DJNZ R2,L2_0
CALL CHULI ;處理
CALL PIANXUANCHULI ;片選處理
DJNZ R0,L2 ;若R0減一不為0,進行下一個數字顯示
RET
;======================動態顯示0-9子程序=========================
;輸入:"30H"
;輸出:"P0"
;實現的功能:把A的數輸出到P0口顯示
;================================================================
DONGTAI2:MOV SHUZI,#00 ;輸出數據初始化
MOV DPTR,#TAB ;查表初始化
MOV R3,#CISHU ;把現實數字的次數放在R3
L3_1:MOV R1,#00H ;設置片選
MOV PIANXUAN,R1 ;片選
CALL CHABIAO ;查表
MOV R2,#50
DD:MOV R0,#CISHU1 ;把查表次數放R0
L3:CALL DISPLAY ;顯示
CALL PIANXUANCHULI ;片選處理
CALL DELAY ;延時
DJNZ R0,L3 ;若R0減一不為0,跳轉到L1
DJNZ R2,DD ;各數子之間顯示設置一定的時間間隔
CALL CHULI ;處理
DJNZ R3,L3_1 ;若R3不為0,顯示下一個數字
RET
;========================處理子程序==============================
;輸入:無
;輸出:無
;實現的功能:把30H地址加1
;================================================================
CHULI:MOV A,SHUZI
INC A
MOV SHUZI,A
RET
;=======================查表子程序===============================
;輸入:"DPTR"
;輸出:"A"
;實現的功能:把A的數輸出到P0口顯示
;================================================================
CHABIAO:MOVC A,@A+DPTR
RET
;====================片選處理子程序==============================
;輸入:無
;輸出:無
;實現的功能:把片選數據加1
;================================================================
PIANXUANCHULI:INC R1
MOV PIANXUAN,R1
RET
;======================顯示子程序================================
;輸入:"A"
;輸出:"P0口"
;實現的功能:把A的數輸出到P0口顯示
;================================================================
DISPLAY:MOV SHUCHU,A
RET
;======================延時程序==================================
;輸入;無
;輸出: 無
;實現的功能:延時一段時間
;================================================================
DELAY:MOV R7,#02H
L6:MOV R6,#002H
L7:MOV R5,#0F8H
L8:DJNZ R5,L8
DJNZ R6,L7
DJNZ R7,L6
RET
;======================共陽查表數據==============================
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
復制代碼
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1