基于89C51的数字音乐盒的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机系统
课程设计
成绩评定表
设计课题:基于89C51的数字音乐盒的设计
学院名称:电气工程学院
专业班级:自动1102
学生姓名:袁超杰
学号: 201123910302 指导教师:王黎
设计地点:31-630
设计时间:2013-12-16~2013-12-27
单片机系统
课程设计
课程设计名称:基于89C51的数字音乐盒的设计专业班级:自动1102
学生姓名:袁超杰
学号:201123910302 指导教师:王黎
课程设计地点:31-630
课程设计时间:2013-12-16~2013-12-27
单片机系统课程设计任务书
目录
1绪论 (1)
1.1数字音乐盒概述 (1)
1.2设计思想及基本功能 (1)
2总体方案设计 (2)
2.1方案设计 (2)
2.2 方案比较 (3)
2.3方案选取 (3)
3 硬件电路设计 (3)
3.1 直流稳压电源电路设计 (3)
3.2 单片机最小系统设计 (4)
3.3 蜂鸣器电路 (5)
3.4 键盘控制电路 (5)
4 系统软件设计 (6)
4.1 主程序软件设计 (6)
4.2 中断服务程序设计 (7)
5总结 (7)
参考文献: (9)
附录 (10)
附录一系统原理图 (10)
附录二系统调试 (11)
附录三程序代码 (12)
附录四机器码 (17)
1绪论
1.1数字音乐盒概述
数字音乐盒是现代电子科技与音乐结合的产物,是一种新型的播放乐器。
因为单片机具有强大的控制功能和灵活的编程实现特性,数字音乐盒已经溶入现代人们的生活中,成为不可替代的一部分。
本文的主要内容是用AT89S51单片机为核心控制元件,设计一个数字音乐盒。
该音乐盒主要由按键电路、单片机最小系统、以及蜂鸣器电路组成,使用3个按键控制音乐盒。
本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠等,具有一定的实用和参考价值。
1.2设计思想及基本功能
该系统具有一般音乐盒的最基本功能,即通过蜂鸣器播放音乐曲目,通过键盘电路控制歌曲的播放。
在选取设计方案和采取元器件方面,该系统本着简单实用经济的思想,尽量简化电路设计,用最简单的电路布线和选用最经济实用的器件来达到设计要求。
数字音乐盒控制系统具有以下几个基本功能:
(1)内置4首音乐歌曲,通过单片机的I/O口产生方波驱动蜂鸣器播放音乐。
(2)通过独立按键对歌曲实现暂停、上一曲、下一曲功能的控制。
(3)具备复位功能。
2总体方案设计
2.1方案设计
根据查阅的资料和现实生活中的应用,我认为用两种方案可实现数字音乐盒的功能:
方案(一):利用数字音乐芯片配合电源电路,放大电路实现音乐播放,其框图如图2-1所示。
图2.1 方案一的原理框图
方案(二):利用单片机系统制作数字音乐盒,配合按键,实现对音乐的播放控制,其原理框图如图2-2所示。
图2.2 方案二的原理框图
2.2 方案比较
这两种方案均可以实现数字音乐盒的音乐播放功能,但各有优劣。
方案(一)结构简单,可靠性高,由于音乐芯片产品化,价格也相对便宜,但芯片普遍容量太小、且功能单一。
方案(二)采用单片机作为控制核心,可实现功能的多样化,且容量也足够大,但价格相对昂贵,对外部环境条件的的要求也相对较高。
2.3方案选取
鉴于方案(一)功能过于简单,不能满足本设计的需求,且已无太大的研究价值,故本设计采用方案二。
3 硬件电路设计
硬件电路包括直流稳压电源电路、单片机最小系统、蜂鸣器电路、按键控制电路四大模块。
3.1 直流稳压电源电路设计
直流电源的稳定性和输出电源的质量影响单片机系统运行的稳定性,所以一个完整的可靠的电子设计需要可靠的电源供电。
除了用市面上的干电池供电外,还可以采用市电220v变压、整流、滤波、整流和稳压后获得稳定的直流电源。
本设计采用后者输出5v直流电压。
图3-1为采用三端集成稳压器7805构成的正5v直流电源。
Trans
图3.1直流电源原理图
3.2 单片机最小系统设计
单片机最小系统是使单片机工作满足的最低硬件系统要求、主要包括单片机、时钟电路、复位电路等,原理图如图3-2所示。
时钟电路:本系统采用单片机内部方式产生时钟信号,用于外接一个12MHz 石英晶体振荡器和2个30pF微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。
复位电路:确定单片机工作的起始状态,完成单片机的启动过程。
单片机系统的复位方式有上电自动复位和手动按键复位。
本设计采用手动按键复位,该复位方式同样具有上电自动复位功能。
图3.2 单片机最小系统原理图
3.3 蜂鸣器电路
蜂鸣器电路为本系统的输出即发声电路,由三极管驱动蜂鸣器发生,单片机P1.0引脚产生音频信号,原理图如图3-3所示。
图3.3 蜂鸣器电路原理图
3.4 键盘控制电路
本系统外接三个独立按键,用作对歌曲操作的控制,上一曲、下一曲接外部中断0和外部中断1输入端P3.2和P3.3,暂停/播放功能键接定时
/计数器1的外部输入端口P3.5,按键公共端接地,按下引入低电平,电路图如图3-4
图3.4键盘控制电路原理图
4 系统软件设计
本系统系统软件设计主要包括音乐播放主程序和中断控制程序两部分。
本章节系统的介绍了数字音乐盒的主程序和中断程序的设计流程,具体的程序代码见附录。
4.1 主程序软件设计
主程序构成无限循环,用于对歌曲节拍、字符信息的读取、分析计算,定时器的重装完成音频的发生。
主程序图流程说明:
开机先设定单片机数据表格中的四首歌曲的入口地址完成初始化,接着取出位于节拍音符表格的第一个数据完成对本歌曲拍数的设置,之后进入主循环,对之后的节拍音符数据取出分析,当得到休止符时即表示本歌曲演奏结束,进行下一曲的播放,若演奏到了第四首则演奏第一首。
不是休止符则分析取出的节拍音符,奏出音符,控制其持续时间。
之后扫描暂停标志位,判断是否执行暂停操作,如无便回到主循环,分析下一个节拍音符数据。
主程序流程图如图4-1所示。
图4.1 主程序流程图
4.2 中断服务程序设计
本系统共用到3个中断源,外部中断0、1用作上/下一曲的控制,边沿出发,为高优先级,T1用作计数器,计一次数便触发中断一次,也为高优先级,中断服务程序流程图如图4-2所示。
图 4.2 中断服务程序流程图
5总结
经过近两周的资料查找和程序设计,我完成了对数字音乐盒的设计。
该数字音乐盒能开机自动播放,实现上一曲、下一曲和暂停功能、通过复位电路使该系统具有复位功能。
本系统采用蜂鸣器作为执行元件,以89c51单片机为控制核心,以键盘为输入设备,满足数字音乐盒的基本要求。
在该系统设计完成后,我对该系统进行了仿真调试,运行结果基本令人满意,它能实现数字音乐盒的基本设计要求,播出曲目辨识度较好,按键反应较灵敏,系统稳定,具有一定的娱乐性和使用价值。
同时,由于设计的时间和能力有限,本设计还存在一定不合理之处,还具有提升空间。
比如按键控制因为没有加入去抖功能,按键操作控制不太准确,用一定概率产生误操作。
另外,蜂鸣器虽然结构简单但音乐的辨识率有限,在调试过程中出现走音、破音现象。
但是总体来说这次课程设计我还是收获颇丰,音乐盒的设计本身就是一个具有趣味性的项目,看到一个个代码变成动听的乐曲播放是一件很快乐的事情。
另外在系统设计过程中,我熟悉了单片机系统的知识,将课本空乏的定时、中断知识用到项目中完成实际功能,另外,原理图和流程图绘制让我熟悉了Altium Designer和visio软件的操作使用,大大提升了我的动手能力,为以后的设计打下基础。
参考文献:
[1] 张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:国防工业出版社,2004
[2]伟福LAB6000系列单片机仿真实验系统使用说明书
[3] 阎石.数字电路技术基础(第五版).北京:高等教育出版社,2006
[4]夏路易,石宗义。
电路原理图与电路板设计教程Protel 99se.北京:北京希望电子出版社,2002
[5]康华光。
模拟电路技术基础(第五版)。
北京:高等教育出版社,2005
附录
附录一系统原理图
Trans
附录二系统调试
附录三程序代码OUT BIT P1.0
N EQU 4
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP LAST_SONG
ORG 000BH
AJMP F_T0
ORG 0013H
AJMP NEXT_SONG
ORG 001BH
AJMP START_PAUSE ORG 0030H
MAIN: MOV SP,#60H
MOV DPTR,#TABLE
MOV R0,#30H
MOV R5,#00H
MOV R6,#0
SET_TAB: MOV A,R5
MOVC A,@A+DPTR
MOV @R0,A
INC R5
INC R0
MOV A,R5
MOVC A,@A+DPTR
MOV @R0,A
INC R5
INC R0
MOV A,R5
MOVC A,@A+DPTR
MOV @R0,A
INC R0
INC R5
MOV A,R5
MOVC A,@A+DPTR
MOV @R0,A
INC R0
INC R5
INC R6
CJNE R6,#N,SET_TAB START:MOV TMOD, #61H
MOV TH1,#0FFH
MOV TL1,#0FFH
SETB ET1
SETB ET0
CLR PT0
SETB PT1
SETB IT0
SETB PX0
SETB IT1
SETB PX1
SETB EX1
SETB EX0
SETB EA
SETB TR1
CLR OUT
CLR F0
MOV R7,#00H START0:MOV R4,#00H
MOV R0,#30H
MOV A,R7
ADD A,R0
MOV R0,A
MOV DPH,@R0
INC R0
MOV DPL,@R0
INC R0
MOV A,R4
INC R4
MOVC A,@A+DPTR
MOV 26H,A NEXT: MOV R0,#30H
MOV A,R7
ADD A,R0
MOV R0,A
MOV DPH,@R0
INC R0
MOV DPL,@R0
INC R0
MOV A,R4
INC R4
MOVC A,@A+DPTR
JZ END0
MOV R1,A
ANL A,#0FH
MOV R2,A
MOV A,R1
SWAP A
ANL A,#0FH
JNZ SING
CLR TR0
SJMP SING1
SING: DEC A
MOV R3,A
RL A
MOV DPH,@R0
INC R0
MOV DPL,@R0
INC R0
MOVC A,@A+DPTR
MOV 21H,A
MOV TH0,A
MOV A,R3
RL A
INC A
MOVC A,@A+DPTR
MOV 20H,A
MOV TL0,A
SETB TR0
SING1:LCALL DELAY
JB F0,FOR
AJMP NEXT
FOR: CLR TR0
JB F0,$
AJMP NEXT
END0: CLR TR0
MOV A,22H
CJNE A,#N,XIAQU
LJMP STAR T XIAQU:MOV A,R7
ADD A,#4
MOV R7,A
INC 22H
AJMP START0
F_T0: MOV TH0,21H
MOV TL0,20H
CPL OUT
RETI
NEXT_SONG: PUSH ACC
PUSH DPH
PUSH DPL
CLR EA
MOV A,22H
CJNE A,#N,Q
MOV R7,#00H
MOV 22H,#01
AJMP R
Q: INC 22H
MOV A,R7
ADD A,#4
MOV R7,A
R: MOV B,R0
MOV R4,#00H
MOV R0,#30H
MOV A,R7
ADD A,R0
MOV R0,A
MOV DPH,@R0
INC R0
MOV DPL,@R0
INC R0
MOV A,R4
INC R4
MOVC A,@A+DPTR
MOV 26H,A
DEC R4
MOV R0,B
POP DPL
POP DPH POP ACC SETB EA RETI
LAST_SONG: PUSH ACC
PUSH DPH
PUSH DPL
CLR EA
MOV A,22H
CJNE A,#1,S
MOV 22H,#4
MOV R7,#12
JMP T
S: DEC 22H
MOV A,R7
SUBB A,#4
MOV R7,A
T: MOV B,R0
MOV R4,#00H
MOV R0,#30H
MOV A,R7
ADD A,R0
MOV R0,A
MOV DPH,@R0
INC R0
MOV DPL,@R0
INC R0
MOV A,R4
INC R4
MOVC A,@A+DPTR
MOV 26H,A
DEC R4
MOV R0,B
POP DPL
POP DPH
POP ACC
SETB EA
RETI START_PAUSE:CPL F0
JB F0,RETURN1
SETB TR0
RETURN1:RETI
DELAY: MOV 27H,26H
D2: MOV 28H,#25
D3: MOV 29H,#29
DJNZ 29H,$
DJNZ 28H,D3
DJNZ 27H,D2
DJNZ R2,DELAY
RET
TABLE:
DW
SONG1,TABLE1,SONG2,TABLE2,SONG3,TABL E3,SONG4,TABLE4
TABLE2:DW 64580,64684,64777,64820
DW 64898,64968,65030,64260
DW 64400,64524,65058,63835,64021 SONG2: ;精忠报国
DB
66H,52H,36H,22H,12H,12H,22H,32H,98H,84H,82 H,92H,14H,12H,22H
DB
32H,52H,22H,42H,38H,66H,52H,36H,22H,12H,22 H,22H,32H,98H
DB
24H,22H,32H,54H,52H,32H,92H,12H,92H,82H,98 H,66H,52H,36H,22H
DB
12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22 H,32H,52H,22H,42H,38H
DB
66H,52H,36H,22H,12H,22H,22H,32H,98H,24H,22 H,32H,54H,52H,32H
DB
22H,12H,92H,82H,98H,14H,24H,34H,44H,64H,0B 4H,64H,32H,52H
DB
62H,0B2H,62H,52H,38H,24H,22H,32H,54H,52H,6 2H,52H,32H,32H,22H,38H
DB
64H,0B4H,64H,32H,52H,62H,0B2H,62H,52H,38H, 22H,22H,22H,32H,52H,52H
DB 52H,62H,7FH,74H,04H,58H,6FH
DB 00
TABLE1:DW 64580,64684,64777,64820
DW 64898,64968,65030,64260
DW 64400,64524,65058,63835,64021 SONG1: DB 62H,82H ;月亮代表我的心
DB 16H,32H,54H,02H,52H
DB 0A6H,32H,54H,02H,52H
DB 64H,74H,0B6H,64H
DB 52H,5CH,32H,22H
DB 16H,12H,14H,32H,22H
DB 16H,12H,14H,22H,32H
DB 26H,12H,94H,22H,32H
DB 2CH
DB 32H,52H
DB 36H,22H,14H,54H
DB 0ACH,92H,0A2H
DB 96H,0A2H,96H,82H
DB 3CH,54H
DB 36H,22H,14H,54H
DB 0ACH,92H,0A2H
DB 16H,12H,14H,22H,32H
DB 2CH,02H,82H DB 16H,32H,56H,12H
DB 0A6H,32H,56H,52H
DB 66H,72H,0B6H,62H
DB 62H,52H,58H,32H,22H
DB 16H,12H,14H,32H,22H
DB 16H,12H,14H,22H,32H
DB 26H,92H,0A4H,12H,22H
DB 1CH
DB 00
TABLE3: DW 64580,64684,64777,64820
DW 64898,64968,65030,64260
DW 64400,64524,65058,63835,64021 SONG3: DB 0d4H,84H,94H,82H,92H ;看我七十二变
DB 12H,22H,82H,92H,02H,92H,82H,0d2H
DB 82H,92H,14H,84H,02H,0d1H,0d1H
DB 0c2H,0d2H,84H,0d2H,0d2H,82H,82H
DB 84H,82H,82H,94H,82H,0d2H
DB 82H,82H,82H,92H,02H,82H,82H,0d2H
DB 0c4H,84H,0d4H,92H,0d2H
DB 82H,0d2H,82H,92H,98H
DB 04H,94H,88H
DB 04H,94H,88H
DB 04H,94H,88H
DB 04H,94H,88H,04H
DB 32H,32H,22H,12H,02H,92H,12H,92H
DB 32H,32H,22H,12H,02H,92H,12H,92H
DB 32H,32H,22H,12H,02H,92H,12H,22H
DB 54H,44H,34H,12H,22H
DB 34H,22H,12H,02H,92H,12H,92H
DB 32H,32H,22H,12H,02H,92H,12H,92H
DB 32H,32H,22H,12H,02H,92H,12H,22H
DB 54H,44H,32H,22H,12H,92H
DB 00
TABLE4:DW 64580,64684,64777,64820
DW 64898,64968,65030,64260
DW 64400,64524,65058,63835,64021 SONG4:DB
82H,92H,12H,14H,12H,14H,92H,82H,12H,14H,22 H,14H,92H,12H,22H,24H ;大海
DB
22H,24H,12H,92H,22H,24H,32H,24H,32H,52H,62 H,54H,52H,64H,52H,32H
DB
22H,32H,22H,12H,94H,82H,92H,12H,14H,12H,14 H,94H,1cH
DB
82H,92H,12H,14H,12H,14H,92H,82H,12H,14H,22 H,14H,92H,12H,22H,24H
DB
22H,24H,12H,92H,22H,24H,32H,24H,32H,52H,62 H,54H,52H,64H,52H,32H
DB
22H,32H,22H,12H,94H,82H,92H,12H,14H,12H,14 H,22H,12H,1cH,32H,52H
DB
62H,64H,62H,64H,0b2H,62H,52H,54H,62H,54H,3 2H,22H
DB
12H,14H,12H,14H,24H,3cH,32H,22H,12H,14H,12 H,14H,0b2H,62H,52H,54H,62H,54H,32H,52H DB
66H,0b2H,0b4H,62H,52H,5cH,32H,52H,62H,64H, 62H,64H,0b2H,62H,52H,54H
DB
62H,54H,32H,22H,12H,14H,12H,14H,54H,3cH,32 H,22H,12H,14H,12H,14H,22H,32H
DB
52H,54H,32H,54H,32H,52H,6fH,04H,02H,92H,32 H,24H,12H,1fH
DB 00
END;.......................................................................... .........................................................【程序结束】
附录四机器码
0000H 0130 AJMP 0030H 0002H FF MOV R7, A 0003H 2127 AJMP 0127H 0005H FF MOV R7, A 0006H FF MOV R7, A 0007H FF MOV R7, A 0008H FF MOV R7, A 0009H FF MOV R7, A 000AH FF MOV R7, A 000BH 01E4 AJMP 00E4H 000DH FF MOV R7, A 000EH FF MOV R7, A 000FH FF MOV R7, A 0010H FF MOV R7, A 0011H FF MOV R7, A 0012H FF MOV R7, A 0013H 01ED AJMP 00EDH 0015H FF MOV R7, A 0016H FF MOV R7, A 0017H FF MOV R7, A 0018H FF MOV R7, A 0019H FF MOV R7, A 001AH FF MOV R7, A 001BH 2162 AJMP 0162H 001DH FF MOV R7, A 001EH FF MOV R7, A 001FH FF MOV R7, A 0020H FF MOV R7, A 0021H FF MOV R7, A 0022H FF MOV R7, A 0023H FF MOV R7, A 0024H FF MOV R7, A 0025H FF MOV R7, A 0026H FF MOV R7, A 0027H FF MOV R7, A 0028H FF MOV R7, A 0029H FF MOV R7, A 002AH FF MOV R7, A 002BH FF MOV R7, A 002CH FF MOV R7, A
002DH FF MOV R7, A
002EH FF MOV R7, A
002FH FF MOV R7, A
0030H 758160 MOV SP, #60H
0033H 90017F MOV DPTR, #017FH 0036H 7830 MOV R0, #30H
0038H 7D00 MOV R5, #00H
003AH 7E00 MOV R6, #00H
003CH ED MOV A, R5
003DH 93 MOVC A, @A+DPTR 003EH F6 MOV @R0, A
003FH 0D INC R5
0040H 08 INC R0
0041H ED MOV A, R5
0042H 93 MOVC A, @A+DPTR 0043H F6 MOV @R0, A
0044H 0D INC R5
0045H 08 INC R0
0046H ED MOV A, R5
0047H 93 MOVC A, @A+DPTR 0048H F6 MOV @R0, A
0049H 08 INC R0
004AH 0D INC R5
004BH ED MOV A, R5
004CH 93 MOVC A, @A+DPTR 004DH F6 MOV @R0, A
004EH 08 INC R0
004FH 0D INC R5
0050H 0E INC R6
0051H BE04E8 CJNE R6, #04H, 003CH 0054H 758961 MOV TMOD, #61H 0057H 758DFF MOV TH1, #FFH
005AH 758BFF MOV TL1, #FFH
005DH D2AB SETB ET1
005FH D2A9 SETB ET0
0061H C2B9 CLR PT0
0063H D2BB SETB PT1
0065H D288 SETB IT0
0067H D2B8 SETB PX0
0069H D28A SETB IT1
006BH D2BA SETB PX1
006DH D2AA SETB EX1
006FH D2A8 SETB EX0
0071H D2AF SETB EA
0073H D28E SETB TR1
0075H C290 CLR P1.0
0077H C2D5 CLR F0
0079H 7F00 MOV R7, #00H
007BH 7C00 MOV R4, #00H
007DH 7830 MOV R0, #30H
007FH EF MOV A, R7
0080H 28 ADD A, R0
0081H F8 MOV R0, A
0082H 8683 MOV DPH, @R0 0084H 08 INC R0
0085H 8682 MOV DPL, @R0 0087H 08 INC R0
0088H EC MOV A, R4
0089H 0C INC R4
008AH 93 MOVC A, @A+DPTR 008BH F526 MOV 26H, A
008DH 7830 MOV R0, #30H
008FH EF MOV A, R7
0090H 28 ADD A, R0
0091H F8 MOV R0, A
0092H 8683 MOV DPH, @R0 0094H 08 INC R0
0095H 8682 MOV DPL, @R0 0097H 08 INC R0
0098H EC MOV A, R4
0099H 0C INC R4
009AH 93 MOVC A, @A+DPTR 009BH 6035 JZ 00D2H
009DH F9 MOV R1, A
009EH 540F ANL A, #0FH
00A0H FA MOV R2, A
00A1H E9 MOV A, R1
00A2H C4 SWAP A
00A3H 540F ANL A, #0FH
00A5H 7004 JNZ 00ABH
00A7H C28C CLR TR0
00A9H 8018 SJMP 00C3H
00ABH 14 DEC A
00ACH FB MOV R3, A
00ADH 23 RL A
00AEH 8683 MOV DPH, @R0 00B0H 08 INC R0 00B1H 8682 MOV DPL, @R0
00B3H 08 INC R0
00B4H 93 MOVC A, @A+DPTR 00B5H F521 MOV 21H, A
00B7H F58C MOV TH0, A
00B9H EB MOV A, R3
00BAH 23 RL A
00BBH 04 INC A
00BCH 93 MOVC A, @A+DPTR 00BDH F520 MOV 20H, A
00BFH F58A MOV TL0, A
00C1H D28C SETB TR0
00C3H 12016A LCALL 016AH
00C6H 20D502 JB F0, 00CBH
00C9H 018D AJMP 008DH
00CBH C28C CLR TR0
00CDH 20D5FD JB F0, 00CDH
00D0H 018D AJMP 008DH
00D2H C28C CLR TR0
00D4H E522 MOV A, 22H
00D6H B40403 CJNE A, #04H, 00DCH 00D9H 020054 LJMP 0054H
00DCH EF MOV A, R7
00DDH 2404 ADD A, #04H
00DFH FF MOV R7, A
00E0H 0522 INC 22H
00E2H 017B AJMP 007BH
00E4H 85218C MOV TH0, 21H
00E7H 85208A MOV TL0, 20H
00EAH B290 CPL P1.0
00ECH 32 RETI
00EDH C0E0 PUSH ACC
00EFH C083 PUSH DPH
00F1H C082 PUSH DPL
00F3H C2AF CLR EA
00F5H E522 MOV A, 22H
00F7H B40407 CJNE A, #04H, 0101H 00FAH 7F00 MOV R7, #00H
00FCH 752201 MOV 22H, #01H
00FFH 2107 AJMP 0107H
0101H 0522 INC 22H
0103H EF MOV A, R7
0104H 2404 ADD A, #04H
0106H FF MOV R7, A
0107H 88F0 MOV B, R0
0109H 7C00 MOV R4, #00H
010BH 7830 MOV R0, #30H
010DH EF MOV A, R7
010EH 28 ADD A, R0
010FH F8 MOV R0, A
0110H 8683 MOV DPH, @R0 0112H 08 INC R0
0113H 8682 MOV DPL, @R0 0115H 08 INC R0
0116H EC MOV A, R4
0117H 0C INC R4
0118H 93 MOVC A, @A+DPTR 0119H F526 MOV 26H, A
011BH 1C DEC R4
011CH A8F0 MOV R0, B
011EH D082 POP DPL
0120H D083 POP DPH
0122H D0E0 POP ACC
0124H D2AF SETB EA
0126H 32 RETI
0127H C0E0 PUSH ACC
0129H C083 PUSH DPH
012BH C082 PUSH DPL
012DH C2AF CLR EA
012FH E522 MOV A, 22H
0131H B40108 CJNE A, #01H, 013CH 0134H 752204 MOV 22H, #04H 0137H 7F0C MOV R7, #0CH 0139H 020142 LJMP 0142H
013CH 1522 DEC 22H
013EH EF MOV A, R7
013FH 9404 SUBB A, #04H
0141H FF MOV R7, A
0142H 88F0 MOV B, R0
0144H 7C00 MOV R4, #00H 0146H 7830 MOV R0, #30H 0148H EF M OV A, R7
0149H 28 ADD A, R0
014AH F8 MOV R0, A
014BH 8683 MOV DPH, @R0 014DH 08 INC R0
014EH 8682 MOV DPL, @R0 0150H 08 INC R0 0151H EC MOV A, R4
0152H 0C INC R4
0153H 93 MOVC A, @A+DPTR 0154H F526 MOV 26H, A
0156H 1C DEC R4
0157H A8F0 MOV R0, B
0159H D082 POP DPL
015BH D083 POP DPH
015DH D0E0 POP ACC
015FH D2AF SETB EA
0161H 32 RETI
0162H B2D5 CPL F0
0164H 20D502 JB F0, 0169H 0167H D28C SETB TR0
0169H 32 RETI
016AH 852627 MOV 27H, 26H
016DH 752819 MOV 28H, #19H 0170H 75291D MOV 29H, #1DH 0173H D529FD DJNZ 29H, 0173H 0176H D528F7 DJNZ 28H, 0170H 0179H D527F1 DJNZ 27H, 016DH 017CH DAEC DJNZ R2, 016AH 017EH 22 RET
017FH 024402 LJMP 4402H
0182H 2A ADD A, R2
0183H 01A9 AJMP 00A9H
0185H 018F AJMP 008FH
0187H 02C202 LJMP C202H
018AH A803 MOV R0, 03H
018CH 57 ANL A, @R1
018DH 03 RR A
018EH 3D ADDC A, R5
018FH FC MOV R4, A
0190H 44FC ORL A, #FCH 0192H ACFD MOV R4, FDH 0194H 09 INC R1
0195H FD MOV R5, A
0196H 34FD ADDC A, #FDH 0198H 82FD ANL C, F8H.5
019AH C8 XCH A, R0
019BH FE MOV R6, A
019CH 06 INC @R0
019DH FB MOV R3, A
019EH 04 INC A
019FH FB MOV R3, A
01A0H 90FC0C MOV DPTR, #0FC0CH 01A3H FE MOV R6, A
01A4H 22 RET
01A5H F9 MOV R1, A
01A6H 5B ANL A, R3
01A7H FA MOV R2, A
01A8H 1566 DEC 66H
01AAH 5236 ANL 36H, A
01ACH 22 RET
01ADH 121222 LCALL 1222H
01B0H 32 RETI
01B1H 98 SUBB A, R0
01B2H 84 DIV AB
01B3H 8292 ANL C, P1.2
01B5H 14 DEC A
01B6H 122232 LCALL 2232H
01B9H 5222 ANL 22H, A
01BBH 4238 ORL 38H, A
01BDH 66 XRL A, @R0
01BEH 5236 ANL 36H, A
01C0H 22 RET
01C1H 122222 LCALL 2222H
01C4H 32 RETI
01C5H 98 SUBB A, R0
01C6H 2422 ADD A, #22H
01C8H 32 RETI
01C9H 5452 ANL A, #52H
01CBH 32 RETI
01CCH 9212 MOV 12H, C
01CEH 9282 MOV P0.2, C
01D0H 98 SUBB A, R0
01D1H 66 XRL A, @R0
01D2H 5236 ANL 36H, A
01D4H 22 RET
01D5H 121222 LCALL 1222H
01D8H 32 RETI
01D9H 98 SUBB A, R0
01DAH 84 DIV AB
01DBH 8292 ANL C, P1.2
01DDH 14 DEC A
01DEH 122232 LCALL 2232H
01E1H 5222 ANL 22H, A
01E3H 4238 ORL 38H, A 01E5H 66 XRL A, @R0
01E6H 5236 ANL 36H, A
01E8H 22 RET
01E9H 122222 LCALL 2222H
01ECH 32 RETI
01EDH 98 SUBB A, R0
01EEH 2422 ADD A, #22H
01F0H 32 RETI
01F1H 5452 ANL A, #52H
01F3H 32 RETI
01F4H 22 RET
01F5H 129282 LCALL 9282H
01F8H 98 SUBB A, R0
01F9H 14 DEC A
01FAH 2434 ADD A, #34H
01FCH 4464 ORL A, #64H
01FEH B46432 CJNE A, #64H, 0233H 0201H 5262 ANL 62H, A
0203H B262 CPL 62H
0205H 5238 ANL 38H, A
0207H 2422 ADD A, #22H
0209H 32 RETI
020AH 5452 ANL A, #52H
020CH 6252 XRL 52H, A
020EH 32 RETI
020FH 32 RETI
0210H 22 RET
0211H 38 ADDC A, R0
0212H 64B4 XRL A, #B4H
0214H 6432 XRL A, #32H
0216H 5262 ANL 62H, A
0218H B262 CPL 62H
021AH 5238 ANL 38H, A
021CH 22 RET
021DH 22 RET
021EH 22 RET
021FH 32 RETI
0220H 5252 ANL 52H, A
0222H 5262 ANL 62H, A
0224H 7F74 MOV R7, #74H 0226H 04 INC A
0227H 58 ANL A, R0
0228H 6F XRL A, R7
0229H 00 NOP
022AH FC MOV R4, A
022BH 44FC ORL A, #FCH
022DH ACFD MOV R4, FDH
022FH 09 INC R1
0230H FD MOV R5, A
0231H 34FD ADDC A, #FDH
0233H 82FD ANL C, F8H.5
0235H C8 XCH A, R0
0236H FE MOV R6, A
0237H 06 INC @R0
0238H FB MOV R3, A
0239H 04 INC A
023AH FB MOV R3, A
023BH 90FC0C MOV DPTR, #0FC0CH 023EH FE MOV R6, A
023FH 22 RET
0240H F9 MOV R1, A
0241H 5B ANL A, R3
0242H FA MOV R2, A
0243H 1562 DEC 62H
0245H 8216 ANL C, 16H
0247H 32 RETI
0248H 5402 ANL A, #02H
024AH 52A6 ANL A6H, A
024CH 32 RETI
024DH 5402 ANL A, #02H
024FH 5264 ANL 64H, A
0251H 74B6 MOV A, #B6H
0253H 6452 XRL A, #52H
0255H 5C ANL A, R4
0256H 32 RETI
0257H 22 RET
0258H 16 DEC @R0
0259H 121432 LCALL 1432H
025CH 22 RET
025DH 16 DEC @R0
025EH 121422 LCALL 1422H
0261H 32 RETI
0262H 26 ADD A, @R0
0263H 129422 LCALL 9422H
0266H 32 RETI
0267H 2C ADD A, R4
0268H 32 RETI
0269H 5236 ANL 36H, A 026BH 22 RET
026CH 14 DEC A
026DH 54AC ANL A, #ACH 026FH 92A2 MOV P2.2, C 0271H 96 SUBB A, @R0 0272H A296 MOV C, P1.6 0274H 823C ANL C, 3CH 0276H 5436 ANL A, #36H 0278H 22 RET
0279H 14 DEC A
027AH 54AC ANL A, #ACH 027CH 92A2 MOV P2.2, C 027EH 16 DEC @R0
027FH 121422 LCALL 1422H 0282H 32 RETI
0283H 2C ADD A, R4 0284H 028216 LJMP 8216H 0287H 32 RETI
0288H 56 ANL A, @R0 0289H 12A632 LCALL A632H
028CH 56 ANL A, @R0 028DH 5266 ANL 66H, A 028FH 72B6 ORL C, P3.6 0291H 6262 XRL 62H, A 0293H 5258 ANL 58H, A 0295H 32 RETI
0296H 22 RET
0297H 16 DEC @R0
0298H 121432 LCALL 1432H
029BH 22 RET
029CH 16 DEC @R0
029DH 121422 LCALL 1422H
02A0H 32 RETI
02A1H 26 ADD A, @R0 02A2H 92A4 MOV P2.4, C 02A4H 12221C LCALL 221CH
02A7H 00 NOP
02A8H FC MOV R4, A
02A9H 44FC ORL A, #FCH 02ABH ACFD MOV R4, FDH 02ADH 09 INC R1
02AEH FD MOV R5, A
02AFH 34FD ADDC A, #FDH 02B1H 82FD ANL C, F8H.5
02B3H C8 XCH A, R0
02B4H FE MOV R6, A
02B5H 06 INC @R0
02B6H FB MOV R3, A
02B7H 04 INC A
02B8H FB MOV R3, A
02B9H 90FC0C MOV DPTR, #0FC0CH 02BCH FE MOV R6, A
02BDH 22 RET
02BEH F9 MOV R1, A
02BFH 5B ANL A, R3
02C0H FA MOV R2, A
02C1H 15D4 DEC D4H
02C3H 84 DIV AB
02C4H 9482 SUBB A, #82H
02C6H 9212 MOV 12H, C
02C8H 22 RET
02C9H 8292 ANL C, P1.2
02CBH 029282 LJMP 9282H
02CEH D282 SETB P0.2
02D0H 9214 MOV 14H, C
02D2H 84 DIV AB
02D3H 02D1D1 LJMP D1D1H
02D6H C2D2 CLR OV
02D8H 84 DIV AB
02D9H D2D2 SETB OV
02DBH 8282 ANL C, P0.2
02DDH 84 DIV AB
02DEH 8282 ANL C, P0.2
02E0H 9482 SUBB A, #82H
02E2H D282 SETB P0.2
02E4H 8282 ANL C, P0.2
02E6H 9202 MOV 02H, C
02E8H 8282 ANL C, P0.2
02EAH D2C4 SETB C0H.4
02ECH 84 DIV AB
02EDH D4 DA A
02EEH 92D2 MOV OV, C
02F0H 82D2 ANL C, OV
02F2H 8292 ANL C, P1.2
02F4H 98 SUBB A, R0
02F5H 04 INC A
02F6H 9488 SUBB A, #88H
02F8H 04 INC A 02F9H 9488 SUBB A, #88H 02FBH 04 INC A
02FCH 9488 SUBB A, #88H 02FEH 04 INC A
02FFH 9488 SUBB A, #88H 0301H 04 INC A
0302H 32 RETI
0303H 32 RETI
0304H 22 RET
0305H 120292 LCALL 0292H 0308H 129232 LCALL 9232H
030BH 32 RETI
030CH 22 RET
030DH 120292 LCALL 0292H 0310H 129232 LCALL 9232H 0313H 32 RETI
0314H 22 RET
0315H 120292 LCALL 0292H 0318H 122254 LCALL 2254H
031BH 4434 ORL A, #34H 031DH 122234 LCALL 2234H 0320H 22 RET
0321H 120292 LCALL 0292H 0324H 129232 LCALL 9232H 0327H 32 RETI
0328H 22 RET
0329H 120292 LCALL 0292H
032CH 129232 LCALL 9232H 032FH 32 RETI
0330H 22 RET
0331H 120292 LCALL 0292H 0334H 122254 LCALL 2254H 0337H 4432 ORL A, #32H 0339H 22 RET
033AH 129200 LCALL 9200H 033DH FC MOV R4, A 033EH 44FC ORL A, #FCH 0340H ACFD MOV R4, FDH 0342H 09 INC R1
0343H FD MOV R5, A 0344H 34FD ADDC A, #FDH 0346H 82FD ANL C, F8H.5 0348H C8 XCH A, R0 0349H FE MOV R6, A
034AH 06 INC @R0
034BH FB MOV R3, A
034CH 04 INC A
034DH FB MOV R3, A
034EH 90FC0C MOV DPTR, #0FC0CH 0351H FE MOV R6, A
0352H 22 RET
0353H F9 MOV R1, A
0354H 5B ANL A, R3
0355H FA MOV R2, A
0356H 1582 DEC DPL
0358H 9212 MOV 12H, C
035AH 14 DEC A
035BH 121492 LCALL 1492H
035EH 8212 ANL C, 12H
0360H 14 DEC A
0361H 22 RET
0362H 14 DEC A
0363H 9212 MOV 12H, C
0365H 22 RET
0366H 2422 ADD A, #22H
0368H 2412 ADD A, #12H
036AH 9222 MOV 22H, C
036CH 2432 ADD A, #32H
036EH 2432 ADD A, #32H
0370H 5262 ANL 62H, A
0372H 5452 ANL A, #52H
0374H 6452 XRL A, #52H
0376H 32 RETI
0377H 22 RET
0378H 32 RETI
0379H 22 RET
037AH 129482 LCALL 9482H
037DH 9212 MOV 12H, C
037FH 14 DEC A
0380H 121494 LCALL 1494H
0383H 1C DEC R4
0384H 8292 ANL C, P1.2
0386H 121412 LCALL 1412H
0389H 14 DEC A
038AH 9282 MOV P0.2, C
038CH 121422 LCALL 1422H
038FH 14 DEC A
0390H 9212 MOV 12H, C 0392H 22 RET
0393H 2422 ADD A, #22H 0395H 2412 ADD A, #12H 0397H 9222 MOV 22H, C 0399H 2432 ADD A, #32H 039BH 2432 ADD A, #32H 039DH 5262 ANL 62H, A 039FH 5452 ANL A, #52H 03A1H 6452 XRL A, #52H 03A3H 32 RETI
03A4H 22 RET
03A5H 32 RETI
03A6H 22 RET
03A7H 129482 LCALL 9482H
03AAH 9212 MOV 12H, C 03ACH 14 DEC A
03ADH 121422 LCALL 1422H 03B0H 121C32 LCALL 1C32H 03B3H 5262 ANL 62H, A 03B5H 6462 XRL A, #62H 03B7H 64B2 XRL A, #B2H 03B9H 6252 XRL 52H, A 03BBH 5462 ANL A, #62H 03BDH 5432 ANL A, #32H 03BFH 22 RET
03C0H 121412 LCALL 1412H
03C3H 14 DEC A
03C4H 243C ADD A, #3CH 03C6H 32 RETI
03C7H 22 RET
03C8H 121412 LCALL 1412H
03CBH 14 DEC A
03CCH B262 CPL 62H
03CEH 5254 ANL 54H, A 03D0H 6254 XRL 54H, A 03D2H 32 RETI
03D3H 5266 ANL 66H, A 03D5H B2B4 CPL P3.4
03D7H 6252 XRL 52H, A 03D9H 5C ANL A, R4 03DAH 32 RETI
03DBH 5262 ANL 62H, A 03DDH 6462 XRL A, #62H 03DFH 64B2 XRL A, #B2H
03E1H 6252 XRL 52H, A 03E3H 5462 ANL A, #62H 03E5H 5432 ANL A, #32H 03E7H 22 RET
03E8H 121412 LCALL 1412H
03EBH 14 DEC A
03ECH 543C ANL A, #3CH 03EEH 32 RETI
03EFH 22 RET
03F0H 121412 LCALL 1412H
03F3H 14 DEC A
03F4H 22 RET
03F5H 32 RETI
03F6H 5254 ANL 54H, A 03F8H 32 RETI
03F9H 5432 ANL A, #32H 03FBH 526F ANL 6FH, A 03FDH 04 INC A
03FEH 029232 LJMP 9232H 0401H 2412 ADD A, #12H 0403H 1F DEC R7
0404H 00 NOP。