?? li.txt
字號(hào):
;第10 題 :
; 姓名 :李忠意
; 學(xué)號(hào) : 021701028
; 班級(jí) :測(cè)控一班
; 假使 使用的是8051 芯片,用8255做I/O口的聯(lián)接
; 并假設(shè)8255的PA口 ,PB 口 , pc 口 , 控制口的地址為:
; #3F00H ,#3F01H, #3F02H ,#3F03H
;R0 ,R1,R2 ,R3,的用處用來分別表4位LED的計(jì)數(shù)
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP Timer_0 ;用以跟新數(shù)據(jù)
ORG 0013H
AJMP Timer_1 ;用以刷新數(shù)據(jù)
MAIN:
SETB TR0 ; 啟動(dòng)T0計(jì)數(shù)
SETB TR1 ; 啟動(dòng)T1計(jì)數(shù)
SETB ET0 ; 允許T0中斷
SETB ET1 ; 允許T1中斷
SETB EA ; CPU 開中斷
MOV TMOD , #01H ; 送2ms時(shí)間常數(shù)
MOV TL1 , #04H ;
MOV TH1 , #0FH ;
MOV TL0 , #0E8H ; 送計(jì)數(shù)1000
MOV TH0 , #03H ;
MOV A ,# 80H
MOV DPTR , #CWR
MOVX @DPTR , A ;送方式控制字
MOV R0 ,#00H ;寄存器清零
MOV R1, #00H
MOV R3 ,#00H
MOV R3 ,#00H
MOV R4 ,#00H
AJMP $ ; 等待
; Timer_0 中斷子程序
Timer_0:
LCALL DELAY ; 調(diào)用延時(shí)
INC R0 ;讓R0加一代表數(shù)據(jù)加了1
CLR C ;
MOV A ,R0
SUBB A , #0AH ;
JZ L2 ; A 為0 就轉(zhuǎn)移
RETI ; 中斷返回
L2: INC R1
MOV R0 , #00H ;R0清零
CLR C
MOV A ,R1
SUBB A , #0AH ;
JZ L3 ; A 為0 就轉(zhuǎn)移 否則返回
RETI ; 中斷返回
L3:
INC R2
MOV R1 , #00H ; R1清零
CLR C
MOV A ,R2
SUBB A , #0AH
JZ L4 ; A 為0 就轉(zhuǎn)移 否則返
RETI ; 中斷返回
L4: INC R3
MOV R2 , #00H ; R2清零
CLR C
MOV A ,R3
SUBB A ,#0AH
JZ L5
RETI
L5:
MOV R3 ,#00H ;R3清零
RETI
;Timer_1的子程序
TIMER_1 :
INC R4 ; 用R4 表示要送數(shù)的位
MOV A ,R4
CLR C
SUBB A ,#01H
JZ PM1 ; A為零轉(zhuǎn)移
MOV A ,R4
SUBB A ,#02H
JZ PM2 ; A為零轉(zhuǎn)
MOV A ,R4
SUBB A ,#03H
JZ PM3 ; A為零轉(zhuǎn)移
PM4: MOV A ,BUFFER ; 數(shù)據(jù)口的首地址
ADD A ,R3
MOV DPTR ,#PORTB ;
MOVX @DPTR , A ;
MOV DPTR , #PORTA ;
MOV A ,#08H
MOVX @DPTR , A ;
PUSH A
MOV R4 , #00H ; R4清零
RETI ; 中斷返回
PM1:
MOV A ,BUFFER ; 數(shù)據(jù)口的首地址
ADD A ,R0
MOV DPTR ,#PORTB ;
MOVX @DPTR , A ;
MOV DPTR , #PORTA ;
MOV A ,#01H
MOVX @DPTR , A ;
RETI ;
PM2:
MOV A ,BUFFER ; 數(shù)據(jù)口的首地址
ADD A ,R1
MOV DPTR ,#PORTB ;
MOVX @DPTR , A ;
MOV DPTR , #PORTA ;
MOV A ,#02H
MOVX @DPTR , A ;
RETI
PM3:
MOV A ,BUFFER ; 數(shù)據(jù)口的首地址
ADD A ,R2
MOV DPTR ,#PORTB ;
MOVX @DPTR , A ;
MOV DPTR , #PORTA ;
MOV A ,#04H
MOVX @DPTR , A ;
RETI
;延時(shí)1MS
DELAY:
MOV R6 , #02H ;
DL: MOV R7 , #0FFH
DL7: DJNZ R7 , DL7 ;
DJNZ R6 , DL
RET
PORTA: DW 0F00H
PORTB: DW 0F01H
CWR : DW 0F03H ; 確定方是字 A口為輸出送7段碼,B 口為輸出送地址;
BUFFER:
DB 0EFH ; "滅"
DB 3FH ; 0
DB 06H ; 1
DB 5BH ; 2
DB 4FH ; 3
DB 66H ; 4
DB 6DH ; 5
DB 7DH ; 6
DB 07H ; 7
DB 7FH ; 8
DB 6FH ; 9
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -