如何方便的使dptr减1

smileme 2003-06-10 06:27:09
如何方便的使dptr减1,有inc dptr
没有dec dptr,可是如果这样
mov a,dpl
dec a
mov dpl,a
如果a中的值不够减呢,难道还要先判断
a里的值是否为0,再用分枝程序处理么
...全文
1197 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zerospace 2003-06-10
  • 打赏
  • 举报
回复
跳转是需要的。可以用DEC DPL, DEC DPH。
  • 打赏
  • 举报
回复
也只好如此了~~~
而且我觉得处理程序比较麻烦
目录 基于单片机的篮球计时计分器 第1节 引 言 随着单片机载各个领域的广泛应用,许多用单片机作控制的球赛计时计分器系统也应 运产生,如用单片机控制LCD液晶显示器计时计分器,用单片机控制LED七段显示器计时 计分器等。 本文介绍一种有AT89C51编程控制LED七段数码管作显示的球赛计时计分系统。本系统 具有赛程定时设置、赛程时间暂停、及时刷新甲、乙队双方的成绩以及赛后成绩暂存等 功能。它具有价格低廉、性能稳定、操作方便且易携带等特点。广泛适合各类学校和小 团体作为赛程计时计分。 本设计的任务和主要内容 这次课程设计的主要任务是:设计制作一个用于赛场的篮球赛计时计分器。 主要内容如下: 1. 能记录整个赛程的比赛时间,并能修改比赛时间、暂停比赛时间。 2. 能随时刷新甲、乙两队在整个赛程中的比分。 3. 中场交换比赛场地时,能交换甲、乙两队比分的位置。 4. 比赛时间结束时,能发出报警指令。 第2节 系统主要硬件电路设计 单片机控制原理 图2-1 球赛计时计分器系统图 单片机主机系统电路 本系统采用单片机AT89C51作为本设计的核心元件。利用7段共阴LED作为显示器件。 在此设计中共接入10个7段共阴LED显示器,其中6个用于记录甲、乙两队的分数每队3个 LED显示器显示分数范围可达到0- 999分,足够满足赛程需要。另外4个LED显示器则用来记录赛程的时间,其中2个用于分 钟;2个用于显示秒钟。赛程设计采用倒计时方式。即比赛前将时间设置好,比赛开始启 动计时,直至计时到零为止。计时范围可达到0~99分钟也满足实际赛程的需要。 其次,为了配合计时器和计分器校正、调整时间和比分,特定在本设计中设立了7个 按键。其中4个用于输入甲、乙两队的分数;另外3个则用于完成设置、调整、启动和暂 停赛程时间等功能。 最后,还这几了定时报警系统,即比赛时间到,我们立即通过扬声器发出报警声,提 示整个赛程结束。 2.2.1计时电路 图2-2 计时电路的原理图 计时电路如图2- 2所示,主要由按键开关K5~K7,单片机AT89C51,译码器以及LED显示器结构。其工作过程 如下:当调时(十位)开关K5按下时,产生一个低电平;立即数00H取出,同时对对应调 分(十位)控制端的LE输出高电平,表示此时可以向调分(十位)的CD4511发送数据, 但CD4511的输出端a~g不会有输出,因为LE=1时,CD4511锁存。这时只要将显示数据的代 码经P1口的送到CD4511输入端A~D端,送完后项LE清零。这时便可以将要显示数据的代码 经CD4511译码后,从输出端a~g输出,送LE显示器显示。调时按键开关每按一次,数字自 动加1,知道调到需要设置的时间即可。 调时(个位)的操作方法与上面一样。 时间设置完后,启动定时器T0开始定时计数。计时采用倒计时,比如:设置的时间为 45分钟,则在LED上显示4500四位数。定时T0计数60秒后中断返回,继续定时计数下一个 60秒;同时则在4位LED显示器上显示4459四位数,表示时间已经过去1秒钟,即为44分5 9秒。这样一直持续下去。知道变为"0000"时表示赛程结束。如果比赛中裁判叫停,则只 要按下K7键,即可暂停计时。 2.2.2计分电路 图2-3 计分电路原理图 计分电路主要由单片机AT89C51、串/并转换器、LED显示器、74LS21以及按键开关组 成。其工作过程如下:按键开关K1~K4组成甲、乙两队加分控制。按键开关K1~K4一端 接地,另一端输入与门74LS21的9脚、10脚、12脚、13脚以及单片机AT89C51的、、、.当 K1~K4四个按键的任何一个一位按下时,与门的8脚输出会产生低电平使单片机发生中断 ,从而使相应LED显示。因为按键开关按下时为低电平。 第3节 系统的软件设计 篮球赛计时计分器程序源代码 ORG 0000H AJMP LK1 ORG 000BH AJMP CTCO ORG 0013H AJMP CXT LK1: MOV 33H, #00H MOV 35H, #00H MOV 36H, #00H MOV 37H, #00H MOV 38H, #00H MOV 40H, #00H MOV 41H, #00H CLR CLR CLR CLR CLR MOV P1, #00H NOP NOP SETB SETB SETB SETB MOV 42H, #05H MOV 43H, #09H MOV SCON, #00H CLR MOV R1, #33H MOV R2, #06H LP: MOV A, @R1 MOV DPTR, #TAB MOVC A, @A+DPTR MOV SBUF, A JNB TI, $ CLR TI INC R1 DJNZ R2, LP SETB LK3:

27,372

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