微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 用单片机计数脉冲的个数-数码管显示汇编程序

用单片机计数脉冲的个数-数码管显示汇编程序

时间:12-02 来源:互联网 点击:
位数码管用2个573接到p0口,位选p2 段选P0口:点这里 采用定时器来记录脉冲 并用数码管输出

以下是源代码:

;******** 用数码管来计数脉冲的个数 **********************************
ORG 0000H
JMP MAIN
ORG 000BH
JMP TT0
ORG 001BH
JMP TT1
MOV 23H,#00H
MOV 22H,#00H
MOV 21H,#00H
MOV 24H,#10
CALL IIP
CALL IIP
CALL IIP
MOV SP,70H
;=====主程序区====================================
MAIN: MOV TMOD,#01100010B
MOV TH1,#255
MOV TL1,#255
MOV IE,#10001010B
MOV TH0,#00H
MOV TL0,#00H
SETB TR0
SETB TR1

JMP $
;======分解计数程序===================================

TT1:CALL IIP
INC 20H
MOV A,20H
MOV B,#100
div AB
MOV 21H,A
MOV A,B
MOV B,#10
div AB
MOV 22H,A
MOV 23H,B

RETI
;======数码管显示程序区====================================
IIP: MOV A,23H
CALL TABLE
MOV P0,A
SETB P2.0
NOP
NOP
NOP
NOP
CLR P2.0
MOV P0,#10111111b
SETB P2.1
NOP
NOP
NOP
CLR P2.1
CALL T10MS
;==================================================
MOV A,22H
CALL TABLE
MOV P0,A
SETB P2.0
NOP
NOP
NOP
NOP
CLR P2.0
MOV P0,#11011111B
SETB P2.1
NOP
NOP
NOP
CLR P2.1
CALL T10MS
;===================================================
MOV A,21H
CALL T10MS
CALL TABLE
MOV P0,A
SETB P2.0
NOP
NOP
NOP
NOP
CLR P2.0
MOV P0,#11101111B
SETB P2.1
NOP
NOP
NOP
CLR P2.1
CALL T10MS
RET
;=====定时0程序区======================================
TT0: DJNZ 24H,LOOP_9
CPL P1.0
CPL P1.1
CPL P1.2
CPL P1.3
CPL P1.4
CPL P1.5
CPL P1.6
CPL P1.7
LOOP_9:RETI
;=======延时子程序区====================================
T10MS: MOV 25H,#10
LOOP_3: MOV 26H,#40
LOOP_2: MOV 27H,#10
LOOP_1: NOP
DJNZ 27H,LOOP_1
DJNZ 26H,LOOP_2
DJNZ 25H,LOOP_3
RET
;=======调用码表程序区====================================
TABLE:INC A
MOVC A,@A+PC
RET
DB 3FH,06H,05BH,04FH,066H,06DH,07DH,07H,07FH,06FH,

;======================================================
END

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top