第5章-单片机汇编指令系统应用实例

合集下载

单片机-第五章 单片机中断系统

单片机-第五章 单片机中断系统

(1)CPU正在执行一个同级或高优先级的中断服务程序; (2)正在执行的指令尚未执行完; (3)正在执行中断返回指令RETI或者对寄存器IE、IP进 行读/写的指令。 CPU在执行完上述指令之后,要再执行一条指令,才 能响应中断请求。
二、中断响应过程 从中断请求发生直到被响应,准备去执行中断服务程 序,此过程即中断响应过程。中断响应过程一般包括如下几 个阶段: 1、中断采样并置位 中断采样过程:CPU在每个机器周期S5P2期间顺序对 中断源采样、置中断标志。 2、查询标志 在中断采样后的下一个周期的S6按优先级顺序查 询中断标志。
第5章 MCS-51单片机中断系统
5.1.1中断的概念
单片机系统中,CPU和外部设备之间不断进行信息的传 输。通常CPU和外设之间的信息传送方式有以下几种: 程序控制方式 中断方式 直接存储器存取(DMA)方式
1、 程序控制方式 可以分为以下两种方式。 (1)无条件传送方式 外设始终处于就绪状态,CPU不必查询外设的状 态,直接进行信息传输,称为无条件传送方式。 此种信息传送方式只适用于简单的外设。如开 关和数码段显示器等。
三、中断响应的时间
一般来说,中断的响应时间最短为3个机器周期,最长 为8个机器周期。 一般中断请求标志位查询占1个机器周期。而机器周期 又恰好是指令的最后一个机器周期。执行此指令后,CPU 将响应中断,产生硬件长调用指令。 长调用LCALL指令需要2个机器周期。这样,中断响应 时间为3个机器周期。
是不可寻址的
在同级的几个中断源中同时发生请求时, 内部对同级的各中断源的优先级别有一个规 定的查询顺序: 自然优先级
外部中断请求 INT0 最高 定时/计数器 T0 外部中断请求 INT1 定时/计数器 T1 串行口 UART 最低 定时/计数器 T2

单片机原理及应用教程(C语言版)-第5章 MCS-51单片机的中断系统

单片机原理及应用教程(C语言版)-第5章 MCS-51单片机的中断系统

5.2.5 中断允许控制
例5-1 假设允许INT0、INT1、T0、T1中断,试 设置IE的值。 (2)汇编语言程序 按字节操作: MOV IE,#8FH 按位操作: SETB EX0 ;允许外部中断0中断 SETB ET0 ;允许定时器/计数器0中断 SETB EX1 ;允许外部中断1中断 SETB ET1 ;开定时器/计数器1中断 SETB EA ;开总中断控制位
IP (B8H)
D7 —
D6 D5 D4 D3 D2 D1 D0 — PT2 PS PT1 PX1 PT0 PX0
PT2:定时器/计数器T2的中断优先级控制位 PT2设置1则T2为高优先级,PT2设置0则T2为 低优先级。 后面各位均是如此,设置1为高优先级,设置0 为低优先级,不再一一赘述。 PS:串行口的中断优先级控制位。 PT1:定时器/计数器1的中断优先级控制位。 PX1:外部中断1的中断优先级控制位。 PT0:定时器/计数器0的中断优先级控制位。 PX0:外部中断0的中断优先级控制位。
5.2.4 中断请求标志
4.定时器/计数器T2中断请求标志
T2CON D7 D6 D5 (C8H) TF2 EXF2 D4 D3 D2 D1 D0
EXF2:定时器/计数器2的外部触发中断请求标志 位。T2以自动重装或外部捕获方式定时、计数,当 T2EX(P1.1)引脚出现负跳变时,TF2由硬件置1, 向CPU请求中断,CPU响应中断后,EXF2不会被硬 件清0,需要在程序中以软件方式清0。
5.2.3 外中断触发方式
TCON格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IT0=1,外中断0为下降沿触发 CPU在每一个机器周期的S5P2期间对P3.2引 脚采样,若上一个机器周期检测为高电平,紧挨着 的下一个机器周期为低电平,则使IE0置1。 IT1:外中断1触发方式控制位。功能同IT0

第5章-单片机汇编指令系统应用实例

