内容正文:
第四章
第五节
单片机简单程序设计实例
第二版
《单片机应用与技术》
教学目标
一
05 单片机简单程序设计实例
本节目标
了解单片机简单程序设计实例。
知识目标
(1)熟悉减法程序、拆字程序的例子。
(2)掌握在 AT89S51 单片机的PO 和 P2 端口分别接有两个共阴数码管, PO 口驱动显示秒的十位 而 P2 口驱动显示秒的个位的实训任务。
教学重难点
二
教学重点:熟悉减法程序、拆字程序的例子
教学难点: 掌握在 AT89S51 单片机的PO 和 P2 端口分别接有两个共阴数码管, PO 口驱动显示秒的十位 而 P2 口驱动显示秒的个位的实训任务
导入新课
三
导入:
大多数单片机应用系统离不开数值计算,包括符号数运算和无符号数运算,定点数和浮点 数运算。定点数运算程序简单,执行速度快,因此多数情况下采用定点数运算。下面介绍一些 简单的定点数运算程序。
新知讲授
四
一、减法程序
例4- 17 将 4 0H 存放的10个字节的数与50H 存放的10个字节的数相减(被减数大于 减数)。
设被减数指针为 R0, 减数指针为R1, 差放回被减数单元,R5 存放字节个数,则程序 如下:
新知讲授
四
一、减法程序
例4- 18 假设被乘数放在 R4 、R3 中,乘数放在 R2 中,乘积放在 R7 、R6 和 R5 中。
乘法程序如下:
新知讲授
四
一、减法程序
例4- 18 假设被乘数放在 R4 、R3 中,乘数放在 R2 中,乘积放在 R7 、R6 和 R5 中。
乘法程序如下:
新知讲授
四
二、 拆字程序
例4 - 19 内 部 RAM 的 4 0H 单元内存有一个十六进制数,把这个数转换为 BCD 码 ,BCD 码的十位和个位放在20H 中,百位放在21H 中 。
新知讲授
四
三、课后拓展
用查表法编程控制发光二极管亮灭情况:先右移两次,再左移两次,然后闪烁两次。
假 设P1 口接8只发光二极管,将每次点亮二极管的高低电平制成二进制表,查表后送入 P1 口实现控制。
新知讲授
四
三、课后拓展
用查表法编程控制发光二极管亮灭情况:先右移两次,再左移两次,然后闪烁两次。
假 设P1 口接8只发光二极管,将每次点亮二极管的高低电平制成二进制表,查表后送入 P1 口实现控制。
新知讲授
四
四、技能实训
在 AT89S51 单片机的PO 和 P2 端口分别接有两个共阴数码管, PO 口驱动显示秒的十位 而 P2 口驱动显示秒的个位。
01
实训任务
新知讲授
四
四、技能实训
02
程序设计
① 在设计中,用一个存储单元作为秒计数单元,计满60就自动恢复到0,重新计数。
② 对于秒计数单元中的数据要把十位数和个位数分开,方法仍采用对10整除和对10 求余。
01
02
③ 对于数码显示,仍通过查表的方式完成。
④ 计数时间采用软件精确延时的方法。
03
04
新知讲授
四
四、技能实训
03
程序框图
新知讲授
四
四、技能实训
04
汇编程序
新知讲授
四
五、知识归纳
常见的汇编语言程序结构类型包括顺序程序、分支程序、循环程序、查表程序和子程序。 顺序程序是按逻辑操作的顺序,从某条指令开始逐条执行。
分支程序是通过控制转移指令来实现的,通过条件判断实现分支程序转移的指令包括 JZ、 JNZ 、CJNE 、DJNZ 等;以位状态作为条件实现分支程序转移的指令包括JC 、JNC 、JB 、JNB 、 JBC 等 。
循环程序一般由四个主要部分组成:初始化部分、循环处理部分、循环控制部分、循环修 改部分。
新知讲授
四
五、知识归纳
根据控制循环的方式,可以将循环程序的结构形式分为“先执行,后判断”结构和 “先判断,后执行”结构。根据循环的次数可以将循环程序分为单重循环和多重循环。
查 表 程 序 中 可 以 使 用 的 查 表 指 令 有MOVCA,@A+PC 和 MOVC A,@A+DPTR。其 中MOVC A,@A+PC 使 用 时 表 格 必 须 设 置 在 查 表 指 令 之 后 , 且 长 度 不 超 过 2 5 6 字 节 。 而 指 令MOVC A,@A+DPTR 使用时表格可在64 KB 范 围 之 内 的 任 何 地 方 。
调 用 子 程 序 的 指 令 有 ACALL 和 LCALL, 执 行 调 用 指 令 时 , 必 须 做 到 现 场 保 护 和 现 场 恢复 、 参数传递
师生互动
五
总结 AT89S51 单片机的PO 和 P2 端口分别接有两个共阴数码管, PO 口驱动显示秒的十位 而 P2 口驱动显示秒的个位的实训内容。
课堂小结
六
大多数单片机应用系统离不开数值计算,包括符号数运算和无符号数运算,定点数