单片机——程序的基本结构教学教材

合集下载

《单片机原理及应用》课件01-51单片机基本结构与存储器分配

《单片机原理及应用》课件01-51单片机基本结构与存储器分配

内中断
并行口
外中断
P0 P1 P2 P3
串口模块 TXD RXD
中断模块 INT0 INT1
P0.0~P0.7
P2.0~P2.7
VCC (+5V)
GND
RAM地址 锁存器
RAM
通道0驱动器
通道0锁 存器
通道2驱动器
通道2锁 存器
ROM/ EPROM
程序地址寄存器
PSEN ALE
EA RST
B寄存器 ACC TMP2
片内地址空间:RAM 128B(00H-7FH) SFR 128B(80H-FFH)
128B SFR
128B RAM
FFH 21个SFR分布 在80H-FFH
83个可寻址位
80H 7FH
用户、
堆栈区
30H 2FH
位寻址区
20H 1FH
工作寄存器区
00H
内部RAM组织结构
10
所有的RAM区(位 寻址区、工作寄 存器区)都可以 用于存放数据, 故也称为数据缓 存寄存器
特殊功能寄存器(SFR)
▼特殊功能寄存器SFR(专用寄存器)
专用于控制、选择、管理、存放单片机内部各功能 部件的工作方式、条件、状态、结果的寄存器。
▼不同的SFR管理不同的硬件模块,负责不同的功 17 能——各司其职
换言之:要让单片机实现预定的功能,必须有相应 的硬件和软件,而软件中最重要的一项工作就是对 SFR写命令(要求)。
4 堆栈指针SP
堆栈:
在片内RAM中,指定一个专门的区域来存放某 些特别的数据,它遵循先进后出和后进先出 (LIFO/FILO)的原则,这个RAM区叫堆栈。
功用:
22

单片机原理教程(经典)ppt课件

单片机原理教程(经典)ppt课件

三、Maxim-Dallas单片机
四、WinBond单片机
五、Motorola单片机
六、其他公司的单片机
1)NEC单片机;
2)东芝单片机;
3)Epson单片机;
4) PIC单片机—— M icrochip公司
•最新课件
•9
第三节 单片机的应用领域及发展
第一章---------9
一、单片机在智能仪器中的应用
第一章---------3
一、微处理器、微机和单片机的概念
微处理器(Microprocessor)——微型计算机的控制和运算器部分;
微型计算机(Microcomputer)——有完整运算及控制功能的计算机,包 括微处理器、存储器、输入/输出(I/O)接口电路以及输入/输出设备等;
单片机(single chip microcomputer)——直译为单片微型计算机,它将 CPU、RAM、ROM、定时器/计数器、输入/输出(I/O)接口电路、中断、串行通 信接口等主要计算机部件集成在一块大规模集成电路芯片上,组成单片微型 计算机简称单片机 。
一种是在通用微型计算机中广泛采用的将程序存储器和数据存储器 合用一个存储空间的结构,称为普林斯顿(Princeton)结构或称冯·诺依曼 结构;
另一种是将程序存储器和数据存储器截然分开,分别寻址的结构, 称为哈佛(Har-vard)结构。Intel公司的MCS-51和80C51系列单片机采用的 是哈佛结构。目前的单片机以采用程序存储器和数据存储器截然分开的 结构较多。
P1口也是—个准双向I/O口,与P0口不同的是,没有多路开关MUX和控 制电路部分。输出驱动电路只有一个FET场效应管,同时内部带上拉电阻, 此电阻与电源相连。P1口可作通用双向I/O口用,而不必再外接上拉电阻。

单片机课程教案

单片机课程教案

单片机课程教案一、课程概述单片机原理及应用是一门涉及微处理器、数字电路和计算机接口技术的综合性课程。

本课程的目标是使学生掌握单片机的原理和应用,了解单片机在嵌入式系统设计中的地位和作用,为学生进一步深入学习和应用单片机打下坚实的基础。

二、课程目标1、理解单片机的内部结构和工作原理。

2、掌握单片机的基本操作和编程方法。

3、熟悉单片机在嵌入式系统中的应用和设计方法。

4、培养学生的创新能力和实践操作能力。