第5章-单片机汇编指令系统应用实例
3
5.1 LED点阵应用编程
汉字显示屏到处可见,广泛应用于汽车报站器、广告屏等。8*8 LED点阵有单 色点阵(16引脚)与双色点阵(24引脚)之分,实物如图5-1所示。
图5-1 单色点阵实物与引脚排列
4
5.1 LED点阵应用编程 1.单色LED点阵
点阵屏有两个类型,一类为共阴极,另一类则为共阳极,图5-2给出了两种
AJMP
MAIN: SETB CLR SJMP END
MAIN
P0.0 P0.1 MAIN
9
【例5-2】编写程序让LED点阵上的一个点从上到下依次点亮。 ;************************************************************************ ;**************** 延时 0.1S 子函数***************************************** ; 程序功能:让双色 LED 点阵中左上角单独一个 LED灯亮 DELAY: ; 硬件接线:P2口接行线1,P0.0接列线1 MOV R7, #13H ;************************************************************************ DL1: ORG 0000H MOV R6, #14H AJMP MAIN DL0: MAIN: MOV CLR P0.0 R5, #82H MOV R5, A,#01H DJNZ $ LOOP: DJNZ MOV R6, P2,A DL0 DJNZ DL1 LCALL R7, DELAY RET RL A END SJMP LOOP
13
【例5-6】编写程序让LED点阵上一个点从上往下依次循环移动。 ;************************************************************************* ;*********** 延时8ms函数************************************************* MOV ;程序功能:让 LEDA,R0 点阵上的一个点依次从上到下循环移动到最后一个点 DELAY: ;此延时函数为用第1章介绍的单片机小精灵产生 RL A ;让列移动 ;************************************************************************* MOV R7,#13H ORG 0100H MOV R0,A DL1: MAIN: DJNZ R2,LOOP ;列未移动到了最右边 MOV R6,#14H MOV R0,#0FEH ;该数据给P1口,该数据为列初始值 SJMP ROT2 ;列移动到了最右边,则行向下移动一次 DL0: MOV R1,#01H ;该数据给P0口,该数据为行初始值 ;************************************************************************ MOV R2,#08H ;列循环次数 R5,#82H ROT2: MOV R2,#08H ; R2的值 MOV R3,#08H ;第二行移动前需要重新设定 行循环次数 DJNZ R5,$ MOV A,R1 DJNZ R6,DL0 LOOP: RL MOV A, R0 A DJNZ R7,DL1 MOV P1,A ;给P1口赋初始值 MOV R1, A RET MOV A,R1 DJNZ R3,LOOP MOV P2,A ;给P2口赋初始值 END SJMP LCALL MAIN DELAY

单片机实验——汇编语言指令

单片机实验——汇编语言指令

成绩单片机原理及应用实验报告实验名称汇编语言指令实验班级姓名学号(后两位)指导教师实验日期实验一汇编语言指令一、实验目的1、掌握WAVE软件的使用,初步掌握程序的调试方法,包括跟踪、单步运行和断点设置等。

2、熟悉MCS-51单片机的指令系统。

二、实验内容完成以下内容:1、假定外部数据存储器2000H单元的内容为80H,执行下列指令后,累加器A中的内容是( 80H ):MOV DPTR,#2000HMOVX A,@DPTR注意:完成本实验,需完成题目的“假定”条件,将外部数据存储器2000H单元预先赋值,如何实现?2、执行下列指令后,(SP)的内容是(07H ),61H单元的内容是(25H ),62H单元的内容是( 80H).MOV SP,#60HMOV ACC,#25HMOV B,#80HPUSH ACCPUSH B3、执行下列指令后,A的内容是(85H),CY的内容是(1),AC的内容是(1),OV的内容是(1)。

MOV A,#85HMOV R0,#20HMOV 20H,#0AFHADD A,@R04、假定(A)=0FFH,执行下列指令后,A的内容是(86H ),R3的内容是(10H ),30H的内容是(OF1H或241),40H的内容是(01H )。

MOV R3,#0FHMOV 30H,#0F0HMOV R0,#40HMOV 40H,#00HINC AINC R3INC 30HINC @R05、假定(A)=059H,(R5)=73H,执行下列指令:ORG 0000HMOV A,#059HMOV R5,#73HADD A,R5DA AEND后,A的内容是(),CY的内容是()。

