1、单片机课程设计 目录目录第一章 绪论31.1 概述31.2 设计目的31.3 设计任务和内容3第二章 总体设计及核心器件简介42.1 总体设计42.2 MCS-51之80C51 4第三章 单元电路模块设计63.1 按键电路 63.2 时钟电路73.3 LED数码管显示电路73.4 复位电路 93.5 总体功能介绍11第四章 软件编程设计12第五章 设计体会及总结13参考文献 1420附录一 程序流程图15附录二 系统程序设计16单片机课程设计 第一章第一章 绪论1.1 概述单片微型计算机简称单片机,又称微控制器,是微型计算机的一个重要分支。单片机是20世纪七十年代中期发展起来的一种大规模集成电
2、路芯片,是集CPU、RAM、ROM、I/O接口和终端系统与同一硅片的器件。20世纪八十年代以来单片机发展迅速各类新产品不断涌现出现许多新产品,出现了许多高性能新型机种现已成为工业控制和各控制领域的支柱产业之一。由于单片机功能功能强、体积小、可靠性好、价格便宜等独特优点因而受到人们的高度重视并取到了一系列的科研成果,成为传统工业技术改造和新产品更新换代的理想机种,并具有广阔的发展前景。本设计运用所学的单片机知识,将单片机与普通秒表相结合设计了电子秒表,具有低功耗,保密性好等优良特点,具有广阔的市场前景1.2 设计目的加强对单片机和C51语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、
3、选择芯片器件、模块化编程等多项知识。 (1)用单片机模拟实现具体应用使个人设计系统能够真正使用。(2)把理论知识与实践知识相结合,充分发挥个人能力,并在实践中得到锻炼。(3)提高利用已学的知识分析和解决问题的能力。(4)提高动手实践能力。1.3 设计任务及内容1.3.1设计任务结合教材及参考资料,用80C51单片机模拟实现电子秒表的开启,计时,停止并显示时间等功能。1.3.2 设计内容(1)填写设计任务书(2)进行总体设计,画出原理图(3)用proteus软件画出PCB板(4)用Keil软件编写程序(5)在proteus里模拟并调试程序达到期望功能单片机课程设计 第二章第二章 总体设计及核心器
4、件简介2.1 总体设计整个设计以MCS-51单片机为核心,由LED数码管显示,控制开关,位驱动电路等组成。 模块电路如图 MCS-51单片机控制开关三位数码管位驱动2.2 80C51简介2.2.1 80C51单片机简介80C51是MCS-51系列单片机中的一个子系列,是一族高性能兼容型单片机。其内部资源分配和性能如下;8位CPU;寻址能力2X64K;4KB的内部ROM和128B内部RAM;四个8位I/O接口电路;一个串行全双工异步接口;五个中断源和两个中断优先权;采用CMOS工艺电流小,低功耗。2.2.2 80C51各管脚主要功能简介下图为80C51PCB图: 图2.1 (1)Vss(20脚)
5、:接地(2)VCC(40脚): 主电源+5V(3)XTAL1(19脚):接外部晶体的一端。在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,对于HMOS单片机,该端引脚必须接地;对于CHMOS单片机,此引脚作为驱动端。XTAL2(18脚):接外部晶体的另一端。在片内它是一个振荡电路反相放大器的输出端,振荡电路的频率是晶体振荡频率。若需采用外部时钟电路,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬浮。(4) RST(9脚): 单片机刚接上电源时,其内部各寄存器处于随机状态,在该脚输入24个时钟周期宽度以上的高电平将使单片机复位(RESET)(5)PSEN(2
6、9脚): 在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。PSEN端同样可驱动8个LSTTL负载。我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。(6)ALE/PROG(30脚):在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。PSEN端同样可驱动8个LSTTL负载。我们
7、根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。(7)EA/VPP(31脚):当EA端输入高电平时,CPU从片内程序存储器地址0000单元开始执行程序。当地址超出4KB时,将自动执行片外程序存储器的程序。当EA输入低电平时,CPU仅访问片外程序存储器。在对87C51EPROM编程时,此引脚用于施加编程电压VPP。(8)输入/输出引脚:1)P0.0P0.7 (39脚32脚)2)P1.0P1.7 (01脚08脚)3)P2.0P2.7 (26脚21脚)4)P3.0P3.7 (10脚17脚)单片机课程设计 第五章第三章 单元电路模块设计3.1 按键电路的选择与设计连
8、接形式如下: 图3.1按键电路本设计中有四个按键,分别实现启动、开始、停止、和复位功能。这四个键可以采用中断或是查询的方法来识别。对于开始键,主要功能在于开始计时和实时显示所经历的时间,而停止键主要用于停止计时并显示从开始到当前时刻的时间,对复位键采用查询的方式,而对于开始和停止键采用外部中断。按键电路中由于采用了外部中断,所以需要用到P3口的第二功能。P3口引脚的第二功能如下表P3口引脚第二功能表 P3口引脚特殊功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断0请求输入端)P3.3INT1(外部中断1请求输入端)P3.4 T0(定时器/计数器0计数脉冲输
9、入端)P3.5 T1(定时器/计数器1计数脉冲输入端)P3.6WR(片外数据存储器写选通信号输出端)P3.7 RD(片内数据存储器读选通信号输出端)3.2 时钟电路的选择与设计单片机的时钟信号用来提供单片机内各种微操作的时间基准,80c51片内设有一个由反向放大器所构成的振荡电路,XTAL1和 XTAL2分别为振荡电路的输入和输出端,80c51单片机的时钟信号通常用两种电路形式得到:内部振荡方式与外部振荡方式。外部方式的时钟很少用,若要用时,只要将XTAL1接地,XTAL2接外部振荡器就行。对外部振荡信号无特殊要求,只要保证脉冲宽度,一般采用频率低于12MHz的方波信号。时钟发生器把振荡频率两
10、分频,产生一个两相时钟信号P1和P2供单片机使用。P1在每一个状态S的前半部分有效,P2在每个状态的后半部分有效。本设计采用的内部振荡方式,内部振荡方式所得的时钟信号比较稳定,实用电路中使用较多。本设计系统的时钟电路如图3.2所示。只要按照所示电路进行设计连接就能使系统可靠起振并能稳定运行。图中,电容器C1、C2起稳定振荡频率、快速起振的作用,电容值一般为533pF。但在时钟电路的实际应用中一定要注意正确选择其大小,并保证电路的对称性,尽可能匹配,选用正牌的瓷片或云母电容,如果可能的话,温度系数尽可能低。本设计中采用大小为30pF的电容和12MHz的晶振。 图3.2振荡电路 3.3 LED数码
11、管显示电路选用的共阴极显示数码管如下: 数码显示管分为共阳数码管和共阴数码管两种。共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起,如图3.3(b),通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起,如图(c),通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端,当某段驱动电路的输出端为高电平
12、时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。 图3.3 (a)数码管引脚图 (b)共阳极内部结构图 (c)共阴极内部结构图本设计采用共阴极数码显示管做显示电路,由于采用的是共阴的数码显示管,所以只要数码管的a、b、c、d、e、f、g、h引脚为高电平,那么其对应的二极管就会发光,使数码显示管显示09的编码见表3.1。表3.1 共阴极数码显示管字型代码字型共阴极代码字型共阴极代码03FH56DH106H67DH25BH707H34FH87FH466H96FH3.4
13、复位电路的选择与设计关于单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。当80c51单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就完成了复位操作。如果RST持续为高电平,单片机就处于循环复位状态,而无法执行程序。因此要求单片机复位后能脱离复位状态。而本系统选用的是12MHz的晶振,因此一个机器周期为1s,那么复位脉冲宽
14、度最小应为2s。在实际应用系统中,考虑到电源的稳定时间,参数漂移,晶振稳定时间以及复位的可靠性等因素,必须有足够的余量。根据应用的要求,复位操作通常有两种基本形式:上电复位、手动复位。上电复位要求接通电源后,自动实现复位操作。80C51单片机的上电复位POR(Power On Reset)实质上就是上电延时复位,也就是在上电延时期间把单片机锁定在复位状态上。在单片机每次初始加电时,首先投入工作的功能部件是复位电路。复位电路把单片机锁定在复位状态上并且维持一个延时(记作TRST),以便给予电源电压从上升到稳定的一个等待时间;在电源电压稳定之后,再插入一个延时,给予时钟振荡器从起振到稳定的一个等待
15、时间;在单片机开始进入运行状态之前,还要至少推迟2个机器周期的延时。上述一系列的延时,都是利用在单片机RST引脚上外接一个RC支路的充电时间而形成的。典型复位电路如图3.4(a)所示,其中的阻容值是原始手册中提供的。在经历了一系列延时之后,单片机才开始按照时钟源的工作频率,进入到正常的程序运行状态。在电源电压以及振荡器输出信号稳定之后,又等待了一段较长的延时才释放RST信号,使得CPU脱离复位锁定状态;而RST信号一旦被释放,立刻在ALE引脚上就可检测到持续的脉冲信号8。图3.4 上电复位延时电路由于标准80C51的复位逻辑相对简单,复位源只有RST一个(相对新型单片机来说,复位源比较单一),
16、因此各种原因所导致的复位活动以及复位状态的进入,都要依靠在外接引脚RST上施加一定时间宽度的高电平信号来实现。标准80C51不仅复位源比较单一,而且还没有设计内部上电复位的延时功能,因此必须借助于外接阻容支路来增加延时环节,如图3.4(a)所示。其实,外接电阻R还是可以省略的,理由是一些CMOS单片机芯片内部存在一个现成的下拉电阻Rrst。因此,在图3.4(a)基础上,上电复位延时电路还可以精简为图3.4(b)所示的简化电路(其中电容C的容量也相应减小了)。在每次单片机断电之后,须使延时电容C上的电荷立刻放掉,以便为随后可能在很短的时间内再次加电作好准备。否则,在断电后C还没有充分放电的情况下
17、,如果很快又加电,那么RC支路就失去了它应有的延迟功能。因此,在图3.4(a)的基础上添加一个放电二极管D,上电复位延时电路就变成了如图3.4(c)所示的改进电路。也就是说,只有RC支路的充电过程对电路是有用的,放电过程不仅无用,而且会带来潜在的危害。于是附加一个放电二极管D来大力缩短放电持续时间,以便消除隐患。二极管D只有在单片机断电的瞬间(即VCC趋近于0 V,可以看作VCC对地短路)正向导通,平时一直处于反偏截止状态。手动复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。单片机要完成复位,必须向复位端输出并持续两个机器周期以上的高电平,从而实现复位操
18、作。本设计采用上电且开关复位电路,如图3.5所示上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。图3.5 单片机复位电路3.5总体功能介绍在本设计中,首先打开电源开关后显示8,每秒循环左移一位,然后按下启动键,为计时做准备。按A键开始计时,实时显示所经历的时间,按B键停止计时并显示从开始到当前时刻的时间,精确到0.1秒,量程为099.9秒。系统总电路由以上设计的显示电路,时钟电路,按键电路和复位电路组成,只要将单片机与以上各部分电路合理的连接就组成了系统总电路。系统总电路图如附图1所示。80c5
19、1单片机为主电路的核心部分,各个电路均和单片机相连接,由单片机统筹和协调各个电路的运行工作。80c51单片机提供了XTAL1和XTAL2两个专用引脚接晶振电路,因此只要将晶振电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电路时要尽量使晶振电路靠近单片机,这样可以为单片机提供稳定的始终脉冲。 复位电路同晶振电路,单片机设有一个专用的硬件复位接口,并设置为高电平有效。按键电路与单片机的端口连接可以由用户自己设定,本设计中软件复位键设为低电平有效。而另外的开始键和暂停键两键使用了外部中断,所以需要连接到单片机的特殊接口P3.3和P3.2,这两个I/O口的第二功能分别为单片机的外部中断1端
20、口和外部中断0端口。同样设置为位低电平有效。显示电路由三个数码管组成,采用动态显示方式,八位段控制接P0口,P0.0P0.7分别控制数码显示管的a、b、c、d、e、f、g、dp显示,80c51的P0口没有集成上拉电阻,高电平的驱动能力很弱,所以需要接上拉电阻来提高P0的高电平驱动能力。三位位控制则由低位到高位分别接到P2.2P2.4口,NPN三极管2N1711做为位控制端的开关,当P2.2P2.4端口任意一个端口为高电平时,与其相对应的三极管就导通,对应的数码管导通显示。通过以上设计已经将各部分电路与单片机有机的结合到一起,硬件部分的设计以大功告成,剩下的部分就是对单片机的编程,使单片机按程序
21、运行,实现数字电子秒表的全部功能。第四章 软件编程设计 本设计采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。本系统程序主要模块由主程序、定时中断服务程序、外部中断0服务程序和外部中断1服务程序组成。其中主程序是整个程序的主体。可以对各个中断程序进行调用。协调各个子程序之间的联系。系统通电后,首先对系统进行初始化,包括设置各入口地址、中断的开启、对各个数据
22、缓存区清“0”、赋定时器初值,初始化完毕后,就进入数码管显示程序。数码管显示程序对显示缓存区内的数值进行调用并在数码管上进行动态显示。数码管循环显示数字8,显示一次就进行一次扫描,查询复位键是否按下,当复位键按下后,程序返回开始,重新对系统进行初始化。当没有按下复位键时,则扫描启动键是否按下,当启动键没有按下则循环显示数字8,当启动键按下之后,数码管显示全部为0。再查询到A键是否按下,按下后则开始计时,并且实时显示当前所经历的时间,如果没按下,则数码管始终显示数字0。程序再查询B键是否按下,如果B键按下,则停止计时,并且显示从开始到当前时刻的时间,若未被按下则继续计时。在主程序中还进行了赋寄存
23、区的初始值、设置定时器初值、延时以及开启外部中断等操作,当定时时间到后就转去执行定时中断程序。当外部中断有请求则去执行外部中断服务程序,并在执行完后返回主程序。第五章 设计体会与总结在这次单片机课程设计中,我收获了很多,不仅对于单片机的实践应用有了较深刻的认识,而且使我意识到团队合作的重要性。在此次设计中,由我担任组长,我对我们小组实行了分工合作的方法,充分发挥队员的才能和长处,目的让他们的优点得到充分的发挥,在这次对我印象最深的是:我、张静与邱林建同学负责电路原理图模块。为了实现设计结果的形象化、逼真化,我们采用了proteus电子软件,在开始画电路图时感觉异常的艰难:一方面是电路原理方面的
24、问题;另一方面是工具的软件的问题,我们对于proteus软件都很陌生、全英文,都是初学者,只能在摸索中前行,边看着从图书馆借来的有关软件的指导书边实践操作着。慢慢地,对proteus这个软件也算有了一些了解才不再那么困难。后来很快我们在指导书和同学的帮助下完成了原理图的绘制。此时我们负责程序编制工作的同学也完成了程序的编制、调试。我们迫不及待的想要看到设计程序的结果,所以我们将已编译好的目标代码文件*.HEX调入绘制好的原理图中进行模拟仿真,可结果数码管一个都没有亮,我们都有些失望但谁都没有灰心。我们分别找自己在哪方面出现了错误,负责程序的开始检查起程序,查完程序没有问题,开始仔细认真的分析电
25、路,后来发现是数码管选用型号不对,所以先拆掉了其中一个换了一个另一种型号,结果真的亮了,我们兴奋极了。然后队员很快把另两个也都换了,这次数码管是都全亮了,但结果并不是我们预期的结果。我们只好再次认真的检查,经过一番检查,发现有一处电路不该联通的地方用了黑点使其接通了,赶紧改正了过来,再次模拟运行了一遍,可是好像正确结果不让我们“不历尽磨难”就不出来似的,依然没有完全达到想要的结果。我们不得不再次一遍又一遍的分析检查。在不知检查了多少遍时队员感到了颓然与劳累,然后发起牢骚想要放弃,我们没有放弃,而是相互鼓励,看看同和我们负责电路原理图的邱林建同学仍在不骄不躁的检查分析着电路,她不得不反思自己,她
26、应该学习他沉着的心态。在大家的努力下,终于我们找出了另一个错误原因,原来是其中一个上拉电阻阻值用错了。由此我明白了,要做好这次设计不仅要有对单片机的理论知识而且还要有足够的耐心、坚持和独立思考的能力。其次在软件程序设计方面,我们首先完成大的模块,然后一点一点的细化程序,我们感觉自己的程序没有错误,但是经过软件一调试,错误百出,我们又开始回到课本,认真的学习,然后认真的修改程序,我们知道我们最后的结果全靠我们的设计程序上,程序错了,他们做的再好也不能实现预期的效果,我们每调试一次我们都保持原本,设计有可能最后回到最开始的方案。通过课程设计,我发现了自己的很多基础知识还是没有掌握,对一些知识的理解
27、是有误的。还明白了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了仔细认真、耐心和努力,组一个组长要有一定的领导能力,要充分发挥队员的优点和长处,这将为自己今后的学习和工作做出了很好的帮助。由于学到知识有限和时间的原因,我还想设计出把按停止时显示的数保存,然后再开始计时,最后把每次停止的数依次显示出来。参考文献:1 胡汉才 单片机原理及其接口技术(第二版)清华大学出版社2004 2 李邓化,彭书华,许晓飞智能检测技术及仪表科学出版社,2007:194-2013 戴佳. 单片机C51语言应用程序设计. 电子工业出版社, 2006.7:168-1694 朱民雄.计算机语言技术. 北京航空
28、航天大学出版社,2002.1:103-1055 李鸿. 单片机原理及应用. 湖南大学出版社. 2004:8:72-736 刘建清. 单片机技术. 国防工业出版社, 2006.8: 104-105 7 杨宁,胡学军单片机与控制技术北京航空航天大学出版社,2005-03:306-单片机课程设计 附录一:程序流程图对定时器/计数器初始化程序开始数码管循环显示8A键是否按下?N开中断并启动定时器定时器溢出中断对定时器重新赋值进行加一操作后重新计算时间往P0口送显示时间数码管显示B键是否按下?ND键是否按下?停止计时,显示时间NY开始C键是否按下?数码管全显示0N结束YYY附录二:系统程序设计 ORG
29、0000H LJMP MAIN ORG 0003H ;外部中断INT0中断入口 LJMP KAISHI ORG 000BH ;定时器T0中断入口 LJMP UPDATE ORG 0013H ;外部中断INT1中断入口 LJMP TINGZHIMAIN: MOV DPTR, #TAB ;存入表头地址 MOV TMOD, #01H ;置T0为方式1 MOV TH0, #3CH ;赋定时器初值,50毫秒 MOV TL0, #0B0H MOV 7BH, #00H ;0.1秒的存储空间 MOV 7CH, #00H ;1秒的存储空间 MOV 7DH, #00H ;10秒的存储空间 MOV R2, #00H
30、 MOV R3, #00H MOV R4, #00H SETB EA ;CPU开中断 SETB EX0 ;开外部中断0 SETB EX1 ;开外部中断1 SETB IT0 ;外部中断0位边沿触发方式 SETB IT1 ;外部中断1位边沿触发方式 SETB ET0 ;定时器0允许位XIAN1: MOV P0, #0FFH ;显示数字8 SETB P2.2 ;接通100ms数码管 LCALL DELAY2 ;调用延时程序2 CLR P2.2 ;断开100ms数码管 MOV P0, #0FFH SETB P2.3 LCALL DELAY2 CLR P2.3 MOV P0, #0FFH SETB P2
31、.4 LCALL DELAY2 CLR P2.4 JNB P1.0,XIAN2 ;按下启动键,则跳转到XIAN2 LJMP XIAN1 ;返回显示程序,重新进行显示XIAN2: MOV A, 7BH ;显示0.1s位数字 MOVC A, A+DPTR ;查表 MOV P0, A SETB P2.2 LCALL DELAY1 ;调用DELAY1 CLR P2.2 MOV A, 7CH ;显示1s位数字 MOVC A, A+DPTR MOV P0, A SETB P2.3 LCALL DELAY1 CLR P2.3 MOV A, 7DH ;显示10s位数字 MOVC A, A+DPTR MOV P
32、0, A SETB P2.4 LCALL DELAY1 CLR P2.4 MOV P0, #80H ;显示小数点 SETB P2.3 LCALL DELAY1 CLR P2.3 LJMP XIAN2 ;返回显示程序,重新进行显示KAISHI:LCALL DELAY ;调用延时程序SETB TR0 ;启动定时器T0 RETI ;中断返回TINGZHI:CLR TR0 ;停止定时器T0 RETIUPDATE: MOV TH0, #3CH ;重赋定时器初值 MOV TL0, #0B0H MOV R5, #0FFH MOV A, 7BH ADD A, #01H ;100ms位加1 MOV 7BH, A
33、 MOV A, R2 ADD A, #01H MOV R2, A CJNE R2, #0AH, EXIT ;判断100ms位是否满10 MOV 7BH, #00H ;对100ms位清零 MOV R2, #00H MOV A, 7CH ADD A, #01H ;1s位加一 MOV 7CH, A MOV A, R3 ADD A, #01H MOV R3, A CJNE R3, #0AH, EXIT ;判断1s位是否满10 MOV 7CH, #00H ;对1s位清零 MOV R3, #00H MOV A, 7DH ADD A, #01H ;10s位加一 MOV 7DH, A MOV A, R4 AD
34、D A, #01H MOV R4, A CJNE R4, #0AH, EXIT ;判断10s位是否满10 MOV 7DH, #00H ;对10s位清零EXIT: RETIDELAY: MOV R7, #0F8H ;50毫秒延时程序DEL1: MOV R6, #64HDEL2: DJNZ R6, DEL2 NOP DJNZ R7, DEL1 RET ;返回 DELAY1: MOV R7 ,#02H ;计时用延时程序DEL11: MOV R6,#0FFHDEL22: DJNZ R6, DEL22 NOP DJNZ R7,DEL11 RETDELAY2: MOV R5,#64H ;循环用延时程序1秒DEL51: MOV R6,#14HDEL31: MOV R7,#0F8H DJNZ R7,$ DJNZ R6,DEL31DJNZ R5,DEL51RETTAB: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH END
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922