1、单位代码 学 号 1201050050 分 类 号 密 级 单 片 机 应 用 技 术 课 程 设 计基于 AT89C51 单片机的定时闹钟设计院 ( 系 ) 名 称专 业 名 称学 生 姓 名指 导 教 师2015 年 月 日黄 河 科 技 学 院 课 程 设 计 第 页目 录1 概述 11.1 课程设计的目的和意义 11.2 设计要求 12 系统总体方案及硬件设计 .22.1 系统设计原理 22.2 硬件设计 22.2.1 单片机 AT89C51 22.2.2 显示器的选择 .42.2.3 控制按键的选择 .52.2.4 时钟电路 .62.2.5 喇叭:SPEAKER 63 系统软件设计
2、.83.1 系统软件设计说明 83.2 程序流程图 93.2.1 程序主流程图 .93.2.2 时间设定设计 .93.3 程序调试 103.4 仿真步骤 113.5 仿真结果 114 课程设计体会 .14参考文献 .15附 1 源程序代码 16附 2 系统原理图 .29黄 河 科 技 学 院 课 程 设 计 第 0 页1概述1.1 课程设计的目的和意义课程设计是在学完单片机原理及接口技术课程之后综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对单片机,软硬知识的理解,获得初步的应用经验,使对已学过的基础知识能有更深入的理解,学会独立思考、独立思考、独立工作,以及提高对所
3、学应用基本理论分析和解决实际问题的能力。为走出校门从事单片机应用的相关工作打下基础.1.2 设计要求1)能显示:时时分分秒秒。2)能够设定定时时间、修改定时时间。3)定时时间到能发出报警声。设计的部分分为软件及硬件,软件部分写出闹钟的工作方式以及它是如何工作的,而硬件部分是软件的载体,画出正确的电路图然后在软件的控制下能使设计的定时闹钟正常工作。黄 河 科 技 学 院 课 程 设 计 第 1 页2系统总体方案及硬件设计2.1 系统设计原理本设计使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。本系统采用单片机 AT89C51
4、作为本设计的核心元件,利用 6 位共阴数码管作为显示器件。接入共阴 LED 显示器,可显示时,分钟,秒,单片机外围接有定时报警系统,时间的定时用时钟电路,修改时间和定时用手动按键控制,报警声通过喇叭发出。提示预先设定时间电器的起停时间到,从而控制电器的起停。电路由下列部分组成:时钟电路、复位电路、控制电路、LED 显示,报警电路,芯片选用 AT89C51 单片机。系统框图如图 2-1 所示:图 2-1 系统框图2.2 硬件设计2.2.1 单片机 AT89C51AT89C51 是一个低电压,高性能 CMOS 型 8 位单片机,片内含 4KB 的可反复擦写的 Flash 只读程序存储器(ROM)和
5、 128B 的随机存取数据存储器( RAM) ,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元,内置功能强大的微型计算机的 AT89C51复位、时钟等电路按钮电路AT89C51单片机6 位数码管显示电路闹铃声指示电路电源系统黄 河 科 技 学 院 课 程 设 计 第 2 页为用户提供了许多高性价比应用场合,可灵活应用于各种控制领域。AT89C51 是一个低功耗高性能单片机,40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内含 2 个外中断口,2 个 16 位可编程定时计数器,2 个全双
6、工串行通信口,AT89C51 可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本。主要特性:振荡器特性:XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度.图 2-2 是单片机 AT89C51 的引脚图:与 MCS-51 兼容 4K 字节可编程闪烁存储器 寿命:10
7、00 写/擦循环数据保留时间:10 年全静态工作:0Hz-24Hz三级程序存储器锁定1288 位内部 RAM32 可编程 I/O 线两个 16 位定时器/计数器5 个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路黄 河 科 技 学 院 课 程 设 计 第 3 页图 2-2 单片机 AT89C51 引脚图2.2.2 显示器的选择方案一:液晶显示器。如果选择此方案,将会降低系统的功耗,这样就可以用电池供电,便于携带。但液晶显示器的驱动电路复杂,使用起来有一定的难度。方案二:点阵显示,是由八行八列的发光二极管集成在一块电路上组成,主要用来显示汉字,同时也能显示数字和少量图象,但它的
8、焊接较麻烦,价格高,鉴于所设计的题目要求它不切实际。所以排除此方案。方案三:用数码管作为显示器。数码管的驱动电路简单,使用方便,如 果 选择了此方案,那么在夜间看时间的时候就不需要有光源,非常方便。其缺点是功耗较大。由于数码管使用起来较为方便,在夜间看时间也很方便,因此我选择了方案三。单片机中通常使用 7 段 LED,LED 是发光二极管显示器的缩写。 LED 显示器由于结构简单,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,配置灵活,与单片机接口方便而得到广泛应用。LED 显示器是由若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制
9、不同组合的二极管导通,就能显示出各种字符。LED 显示器有多种形式,如:“米”黄 河 科 技 学 院 课 程 设 计 第 4 页字型显示器,点阵显示器和七段数码显示器等,在单片机系统中使用最多的是七段数码显示器。本系统利用 7SEG-MPX6-CC-BLUE 数字显示器, 7SEG-MPX6-CC-BLUE 数字显示器的 1-6 引脚连接 AT89C51 单片机 P2.0 P2.5 接口 ,其他 8 个引脚分别与 AT89C51单片机的 P0.0 - P0.7 和共阳极管 RESPACK-8 排阻的 2 - 9 引脚分别连接。因为共阴极的 LED 数码管它的驱动电流是分开的,在单片机进行动态扫
10、描的时候不会影响彼此的电流,故该系统中的 6 位 LED 数码管均用共阴极的数码管。6 位 数 码 管 的 引 脚 图 如 图 2-3 所 示 :图 2-3 6 位数码管的引脚2.2.3 控制按键的选择方案一:选取阵列式按键,减少了 I/O 口的使用,且扫描 MN 个按键只需占用 M+N 个I/O 口即可实现,但给编程带来了一定的困难,虽然节省了很多的口线,降低了成本,但在此设计中所用的按键要尽量少,因此排除此方案。方案二:黄 河 科 技 学 院 课 程 设 计 第 5 页独立式按键,每个按键实现一个功能,易于控制且编写程序简单,容易理解,虽然会占用一定的单片机 I/O 口资源,但是题目中要求
11、使用的按键要尽量少。通过以上两种方案比较,采用方案二。2.2.4 时钟电路单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。本系统中 AT89C51单片机采用内部时钟方式。最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。振荡晶体可在 1.2MHz12MHz 之间。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响,一般可在20pF100pF 之间取值。 AT98C51 单片机的时钟电路。如图 2-4 所示:图 2-4 时钟电路图上拉电阻:RESPACK 8控制按键:BUTTON ACTIVE SPST PushButton本系统要进行时间的调
12、整和定时,因此用 4 个手动按键对其进行控制。2.2.5 喇叭:SPEAKER由 P3.7 口控制喇叭,使其定时时间到能发出报警声。如图 2-5 所示:AT89C51XTAL2XTAL1JZ12MC130PFC230PF黄 河 科 技 学 院 课 程 设 计 第 6 页图 2-5 喇叭引脚图经过方案论证与比较,选择 AT89C51 作为主控,采用独立式按键控制,LED 数码管动态扫描显示,喇叭:SPEAKER ,其中 AT89C51 单片机采用内部时钟方式。黄 河 科 技 学 院 课 程 设 计 第 7 页3 系统软件设计3.1 系统软件设计说明该系统软件程序主要有主程序模块,定时中断服务程序
13、,中断等待服务程序,键盘服务程序,显示子程序服务程序等六大模块组成。在 AT89C51 外围的一个 17 管脚即 P3.7 管口上加喇叭器,通过软件与硬件的结合可实现定时报警功能。图中按键从上往下设定为 S1,S2,S3,S4,S1 与 p1.0 相连, S2 与 p1.1 相连,S3 与 p1.2相连,S4 与 p1.3 相连。当需要设定当前时间时,按一下 S1 键,进入时间设定状态,按一下 S3,分钟加 1;按一下 S2,小时加 1。如此反复来设定当前时间。调好时间后按 S4 退出当前时间设定状态;当要设定定时时间时,按下 S2,进入定时时间设定状态,按一下 S3,小时加 1;按一下 S1
14、,分钟加 1。如此反复来设定要设定的定时时间。设好后,按下 S4 退出定时时间设定状态。黄 河 科 技 学 院 课 程 设 计 第 8 页3.2 程序流程图3.2.1 程序主流程图开始初始化调用显示程序设定时间 ?调用时间设定程序设定闹钟 ?调用闹钟时间设定程序判断闹钟时间到否程序 ?调用闹钟设定闹钟 ?继续运行NYYNYYNY复位 ?NN图 3-1 程序流程图3.2.2 时间设定设计时间设定模块的设计要点是按键的去抖处理与“一键多态”的处理。即只涉及 4个键完成了 6 位时间参数的设定。软件法去抖动的实质是软件延时,即检测到某一键状态变化后延时一段时间,再检测该按键的状态是否还保持着,如是则
15、作为按键处理,黄 河 科 技 学 院 课 程 设 计 第 9 页否则,视为抖动,不予理睬。去抖中的延时时间一般参考资料多描述为 10ms 左右,实际应用中,应大于 20ms,否则,会导致按一次作多次处理,影响程序正常执行。 “一键多态”即多功能键的实现思想是,根据按键时刻的系统状态,决定按键采取何种动作,即何种功能其流程图如下图 3-2 所示:S 2 按下S 3 按下小时加 1分钟加 1YNYN设定时间程序返回图 3-2 时间设定流程3.3 程序调试1)将程序输入到 keil uvision4 的环境下;2)用单步运行和断点运行方式调试程序;3)调试 T0 中断服务程序,首先在记数单元 39H
16、、3AH、3BH 、3CH 单元中预置黄 河 科 技 学 院 课 程 设 计 第 10 页数,调试秒单元向分单元进位及分单元向时单元的进位,最后将 T0 中断服务程序统调通过;4)在 39H、3AH、3BH、3CH 单元中预置数,调试显示程序;5)调试主程序,使闹钟走时系统工作正常。3.4 仿真步骤第一步:用 keil uvision4 软件对程序进行编译,编译通过后,会自动生成 HEX 文件。第二步:在 Proteus 的元件库中找到 AT89C51 以及相应的元件,按照硬件设计中的说明把各部件连接起来组成一个定时闹钟的硬件系统。第三步:把在 keil uvision4 环境调试下生成的.H
17、EX 文件装入到 AT89C51 里,点击运行符号就可以使软硬件的配套设施在 Proteus 的环境下仿真实现。第四步:验证系统能否实现所要求的功能,并检验错误。3.5 仿真结果通过 S1、S2、S3 和 S4 四个按键,对时间进行修改和闹钟的设置。定时时间到能发出报警声,使用 keil uvision4 软件编辑程序然后进行 proteus 进行仿真,其仿真图如下:开始仿真时,显示如图 3-3 所示:黄 河 科 技 学 院 课 程 设 计 第 11 页图 3-3 仿真图(1)设定当前时间当需要设定当前时间时,按一下 S1 键,进入时间设定状态,按一下 S3,分钟加1;按一下 S2,小时加 1
18、。如此反复来设定当前时间。调好时间后按 S4 退出当前时间设定状态。如图 3-4 所示:图 3-4 设定样式图如图 3-5:设定当前时间是 06:06:06黄 河 科 技 学 院 课 程 设 计 第 12 页图 3-5 仿真时间设定图(2)设定定时时间当要设定定时时间时,按下 S2,进入定时时间设定状态,按一下 S3,小时加 1;按一下 S1,分钟加 1。如此反复来设定要设定的定时时间。设好后,按下 S4 退出定时时间设定状态。如图 3-6 所示图:设定定时时间为 06:06黄 河 科 技 学 院 课 程 设 计 第 13 页图 3-6 设定定时时间如图 3-7 所示当到达时间 06:06 时
19、,喇叭发出报警声。图 3-7 闹钟响起图黄 河 科 技 学 院 课 程 设 计 第 14 页4 课程设计体会通 过 这 次 设 计 让 我 更 深 入 了 解 在 设 计 程 序 之 前 ,务 必 要 对 所 学 单 片 机 课 程的 内 容 有 一 个 系 统 的 了 解 ,知 道 单 片 机 片 内 片 外 的 内 容 及 其 功 能 。 设 计 程 序 采 用 什么 编 程 语 言 并 不 是 非 常 重 要 ,关 键 要 有 一 个 清 晰 的 思 路 和 一 个 完 整 的 软 件 流 程 图 。在 设 计 程 序 时 ,不 能 妄 想 一 次 就 将 整 个 程 序 设 计 好 ,
20、“反 复 修 改 ,不 断 改 进 “是 程 序 设计 的 必 经 之 路 。 程 序 刚 开 始 编 好 时 , 一 般 情 况 下 会 存 在 很 多 错 误 , 要 不 断 地 修 改 ,不 断 的 改 进 才 能 达 到 预 期 的 目 的 , 编 写 程 序 的 时 间 并 不 是 很 长 , 主 要 是 修 改 程 序 会花 很 多 时 间 。 总 之 , 通 过 这 次 设 计 让 我 更 深 入 了 解 单 片 机 基 本 电 路 、 如 何 控 制 和 定时 器 和 中 断 编 程 的 基 本 方 法 , 从 而 锻 炼 了 我 学 习 、 设 计 和 开 发 软 、 硬 件
21、 的 能 力 。 并且 使 我 巩 固 了 本 课 程 所 学 的 基 本 知 识 , 还 使 我 具 有 了 撰 写 设 计 报 告 的 初 步 训 练 能 力 ,我 相 信 这 些 能 力 在 我 以 后 的 工 作 或 者 是 再 学 习 中 一 定 会 起 到 不 小 的 作 用 , 看 到 自 己几 周 的 小 成 果 , 感 觉 一 切 的 辛 苦 和 艰 难 都 是 值 得 的 。黄 河 科 技 学 院 课 程 设 计 第 15 页参考文献1.张毅刚,单片机原理及应用,高等教育出版社.2014.2.皮大熊.单片机课程设计指导书.北京理工大学出版社.2010.3.吴金戌.8051
22、单片机实践与应用.清华大学出版社.2003.4.楼然苗.51 系列单片机设计实例.北京航空航天出版社.2004.5.黄仁欣.单片机原理及应用技术.清华大学出版社.2005.6.赵晓安. MCS-51 单片机原理及应用.天津大学出版社.2001.3.7.凌玉华,单片机原理及应用系统设计,中南大学出版社.2006.8.胡汉才,单片机原理及应用,清华大学出版社 .2004.9.徐江海.单片机实用教程.机械工业出版社.2007.黄 河 科 技 学 院 课 程 设 计 第 16 页附 1 源程序代码ORG 0000H LJMP MAINORG 000BH LJMP TIMEORG 0100HMAIN:M
23、OV SP,#50HMOV 20H,#00H ;时间 BIN SECONDMOV 21H,#00H ; BIN MINUTEMOV 22H,#00H ; BIN HOURMOV 23H,#01H ;闹铃 BIN MINUTEMOV 24H,#01H ; BIN HOURMOV 25H,#00H ;定义一个标志位MOV 30H,#00H ;时间 BCD SECONDMOV 31H,#00H ;MOV 32H,#00H ; BCD MINUTEMOV 33H,#00H ;MOV 34H,#00H ; BCD HOURMOV 35H,#00H ;MOV 36H,#01H ;闹铃 BCD MINUTE
24、MOV 37H,#00H ;MOV 38H,#01H ; BCD HOURMOV 39H,#00H ;MOV TMOD,#01H ;16 位计数器 T0,方式 1MOV TH0,#03CH ;赋初值MOV TL0,#0B0H 黄 河 科 技 学 院 课 程 设 计 第 17 页MOV IE,#10000111B ;开中断 T0,EA=1SETB TR0 ;T0 启动计数MOV R2,#14H ;计数器MOV P2,#0FFHLOOP:LCALL TIMEPRO ; 调用现在时间与闹铃时间比较程序LCALL DISPLAY1 ; 调用现在时间显示子程序JB P1.0,M1 ; 判断按键是否按下L
25、CALL XIAOZHEN1 ; 调用消抖程序MOV C,25H.0JC A1A1:CLR 25H.0LCALL SETTIME ; 调用设置现在时间子程序LJMP LOOPM1:JB P1.1,M2LCALL XIAOZHEN2MOV C,25H.0JC A2A2:CLR 25H.0LCALL SETATIME ; 调用设置闹钟的程序LJMP LOOPM2:JB P1.3,M3A3:LCALL XIAOZHEN3MOV C,25H.0JC A4A4:CLR 25H.0M3:LJMP LOOPSETTIME:L0:LCALL DISPLAY1黄 河 科 技 学 院 课 程 设 计 第 18 页
26、JB P1.1,L1LCALL XIAOZHEN4MOV C,25H.0JC A5A5:CLR 25H.0INC 22HMOV A,22HCJNE A,#18H,GO12MOV 22H,#00HMOV 34H,#00HMOV 35H,#00HLJMP L0L1:JB P1.2,L2LCALL XIAOZHEN5MOV C,25H.0JC A6A6:CLR 25H.0INC 21HMOV A,21HCJNE A,#3CH,GO11MOV 21H,#00HMOV 32H,#00HMOV 33H,#00HLJMP L0GO11:MOV B,#0AHDIV ABMOV 32H,BMOV 33H,A黄
27、河 科 技 学 院 课 程 设 计 第 19 页LJMP L0GO12:MOV B,#0AHDIV ABMOV 34H,BMOV 35H,ALJMP L0L2:JB P1.3,L0LCALL XIAOZHEN3MOV C,25H.0JC AXAX:CLR 25H.0RETSETATIME:LCALL DISPLAY2 ;调用闹钟设置,闹铃响时的显示程序N0:LCALL DISPLAY2JB P1.2,N1LCALL XIAOZHEN6MOV C,25H.0JC A7A7:CLR 25H.0INC 24HMOV A,24HCJNE A,#24,GO22MOV 24H,#00HMOV 38H,#0
28、0HMOV 39H,#00HLJMP N0N1:JB P1.0,N2LCALL XIAOZHEN7黄 河 科 技 学 院 课 程 设 计 第 20 页MOV C,25H.0JC A8A8:CLR 25H.0INC 23HMOV A,23HCJNE A,#60,GO21MOV 23H,#00HMOV 36H,#00HMOV 37H,#00HLJMP N0GO21:MOV B,#0AHDIV ABMOV 36H,BMOV 37H,ALJMP N0GO22:MOV B,#0AHDIV ABMOV 38H,BMOV 39H,ALJMP N0N2:JB P1.3,N0LCALL XIAOZHEN3MOV
29、 C,25H.0JC A9A9:CLR 25H.0RETTIMEPRO:MOV A,21HMOV B,23H黄 河 科 技 学 院 课 程 设 计 第 21 页CJNE A,B,BKMOV A,22HMOV B,24HCJNE A,B,BKSETB 25H.0MOV C,25H.0JC XXXX:LCALL TIMEOUTBK:RETTIMEOUT:X1:LCALL BZ LCALL DISPLAY2CLR 25H.0JB P1.3, X1RETBZ:CLR P3.7MOV R7,#250T2:MOV R6,#124T3:DJNZ R6,T3DJNZ R7,T2SETB P3.7JB P1.3
30、,XYLCALL XIAOZHEN3MOV C,25H.0JC XY1XY:RETXY1:LJMP LOOPXIAOZHEN1:LCALL DISPLAY1黄 河 科 技 学 院 课 程 设 计 第 22 页JB P1.0,XIAOZHEN1MOV C,P1.0JC XIAOZHEN1LCALL DELAYMOV C,P1.0JC XIAOZHEN1STOP1:MOV C,P1.0JNC STOP1LCALL DELAYMOV C,P1.0JNC STOP1SETB 25H.0RETXIAOZHEN2:LCALL DISPLAY2JB P1.1,XIAOZHEN2MOV C,P1.1JC XI
31、AOZHEN2LCALL DELAYMOV C,P1.1JC XIAOZHEN2STOP2:MOV C,P1.1JNC STOP2LCALL DELAYMOV C,P1.1JNC STOP2SETB 25H.0RET黄 河 科 技 学 院 课 程 设 计 第 23 页XIAOZHEN3:LCALL DISPLAY1JB P1.3,XIAOZHEN3MOV C,P1.3JC XIAOZHEN3LCALL DELAYMOV C,P1.3JC XIAOZHEN3STOP3:MOV C,P1.3JNC STOP3LCALL DELAYMOV C,P1.3JNC STOP3SETB 25H.0RETXI
32、AOZHEN4:LCALL DISPLAY1JB P1.1,XIAOZHEN4MOV C,P1.1JC XIAOZHEN4LCALL DELAYMOV C,P1.1JC XIAOZHEN4STOP4:MOV C,P1.1JNC STOP4LCALL DELAYMOV C,P1.1JNC STOP4黄 河 科 技 学 院 课 程 设 计 第 24 页SETB 25H.0RETXIAOZHEN5:LCALL DISPLAY1JB P1.2,XIAOZHEN5MOV C,P1.2JC XIAOZHEN5LCALL DELAYMOV C,P1.2JC XIAOZHEN5STOP5:MOV C,P1.2
33、JNC STOP5LCALL DELAYMOV C,P1.2JNC STOP5SETB 25H.0RETXIAOZHEN6:LCALL DISPLAY2JB P1.2,XIAOZHEN6MOV C,P1.2JC XIAOZHEN6LCALL DELAYMOV C,P1.2JC XIAOZHEN6STOP6:MOV C,P1.2JNC STOP6LCALL DELAY黄 河 科 技 学 院 课 程 设 计 第 25 页MOV C,P1.2JNC STOP6SETB 25H.0RETXIAOZHEN7:LCALL DISPLAY2JB P1.0,XIAOZHEN7MOV C,P1.0JC XIAO
34、ZHEN7LCALL DELAYMOV C,P1.0JC XIAOZHEN7STOP7:MOV C,P1.0JNC STOP7LCALL DELAYMOV C,P1.0JNC STOP7SETB 25H.0RETDELAY:MOV R4,#14HDL00:MOV R5,#0FFHDL11:DJNZ R5,DL11DJNZ R4,DL00RETTIME:PUSH ACCPUSH PSWMOV TH0,#03CHMOV TL0,#0B0H黄 河 科 技 学 院 课 程 设 计 第 26 页DJNZ R2,RET0MOV R2,#14HMOV A,20HCLR CINC ACJNE A,#3CH,G
35、O1MOV 20H,#0MOV 30H,#0MOV 31H,#0MOV A,21HINC ACJNE A,#3CH,GO2MOV 21H,#0HMOV 32H,#0MOV 33H,#0MOV A,22HINC ACJNE A,#18H,GO3MOV 22H,#00HMOV 34H,#0MOV 35H,#0AJMP RET0GO1:MOV 20H,AMOV B,#0AHDIV ABMOV 31H,AMOV 30H,BAJMP RET0黄 河 科 技 学 院 课 程 设 计 第 27 页GO2:MOV 21H,AMOV B,#0AHDIV ABMOV 33H,AMOV 32H,BAJMP RET0GO3:MOV 22H,AMOV B,#0AHDIV ABMOV 35H,AMOV 34H,BAJMP RET0RET0:POP PSWPOP ACCRETIDISPLAY1:MOV R0,#30HMOV R3,#0FEHMOV A,R3PLAY1:MOV P2,AMOV A,R0MOV DPTR,#DSEG1MOVC A,A+DPTRMOV P0,ALCALL DL1MOV P2,#0FFHMOV A,R3RL A