三、课程内容第一章:单片机概述1、1单片机的基本概念及发展历程2、2单片机的特点和应用领域3、3单片机的主要产品和发展趋势第二章:单片机的基本结构和工作原理2、1单片机的内部结构和主要部件功能介绍21、2单片机的引脚和信号说明211、3单片机的存储器和寄存器介绍2111、4单片机的时钟系统和定时器/计数器介绍第三章:单片机的编程语言和开发环境3、1单片机的编程语言概述和特点31、2 C语言在单片机编程中的应用311、3 Keil C51开发环境和程序设计流程介绍3111、4程序调试和下载方法说明第四章:单片机的应用实例和实验指导4、1单片机在LED闪烁和流水灯控制中的应用实例41、2单片机在按键输入和数码管显示中的应用实例411、3单片机在A/D和D/A转换中的应用实例4111、4单片机在电机控制和红外线遥控中的应用实例本文5单片机的实验指导和实验报告要求说明第五章:单片机的发展趋势和应用领域的扩展本文1单片机在物联网和智能家居中的应用扩展本文2单片机在汽车电子和医疗设备中的应用扩展本文3单片机在工业控制和智能制造中的应用扩展本文4单片机在人工智能和机器人技术中的应用扩展第六章:课程总结和答疑解惑本文1课程总结和学习方法分享本文2答疑解惑和常见问题解答1、3学生自我评估和改进建议收集四、教学方法与手段本课程采用理论教学和实践操作相结合的方法,以案例分析和程序示范为主要手段,通过课堂讲解、小组讨论、实验指导等多种形式,使学生更好地理解和掌握单片机的原理和应用。

第3章 STC15F2K60S2单片机的基本结构

第3章 STC15F2K60S2单片机的基本结构

D5 F0
D4 D3 D2 RS1 RS0 OV
D1 F1
D0 P
AC(PSW.6):辅助进位标志位 当执行加/减法指令时,如果低四位数向高 四位数产生进/借位,则AC置“1”,否则清 零。
10:15:52
11/109
位号 D7 D6 符号 CY AC
D5 F0
D4 D3 D2 RS1 RS0 OV
10:15:52
12/109
位号 D7 D6 符号 CY AC
D5 F0
D4 D3 D2 RS1 RS0 OV
D1 F1
D0 P
ቤተ መጻሕፍቲ ባይዱ
RS1,RS0(PSW.4~PSW.3):工作寄存 器组选择控制位,其详细介绍见后续内容。 OV(PSW.2):溢出标志位。指示运算过 程中是否发生了溢出,在执行指令过程中 自动形成。
10:15:52
3/109
以目前市场上常见的8051内核单片机STC15F2K60S2为例, 说明单片机的内部结构。STC12C5A60S2单片机主要集成 了以下资源:
增强型8051内核,单时钟机器周期,速度比传统8051内核单片机 快8~12倍 60KB Flash程序存储器;1KB数据Flash;2048字节的SRAM 3个16位可自动重装载的定时/计数器(T0、T1、T2) 可编程时钟输出功能 至多42根I/O口线 2个全双工异步串行口(UART) 1个高速同步通信端口(SPI) 8通道10位ADC 3通道PWM/可编程计数器阵列/捕获/比较单元 内部高可靠上电复位电路和硬件看门狗 内部集成高精度R/C时钟,常温工作时,可以省去外部晶振电路。
10:15:52
15/109
(2)控制器 控制器是CPU的大脑中枢,包括定时控 制逻辑、指令寄存器、译码器、地址指针 DPTR 及 程 序 计 数 器 PC 、 堆 栈 指 针 SP 、 RAM地址寄存器、16位地址缓冲器等。

51单片机教学ppt精选全文完整版

51单片机教学ppt精选全文完整版
16位CPU、8K字节ROM、232字节RAM、5个8位并 口、1个
全双工串行口、2个16位定时/计数器。寻址范围64K。
片上还有8路10位ADC、1路PWM输出及高速I/O部件 等。
80C51系列单片机产品繁多,主流地位已经形成,近 年来推出的与80C51兼容的主要产品有:
﹡ATMEL公司融入Flash存储器技术的AT89系列; ﹡Philips公司的80C51、80C552系列; ﹡华邦公司的W78C51、W77C51高速低价系列; ﹡ADI公司的ADμC8xx高精度ADC系列; ﹡LG公司的GMS90/97低压高速系列; ﹡Maxim公司的DS89C420高速(50MIPS)系列; ﹡Cygnal公司的C8051F系列高速SOC单片机。 *ARM公司
EXIT: RET

