实验目的:
1、理解掌握分支结构程序设计思想和方法。
2、熟悉和掌握不同的转移指令。
3、理解掌握分支结构程序流程图的画法。
实验内容及步骤:
1、单分支结构程序:
符号函数Y=(1、0、-1)
设其中X的值存于20H单元,Y值存于21H单元,编程解此函数。
分析:对8位单片机来说,其取值范围是-128—+127,因此,最大的正数为7FH。
程序如下:
ORG 0000H
LJMP START
ORG 1000H
START: MOV A ,20H ;取数
CJNE A ,#00H,NOEQ ;≠0转移
MOV A ,#00H ;A=0
SJMP DONE
NOEQ: CJNE A ,#07FH ,GT1 ;≠7FH转移
SJMP GT0
GT1: JC GT0 ;为正则转
MOV A ,#0FFH ;负数-1
SJMP DONE
GT0: MOV A ,#01H
DONE: MOV 21H ,A ;存结果
LOOP: SJMP LOOP
END
2、多分支结构程序:
有两个16位无符号数NA、NB分别存放在内部RAM的40H,41H及50H,51H单元, 当NA>NB时,将内部RAM的42H单元清0,否则,将该单元置全1,试编制实现此功能的程序。
分析:MCS-51指令系统没有16位比较指令,只能使用8位比较指令,于是应先比较两数的高8位,若NA的高8位大于NB的高8位,则说明NA>NB;将内部RAM的42H单元清0。若NA高8位小于NB的高8位,则说明NA<NB;将42H单元置1。若NA的高8位等于NB的高8位,则再比较两者的低8位,方法同上(当NA=NB时,也将42H单元置1)。
程序如下:
ORG 0000H
LJMP START
ORG 1000H
START:MOV A ,50H ;取NB高8位
CJNE A ,40H ,LOOP1 ;判NA高8位=NB高8位,若不等则LOOP1
MOV A ,51H ;若相等,取NB低8位
CJNE A ,41H ,LOOP1 ;判NA低8位=NB低8位,若不等则LOOP1
SJMP LOOP2 ;若NA=NB,则转LOOP2
LOOP1:JC LOOP3 ;若NA>NB,则转LOOP3
LOOP2:MOV 42H ,#0FFH ;NA≤NB ,置全1
SJMP LOOP
L00P3:MOV 42H ,#00H ;NA>NB,则置0
LOOP: SJMP LOOP
END
单片机教程,五系列(55讲)电子书全集下载论坛精选:
单片机教程,MCS51单片机从零开始 第一讲:初识单片机
http://bbs.huazhoucn.com/Topic.aspx?id=2539
单片机教程,MCS51单片机从零开始 第二讲:MCS-51单片机简述
http://bbs.huazhoucn.com/Topic.aspx?id=2540
单片机教程,MCS51单片机从零开始 第三讲:单片机相关常用名词解释
http://bbs.huazhoucn.com/Topic.aspx?id=2541
单片机教程,MCS51单片机从零开始 第四讲:计算机中数的表示及运算
http://bbs.huazhoucn.com/Topic.aspx?id=2542
单片机教程,MCS51单片机从零开始 第五讲:常用逻辑电路
http://bbs.huazhoucn.com/Topic.aspx?id=2544
单片机教程,MCS51单片机从零开始 第六讲:51单片机的结构及其组成
http://bbs.huazhoucn.com/Topic.aspx?id=2545
单片机教程,MCS51单片机从零开始 第七讲:51单片机的引脚
http://bbs.huazhoucn.com/Topic.aspx?id=2546
单片机教程,MCS51单片机从零开始 第八讲:8051单片机I/O引脚工作原理
http://bbs.huazhoucn.com/Topic.aspx?id=2547
单片机教程,MCS51单片机从零开始 第九讲:8051单片机的存储器结构
http://bbs.huazhoucn.com/Topic.aspx?id=2548
单片机教程,MCS51单片机从零开始 第十讲:编码及译码器工作原理
http://bbs.huazhoucn.com/Topic.aspx?id=2549
单片机教程,MCS51单片机从零开始 第十一讲:存储器的存储原理
http://bbs.huazhoucn.com/Topic.aspx?id=2550
单片机教程,MCS51单片机从零开始 第十二讲:51单片机的特殊功能寄存器
http://bbs.huazhoucn.com/Topic.aspx?id=2551
单片机教程,MCS51单片机从零开始 第十三讲:51单片机CPU的内部结构
http://bbs.huazhoucn.com/Topic.aspx?id=2552
单片机教程,MCS51单片机从零开始 第十四讲:定时器/计数器的基本结构及工作原理
http://bbs.huazhoucn.com/Topic.aspx?id=2553
单片机教程,MCS51单片机从零开始 第十五讲:51单片机的中断系统
http://bbs.huazhoucn.com/Topic.aspx?id=2554
单片机教程,MCS51单片机从零开始 第十六讲:51单片机的复位
http://bbs.huazhoucn.com/Topic.aspx?id=2555
单片机教程,MCS51单片机从零开始 第十七讲:51单片机执行指令的过程
http://bbs.huazhoucn.com/Topic.aspx?id=2556
单片机教程,MCS51单片机从零开始 第十八讲:51单片机的延时及时序分析
http://bbs.huazhoucn.com/Topic.aspx?id=2557
单片机教程,MCS51单片机从零开始 第十九讲:汇编语言基础
http://bbs.huazhoucn.com/Topic.aspx?id=2558
单片机教程,MCS51单片机从零开始 第二十讲:汇编语言及汇编过程
http://bbs.huazhoucn.com/Topic.aspx?id=2556
单片机教程,MCS51单片机从零开始 第二十一讲:汇编程序的基本结构
http://bbs.huazhoucn.com/Topic.aspx?id=2560
单片机教程,MCS51单片机从零开始 第二十二讲:51单片机的寻址方式
http://bbs.huazhoucn.com/Topic.aspx?id=2561
单片机教程,MCS51单片机从零开始 第二十三讲:数据传送类指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2562
单片机教程,MCS51单片机从零开始 第二十四讲:算术运算类指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2563
单片机教程,MCS51单片机从零开始 第二十五讲:逻辑运算及移位指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2564
单片机教程,MCS51单片机从零开始 第二十六讲:控制转移类指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2565
单片机教程,MCS51单片机从零开始 第二十七讲:布尔变量操作指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2566
单片机教程,MCS51单片机从零开始 第二十八讲:伪指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2567