6、程序如下:MOV A, #0BFHMOV 20H, #85HSETB CADDC A, 20H结果为:(A)= 45H CY=1 AC=1 OV=1 P=17、程序如下:MOV A, #0BFHMOV 20H, #85HSETB CSUBB A, 20H结果为:(A)= CY= AC= OV= P=8、假定(A)=0FH,(R7)=19H,(30H)=00H,(R1)=40H,(40H)=0FFH,执行下列指令:ORG 0000HMOV A,#0FHMOV R7,#19HMOV 30H,#00HMOV R1,#40HMOV 40H,#0FFHDEC ADEC R7DEC 30HDEC @R1END后,A的内容是(),R7的内容是(),30H的内容是(),40H的内容是()。

汇编语言指令大全及实例解析

汇编语言指令大全及实例解析

汇编语言指令大全及实例解析
汇编语言是一种底层的计算机语言,它直接操作计算机的硬件资源。

在汇编语言中,指令是最基本的操作单位,通过指令可以实现对计算机硬件的控制和操作。

本文将为大家介绍一些常用的汇编语言指令,并通过实例解析它们的具体用法和功能。

1. MOV指令。

MOV指令用于将数据从一个位置复制到另一个位置。

例如,下面的汇编代码将把寄存器AX中的值移动到寄存器BX中:
MOV BX, AX.
这条指令将AX中的值复制到BX中。

2. ADD指令。

ADD指令用于将两个操作数相加,并将结果存储到目标操作数中。

例如,下面的汇编代码将把寄存器AX和BX中的值相加,并将结果存储到AX中:
ADD AX, BX.
3. SUB指令。

SUB指令用于将目标操作数减去源操作数,并将结果存储到目标操作数中。

例如,下面的汇编代码将把寄存器AX中的值减去BX 中的值,并将结果存储到AX中:
SUB AX, BX.
4. CMP指令。

CMP指令用于比较两个操作数的大小,并根据比较结果设置标志位。

例如,下面的汇编代码将比较AX和BX中的值:
CMP AX, BX.
以上是一些常用的汇编语言指令及其实例解析。

通过学习和理解这些指令,我们可以更好地理解和掌握汇编语言的编程技巧,从而更好地编写高效的汇编语言程序。

希望本文对大家有所帮助。

单片机汇编语言经典一百例

单片机汇编语言经典一百例

单片机汇编语言经典一百例汇编语言是一种底层的程序设计语言,是一种将汇编指令直接翻译成机器指令的语言。

在单片机编程中,掌握汇编语言是非常重要的,因为它可以充分发挥单片机的性能,并且提高程序的运行效率。

本文将介绍一百个经典的单片机汇编语言例子,帮助读者更好地理解汇编语言的使用。

1. 点亮LED灯```ORG 0x0000 ; 程序起始地址MOV P1, #0xAA ; P1口输出高电平,LED灯点亮END ; 程序结束```2. LED流水灯效果```ORG 0x0000 ; 程序起始地址MOV P1, #0x01 ; P1口输出低电平,第一个LED点亮CALL DELAY ; 调用延时函数MOV P1, #0x02 ; P1口输出低电平,第二个LED点亮CALL DELAY ; 调用延时函数MOV P1, #0x04 ; P1口输出低电平,第三个LED点亮CALL DELAY ; 调用延时函数MOV P1, #0x08 ; P1口输出低电平,第四个LED点亮CALL DELAY ; 调用延时函数…DELAY: ; 延时函数MOV R0, #100 ; 设置延时时间DELAY_LOOP:DJNZ R0, DELAY_LOOP ; 循环减一RET ; 返回END ; 程序结束```3. 数码管动态扫描显示```ORG 0x0000 ; 程序起始地址CLR P0.0 ; P0.0口输出低电平,选择第一个数码管MOV P2, #0x7E ; 将数码管对应的值存放到P2口CALL DELAY ; 调用延时函数CLR P0.1 ; P0.1口输出低电平,选择第二个数码管MOV P2, #0x30 ; 将数码管对应的值存放到P2口CALL DELAY ; 调用延时函数CLR P0.2 ; P0.2口输出低电平,选择第三个数码管MOV P2, #0x6D ; 将数码管对应的值存放到P2口CALL DELAY ; 调用延时函数CLR P0.3 ; P0.3口输出低电平,选择第四个数码管MOV P2, #0x79 ; 将数码管对应的值存放到P2口CALL DELAY ; 调用延时函数…DELAY: ; 延时函数MOV R0, #100 ; 设置延时时间DELAY_LOOP:DJNZ R0, DELAY_LOOP ; 循环减一RET ; 返回END ; 程序结束```...通过以上例子,我们可以看到单片机汇编语言的应用非常广泛,可以实现各种各样的功能。