1)编程扫描方式(查询方式) 2)定时扫描方式 3)中断方式

1)取得键值的方法 ◆扫描法 ◆线反转法
2)键值与键号的对应
3)通过程序得到键号 分析:

中断结构图





中断请求



中断响应
中断服务
中断返回 返
1.中断源及矢量地址 2.与中断控制相关的寄存器 3.中断处理过程 4.中断请求源的撤销 5.中断服务程序设计(汇编)
IE1
P1.3
25H
26H
例15:设累加器的各位ACC.0-ACC.7分别记为X0-X7 编程 实现以下逻辑表达式功能。
Y=X0 X1 X2+X0 X1 X2+X0 X1 X2 X3+X4 X5 X6 X7

例16:用程序实现c=a2+b2,设a、b均小于10。a存 放在

单片机课程设计pdf

单片机课程设计pdf

单片机课程设计pdf一、课程目标知识目标:1. 让学生掌握单片机的基本原理和结构,理解其工作流程。

2. 使学生熟悉单片机编程语言,能运用C语言或汇编语言编写简单的单片机程序。

3. 让学生了解单片机在日常生活和工业控制中的应用。

技能目标:1. 培养学生运用单片机解决实际问题的能力,学会设计简单的电路控制系统。

2. 提高学生编程能力,能对单片机程序进行调试和优化。

3. 培养学生团队协作和沟通能力,能在项目中进行有效分工与合作。

情感态度价值观目标:1. 激发学生对单片机及电子技术的兴趣,培养其探索精神和创新能力。

2. 培养学生严谨的科学态度,注重实践操作,养成良好的学习习惯。

3. 增强学生的环保意识,使其关注单片机在节能减排领域的应用。

课程性质:本课程为实践性较强的课程,结合理论教学,注重培养学生的动手能力和实际操作技能。

学生特点:学生具备一定的电子基础和编程知识,对单片机有一定了解,但实践操作能力有待提高。

教学要求:教师应结合课本内容,采用项目驱动的教学方法,引导学生通过实践操作掌握单片机相关知识,将理论知识与实际应用相结合,提高学生的综合素养。

在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。

通过课程学习,使学生能够具备解决实际问题的能力,为未来的学习和工作打下坚实基础。

二、教学内容根据课程目标,本章节教学内容主要包括以下几部分:1. 单片机原理与结构:介绍单片机的基本组成、工作原理和性能指标,涉及课本第一章内容。

2. 单片机编程语言:讲解C语言和汇编语言在单片机编程中的应用,包括语法、语句和编程规范,对应课本第二章。

3. 单片机程序设计:通过实例讲解单片机程序设计方法,涵盖输入/输出、中断、定时器等应用,涉及课本第三章。

4. 单片机外围设备:介绍常见外围设备的使用方法,如键盘、显示、传感器等,对应课本第四章。

5. 单片机应用案例:分析单片机在实际项目中的应用,如智能家居、自动控制系统等,涉及课本第五章。

单片机——程序的基本结构

单片机——程序的基本结构



ORG 0000H LJMP STRAT ORG 0100H STRAT:MOV R1,#0 ; R1用于计数,R1清零 MOV DPTR,#TAB ; 设置表地址指针 GO:MOV A, R1 LOOP: MOVC A,@A+DPTR ;查表取显示码 CJNE A,#0FFH,OK ;不是结束码显示码送P0口 SJMP STRAT ;是结束码,重新开始 OK:MOV P0,A LCALL DEL ;延时1s INC R1 ;循环左移一次 SJMP GO (此处略延时程序DEL) TAB:DB 0FEH,0FDH,0FBH,0F7H,0EFH DB 0DFH,0BFH,7FH,0FFH ;LED点亮码,0FFH为结束码 .......... END


子程序
可以被调用的程序段称为子程序。在实际问题中,常常 会遇到在一个程序中有许多相同的运算或操作,例如多字节 的加、减、字符处理等。如果每遇到这些运算和操作,都从 头做起,则使程序非常繁琐且浪费内存。因此在实际应用中 ,通常把这些多次使用的程序段,按一定结构编好,存放在 内存中,当需要时,程序可以去调用这些独立的程序段。因
; IN为主程序或调用程序标号

