全球旧事资料 分类

1.修改例程一的源程序(1)将A寄存器的初值改为80H(正逻辑,数据位为1表示发光二极管点亮),再对源程序进行简单修改,使程序运行后发光二极管情况与修改前相同。(2)将LED向左循环移位点亮改为向右循环移位点亮(3)加快LED循环移位点亮的速度
i
cludeC8051F020i
cC8051F02x系列单片机信息头文件包含伪指令
INIT
LCALLI
it_Device
(1)MOV
A080H
调用初始设置子程序赋初始值并在发光二极管上显示该数值
CPL
A
MOV
P3A
LOOP
CALL
DELAY
CALL
DELAY
CALL
DELAY
CALL
DELAY
CALL
DELAY
CALL
DELAY
CALL
DELAY
(2)RL
A
A寄存器内容右移1位并送1发光二极管显示
MOV
P3A
AJMP
LOOP无限循环
DELAYD1
MOV
R50H延时子程序
MOV
R600H
DJNZ
R6
DJNZ
R5D1
RET
i
cludeI
it_Devicei
c初始设置子程序文件包含伪指令
END
(3)可删除几个CALLDELAY语句即可加快循环速度
f2.将例程二0F的循环显示改为09的循环显示
i
cludeC8051F020i
c
ORG
0000H
LJMP
INIT
C8051F02x系列单片机信息头文件包含伪指令
TAB
DB
0C0H0F9H0A4H0B0H099H092H082H0F8H字符段码表07
DB080H090H
字符段码表8F
INITINIT1
lcallMOVMOV
I
it_DeviceR100HAR1
调用初始设置子程序操作数据初始值
MAIN
MOVMOVCMOVCALLCALLCALLCALLCALLCALLCALLCALLCALLCALLCALLCALLCALLCALLINCMOVCJNESJMP
DPTRTAB读取与A中数值对应的显示段码
AADPTR
P5A
段码送并行口1显示
DELAY
DELAY
DELAY
DELAY
DELAY
DELAY
DELAY
DELAY
DELAY
DELAY
DELAY
DELAY
DELAY
DELAYR1
操作数据R1增1
AR1
A0AHMAIN检查操作数据是否大于显示范围(F)
INIT1
无限循环
DELAYD1
MOV
R50H
MOV
R60H
DJNZ
R6
DJNZ
R5D1
RET
i
cludeI
it_Devicei
c
END
延时子程序初始设置子程序文件包含伪指令
f二
1例程5程序修改(1)将KEY2、KEY4的功能对调(2)每次停下再启动以后,更改发光二极管点亮的循环方向
i
clude
C8051F020i
c
C8051F02x系列单片机信息头文件包含伪指令
ORGLJMP
0000HINITIAL主程序入口
ORGLJMP
0003HSTOP
外中断0服务程序入口开始键(STAR)
ORGLJMP
0013HSTAR
外中断1服务程序入口停止键(STOP)
ORGINITIALLCALLI
it_Device
MOVMOVMOVMOVXMOVMOVMOVMOVMOVSETBSETB
0100H
调用初始设置子程序P30FFH熄灭全部发光二极管
A0FFH
DPTR7F80HDPTRA清除数码管2(NUM2)显示
A0FEH点亮发光二极管的初始数据R11H发光二极管点亮位置初值
R40FHIP04H
设置INT0(开始键STAR)为高优先级
TCON05H外中断采用边沿触发
EX0
INT1(停止键STOP)开中断
EA
开放中断
LOOP
CLRCJNERLCJNEMOVCJNEINCCJNESETB
EAR40FHLPAR40FHLPP3Ar
好听全球资料 返回顶部