《基于单片机的函数信号发生器毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的函数信号发生器毕业设计.docx(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘 要本文介绍一种用AT89C51单片机构成的波形发生器,可产生方波、三角波、正弦波、锯齿波等多种波形,波形的周期可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。文章给出了源代码,通过仿真测试,其性能指标达到了设计要求。关键词:单片机;DAC;信号发生器1目 录摘 要目 录第一章 绪论1.1单片机概述1.2信号发生器的分类1.3研究内容第二章 方案的设计与选择2.1方案的比较2.2设计原理2.3设计思想2.4设计功能第三章 硬件设计3.1硬件原理框图3.2主控电路3.3数、模转换电路3.4按键接口电路3.5时钟电路3.6显示电路第四章 软件设计4.
2、1程序流程图第五章 总结与展望致 谢参考文献附录1电路原理图附录2 源程序附录 3 器件清单.2第一章 绪论1.1单片机概述随着大规模集成电路技术的发展,中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、(I/O)接口、定时器/计数器和串行通信接口,以及其他一些计算机外围电路等均可集成在一块芯片上构成单片微型计算机,简称为单片机。单片机具有体积小、成本低,性能稳定、使用寿命长等特点。其最明显的优势就是可以嵌入到各种仪器、设备中,这是其他计算机和网络都无法做到的9,10。1.2信号发生器的分类信号发生器应用广泛,种类繁多,性能各异,分类也不尽一致。按照频率范围分类可以分为:超
3、低频信号发生器、低频信号发生器、视频信号发生器、高频波形发生器、甚高频波形发生器和超高频信号发生器。按照输出波形分类可以分为:正弦信号发生器和非正弦信号发生器,非正弦信号发生器又包括:脉冲信号发生器,函数信号发生器、扫频信号发生器、数字序列波形发生器、图形信号发生器、噪声信号发生器等。按照信号发生器性能指标可以分为一般信号发生器和标准信号发生器。前者指对输出信号的频率、幅度的准确度和稳定度以及波形失真等要求不高的一类信号发生器。后者是指其输出信号的频率、幅度、调制系数等在一定范围内连续可调,并且读数准确、稳定、屏蔽良好的中、高档信号发生器。1.3 研究内容本文是做基于单片机的信号发生器的设计,
4、将采用编程的方法来实现三角波、锯齿波、矩形波、正弦波的发生。根据设计的要求,对各种波形的频率和幅度进行程序的编写,并将所写程序装入单片机的程序存储器中。在程序运行中,当接收到来自外界的命令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出。 3 第二章 方案的设计与选择2.1 方案的比较方案三:采用单片机编程的方法来实现。该方法可以通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过改变程序来实现频率的变换。此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做的很高。它不仅采用软硬件结合
5、,软件控制硬件的方法来实现,使得信号频率的稳定性和精度的准确性得以保证,而且它使用的几种元器件都是常用的元器件,容易得到,且价格便宜,使得硬件的开销达到最省。2.2 设计原理数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。89C51单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通讯接口等,只要将89C51再配置键盘及其接口、显示器及其接口、数模转换及波形输出、指示灯及其接口等四部分,即可构成所需的波形发生器,其信号发生
6、器构成原理框图如图2.1所示。 输出滤波放大D/A转换器接口电路89C51单片机图2.1 信号发生器原理框图89C51是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。当数字信号经过接口电路到达转换电路,将其转换成模拟信号也就是所需要的输出波形。52.3 设计思想(1)利用单片机产生方波、正弦波、三角波和锯齿波等信号波形,信号的频率和幅度可变。(2)将一个周期的信号分离成256个点(按X轴等分),每两点之间的时间间隔为T,用单片机的定时器产生,其表示式为:T=T/256。如果单片机的晶振为12MHz,采用定时器方式0,则
7、定时器的初值为: X=213T/Tmec (2.1) 定时时间常数为: TL =(8192T)/MOD256 (2.2)TH=(8192T)/256 (2.3)MOD32表示除32取余数(3)正弦波的模拟信号是D/A转换器的模拟量输出,其计算公式为: Y=(A/2sint)+A/2 (其中A=VREF) (2.4) t=NT (N=1256) (2.5)那么对应着存放在计算机里的这一点的数据为: (2.6) (4)一个周期被分离成256个点,对应的四种波形的256个数据存放在以TAB1-TAB4为起始地址的存储器中。2.4 设计功能(1)本方案利用8155扩展8个独立式按键,6个LED显示器。
8、其中“S4”号键代表方波输出,“S5”号键代表正弦波输出,“S6”号键代表三角波输出,“S7” 号键代表锯齿波输出。(2)“S0”号键为10Hz的频率信号,“S1”号键为100Hz的频率信号,“S2”号键为500Hz的频率信号,“S3”号键为1KHz的频率信号,6个LED显示器输出信号的频率值,选用共阳极LED。(3)利用两片DAC0832实现幅度可调的信号源,(其中一片用来调节幅度,另外一片用来实现信号源的输出)。(4)频率范围:101000Hz。(5)输出波形幅度为05V。第三章 硬件设计3.1 硬件原理框图硬件原理方框图如图3.1所示。放大电路波形输出数/模转换电路单片机键盘电路显示电路
9、图3.1 硬件原理框图3.2 主控电路AT89C51单处机内部设置两个16位可编程的定时器/计数器T0和T1,它们具有计数器方式和定时器方式两种工作方式及4种工作模式。在波形发生器中,将其作定时器使用,用它来精确地确定波形的两个采样点输出之间的延迟时间。模式1采用的是16位计数器,当T0或T1被允许计数后,从初值开始加计数,最高位产生溢出时向CPU请求中断。中断系统是使处理器具有对外界异步事件的处理能力而设置的。当中央处理器CPU正在处理某件事的时候外界发生了紧急事件,要求CPU暂停当前的工作,转而去处理这个紧急事件。在波形发生器中,只用到片内定时器计数器溢出时产生的中断请求,即是在AT89C
10、51输出一个波形采样点信号后,接着启动定时器,在定时器未产生中断之前,AT89C51等待,直到定时器计时结束,产生中断请求,AT89C51响应中断,接着输出下一个采样点信号,如此循环产生所需要的信号波形。图3.2 主控电路图3.3 数/模转换电路由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器DAC0832。DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。但实际上,DAC0832输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,是
11、准模拟量的输出。DAC0832是电流型输出,在应用时外接运放使之成为电压型输出。由图3.3可知,DAC0832的片选地址为7FFFH,当P25有效时,若P0口向其送的数据为00H, 则U1 的输出电压为0V;若P0口向其送的数据为0FFH时, 则U1的输出电压为-5V. 故当U1 输出电压为0V时,由公式 得:Vout = - 5V.当输出电压为- 5V时,可得:Vout = +5V,所以输出波形的电压变化范围为- 5V+ 5V. 故可推得,当P0所送数据为80H时,Vout为0V4。图3.3 数模转换电路73.4 按键接口电路图3.4为键盘接口电路的原理图,图中键盘和8155的PA口相连,A
12、T89C51的P0口和8155的D0口相连,AT89C51不断的扫描键盘,看是否有键按下,如有,则根据相应按键作出反应。其中“S4”号键代表方波输出,“S5”号键代表正弦波输出,“S6”号键代表三角波输出。 “S7”号键代表锯齿波输出,“S0”号键为10Hz的频率信号,“S1”号键为100Hz的频率信号,“S2”号键为500Hz的频率信号,“S3”号键为1KHz的频率信号3。 图3.4 按键接口3.5 时钟电路8051单片机有两个引脚(XTAL1,XTAL2)用于外接石英晶体和微调电容,从而构成时钟电路,其电路图如图3.5所示。电容C1、C2对振荡频率有稳定作用,其容量的选择为30pf,振荡器
13、选择频率为12MHz的石英晶体。由于频率较大时,三角波、正弦波、锯齿波中每一点的延时时间为几微秒,故延时时间还要加上指令时间才能获得较大的频率波形9。 图3.5 时钟电路93.6 显示电路显示电路是用来显示波形信号的频率,使得整个系统更加合理,从经济的角度出发,所以显示器件采用LED数码管显示器。而且LED数码管是采用共阳极接法,当主控端口输出一个低电平后,与其相对应的数码管即变亮,显示所需数据。其器件模型如图3.6所示。图3.6 LED显示电路第四章 软件设计4.1 程序流程图本文中子程序的调用是通过按键的选择来实现,在取得按键相应的键值后,启动计时器和相应的中断服务程序,再直接查询程序中预
14、先设置的数据值,通过转换输出相应的电压,从而形成所需的各种波形。主程序的流程图如图4.1所示,在程序开始运行之后,首先是对8155进行初始化,之后判断信号频率值,如符合所需的频率,则重置时间常数,并通过显示器显示出来,不符则返回。在中断结束后,还要来判断波形是否符合,如符合,则显示其频率,不符则返回,重新判断。图4.1 主程序流程图10 图4.2为各波形子程序的流程图。如图所示,在中断服务子程序开始后,通过判断来确定各种波形的输出,当判断选择的不是方波后,则转向对正弦波的判断,如此反复。如果选择的是方波,则用查表的方法求出相应的数据,并通过D/A转换器将数据转换成模拟信号,形成所需波形信号。图
15、4.2 子程序流程图1214综合实验总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在好几个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际
16、相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好通过这次课程设计之后,一定把以前所学过的知识重新温故。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在宋阳老师的辛勤指导下,终于游逆而解。同时,在宋阳老师那里我学得到很多实用的知识,在
17、次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢! 参考文献1 程全.基于AT89C52实现的多种波形发生器的设计J.周口师范学院学报,2005.22(5):5758.2 周明德.微型计算机系统原理及应用M.北京:清华大学出版社,2002.341364.3 刘乐善.微型计算机接口技术及应用M.北京:北京航空航天大学出版社,2001.258264.4 童诗白.模拟电路技术基础M.北京:高等教育出版社,2000.171202.5 杜华.任意波形发生器及应用J.国外电子测量技术,2005.1:3840.6 张友德.单片微型机原理、应用与实践M.上海:复旦大学出版社,2004
18、.4044. 7 程朗.基于8051单片机的双通道波形发生器的设计与实现J.计算机工程与应用,2004.8:100103.8 张永瑞.电子测量技术基础M.西安:西安电子科技大学出版社,2006.61101.9 李叶紫. MCS-51单片机应用教程M.北京:清华大学出版社,2004.232238.附录1 电路原理图附录2 源程序源程序:ORG 0000HAJM MAINORG 000BHLJMP TC0ORG 0030HMAIN:MOV DPTR,#9FFFH 指向DAC0832(1)MOV A,70HMOVX DPTR,A DAC0832(1)输出MOV DPTR,#7F00H 指向8155命
19、令字端口地址MOV A,#06H 设置A口为输入,B口、C口为输出MOVX DPTR,A 送命令字MOV DPTR,#7F01H 指向A口地址MOVX A,DPTR 读入A口的开关数据JNB ACC.0,K10H 判断是否“0”号键,若是则转输出10Hz信号JNB ACC.1,K100H 判断是否“1”号键,若是则转输出100Hz信号JNB ACC.2,K500H 判断是否“2”号键,若是则转输出500Hz信号JNB ACC.3,K1K 判断是否“3”号键,若是则转输出1KHz信号AJMP MAINLED1: MOV R3,#06H 设置6个LED显示MOV R2,#01H 选通第一位LED数
20、据MOV R1,#50H 送显示缓冲区首址GN1:MOV DPTR,#7F03H 指向C口地址MOV A,R2 位选通数据送AMOVX DPTR,A 位选通数据送C口RL A 选通下一位MOV R2,A 位选通数据送R2中保存14 MOV A, R1 取键值MOV DPTR,#TAB 送LED显示软件译码表首址MOVC A,A+DPTR 查表求出键值显示的段码MOV DPTR,#7F02H 指向B口地址MOV DPTR,A 段码送显示LCALL LOOP1 调延时子程序INC R1 指向下一位显示缓冲区地址DJNZ R3,GN1 循环显示6个LEDRETLOOP1:MOV R4,#08H 延时
21、子程序LOOP:MOV R5,#0A0HDJNZ R5,$DJNZ R4,LOOPRETK10H:MOV 50H,#00H 显示10HzMOV 51H,#00HMOV 52H,#00HMOV 53H,#00HMOV 54H,#01HMOV 55H,#00HLCALL LED1 调显示子程序MOV TMOD,#00HMOV TL0,#15HMOV TH0,#9EHAJMP PDK100H:MOV 50H,#00H 显示100HzMOV 51H,#00HMOV 52H,#00HMOV 53H,#01HMOV 54H,#00H15MOV 55H,#00HLCALL LED1 调显示子程序MOV TM
22、OD,#00HMOV TL0,#08HMOV TH0,#0F6HAJMP PDK500H:MOV 50H,#00H 显示500HzMOV 51H,#00HMOV 52H,#00HMOV 53H,#05HMOV 54H,#00HMOV 55H,#00HLCALL LED1 调显示子程序MOV TMOD,#00HMOV TL0,#01HMOV TH0,#0FEHAJMP PDK1K:MOV 50H,#00H 显示1KHzMOV 51H,#00H16MOV 52H,#01HMOV 53H,#00HMOV 54H,#00HMOV 55H,#00HLCALL LED1 调显示子程序MOV TMOD,#0
23、0HMOV TL0,#01HMOV TH0,#0FFHPD:JNB ACC.4,KE0 判断是否“4”号键按下,若是则转方波输出JNB ACC.5,KE1 判断是否“5”号键按下,若是则转正弦方波输出JNB ACC.6,KE2 判断是否“6”号键按下,若是则转三角波输出JNB ACC.7,KE3 判断是否“7”号键按下,若是则转锯齿波输出LJMP PDKE0:MOV R7,#00HLCALL LED1 调显示子程序MOV R6,#00HAJMP GNKE1:MOV R7,#02HLCALL LED1 调显示子程序MOV R6,#00HAJMP GNKE2:MOV R7,#02HLCALL LE
24、D1 调显示子程序MOV R6,#00HAJMP GN KE3:MOV R7,#02HLCALL LED1 调显示子程序MOV R6,#00HGN: SETB TR0SETB ET0SETB EALOP1:JNB ACC.0,K10H 判断是否“0”号键,若是则转输出10Hz信号JNB ACC.1,K100H 判断是否“1”号键,若是则转输出100Hz信号JNB ACC.2,K500H 判断是否“2”号键,若是则转输出500Hz信号17JNB ACC.3,K1K 判断是否“3”号键,若是则转输出1KHz信号AJMP LOP1TC0:CJNE R7,#00H,TC1 发送方波程序MOV DPTR
25、,#TAB1 送方波数据表首址MOV A,R6 发送数据寄存器MOVC A,A+DPTRMOV DPTR,#0AFFFH 指向DAC0832(2)MOVX DPTR,A DAC0832(2)输出MOV A,R6INC A MOV R6,ACJNE A,#32,QL1MOV R6,#00HAJMP QL1TC1:CJNE R7,#01H,TC2 发送正弦波程序MOV DPTR,#TAB2 送正弦波数据表首址MOV A,R6MOVC A, A+DPTRMOV DPTR,#0AFFFH 指向DAC0832(2)MOVX DPTR,A DAC0832(2)输出MOV A,R6INC AMOV R6,A
26、CJNE A,#32,QL1MOV R6,#00HAJMP QL1TC2:CJNE R7,#02H,QL1 发送三角波程序MOV DPTR,#TAB3 送三角波数据表首址MOV A,R6MOVC A,A+DPTR18MOV DPTR,#0AFFFH 指向DAC0832(2)MOVX DPTR,A DAC0832(2)输出MOV A,R6INC AMOV R6,ACJNE A,#32,QL1MOV R6,#00HAJMP QL1TC3:CJNE R7,#03H,QL1 发送锯齿波程序MOV DPTR,#TAB4 送锯齿波数据表首址MOV A,R6MOVC A, A+DPTRMOV DPTR,#0
27、AFFFH 指向DAC0832(2)MOVX DPTR,A DAC0832(2)输出MOV A,R6INC AMOV R6,ACJNE A,#32,QL1MOV R6,#00HQL1: RETITAB: DB 0C0H,0F9H,0A4H,0B0H,99H,82H,0F8H,80HTAB1: DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFHDB 0FFH,0FFH,0FFH,0F
28、FH,0FFH,0FFH, 0FFH, 0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFHDB 0FFH,0FFH
29、,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH, 0FFH DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H19 DB
30、00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00HDB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00HDB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00HDB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00HDB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00HDB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00HDB 00H, 00H, 00
31、H, 00H, 00H, 00H, 00H, 00HDB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00HDB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00HDB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00HDB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00HDB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00HDB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00HDB 00H, 00H, 00H, 00H, 00H,
32、00H, 00H, 00HTAB2: DB 80H, 83H, 86H, 89H, 8DH,90H,93H,96H DB 99H, 9CH, 9FH,0A2H,0A5H,0A8H,0ABH,0AEH DB 0B1H, 0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H DB 0C7H, 0CAH,0CCH,0CFH,0D1H, 0D4H,0D6H,0D8H DB 0DAH, 0DDH,0DFH,0E1H,0E3H, 0E5H,0E7H,0E9H DB 0EAH, 0ECH,0EEH,0EFH,0F1H, 0F2H,0F4H,0F5H DB 0F6H, 0F7H, 0F8H,0
33、F9H, 0FAH, 0FBH,0FCH,0FDH DB 0FDH, 0FEH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH DB 0FFH, 0FFH,0FFH,0FFH,0FFH, 0FFH,0FEH,0FDH DB 0FDH, 0FCH,0FBH,0FAH,0F9H, 0F8H,0F7H,0F6H DB 0F5H, 0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAH DB 0E9H, 0E7H,0E5H,0E3H,0E1H, 0DEH,0DDH,0DAH DB 0D8H, 0D6H,0D4H,0D1H,0CFH, 0CCH,0CAH,0C7H DB 0
34、C5H, 0C2H,0BFH,0BCH,0BAH, 0B7H,0B4H,0B1H DB 0AEH, 0ABH,0A8H,0A5H,0A2H, 9FH, 9CH, 99H DB 96H, 93H, 90H, 8DH, 89H, 86H, 83H, 80H DB 80H, 7CH, 79H, 78H, 72H, 6FH, 6CH, 69H 20DB 66H, 63H, 60H, 5DH, 5AH, 57H, 55H, 51H DB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AH DB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27H DB
35、25H, 22H, 20H, 1EH, 1CH, 1AH, 18H, 16H DB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AH DB 09H, 08H, 07H, 06H, 05H, 04H, 03H, 02H DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 01H, 02H DB 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09H DB 0AH, 0BH, 0DH, 0EH, 10H, 11H, 13H, 15H DB 16H, 1
36、8H, 1AH, 1CH, 1EH, 20H, 22H, 25H DB 27H, 29H, 2BH, 2EH, 30H, 33H, 35H, 38H DB 3AH, 3DH, 40H, 43H, 45H, 48H, 4CH, 4EH DB 51H, 55H, 57H, 5AH, 5DH, 60H, 63H, 66H DB 69H, 6CH, 6FH, 72H, 76H, 79H, 7CH, 80HTAB3: DB 00H,02H,04H,06H,08H,0AH,0CH,0EH DB 10H,12H,14H,16H,18H,1AH,1CH,1EH DB 20H,22H,24H,26H,28H,2
37、AH,2CH,2EH DB 30H,32H,34H,36H,38H,3AH,3CH,3EH DB 40H,42H,44H,46H,48H,4AH,4CH,4EH DB 50H,52H,54H,56H,58H,5AH,5CH,5EH DB 60H,62H,64H,66H,68H,6AH,6CH,6EH DB 70H,72H,74H,76H,78H,7AH,7CH,7EH DB 80H,82H,84H,86H,88H,8AH,8CH,8EH DB 0A0H,0A2H,0A4H,0A6H,0A8H,0AAH,0ACH,0AEH DB 0B0H,0B2H,0B4H,0B6H,0B8H,0BAH,0BCH,0BEH DB 0C0H,0C2H,0C4H,0C6H,0C8H,0CAH,0CCH,0CEH DB 0D0H,0D2H,0D4H,0D6H,0D8H,0DAH,0DCH,0DEH DB 0E0H,0E2H,0E4H,0E6H,0E8H,0EAH,0ECH,0EEH DB 0F0H,0F2H,0F4H,0F6H,0F8H,0FAH,0FCH,0FEH DB 0FFH,0FEH,0FCH,0FAH,0F8H,0F6H,0F4H,0F2H DB 0F0H,
限制150内