┇ SUB: PUSH PSW ;现场保护
PUSH ACC
子程序处理程序段 POP POP RET ACC PSW ;最后一条指令必须为RET ;现场恢复


【例4】编写一个通用子程序,实现N个单字节无符号数
之和(N < 100H)。调用该子程序完成将片内部30H~5FH 中存放的单字节无符号数求和,结果存入60H、61H单元 中(高位在前)。
addr11
addr16

单片机基础与应用(C语言版)第3章 C51程序设计基础

单片机基础与应用(C语言版)第3章 C51程序设计基础

选择语句
多分支选择的switch语句, 其一般形式如下: switch(表达式)
{ case常量表达式1: 语句组1;break; case常量表达式2: 语句组2;break; …… case常量表达式n: 语句组n;break; default : 语句组n+1;
} 该语句的执行过程是:首先计算表达式的值,并逐个与case后的常量表达 式的值相比较,当表达式的值与某个常量表达式的值相等时,则执行对应 该常量表达式后的语句组,再执行break语句,跳出switch语句的执行,继 续执行下一条语句。如果表达式的值与所有case后的常量表达式均不相同, 则执行default后的语句组。
位运算
按位或操作符: |
或操作
格式:x|y
规则:对应位均为0时才为0,否则为1 例如, i=i|0x0f; 等同于
i|=0x0f;
主要用途:将1个数的某(些)位置1,其余各位不变
位运算
异或操作
按位异或操作符:^ 格式:x^y 规则:对应位相同时为0,不同时为1
例如, i=i^0x0f; 等同于 i^=0x0f; 主要用途:使1个数的某(些)位翻转(即原来为1的位 变为0,为0的变为1),其余各位不变。
右移运算符“>>”的功能,是把“>>”左边的操作数 的各二进制位全部右移若干位,移动的位数由“>>” 右边的常数指定。进行右移运算时,如果是无符号数, 则总是在其左端补“0”
练习
1 .若x = 10, 则!X的值为真或假? 2. 若a = 3, b = 2, 则if(a&b)的值为真或假? 3. 5 && 0 ||8的值为?
浮点型 指针型 位类型 特殊功能寄存器 16位特殊功能寄存器 可寻址位
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MOVC A,@A+PC 表格只能放在该指令的256个地 址单元内,地址需要调整。 MOVC A,@A+DPTR 基址寄存器DPTR能提供16位 基址,因此查表范围可达64KB空间,且表格的大小和 位置也可在64KB ROM中任意安排。


【例3】 根据项目一流水灯电路电路,采用查表方法实 现相同功能。 解: 用查表法实现流水灯,要设计一个LED点亮码表 格,根据8个LED点亮次序,制作数码表格,为了循环 点亮LED,在点亮第8个LED后返回点亮第1个LED, 表格可以设置一个结束标志码FFH。当取显示码为结 束标志FFH时,返回取第1个显示码。
基 本
查表结构

子程序结构

循环结构


顺序结构
顺序结构程序:是一种最简 单、最基本的程序,按照程 序编写的顺序逐条依次执行 ,直到程序结束。这是程序 的最基本的形式,任何程序 都离不开这种形式。
程序段A 程序段 B
顺序结构


【例1】 将片内RAM的20H单元中的压缩BCD码拆成两 个ASCII码存入21H、22H单元。高4位转换后存在21H单 元,低4位转换后存在22H单元。


不管多么简单或复杂的程序, 总离不开若干顺序程序段所组成 的。如图1所示,A框和B框分别 代表不同的程序段, 是A、B顺 序执行。它是最简单、最基本的 程序结构,其特点是按指令的排 列顺序一条条地执行,直到全部 指令执行完毕为止。
a
A
B
b
图2-7-1 顺序程序结构


基本结构

顺序结构

分支结构


ORG 0000H
LJMP STRAT
ORG 0100H
STRAT:MOV R1,#0
MOV DPTR,#TAB GO:MOV A, R1
; R1用于计数,R1清零 ; 设置表地址指针
LOOP: MOVC A,@A+DPTR ;查表取显示码
CJNE A,#0FFH,OK
;不是结束码显示码送P0口
SJMP STRAT
;是结束码,重新开始
OK:MOV P0,A
LCALL DEL
;延时1s
INC R1
;循环左移一次
SJMP GO
(此处略延时程序DEL)
TAB:DB 0FEH,0FDH,0FBH,0F7H,0EFH
DB 0DFH,0BFH,7FH,0FFH
;LED点亮码,0FFH为结束码
..........