单片机指令系统及编程举例

单片机指令系统及编程举例
执行结果:A=30H 例:MOV DPTR,#1000H;DPTR1000H
执行结果: DPTR=1000H,
注意:只有MOV DPTR,#date16指令的立即数为16位,DPTR分为DPH和DPL,在上述例子中, DPH=10H, DPL=00H
直接寻址:操作数的地址直接出现在指令中。这类寻址方式的操作数只能是存放在内部RAM和SFR中。
例:
MOV A,#01H MOV DPTR,#TABLE MOVC A,@A+DPTR TABLE: DB 41H DB 42H … … 执行结果分析:基址的首地址= TABLE 偏移量= 01H, 程序执行到MOVC A,@A+DPTR时, @A+DPTR所指的地址= TABLE +01H,因此,该指令执行后A=42H
格式:标识符 BIT 位地址
功能:将位地址赋予标识符。
例: A1 BIT P1.0 MOV C,A1
7、BIT (地址符号命令)
END
ADD A, 31H ; A←A+(31H)
ORG 2000H
例:
MOV 32H, A ;结果存入32H
1
寄存器寻址:操作数为寄存器的内容。
2
此处的寄存器指的是工作寄存器R0~R7、累加器A、通用寄存器B、数据指针寄存器DPTR和位累加器C(即进位位C)。
3
例 :MOV A,R0
4
执行结果:将R0的内容送入A中。
5
若R0的内容(R0)=5AH,则A=5AH
寄存器间接寻址:将指定寄存器中的内容作为地址,该地址对应的内容才是操作数,用@表示。
6
TAB:DB 12H,0AFH,00111001B,”9”
7

基于51单片机的课程设计

