参考程序.docx
- 文档编号:15267389
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:11
- 大小:102.44KB
参考程序.docx
《参考程序.docx》由会员分享,可在线阅读,更多相关《参考程序.docx(11页珍藏版)》请在冰点文库上搜索。
参考程序
第一次测验:
已知(A)=02H,(30H)=10H,(SP)=50H
ORG1000H
DB30H,50H,60H;程序存储器(1000H)=30H,(1001H)=50H,(1002H)=60H
MOVDPTR,#1000H;(DPTR)=1000H
MOVCA,@A+DPTR;(A)=程序存储器(02H+1000H)=60H
ANL30H,#05H;(30H)和05H相与,即10H和05H相与,结果(30H)=00H
PUSH30H;(SP)+1→(SP),(SP)=51H;
(30H)=00H进栈,即(51H)=00H
1、红色标记操作数的寻址方式依次为:
立即寻址方式、基址寄存器加变址寄存器的间接寻址方式、直接寻址方式
2、程序执行后,
(A)=60H,(SP)=51H,(51H)=00H,(30H)=00H
课后习题3-22:
试编写程序,查找在内部RAM的20H~40H单元中是否有0AAH这一数据。
若有,则将41H单元置为“01H”;
若未找到,则将41H单元置为“00H”。
START:
MOVR0,#20H
MOVR2,#21H;设置循环次数
LOOP:
MOVA,@R0
CJNEA,#0AAH,NEXT;比较不相等则转移
MOV41H,#01H
LJMPEXIT;跳转指令
NEXT:
INCR0;R0增1
DJNZR2,LOOP;R2先减1,若不为0则转移
MOV41H,#00H
EXIT:
RET
要点:
1、寄存器间接寻址
2、DJNZ指令,实现控制程序循环
3-23:
试编写程序,查找在内部RAM的20H~40H单元中出现“00H”这一数据的次数。
并将查找到的结果存入41H单元。
START:
MOV41H,#00H
MOVR0,#20H
MOVR2,#21H
LOOP:
MOVA,@R0
JNZNEXT;A不为0则转移
INC41H
NEXT:
INCR0
DJNZR2,LOOP
RET
3-11:
已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。
下述程序执行后:
POPDPH;(52H)→DPH,(SP)=51H
POPDPL;(51H)→DPL,(SP)=50H
MOVDPTR,#4000H;(DPTR)=4000H
RLA;左移(A)=04H
MOVB,A;(B)=04H
MOVCA,@A+DPTR;(A)=(程序存储器4004H)=30H
PUSHAcc;(SP)+1→SP,(SP)=51H,(51H)=30H
MOVA,B;(A)=04H
INCA;(A)=05H
MOVCA,@A+DPTR;(A)=(程序存储器4005H)=50H
PUSHAcc;(SP)+1→SP,(SP)=52H,(52H)=50H
RET;((SP))→PCH,(SP)-1→SP
;((SP))→PCL,(SP)-1→SP
ORG4000H
DB10H,80H,30H,50H,30H,50H
请问:
(A)=(),(SP)=(),(51H)=(),(52H)=(),PC=()。
(A)=50H,(SP)=50H,(51H)=30H,(52H)=50H,PC=5030H
外部中断程序实例1
硬件电路图如上,要求:
1、发光二极管D0开始时不亮;
2、按下S0按键,当外部中断0响应的时候,就点亮D0。
ORG0000H
LJMPMAIN;跳向主程序
ORG0003H
LJMPINT0;进入外部中断0的中断服务程序
ORG0100H
MAIN:
MOVSP,#50H;设置堆栈指针
SETBEA;CPU开中断
SETBEX0;允许外部中断0产生中断
SETBPX0;外部中断0设置为高优先级中断
SETBIT0;外部中断0设置为跳沿触发方式
MOVP1,#0FFH;P1.0高电平,发光二极管不亮
LOOP:
LJMPLOOP;循环等待
ORG1000H
INT0:
CLRP1.0;P1.0变低电平,点亮发光二极管
RETI;中断返回
END;程序结束
外部中断程序实例2:
硬件电路图如上,要求:
1、发光二极管D0开始时点亮;
2、每按一下S0按键,熄灭亮的二极管,点亮下一个发光二极管(顺序:
……-D0-D1-D2-D3-……D7-D0-D1……)。
3、每按一下S1按键,熄灭亮的二极管,点亮下一个发光二极管(逆序:
……-D7-D6-D5-……D1-D0-D7……)。
ORG0000H/*起始地址*/
LJMPMAIN/*跳转到主程序*/
ORG0003H/*外部中断0的入口地址*/
LJMPINTA/*跳转到中断服务程序INTA执行*/
ORG0013H/*外部中断1的入口地址*/
LJMPINTB/*跳转到中断服务程序INTB执行*/
ORG0100H/*主程序的起始地址*/
MAIN:
MOVA,#0FEH/*将FEH送给A*/
SETBIT0/*外部中断0跳沿触发方式*/
SETBEX0/*外部中断0开中断*/
SETBIT1/*外部中断1跳沿触发方式*/
SETBEX1/*外部中断1开中断*/
SETBEA/*CPU开中断*/
MOVP1,A/*将A送给P1*/
LOOP:
LJMPLOOP/*循环等待*/
INTA:
RLA/*A循环左移*/
MOVP1,A/*将A的数值送给P1*/
RETI/*中断返回*/
INTB:
RRA/*A循环右移*/
MOVP1,A/*将A的数值送给P1*/
RETI/*中断返回*/
定时器/计数器的编程和应用
例5.1假设时钟频率6MHz,在P1.0上输出一个周期为2ms的方波信号。
A、定时中断法
ORG0000H
RESET:
AJMPMAIN;转主程序
ORG000BH;T0中断入口
AJMPIT0P
ORG0100H
MAIN:
MOVSP,#60H;堆栈指针设置
MOVTMOD,#00H;设定T0定时模式、方式0
MOVTL0,#0CH;设置T0初值
MOVTH0,#0F0H
SETBTR0;启动定时器T0
SETBET0;允许T0溢出中断
SETBEA;CPU开中断
HERE:
AJMPHERE;等待中断
IT0P:
MOVTL0,#0CH;重装T0初值
MOVTH0,#0F0H
CPLP1.0;P1.0取反
RETI
B、查询法
MOVTMOD,#00H;置T0为方式0
MOVTL0,#0CH;T0装入初值
MOVTH0,#0F0H
SETBTR0;启动T0
LOOP:
JBCTF0,NEXT;TF0是1则转移,且将TF0清0
SJMPLOOP
NEXT:
MOVTL0,#0CH;重装计数初值
MOVTH0,#0F0H
CPLP1.0;输出取反
SJMPLOOP;重复循环
例5.3
ORG0000H
RESET:
LJMPMAIN;转主程序
ORG000BH;T0中断入口
AJMPIT0P
ORG1000H
MAIN:
MOVSP,#60H
MOVB,#0AH;设循环次数
MOVTMOD,#01H;设定T0工作方式1
MOVTL0,#0B0H;设置T0初值
MOVTH0,#3CH
SETBTR0;启动定时器T0
SETBET0;允许T0溢出中断
SETBEA;CPU开中断
HERE:
SJMPHERE;等待中断
IT0P:
MOVTL0,#0B0H;重装T0初值
MOVTH0,#3CH
DJNZB,LOOP;减1不为0则转移
CLRTR0;1s定时时间到,停止T0工作
LOOP:
RETI
END
例5.4
ORG0000H
RESET:
AJMPMAIN;转主程序
ORG000BH;T0中断入口
AJMPIT0P
ORG001BH;T1中断入口
AJMPIT1P
ORG0100H
MAIN:
MOVSP,#60H
MOVTMOD,#25H;T1方式2定时,T0方式1计数
MOVTL0,#0FFH;设置T0初值
MOVTH0,#0FFH
MOVTL1,#06H;设置T1初值
MOVTH1,#06H
SETBTR0;启动定时器T0
SETBET0;允许T0溢出中断
SETBEA;CPU开中断
HERE:
AJMPHERE;等待T1溢出中断
IT0P:
CLRTR0
SETBTR1;启动T1定时
SETBET1;允许T1溢出中断
RETI
IT1P:
CPLP1.0
RETI
例5.6
ORG0000H
LJMPMAIN;转主程序
ORG000BH;T0中断入口
LJMPTL0INT;跳TL0中断服务程序
ORG001BH;T1中断入口
LJMPTH0INT;跳TH0中断服务程序
ORG0100H
MAIN:
MOVTMOD,#27H;T0方式3(TL0计数),T1方式2定时
MOVTL1,#datal;设置T1初值,作波特率发生器
MOVTH1,#datah
MOVTL0,#0FFH;设置TL0初值
MOVTH0,#9CH;设置TH0初值
SETBTR0;启动计数器TL0
SETBET0;允许TL0溢出中断
SETBEA;CPU开中断
HERE:
AJMPHERE;原地循环,等待中断
TL0INT:
MOVTL0,#0FFH;重置TL0初值
SETBTR1;启动TH0定时
SETBET1;允许TH0溢出中断
RETI
TH0INT:
MOVTH0,#9CH;重置TH0初值
CPLP1.0
RETI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 参考 程序