END

子程序
可以被调用的程序段称为子程序。在实际问题中,常常 会遇到在一个程序中有许多相同的运算或操作,例如多字节 的加、减、字符处理等。如果每遇到这些运算和操作,都从 头做起,则使程序非常繁琐且浪费内存。因此在实际应用中 ,通常把这些多次使用的程序段,按一定结构编好,存放在 内存中,当需要时,程序可以去调用这些独立的程序段。因 此,字程序就是一种能完成某一特定任务的程序段。
MOV A, 20H ANL A, #0FH ADD A, #30H MOV 21H, A ANL 20H, #0F0H MOV A, 20H SWAP A ADD A, #30H MOV 22H,A
;屏蔽高4位 ;得到低4位ASCII码 ;个位ASCII码送21H ;屏蔽低4位 ;送A ;高位交换到低位 ;得到高4位ASCII码 ; 十位ASCII码送22H


解:单片机中负数一般用补码表 示,只要能够判断x=0、 x<0和 x>0便能够方便实现函数。采用 JZ指令进行判断,程序流程图如 图2-1所示。
图2-7-2 程序流程图


START: MOV A,30H JZ OUT ANL A #80H JZ OUT1 MOV 31H, 30H SJMP OK


分支结构
分支结构:程序中含有转移指令
分支 结构
无条件 分支
有条件 分支
单分支 结构
多分支 结构
条件
Y
程序段A
N
程序段 B
分支结构


分支程序的两类结构
开始
程序段1
Y
条件满足吗?
N
程序段2 程序段3
结束
(a)单分支结构
开始
程序段1 数字关键码
分支程序1
分支程序2
分支程序3
程序段2
结束
(b)多分支结构


子程序的设计
1、给每个子程序赋予名字 2、现场保护与恢复 3、参数的正确传递 4、子程序说明


在编写子程序时应注意以下问题
1、子程序应有入口地址(用标号) 2、主程序调用子程序
两个子程序调用指令:
(1)绝对调用指令:ACALL addr11 (2)长调用指令:LCALL addr16


在编写子程序时应注意以下问题
OUT: MOV 31H, #3 OUT1: MOV A, #5
ADD A , 30H MOV 31H, A OK: SJMP $
;x=0, 转移 ;x≠0,判断正负号 ;x小于0,y=x
;x=0Байду номын сангаас则y=3 ;x>0,y=5+x


查表结构
查表是把事先安排的数据按照一定的顺序编制成表 格存放在 ROM 中,然后根据输入的数据,从表格中查 出所需的结果。查表可以将复杂的问题变得简单。 MCS-51汇编指令系统提供了两条专用的查表指令:
方法一 分析:两个 BCD 码拼装在一个单元内叫压缩 BCD码。设20H 内为压缩 BCD 码59, 22H通过变换 BCD 码 “5” 为ASCII码 “35”;BCD 码 “9” 变换为ASCII码 “39”。

图1-2 压缩BCD码转换成两个ASCII字符图

程序入口:20H 程序出口:21H、22H 根据分析图设计程序:

2. 7 程序的基本结构
一、绪论
二、基本结构
1. 顺序结构 2. 分支结构 3. 查表结构 4. 子程序结构 5. 循环结构


绪论
在汇编语言程序设计中,普遍采用结构化程 序设计方法。任何复杂的程序都可由顺序结构、 分支结构、循环结构、子程序结构等程序构成。 结构程序设计的特点是程序的结构清晰、易于读 写和验证、可靠性高。
3、注意设置堆栈指针和现场保护 4、最后一条指令必须是RET指令 5、子程序可以嵌套,即子程序可 以调用子程序(最多8层) 6、在子程序调用时,还要注意参 数传递的问题


分支结构
顺序结构程序只能解决一些简单的算术、逻辑运 算、传送操作等。实际控制问题往往要求计算机能根 据给定的条件进行判断,再选择不同的处理路径,从 而表现出某种智能。
程序要求改变程序执行顺序,即程序的流向有两个 或两个以上时,这种程序结构称为分支程序结构,分 支程序的特点是程序中包含有转移指令。根据分支出 口的不同分为简单分支程序和多路分支程序。
相关文档
最新文档