适合年轻人的男鞋品牌:懂单片机程序的麻烦近来看下!

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 07:17:48
我需要以下实验程序的流程图,高手帮帮忙。
实验内容如下:

1.工作原理
用中断方式完成6位十进制数计数,计数范围为000000到999999,计数值存放于内部RAM的79到7E单元,并实时显示。
在6MHz晶振频率下,晶振周期为2us,这时8031内部定时最长为65535×2us≈0.13s。为了以 s(秒)为计时单位,以下程序引入软件计数器。首先在T0中置入计数初值3CB0H,当计数溢出时,可定时0.1s。软件计数器为内部RAM的30H单元,其计数初值为10(0AH),这样可定时10×0.1s=1s。

2.程序流程
实验程序由主程序,显示子程序,中断处理子程序组成。
主程序的流程为:
(1)堆栈,计数器,中断系统初始化;
(2)启动计数器;
(3)显示缓冲清零;
(4)调用显示子程序;
(5)转移到(4)
中断处理子程序流程图为:
(1)重置计数初值;
(2)PSW,ACC入栈;
(3)改变工作寄存器区;
(4)1s定时到?是,则转移到(7),否则继续;
(5)ACC,PSW出栈;
(6)中断返回;
(7)显示缓冲区的秒数值增1;
(8)转移到(5);

3.实验程序
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP PIT0
MAIN: MOV SP,#50H
MOV 30H,#0AH
MOV TMOD,#01H
MOV TL0,#0B0H
MOV TH0,#3CH
SETB TR0
SETB EA
SETB ET0
MOV R0,#79H
MOV R7,#06H
ML1: MOV @RO,#00H
INC R0
DJNZ R7,ML1
ML2: LCALL DISP
SJMP ML2
DISP: SETB PSW.4
MOV R0,#79H
MOV R2,#01H
MOV R3,#00H
MOV DPTR,#TBL
PP: MOV A,@R0
MOVC A,@A+DPTR
MOVX @R1,A
MOV A,R2
MOV R1,#21H
MOVX @R1,A
HERE: DJNZ R3,HERE
INC R0
CLR C
MOV A,R2
RLC A
MOV R2,A
CJNE A,#40H,PP
CLR PSW.4
RET
TBL: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
PITO: MOV TL0,#0B0H
MOV TH0,#3CH
PUSH PSW
PUSH ACC
SETB PSW.3
MOV R6,30H
DEC R6
MOV A,R6
JZ PIT01
MOV 30H,A
PIT02:POP ACC
POP PSW
RETI
PIT01:MOV 30H,#0AH
MOV R0,#7AH
ACALL SUB1
JNC PIT02
MOV R0,#7CH
ACALL SUB1
JNC PIT02
MOV R0,#7EH
ACALL SUB1
JNC PITC02
SUB1: MOV A,@R0
SWAP A
DEC RO
XCHD A,@R0
ADD A,#01H
DA A
XCHD A,@R0
RET
END

看不懂 我就学过一点点的汇编语言