一些单片机实训资料
目录
引言... 3
1绪论... 4
1.1概述... 4
1.2 目的意义... 4
1.3 设计的概要思路... 4
2 设计方案简述... 4
2.1 设计功能要求... 4
2.2 总体设计原理... 4
2.3 总体设计框图... 5
3、 详细设计... 6
3.1 AT89C51简介... 6
3.2 时钟振荡电路... 6
3.3扬声器部分... 7
3.4 显示部分... 7
4、 仿真、调试... 7
4.1仿真... 7
4.2调试... 8
5、 课程设计总结... 8
6参考文献... 9
引言
21世纪,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。单片机应用的重要意义还在于它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
随着科学技术的进步和社会的发展,人类所接触的信息也在不断增加并且日益复杂。面对浩如烟海的信息,人们已经能够利用计算机等工具高效准确地对之进行处理,但要想将处理完的信息及时,清晰地传递给别人,还必须通过寻求更加卓越的显示技术来实现。单片机技术与液晶显示技术的结合,使信息传输交流向着智能可视化方向迅速发展。
随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。传统音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。本文设计的音乐盒是以单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏和旋音乐,功能多,外观效果多彩,使用方便,并具有一定的商业价值。
1绪论1.1概述本设计是以AT89C51芯片的电路为基础,外部加上放音设备和按键设备,以此来实现音乐演奏控制器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏出优美动听的音乐。用户可以按照自己的喜好选择音乐并将其转化成机器码存入单片机的存储器中。对于不同型号的单片机只需要相应的改变一下地址即可。该软、硬件系统具有很好的通用性,很高的实际使用价值,为广大的单片机和音乐爱好者提供了很好的借鉴。
1.2 目的意义
为了更好地熟悉和掌握单片机的基本功能和编程,我们以AT89C51为基础设计电子音乐盒。AT89C51单片机电子音乐盒集成多个硬件资源模块,每个模块各自可以成为独立的单元,也可以相互组合,因此,可以为不同阶层的单片机爱好者所用。同时,电子音乐盒的设计具有很重要的现实意义。我们根据学习和实践的需要,进行了电子音乐盒功能设计。我们在制作电子音乐盒的过程中会学习到很多的东西,能够最大限度的了解我们自制的这一个单片机电子音乐盒,这样以后调试程序的时候便得心应手,效率要提高很多。
1.3 设计的概要思路制定音乐盒控制系统需要完成功能,并根据此来制定设计方案;根据设计方案来进行硬件电路图的设计和软件模块的开发。2 设计方案简述2.1 设计功能要求
1 利用扬声器,发出不同的音调,从而演奏乐曲(本设计中含有10首歌曲)
2.采用LCD显示信息(歌曲序号,播放时间等)
3.开机时有英文欢迎提示字符,播放时显示歌曲序号
4.可通过4*4键盘选择乐曲,暂停,播放,上一曲,下一曲,开机画面。
原理说明:当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动定时器T1,显示乐曲播放的时间,并驱动LCD,显示歌曲号及播放时间。也可在LED显示歌曲号。
硬件电路中用P1.0~P1.7控制4*4键盘,其中P1.0~P1.3扫描行,P1.4~P1.7扫描列。
用P2.0~P2.2作为LCD的RS,R/W,E的控制信号。用P0.0~P0.7作为LCD的D0~D7的控制信号。
用P3.7口控制扬声器
电路为12MHZ晶振频率工作,起振电路中C1,C2均为30pf。
流程图:
2.3 总体设计框图
单片机接+5V电源供电,晶振电路产生单片机所需时钟信号,通过4*4键盘产生外部中断,控制音乐盒的上一首和下一首曲目,再由P3.7口输出控制扬声器发声,LCD显示。另外,复位电路在于营造一个程序运行的初始状态,在程序出错时,重新启动单片机工作。
编程设置好定时时间,通过编程器写入AT89C51单片机系统。由AT89C51单片机的定时器每秒钟通过P0.0-P0.7口控制LCD显示,复位信号由按钮输入,每按下一次,系统恢复原设定状态。
10PF,而如果使用陶瓷振荡器建议选择40PF10PF。用户也可以采用外部时钟。采用外部时钟的电路如图示。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。振荡器电路图如下:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image035.jpg
5、 课程设计总结
通过这次课程设计,也让我们学习到了很多新的东西,这些都让我们受益匪浅。单片机的定时器功能,LCD显示,4*4键盘的设计,这些内容都颇为丰富。有以前学习过的旧知识,也有很多未曾注意到得新知识,这些都曾使我们的设计出错,通过自己的努力,老师指导和同学的帮助,终于克服了一个一个的困难,把硬件实物顺利做好,把软件调试顺利完成。但通过此次课程设计,却改变了很多,首先对于硬件电路的工作原理有了进一步的学习,同样就有了进一步的认识;其次软件方面,在程序的设计,程序的调试方面都学到了很多东西,很有成就感。总体来说本次课程设计总体符合预期要求,能够成功实现按1-A按键能演奏不同的乐曲的基本功能,并添加了通过按键控制上一首,下一首,暂停/播放的功能。在播放乐曲的过程中,还增加了显示歌曲演奏时间的功能。另外,采用了液晶显示技术,简化了硬件电路,还能显示英文的开机画面等当然,此设计过程中碰到了很多问题。如:
(1)有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发行是因为程序中有的指令书写得不规范导致的,例如有的RET返回指令一定要按正确格式书写或在两行指令间最好不要留空行。错程序无法正常运行的现象。当用JNZ指令时,跳转范围比较少,这时要用一个标号中转。
(3)编程时要注意,在程序开始时,要写入各定时器中断的入口地址。
编程过程中要注意加注释或分割线,否则,在程序过长时容易变得很乱,不便于查找或更改。
(4)刚开始LCD显示的时间不正确,走了几秒之后直接跳到分位。经过查阅资料之后,了解到是由于设置的延时时间和LCD编码的不同造成的,略作修改之后得到了解决。
(5)在播放过程中,音乐的频率和走的时间略微过快,分析得这可能和单片机上不同的晶振有关。
(6)程序的结构要设计的合理,避免上下乱调用的现象,这样会使程序更加清晰化。
(7)编程前要加流程图,这样会使思路清晰,例如数字音乐盒的设计思路完全可以按着MP3的工作方式列写流程图。
LCD计时正常显示的解决办法
a. 两个定时器同时工作,存在中断时序问题,刚开始时我们把定时器1设定在方式3,计250us,由于定时中断过于频繁,使CPU负载过大,导致音乐不能正常播放,时间不能正常显示。解决办法:将定时器1设定在工作方式1,16位计数,计50ms,效果有很大改观。但还有问题。
b. 当音乐为全4拍起始时,此时音乐节奏与定时器T1中断频率错开,LCD显示和音乐播放都会好一些。
c. 另外,在歌曲中,当遇到一个音符发音为4拍,在编曲中为*CH,托因时间较长,当定时器T1此时来中断时,就会对歌曲播放产生影响,若改为发音一拍,中断对歌曲播放影响减弱,但音乐效果变差。
d. 改进方案:若采用可以定时时间更长的单片机,可以避免所有问题。
音乐盒设计是一项趣味性很强的设计,能激发我们的浓厚兴趣。同时要求我们从程序编程,调试,软件仿真和绘制开始,到硬件的调试,再到修改程序,在这期间我们了解到了单片机开发的大致流程。另外在一个好的氛围里才能踏下心来做东西,在这几天课设的时间里,实验室的氛围对我们的影响很大,大家一起努力,这也是我们能完成课设的动力。此外在编程中出现问题时,一定要戒骄戒躁,脚踏实地,认真看书,仔细分析,仔细调试,就一定会发现错误,克服困难,我们也是这么做的,这在课程设计中十分重要。当然在这次宝贵的毕业设计活动中,经验才是对于我们最大的收获,而且还增强了自身对未知问题以及对知识的深化认识的能力,用受益匪浅这个词语来概括这次难忘的活动我觉得再合适不过了。但是,光是完成了作品还是不可以自我满足的,在从一开始的时候就怀着将作品制作得更加人性化,更加令人满意,更加地使功能完美又方便地被应用领域这个最终目的下,随着对单片机这门学科的认识加深,到达了拓展的程度,我想这个目的将在不远的时期内被实现。最后,衷心感谢这次对我们的课程设计提供无私帮助的所有老师和同学!
6参考文献[1] 阎石. 数字电子技术基础. 北京: 高等教育出版社, 1998
[2]张毅刚. 单片机原理及应用. 北京: 清华大学出版社,2004.3
[3]张俊谟. 单片机中级教程-原理与应用. 北京: 北京航空航天大学出版社,2006
[4] 黄菊生. 单片机原理与接口技术. 北京:国防工业出版社 2007.09
[5] 杨西明、朱骐主. 单片机编程与应用入门. 北京:机械工业出版社 2004.06
[6] 徐爱钧 单片机原理实用教程(基于Proteus虚拟仿真). 北京:电子工业出版社 2009.01
代码部分
RS BIT P2.0 ;定义液晶显示端口标号
RW BIT P2.1
E BIT P2.2
L50MS EQU 60H
L1MS EQU 61H
L250MS EQU 62H
SEC EQU 65H
MIN EQU 64H
HOU EQU 63H
org 0000h
ljmp main
ORG 000BH
LJMP TT0
ORG 001BH
LJMP T1INT
org 1000h
main:MOV SP,#70H
MOV P0,#01H ;清屏
LCALL ENABLE
MOV P0,#38H ;8位,2行显示
lCALL ENABLE
MOV P0,#0FH ;屏显on,光标on,闪烁on
lCALL ENABLE
MOV P0,#06H ;计数地址加1,显示幕on
lCALL ENABLE
lcall initil
key1: lcall key
lcall modd
ljmp key1
key: nop
nop
lcall ks
jnz k1 ;有按键转到K1
lcall kaiji
lcall SOP
xn: ljmp key
k1: lcall modd
lcall modd
lcall ks
jnz k2
ljmp key
k2: mov R2,#0feh ;读键盘
mov R4,#00h
k3: mov A,R2
mov P1,A
mov A,P1
JB ACC.4,L1 ;为1跳转,第一行无按键
mov a,#00h
ljmp lk
L1: jb acc.5,L2
mov a,#04h
ljmp lk
L2: jb acc.6,L3
mov a,#08h
ljmp lk
L3: jb acc.7,next1
mov a,#0ch
lk: add a,R4
push acc
k4: lcall delay1 ;若同时有其他按键,则等待
lcall ks
jnz k4
mov r3,#07h
clr a
mov r0,#30h
mov r1,#31h
mm1: mov a,@r1
mov @r0,a
inc r0
inc r1
djnz r3,mm1
pop acc
mov @r0,a
RET
next1: inc R4 ;------列扫描
mov a,R2
JNB acc.3,n2
ljmp n1
n2: ljmp key
n1: rl a
mov R2,a
ljmp k3
ks: mov a,#0f0h ;判断P1口
mov P1,a
nop
nop
mov a,P1
cpl a
anl a,#0f0h
RET
DELAY1: SETB RS0
dl: mov R5,#0ah
dl2: mov R6,#63
dl3: nop
nop
djnz R6,dl3
djnz R5,dl2
CLR RS0
RET
initil:
mov r3,#08h
mov r0,#30h
m1: mov @r0,#00h
inc r0
djnz r3,m1
RET
Modd: MOV P0,#8EH
CALL ENABLE
mov A,37H
mov DPTR,#TABLE3
MOVC A,@A+DPTR
CALL WRITE2
RET
kaiji: mov a,37h
cjne a,#0fh,DFF
MOV P0,#80H ;设光标地址
CALL ENABLE
MOV DPTR,#TABLE1;写数据
CALL WRITE1
DFF: RET
SOP: mov a,37h
cjne a,#01h,A11
LCALL MODD
MOV 52H,#HIGHTABLE10
MOV 53H,#LOWTABLE10
LCALL INITILE2
lcall MAIN0
A11: CJNE A,#02H,A22
LCALL MODD
MOV 52H,#HIGHTABLE20
MOV 53H,#LOWTABLE20
LCALL INITILE2
lcall MAIN0
A22: CJNE A,#03H,A33
LCALL MODD
MOV 52H,#HIGHTABLE30
MOV 53H,#LOWTABLE30
LCALL INITILE2
lcall MAIN0
A33: CJNE A,#04H,A44
LCALL MODD
MOV 52H,#HIGHTABLE40
MOV 53H,#LOWTABLE40
LCALL INITILE2
lcall MAIN0
A44: CJNE A,#05H,A55
LCALL MODD
MOV 52H,#HIGHTABLE50
MOV 53H,#LOWTABLE50
LCALL INITILE2
lcall MAIN0
A55: CJNE A,#06H,A66
LCALL MODD
MOV 52H,#HIGHTABLE60
MOV 53H,#LOWTABLE60
LCALL INITILE2
lcall MAIN0
A66: CJNE A,#07H,A77
LCALL MODD
MOV 52H,#HIGHTABLE70
MOV 53H,#LOWTABLE70
LCALL INITILE2
lcall MAIN0
A77: CJNE A,#08H,A88
LCALL MODD
MOV 52H,#HIGHTABLE80
MOV 53H,#LOWTABLE80
LCALL INITILE2
lcall MAIN0
A88: CJNE A,#09H,A99
LCALL MODD
MOV 52H,#HIGHTABLE90
MOV 53H,#LOWTABLE90
LCALL INITILE2
lcall MAIN0
A99: CJNE A,#0AH,AAA
LCALL MODD
MOV 52H,#HIGHTABLE100
MOV 53H,#LOWTABLE100
LCALL INITILE2
lcall MAIN0
AAA: RET
INITILE2:
MOV L50MS,#20
MOV L1MS,#00H
MOV L250MS,#00H
MOV SEC,#00H
MOV MIN,#00H
MOV HOU,#00H
MOV A,HOU
MOV B,#10
div AB
ADD A,#30H ;将BCD吗转化为ASIIC码
MOV P0,#0C8H ;显示小时十位
LCALL ENABLE
LCALL WRITE2
MOV A,B
ADD A,#30H
MOV P0,#0C9H ;显示小时个位
LCALL ENABLE
LCALL WRITE2
MOV A,#3AH
MOV P0,#0DH ;显示冒号
LCALL ENABLE
LCALL WRITE2
MOV A,MIN
MOV B,#10
div AB
ADD A,#30H
MOV P0,#0CBH ;显示分十位
LCALL ENABLE
LCALL WRITE2
MOV A,B
ADD A,#30H
MOV P0,#0CCH ;显示分个位
LCALL ENABLE
LCALL WRITE2
MOV A,#3AH
MOV P0,#0CDH ;显示冒号
LCALL ENABLE
LCALL WRITE
MOV A,SEC
MOV B,#10
div AB
ADD A,#30H
MOV P0,#0CEH ;显示秒十位
LCALL ENABLE
LCALL WRITE2
MOV A,B
ADD A,#30H
MOV P0,#0CFH ;显示秒个位
LCALL ENABLE
LCALL WRITE2
MOV P0,#0C0H ;设光标地址
LCALL ENABLEMOV DPTR,#TABLE2;写数据
LCALL WRITE1
RET
ENABLE: CLR RS
CLR RW
CLR E
LCALL DELAY
SETB E
RET
WRITE1: MOV R1,#00H
A1: MOV A,R1
MOVC A,@A+DPTR
CALL WRITE2
INC R1
CJNE A,#0FEH,A1 ;未到字符串末尾继续
RET
WRITE2: MOV P0,A
SETB RS
CLR RW
CLR E
CALL DELAY
SETB E
RET
DELAY: MOV R4,#05
D1: MOV R5,#0FFH
DJNZ R5,$
DJNZ R4,D1
RET
TAB: db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h
db 80h,90h,88h,83h,0c6h,0a1h,86h,8eh
TAB1: db89h,86h,0c7h,0c7h,0c0h
TAB2: db 0c6h,88h,0c0h
TABLE1: DB 'WELCOMHERE',0FEH
TABLE2: DB 'WELCOME',0FEH
TABLE4: DB 'CAU',0FEH
TABLE3: DB 30H,31H,32H,33h
DB 34H,35H,36H,37H
DB 38h,39H,41H,42H
DB 43H,44H,45H,46H
MAIN0: MOV TMOD,#11H
MOV IE,#8aH
MOV TH1, #3cH
MOV TL1, #0b0H
lcall ks
jnz TTM12
MOV 40H,#00H
NEXT20: MOV A,40H
MOV DPH,52H
MOV DPL,53H
MOVC A,@A+DPTR
MOV R2,A
JZ STOP
ANL A,#0FH
MOV R1,A
MOV A,R2
SWAP A
ANL A,#0FH
JNZ SING
CLR TR0
JMP
SING: DEC A
MOV 22H,A
RL A
MOV DPTR,#TABLE00
MOVC A,@A+DPTR
MOV TH0,A
MOV 21H,A
MOV A,22H
RL A
INC A
MOVC A,@A+DPTR
MOV TL0,A
MOV 20H,A
SETB TR0
SETB TR1
W1: LCALL DELAY30
INC 40H
LCALL KS ;------有键跳出
JNZ STOP
LJMP NEXT20
STOP: CLR TR0
CLR TR1
LJMP MAIN0
TTM12: LCALL K2
MOV A,37H
CJNE A,#0EH,TTM13
CLR TR1
LCALL DELAY1
TTM120: LCALL KS
LCALL DELAY1
JZ TTM120
LCALL K2
MOV A,37H
CJNE A,#0EH,TTM120
SETB TR1
LJMP NEXT20
TTM13: CJNE A,#0CH,TTM14
MOV A,52H
INC A
MOV 52H,A
MOV A,53H
INC A
MOV 53H,A
MOV A,36H
INC A
MOV 37H,A
LJMP TTM2
TTM14: CJNE A,#0DH,TTM2
MOV A,52H
DEC A
MOV 52H,A
MOV A,53H
DEC A
MOV 53H,A
MOV A,36H
DEC A
MOV 37H,A
TTM2: RET
TT0: PUSH ACC
PUSH PSW
MOV TL0,20H
MOV TH0,21H
CPL P2.7
POP PSW
POP ACC
RETI
T1INT:
MOV TH1, #3cH
MOV TL1, #0b0H
DJNZ L50MS,X4
MOV L50MS,#20
SECSET:
MOV A,SEC
MOV B,#10
div AB
ADD A,#30H
MOV P0,#0CEH ;显示秒十位
CALL ENABLE
CALL WRITE2
MOV A,B
ADD A,#30H
MOV P0,#0CFH ;显示秒个位
CALL ENABLE
CALL WRITE2
MOV A,SEC
INC A
MOV SEC,A
XRL A,#60
X4: JNZ OUT
MINSET: MOV SEC,#00H
MOV A,MIN
INC A
MOV MIN,A
MOV B,#10
div AB
ADD A,#30H
MOV P0,#0CBH ;显示分十位
CALL ENABLE
CALL WRITE2
MOV A,B
ADD A,#30H
MOV P0,#0CCH ;显示分个位
CALL ENABLE
CALL WRITE2
MOV A,MIN
MOV B,#3
MUL AB
MOV B,#100
div AB
MOV R2,A
MOV A,#10
XCH A,B
div AB
MOV A,MIN
XRL A,#60
JNZ OUT
HOUSET:
MOV MIN,#00H
MOV A,HOU
MOV B,#10
div AB
ADD A,#30H ;将BCD吗转化为ASIIC码
MOV P0,#0C8H ;显示小时十位
CALL ENABLE
CALL WRITE2
MOV A,B
ADD A,#30H
MOV P0,#0C9H ;显示小时个位
CALL ENABLE
CALL WRITE2
MOV A,HOU
INC A
MOV HOU,A
XRL A,#10
JNZ OUT
SJMP OVERFLOW
OUT: RETI
OVERFLOW:
MOV L50MS,#20
MOV L1MS,#00H
MOV L250MS,#00H
MOV SEC,#00H
MOV MIN,#00H
MOV HOU,#00H
RETI
DELAY30:
MOV R7,#2
W2: MOV R4,#125
W3: MOV R3,#248
DJNZ R3,$
DJNZ R4,W3
DJNZ R7,W2
DJNZ R1,DELAY30
RET
TABLE00:
DW64580,64684,64777,64820
DW64898,64968,65030,64260
DW 64400,64524,65058,63835,64021
TABLE10:
DB66H,52H,36H,22H,12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22H
DB32H,52H,22H,42H,38H,66H,52H,36H,22H,12H,22H,22H,32H,98H
DB 24H,22H,32H,54H,52H,32H,92H,12H,92H,82H,98H,66H,52H,36H,22H
DB 12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22H,32H,52H,22H,42H,38H
DB66H,52H,36H,22H,12H,22H,22H,32H,98H,24H,22H,32H,54H,52H,32H
DB22H,12H,92H,82H,98H,14H,24H,34H,44H,64H,0B4H,64H,32H,52H
DB 62H,0B2H,62H,52H,38H,24H,22H,32H,54H,52H,62H,52H,32H,32H,22H,38H
DB 64H,0B4H,64H,32H,52H,62H,0B2H,62H,52H,38H,22H,22H,22H,32H,52H,52H
DB52H,62H,7FH,74H,04H,58H,6FH
DB 00
TABLE20:
DB 02H,82H
DB 16H,32H,54H,02H,52H
DB 0A6H,32H,54H,02H,52H
DB 64H,74H,0B6H,64H
DB 52H,CH,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
TABLE30:
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
TABLE40:
DB 88h,14h,24h,36H,42H,34H,14H,28H,14H,94H
DB 1fH,88H,14H,24H,34H,32H,42H,54H,14H
DB 46H,32H,54H,22H,32H,32H,22H,2CH,38H,54H,74H
DB 76H,62H,68H,54H,52H,62H,74H,62H,52H,3fH
DB 46H,42H,54H,64H,54H,42H,32H,28H,0a4H,0a2H
DB 92H,84H,94H,1fH,0b8H,68H,46H,52H,68H
DB 74H,72H,72H,74H,62H,52H,3fH,0b8H,68H
DB 46H,52H,68H,64H,62H,62H,64H,42H,32H,2fH
DB 58H,14H,24H,36H,42H,34H,12H,12H,26H,22H,24H,22H,12H
DB94H,9cH,0a8H,0a6H,92H,84H,64H,54H,22H,22H,46H,42H,44H,32H,22H,5fH
DB 00
TABLE50:
DB 82H,92H,12H,14H,12H,14H,92H,82H,12H,14H,22H,14H,92H,12H,22H,24H
DB22H,24H,12H,92H,22H,24H,32H,24H,32H,52H,62H,54H,52H,64H,52H,32H
DB 22H,32H,22H,12H,94H,82H,92H,12H,14H,12H,14H,94H,1cH
DB82H,92H,12H,14H,12H,14H,92H,82H,12H,14H,22H,14H,92H,12H,22H,24H
DB 22H,24H,12H,92H,22H,24H,32H,24H,32H,52H,62H,54H,52H,64H,52H,32H
DB22H,32H,22H,12H,94H,82H,92H,12H,14H,12H,14H,22H,12H,1cH,32H,52H
DB 62H,64H,62H,64H,0b2H,62H,52H,54H,62H,54H,32H,22H
DB12H,14H,12H,14H,24H,3cH,32H,22H,12H,14H,12H,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
DB62H,54H,32H,22H,12H,14H,12H,14H,54H,3cH,32H,22H,12H,14H,12H,14H,22H,
32H
DB 52H,54H,32H,54H,32H,52H,6fH,04H,02H,92H,32H,24H,12H,1fH
DB 00
TABLE60:
DB32H,22H,38H,02H,22H,32H,22H,18H,04H,92H,12H,24H,22H,32H,22H,12H,92H,
92H,88H,04H,32H,22H
DB38H,02H,22H,32H,22H,18H,04H,92H,12H,24H,22H,32H,22H,21H,92H,12H,28H,
04H,32H,22H
DB38H,02H,22H,32H,22H,18H,04H,92H,12H,24H,22H,32H,22H,12H,92H,91H,11H,
88H
DB04H,32H,52H,58H,02H,52H,62H,52H,38H,04H,22H,22H,24H,22H,32H,22H,12H,
92H,92H
DB 12H,12H,1cH,08H,02H,52H,52H,62H,0b2H,72H,72H,62H,32H,22H,22H,22H
DB38H,02H,32H,32H,52H,64H,64H,02H,92H,32H,22H,28H,04H,32H,52H,52H,32H,
54H,02H,0b4H,72H
DB 62H,72H,34H,02H,62H,62H,72H,62H,52H,32H,22H,02H,32H,22H,32H
DB 58H,02H,52H,52H,62H,0b2H,72H,72H,62H,32H,22H,22H,22H
DB38H,02H,32H,32H,52H,64H,64H,02H,92H,32H,22H,28H,04H,32H,52H,52H,32H,
54H,02H,0b4H,72H
DB 62H,72H,34H,02H,62H,62H,72H,62H,52H,32H,22H,02H,84H,92H,1cH
DB 00
TABLE70:
DB66H,52H,34H,54H,0B4H,62H,52H,68H,34H,52H,62H,54H,34H,12H,92H,52H,32H,28
DB 26H,32H,54H,52H,62H,34H,24H,18H,56H,32H,22H,12H,92H,12H,8FH
DB66H,52H,34H,54H,0B4H,62H,52H,68H,34H,52H,62H,54H,34H,12H,92H,52H,32H
,28H
DB26H,32H,54H,52H,62H,34H,24H,18H,56H,32H,22H,12H,92H,12H,8FH
DB66H,52H,34H,54H,0B4H,62H,52H,68H,34H,52H,62H,54H,34H,12H,92H,52H,32H
,28H
DB 26H,32H,54H,52H,62H,34H,24H,18H,56H,32H,22H,12H,92H,12H,8FH
DB 00
TABLE80:
DB86H,92H,12H,22H,32H,52H,68H,63H,52H,34H,62H,0B2H,0B2H,62H,51H,61H,51
H,31H,54H
DB62H,0B2H,0B2H,62H,52H,32H,52H,52H,51H,61H,51H,31H,34H,52H,62H,74H,32
H,52H,52H,32H,21H,31H,21H,11H,24H
DB 32H,52H,52H,32H,22H,12H,24H,32H,52H,52H,32H,62H,52H,61H,51H,31H,21H,21
H,31H,21H,11H,1CH
DB21H,31H,22H,23H,31H,21H,18H,02H,0B2H,0BCH,0B4H,72H,61H,51H,72H,61H,7
1H,61H,51H,61H,71H,61H,6FH
DB86H,94H,12H,22H,32H,52H,64H,62H,51H,31H,52H,21H,31H,21H,33H,62H,0B2H
,0B2H,62H,51H,61H,51H,31H,54H
DB62H,0B2H,72H,61H,51H,51H,61H,51H,31H,54H,61H,0B2H,72H,61H,51H,51H,61
H,51H,31H,32H,21H,11H,32H,51H,61H,54H
DB02H,32H,24H,32H,52H,52H,32H,22H,31H,21H,11H,24H,32H,52H,62H,0B2H,72H
,61H,51H,61H,51H,31H,32H,52H,52H,32H,62H
DB51H,31H,31H,21H,11H,91H,23H,31H,21H,1CH,12H,24H,32H,62H,51H,31H,34H,
0B4H,72H,61H,51H,63H,71H,64H
DB0B2H,54H,72H,62H,71H,61H,54H,61H,51H,31H,21H,34H,73H,61H,54H,22H,32H
,52H,22H,36H,52H,62H,61H,31H,32H,21H,11H,21H,11H,91H,81H
DB94H,52H,62H,52H,42H,32H,22H,32H,52H,0B4H,74H,64H,52H,61H,51H,41H,5CH
,02H,52H,0B4H,74H,63H,51H,61H,51H,31H,21H
DB 00
TABLE90:
DB02H,11H,21H,32H,32H,22H,32H,21H,11H,0A1H,91H,92H,0D1H,91H,83H,91H,0A
2H,91H,81H,94H,11H,0A1H,91H,0A1H,98H,03H,81H,0A1H,0A1H,91H,0A1H
DB98H,04H,02H,11H,21H,32H,32H,22H,32H,21H,31H,51H,11H,13H,31H,22H,22H,
21H,11H,0A1H,11H,13H,11H,11H,0A1H,91H,0A1H
DB11H,93H,94H,03H,81H,11H,0A1H,91H,81H,92H,0A1H,91H,94H,08H,03H,81H,32
H,21H,11H,22H,31H,21H,21H,83H
DB01H,11H,91H,0A1H,11H,61H,51H,11H,34H,01H,31H,21H,31H,48H,23H,31H,32H
,42H,38H,03H,11H,21H,52H,31H
DB33H,31H,31H,41H,51H,61H,23H,21H,21H,41H,31H,21H,13H,0D1H,0D1H,21H,11
H,0A1H,11H,91H,92H,91H,11H,0A1H,91H
DB0A1H,31H,31H,22H,0A1H,11H,14H,01H,11H,21H,31H,63H,31H,42H,51H,31H,31
H,22H,11H,21H,52H,31H,33H,31H,31H,41H
DB51H,61H,23H,21H,21H,41H,31H,21H,13H,0D1H,0D1H,21H,11H,0A1H,11H,91H,92H,91H,11H,0A1H,91H
DB0A2H,41H,31H,22H,31H,21H,12H,12H,11H,11H,21H,31H,63H,51H,32H,11H,21H
,26H,11H,0A1H,18H
DB 00
TABLE100:
DB02H,91H,0A1H,16H,21H,11H,0A6H,81H,0A1H,9CH,02H,91H,0A1H,16H,21H,31H,
24H,21H,0A1H,11H,0A1H
DB9CH,02H,11H,21H,36H,32H,24H,21H,0A1H,11H,0A1H,9CH,02H,91H,0A1H,14H,1
1H,11H,21H,11H,0A4H,04H,04H,02H,0A1H,11H,0A1H,93H,92H
DB02H,61H,71H,0B4H,0B2H,0B1H,0B1H,76H,0B1H,71H,6CH,02H,61H,71H,0B6H,0B
1H,0B1H,76H,0B1H,71H,6CH,02H,51H,61H,56H,61H,51H,54H,51H,0B1H,71H,0B1H
DB 72H,62H,68H,02H,61H,51H,66H,62H,58H,0CH,02H,51H,41H,5FH
DB02H,91H,0A1H,16H,21H,11H,0A6H,81H,0A1H,9CH,02H,91H,0A1H,16H,21H,31H,
24H,21H,0A1H,11H,0A1H
DB9CH,02H,11H,21H,36H,32H,24H,21H,0A1H,11H,0A1H,9CH,02H,91H,0A1H,14H,1
1H,11H,21H,11H,0A4H,04H,04H,02H,0A1H,11H,0A1H,93H,92H
DB02H,61H,71H,0B4H,0B2H,0B1H,0B1H,76H,0B1H,71H,6CH,02H,61H,71H,0B6H,0B
1H,0B1H,76H,0B1H,71H,6CH,02H,51H,61H,56H,61H,51H,54H,51H,0B1H,71H,0B1H
DB 66H,62H,54H,0B2H,71H,61H,6CH
DB 00
END
不错的资料,值得分享