基于51单片机的课程设计
-通过51单片机实现简单的数字电压表,学习模拟信号处理技巧;
-探索51单片机在智能家居中的应用,如家居环境监测与控制;
-介绍并实践51单片机与蓝牙模块的连接,实现无线数据通信;
-分析并设计一个简易的抢答器系统,涉及按键扫描、状态机设计等;
-结合课堂所学,开展创新设计竞赛,鼓励学生自主设计并实现具有实际应用价值的单片机控制系统。
-开展综合实训,要求学生团队协作,完成一个综合性的单片机控制系统设计,如智能家居控制系统,提升学生的实际操作能力和项目实践能力。
-汇编语言程序设计
- C语言程序设计
3.《单片机原理与应用》第六章:51单片机的I/O接口及应用
- I/O口的控制方法
-基本输入/输出应用实例
4.《单片机原理与应用》第七章:51单片机的定时器/计数器与中断系统
-定时器/பைடு நூலகம்数器的工作原理及应用
-中断系统的原理及应用
5.《单片机原理与应用》第八章:51单片机的串行通信
-串行通信的原理
-串行通信接口的编程与应用
本章节将以上述内容为基础,结合实际案例,引导学生掌握51单片机的原理、编程及应用。
2、教学内容
本节课程设计将具体包括以下教学内容:
- 51单片机的最小系统构成及其功能分析;
-基本I/O口操作,实现LED灯的闪烁与控制;
-定时器/计数器的编程,实现精确延时及脉冲产生;
5、教学内容
-专题讨论:51单片机在工业控制中的应用,如自动化生产线上的传感器数据采集与处理;
-介绍并实践51单片机与各类传感器(如温湿度、光照、红外等)的接口技术;
-深入讲解51单片机的电源管理,探讨低功耗设计方法;
-通过项目案例,学习如何使用51单片机进行数据加密与解密,增强系统安全性;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6
5.1 LED点阵应用编程 3.单色机开发平台
点阵屏有两个类型,一类为共阴极,另一类则为 共阳极,图5-2给出了两种类型点阵屏的内部电路原 理图。 该开发平台主要包含的电路有:USB电源电路、 串口通信电路、单片机最小系统电路、DS18B20数 字温度传感器电路、4位7段数码管电路、8×8红绿双 色点阵电路、无源蜂鸣器电路、2相5线制步进电机 驱动电路、继电器控制电路、8个独立键盘电路、8 个LED流水灯电路、语音与报时(北京时间)电路等。 这些功能单元电路几乎涵盖了单片机的主要功能,用 户结合这些功能电路编写对应的程序,对用户快速学 习单片机很有帮助。
——汇编基础篇
单片机汇编指令系统应用实例
Application example of MCU assembly instruction system
本章将主要从四个方面介绍如何利用汇编指令编写程序
2
单片机汇编指令系统应用实例
5.1 LED点阵应用编程 5.2 继电器原理及应用编程
目录
5.3 步进电机原理及应用编程 5.4 按键控制7段LED数码管
类型点阵屏的内部电路原理图。
(a)共阴 图5-2 单色点阵内部电路结构
(b)共阳
5
5.1 LED点阵应用编程 2.双色LED点阵
在图5-4的(a)图为点阵的两排引脚,每列均为一个绿色插针(GR*),一个红色插针 (RE*),一个行驱动插针(DP*),这种引脚排列不利于单片机程序控制,为了让单片机更好 的控制这三类插针,就应该将该三类引脚分别引出,如图(b)、(c)所示。(b)中, 74HC573是驱动芯片,D0~D7是数据输入,Q0~Q7是数据输出,后面电阻为限流电阻,D*与 双色点阵内部结构如图5-3所 Q*的逻辑电平值一样,JP1是直接与单片机的I/O口相连,(c)为直接引出后的两排引脚,一排 示,其中带圆圈的数字表示点阵底 为点阵绿色显示控制引脚,一排为点阵红色显示控制引脚。
部引脚顺序,点阵的行与列也已在 图中标明。其中黑色LED代表红色, 白色LED代表绿色,将一个点点亮, 需要行引脚为高电平,列引脚为低 电平。
(a)驱动电路 图5-3 双色点阵内部结构 (b)LED点阵底部引脚 (c)红绿引脚分开后的LED引脚 图5-4 LED双色点阵驱动电路与LED点阵底部引脚接线
13
【例5-6】编写程序让LED点阵上一个点从上往下依次循环移动。 ;************************************************************************* ;*********** 延时8ms函数************************************************* MOV ;程序功能:让 LEDA,R0 点阵上的一个点依次从上到下循环移动到最后一个点 DELAY: ;此延时函数为用第1章介绍的单片机小精灵产生 RL A ;让列移动 ;************************************************************************* MOV R7,#13H ORG 0100H MOV R0,A DL1: MAIN: DJNZ R2,LOOP ;列未移动到了最右边 MOV R6,#14H MOV R0,#0FEH ;该数据给P1口,该数据为列初始值 SJMP ROT2 ;列移动到了最右边,则行向下移动一次 DL0: MOV R1,#01H ;该数据给P0口,该数据为行初始值 ;************************************************************************ MOV R2,#08H ;列循环次数 R5,#82H ROT2: MOV R2,#08H ; R2的值 MOV R3,#08H ;第二行移动前需要重新设定 行循环次数 DJNZ R5,$ MOV A,R1 DJNZ R6,DL0 LOOP: RL MOV A, R0 A DJNZ R7,DL1 MOV P1,A ;给P1口赋初始值 MOV R1, A RET MOV A,R1 DJNZ R3,LOOP MOV P2,A ;给P2口赋初始值 END SJMP LCALL MAIN DELAY
AJMP
MAIN: SETB CLR SJMP END
MAIN
P0.0 P0.1 MAIN
9
【例5-2】编写程序让LED点阵上的一个点从上到下依次点亮。 ;************************************************************************ ;**************** 延时 0.1S 子函数***************************************** ; 程序功能:让双色 LED 点阵中左上角单独一个 LED灯亮 DELAY: ; 硬件接线:P2口接行线1,P0.0接列线1 MOV R7, #13H ;************************************************************************ DL1: ORG 0000H MOV R6, #14H AJMP MAIN DL0: MAIN: MOV CLR P0.0 R5, #82H MOV R5, A,#01H DJNZ $ LOOP: DJNZ MOV R6, P2,A DL0 DJNZ DL1 LCALL R7, DELAY RET RL A END SJMP LOOP
11
【例5-4】编写程序让LED点阵上显示汉字“十”(采用移动扫描法)。
;************************************************************************ ;************** 延时0.1S 函数 ********************************************** ; 程序功能:编写程序让 LED 点阵上显示汉字“十” ;************ 显示2列效果 ************************************************* ; 硬件接线:P2口 接行线1~8,P0口接列线 1~ 8 DELAY: ;误差 0us MOV R1, #8 ;设置8行当移动次数 ;************************************************************************ MOV R7, #01H ORG 0000H MOV A, #0E7H DL1: AJMP MAIN MOV P0, A ;让中间两列的2个点亮起来 MAIN: MOV R6,#8EH MOV A,#01H ;************显示2行效果 ************************************************ DL0: MOV R0, #8 ;设置8列的移动次数 LOOP2: MOV P2,A MOV R5,#02H MOV A, #18H RL A ;让这中间两列的两个点从上往下移动 MOV P2, A ;让中间两行的2个点亮 DJNZ R5,$ LCALL DELAY ;延时1ms,效果类似上段程序 MOV A, #0FEH DJNZ R6,DL0 LOOP1: DJNZ MOV P0, LOOP2 A ;让这两个点从左往右移动 R1, DJNZ R7,DL1 RL SJMP A MAIN LCALL DELAY ;延时1ms,这个时间间隔人眼看不出灯在移动 RET ;给人造成中间两行常亮的视觉暂留 END DJNZ R0,LOOP1
10
【例5-3】编写程序让LED点阵上的一个点从上到下依次点亮。 ;*********************************************************************** ;****************延时0.1S子函数****************************************** ; 程序功能:编写程序让LED点阵上的一个点从上到下依次点亮 DELAY: ; 硬件接线:P2口接行线1~8,P0接列线1~8 MOV R7, #13H ;************************************************************************ DL1: ORG 0000H MOV #14H AJMP R6, MAIN DL0: MAIN: MOV A, #00H MOV R5, #82H P0, A ;让8列均得到0电平 MOV R5, A, #01H DJNZ $ LOOP: DJNZ MOV R6, P2, A ;点亮第一行 DL0 LCALL R7, DELAY ;延时0.1S DJNZ DL1 RL A ;让第1行一次移动到第8行 RET SJMP LOOP END
12
【例5-5】编写程序让LED点阵上显示数字“0”和数字“1”(采用查表扫描法)。 ;************************************************************************ ;*********************************************************************** ;************* 行驱动线************************************************** AAA: MOV 延时 R0,#8 ;查完了一行的 8个数据,查下一行的 8个数据 ;**************** 10ms 子函数 ************************************* ; 程序功能:编写程序让 LED 点阵上显示数字“ 0”和数字“ 1”(查表法) LOOP1: MOV A, R1 MOV R1,#0 赋初始值以准备下一行的数据查询 DELAY10: MOV DPTR, #TAB ;;指向行驱动线表头 ; 硬件接线: P2 口接行线 1 ~ 8 , P0 口接列线 1~8 MOV R2,#0 MOVC A, @A+DPTR MOV R7,#0A7H DJNZ R4, LOOP1 ;R4控制第一个数据显示与第二个数据显示时间间隔 ;********************************************************************** MOV P2, A SJMP MAIN DL1: ORG 0000H MOV 数据表 30H, ******************************************** P2 ;****************** MOV R6,#0ABH SJMP MAIN INC R1 TAB: DB 01H,02H,04H,08H,10H,20H,40H,80H DL2: DIGIT: DB 数据查询函数 0E7H,0DBH,0DBH,0DBH,0DBH,0E7H,0FFH,0FFH ;0 ;************** ********************************************* DB 0E7H,0C7H,0E7H,0E7H,0E7H,0E7H,0C3H,0C3H ;1 R5,#10H DPTR, MAIN: MOV MOV R0, #8 #DIGIT ;一行8个数据 ;****************2mS 延时子函数 ************************************** MOV A, R2 DJNZ R5,$ MOV R1, #0 DELAY312: MOVC A, @A+DPTR DJNZ R6,DL2 MOV R6, #0 #03H MOV R2, MOV P0, A DL0: DJNZ R7,DL1 MOV R3, #16 ;16个数据 MOV 31H, P0 MOV R5, #32H NOP MOV R4, INC R2 DJNZ R5, #52 $ RET LCALL DELAY312 DJNZ R6, DL0 MOV 30H, #00 RET DJNZ R0, LOOP1 END MOV 31H, #00
相关文档
最新文档