当前位置:文档之家› 单片机教案 (2)

单片机教案 (2)

常州轻工职业技术学院
单片机原理及应用课程授课教案 NO 6
20分钟
(五)汇编语言程序设计步骤和基本程序结构
1.汇编语言程序设计步骤
(1)分析问题
(2)确定算法
(3)设计程序流程图
标准的流程图符号见下图:
(4)分配内存单元:分配内存工作单元,确定程序和数据区的起
始地址。

(5)编写汇编语言程序
(6)调试程序:
2.基本程序结构
包括顺序结构、分支结构、循环结构
3.程序质量的评判标准
(1)能可靠地实现系统所要求的各种功能
(2)本着节省存储单元,减少程序长度和加快运算时间的原则
(3)程序结构清晰、简捷,流程合理,各功能程序模块化、子程序
化。

板书
图示




授课教师
图3—2 三种基本程序结构流
程图
流线
程序执行顺序流
向线
表示处理功能
端点符号程序的开始和结束符

表示判断功能
判断符号
处理符号
连接符号
用来实现流
程图之间的
常州轻工职业技术学院
单片机原理及应用课程授课教案 NO 7
常州轻工业学校
单片机原理及应用课程授课教案 NO 8
常州轻工职业技术学院
单片机原理及应用课程授课教案 NO 9
10分钟25分钟2.多分支程序
【例3-9】 20H单元中存放加、减、乘、除的运算标志0、1、2、3。

21H、
22H存放两个数X、Y,运算结果存放在23H,24H单元中。

试根据20H单
元的值,分别转向2KB范围内的加、减、乘、除处理子程序的入口处。

解:
程序流程图如图5—8所示。

FLAG EQU 20H
X EQU 21H
Y EQU 22H
RESUL EQU 23H
RESUH EQU 24H
XYOP:MOV DPTR,#TAB ;取表首地址
CLR C ;Cy清零
MOV A ,FLAG ;分支转移值送A
RLC A ;A ←A×2
JNC LP ;判是否有进位
INC DPH ;有进位则DPH加1
LP:JMP @A+DPTR ;散转到转移指令表
TAB:AJMP ADDXY ;转移指令表
AJMP SUBXY ;
AJMP MULXY
AJMP DIVXY
ADDXY: MOV A,X
ADD A,Y
MOV RESUL,A
RET
SUBXY: MOV A,X
CLR C
SUBB A,Y
MOV RESUL,A
讲解
程序分析图5—8 2KB范围内的散转移
2
1
判分支转移植n=?
PRG0 PRG1 PRG2
k
PRGk
······
常州轻工职业技术学院单片机原理及应用课程授课教案 NO 10
授课日期
授课班级
课题四、循环程序设计
授课类型讲授授课时数2
教学目的将教师实验室现场教学演示和学生练习结合起来,使学生更进一步掌握使用WAVE6000调试程序的方法;通过观察程序执行的顺序,更进一步掌握循环程序的结构特点;通过教师的讲解,掌握循环结构程序设计的要点
重点
难点
循环结构程序设计的要点
教具
挂图
计算机,小哨兵软件,wave6000软件教学

过程分配主要教学内容
教学方法
的运用
10分钟20分钟四、循环程序设计
循环程序设计不仅可
以大大缩短所编程序的长
度,使程序所占内存单元数
最少,也能使程序结构紧凑
和可读性变好。

(一)循环程序的基本结构
1.循环初始化
2.循环工作部分(是
循环程序的主体,需要重复
执行的程序段)
3.循环控制部分(完
成对变量的修改)
4.循环终止判定部分
(二)循环结构程序设计
【例3-9】试编写程序,求片内RAM的30H~39H单元中数的和,将
结果存放在R2和R3中。

ORG 0000H
NSUN:MOV R1,#10 ;数据块长度送R1,(计数器置初值)
MOV R2,#00H ;R2清零
MOV R3,#00H ;R3清零
MOV R0,#30H;数据块首地址送R0
LOOP:MOV A,R3
ADD A,@R0
MOV R3,A ;和数的低字节送R3
CLR A
ADDC A,R2
MOV R2,A ;和数的高字节送R2
INC R0 ;修改地址指针
DJNZ R1,LOOP;数据未加完继续执行
RET
END
讲解
教师示范
图3-3循环程序结构
20分钟20分钟
20分钟课堂练习:试编程实现将内部RAM从2AH单元开始的6个字节的数据块送到
外部RAM的0100H~0105H单元。

【例3-10】求一组单字节无符号数中最大值。

设内部RAM 20H单
元为数据块的起始地址,块长度为10,试编程求数据块中的最大值并存
入30H单元中。

相应的程序为:
MOV R0,#20H ;数据块首地址送R0
MOV R6,#0AH ;数据块长度送R6
MOV 30H,#00H ;30H←00H
LOOP::MOV A,@R0 ;数据块的数读入A中
CJNE A,30H,NEXT
NEXT:JC LOOP1 ;(A)<(30H)转LOOP1
MOV 30H,A ;(A)>(30H)则大数送30H
LOOP1:INC R0 ;修改数据块指针R0
DJNZ R6,LOOP;未比较完,转LOOP(循环)
SJMP $
思考:1、若将程序中的JC指令改为JNC指令,要使程序功能不变,程序
将作如何修改。

2、求最小数如何编程?
教师指导
讲解
提问




授课教师
图3-4 找最大值程序流程图
常州轻工业学校
单片机原理及应用课程授课教案 NO 11。

相关主题