(单片机完整课件PPT)第四章
合集下载
单片机讲稿第四章精品PPT课件
振荡器脉冲
机器周期脉冲 Tcy
光源
光接
收器
定时器/计数器有四种工作方式,由工作方式控制寄存器 TMOD和控制寄存器TCON设定。
(1)工作方式控制寄存器 TMOD
M1 M0 00 01 1 13 位定时器 /计数器(TH 的 8 位和 TL 的低 5 位 ) 16 位定时器/计数器 (TH 的 8 位和 TL 的 8位 ) 自动重装入初值的 8 位定时器/计数器 T0 分成两个独立的 8 位计数器, T1 在方式 3 时停止工作
第四章 单片机的定时器/计数器和中 断系统
4.1 单片机的定时器/计数器
定时器/计数器的结构与应用
MCS - 51单片机的内部结构
计数脉冲输入
时钟源
4K ROM (EPROM)
SFR, 128 字节RAM
定时器/计 数器0、1
CPU
并行I / O 接口 P0 P1 P2 P3
串行接口
中断系 统
定时器/计数器是MCS-51单片机的重要功能模块之一。 在检测、控制及智能仪器等应用中,常用定时器做实时时钟, 实现定时检测、定时控制。还可用定时器产生毫秒宽的脉冲, 驱动步进电动机一类的电气机械。计数器主要用于外部事件 计数。
Y P1.0取反 TH0,TL0赋初值
程序流程框图
2、方式 1
T0或T1 构成16位定时器或计数器 ● 如希望T0工作于方式1定时时,TMOD设为如下命令字
000 1 ● 如希望T0工作于方式1计数时,TMOD设为如下命令字
010 1
● 同样在定时器/计数器T0、 T1 定时或计数前,在相应的寄存 器TH0、TL0, TH1、TL1中要赋予初值。
运行。其结构机器如周下期:
机器周期脉冲 Tcy
光源
光接
收器
定时器/计数器有四种工作方式,由工作方式控制寄存器 TMOD和控制寄存器TCON设定。
(1)工作方式控制寄存器 TMOD
M1 M0 00 01 1 13 位定时器 /计数器(TH 的 8 位和 TL 的低 5 位 ) 16 位定时器/计数器 (TH 的 8 位和 TL 的 8位 ) 自动重装入初值的 8 位定时器/计数器 T0 分成两个独立的 8 位计数器, T1 在方式 3 时停止工作
第四章 单片机的定时器/计数器和中 断系统
4.1 单片机的定时器/计数器
定时器/计数器的结构与应用
MCS - 51单片机的内部结构
计数脉冲输入
时钟源
4K ROM (EPROM)
SFR, 128 字节RAM
定时器/计 数器0、1
CPU
并行I / O 接口 P0 P1 P2 P3
串行接口
中断系 统
定时器/计数器是MCS-51单片机的重要功能模块之一。 在检测、控制及智能仪器等应用中,常用定时器做实时时钟, 实现定时检测、定时控制。还可用定时器产生毫秒宽的脉冲, 驱动步进电动机一类的电气机械。计数器主要用于外部事件 计数。
Y P1.0取反 TH0,TL0赋初值
程序流程框图
2、方式 1
T0或T1 构成16位定时器或计数器 ● 如希望T0工作于方式1定时时,TMOD设为如下命令字
000 1 ● 如希望T0工作于方式1计数时,TMOD设为如下命令字
010 1
● 同样在定时器/计数器T0、 T1 定时或计数前,在相应的寄存 器TH0、TL0, TH1、TL1中要赋予初值。
运行。其结构机器如周下期:
单片机第4章课件
24
单片机原理与应用
(5)绘制程序流程图
程序流程图是用规定的图形 符号配以文字说明来表示算法或 处理问题的步骤,它具有直观、 易懂的特点,是程序结构设计的 有力工具。
25
单片机原理与应用
程序流程图符号
常用的程序流程图符号如图4-2所示。
图4-2 常用的程序流程图符号
26
单片机原理与应用
程序流程图符号说明:
5
单片机原理与应用
1.起始汇编伪指令
指令格式:ORG 表达式 指令功能:用于向汇编程序说明下面紧接的 程序段或数据段从表达式指定的起始地址开 始存放。表达式通常为十六位地址或自定义 的标号地址。 通常每一个汇编语言源程序的开始,都 要 设 置 一 条 ORG 伪 指 令 来 指 定 该 程 序 在 ROM中存放的起始位置。可以在源程序中使 用多条ORG伪指令来规定不同程序段或数据 段存放的起始地址,但要求地址值由小到大 顺序排列,不允许空间重叠。
139
DB 0FEH, 06H, 20H, 00H, 0FFH, 06H, 20H, 15H
DB 0EFH, 06H, 25H, 00H, 0FFH, 06H, 40H, 00H ……
15
单片机原理与应用
说明:
编号为 135的 DB伪指令的功能是指示汇编 程序从上一条指令(RET)存放完成后的下一 个 ROM 单元开始,依次存入 10 个字形码。该 条伪指令一行写不下,所以分成两条 DB 伪指 令来书写; 编号为 138的 DB伪指令的功能则是从它上 一条ORG伪指令指定的1010H单元开始,依次 存入数据表中的控制码。表项较多,所以用多 条DB伪指令来书写。
DATA: DW …… 0759H 3295H, 2800H, 0BDH,
单片机原理及应用——C51编程+Proteus仿真(第3版)课件第4章-keil与Proteus的使
图4-20 hex文件生成的提示信息
35
占用程序存储器共89字节。最后生成的.hex文件名为“流水灯.hex”,至 此,整个程序编译过程就结束了,生成的.hex文件就可在后面介绍的 Proteus环境下进行虚拟仿真时,装入单片机运行。
下面对用于编译、连接时的快捷按钮
与 作简要说明:
(1) 用于编译正在操作的文件。。
这些图标大多数是与菜单栏命令【Debug】下拉菜单中的各项子命令是 相对应的,只是快捷按钮图标要比下拉菜单使用起来更加方便快捷。
24
图4-15与图4-16中常用的快捷按钮图标的功能介绍图4-14中各个窗口的开与关。
25
(2)各调试功能的快捷按钮
片机可以运行的二进制文件(.hex格式文件),文件的扩展名为.hex。 (2)Select Folder for objects—选择最终的目标文件所在的文件夹,默认
与项目文件在同一文件夹中,通常选默认。 (3)Name of Executable—用于指定最终生成的目标文件的名字,默认与
项目文件相同,通常选默认。
(2) 按钮—用于编译修改过的文件,并生成相应的目标程序(.hex文 件),供单片机直接下载。
(3) 按钮—用于重新编译当前项目中的所有文件,并生成相应的目标 程序(.hex文件),供单片机直接下载。主要用在当项目文件有改动时 ,来全部重建整个项目。
36
因为一个项目不止一个文件,当有多个文件时,可用本按钮进行编译。 用C51编写的源代码程序不能直接使用,一定要对该源代码程序编译,生
窗口会出现一个空白的文件编辑画面,用户可在这里输入编写的程序源 代码。
11
(2)单击图4-1中快捷按钮
图4-7 建立新文件
(2)单击图4-1中快捷按钮 ,保存用户程序文件,这时会弹出如图4-8 所示窗口。,保存用户程序文件,这时会弹出如图4-8所示窗口。
35
占用程序存储器共89字节。最后生成的.hex文件名为“流水灯.hex”,至 此,整个程序编译过程就结束了,生成的.hex文件就可在后面介绍的 Proteus环境下进行虚拟仿真时,装入单片机运行。
下面对用于编译、连接时的快捷按钮
与 作简要说明:
(1) 用于编译正在操作的文件。。
这些图标大多数是与菜单栏命令【Debug】下拉菜单中的各项子命令是 相对应的,只是快捷按钮图标要比下拉菜单使用起来更加方便快捷。
24
图4-15与图4-16中常用的快捷按钮图标的功能介绍图4-14中各个窗口的开与关。
25
(2)各调试功能的快捷按钮
片机可以运行的二进制文件(.hex格式文件),文件的扩展名为.hex。 (2)Select Folder for objects—选择最终的目标文件所在的文件夹,默认
与项目文件在同一文件夹中,通常选默认。 (3)Name of Executable—用于指定最终生成的目标文件的名字,默认与
项目文件相同,通常选默认。
(2) 按钮—用于编译修改过的文件,并生成相应的目标程序(.hex文 件),供单片机直接下载。
(3) 按钮—用于重新编译当前项目中的所有文件,并生成相应的目标 程序(.hex文件),供单片机直接下载。主要用在当项目文件有改动时 ,来全部重建整个项目。
36
因为一个项目不止一个文件,当有多个文件时,可用本按钮进行编译。 用C51编写的源代码程序不能直接使用,一定要对该源代码程序编译,生
窗口会出现一个空白的文件编辑画面,用户可在这里输入编写的程序源 代码。
11
(2)单击图4-1中快捷按钮
图4-7 建立新文件
(2)单击图4-1中快捷按钮 ,保存用户程序文件,这时会弹出如图4-8 所示窗口。,保存用户程序文件,这时会弹出如图4-8所示窗口。
单片机51第四章PPT
C语言指令集
C语言编写的指令集,每条指令对应一个C语言函数或语句,如mov(a, data)表示 将立即数data送入变量a。
04 单片机51的编程语言
CHAPTER
汇编语言
汇编语言是低级语言,与硬件 紧密相关,可以直接控制硬件
。
汇编语言执行速度快,适用于 对速度要求高的场合。
汇编语言代码可读性差,编写 和维护困难。
在此添加您的文本16字
特点
在此添加您的文本16字
8位处理器,运算速度快。
在此添加您的文本16字
丰富的指令集,支持多种寻址方式。
在此添加您的文本16字
内部集成多种功能模块,如ADC、DAC、PWM等。
在此添加您的文本16字
可通过外部扩展实现更多功能。
单片机51的应用领域
智能仪表
用于各种工业自动化仪表的测 量和控制。
在关键位置设置断点,暂停程序的执行, 检查程序状态。
06 单片机51的应用实例
CHAPTERLED闪烁程序总结词实现LED灯的闪烁功能
详细描述
通过单片机51的IO口控制LED灯的亮灭,实现LED灯的闪烁效果。具体实现方 法包括使用定时器中断或延时函数,控制LED灯的亮灭时间,以达到闪烁效果。
数码管显示程序
存储器
程序存储器
用于存储程序代码,包括指令和数据。
数据存储器
用于存储数据,包括工作寄存器和堆栈。
特殊功能寄存器
用于控制单片机各个部分的工作状态和参数设置。
输入/输出接口
输入接口
接收外部信号或数据,并将其转换为单片机可以处理的电平信号。
输出接口
将单片机处理后的电平信号输出到外部设备或电路。
输入/输出端口
C语言编写的指令集,每条指令对应一个C语言函数或语句,如mov(a, data)表示 将立即数data送入变量a。
04 单片机51的编程语言
CHAPTER
汇编语言
汇编语言是低级语言,与硬件 紧密相关,可以直接控制硬件
。
汇编语言执行速度快,适用于 对速度要求高的场合。
汇编语言代码可读性差,编写 和维护困难。
在此添加您的文本16字
特点
在此添加您的文本16字
8位处理器,运算速度快。
在此添加您的文本16字
丰富的指令集,支持多种寻址方式。
在此添加您的文本16字
内部集成多种功能模块,如ADC、DAC、PWM等。
在此添加您的文本16字
可通过外部扩展实现更多功能。
单片机51的应用领域
智能仪表
用于各种工业自动化仪表的测 量和控制。
在关键位置设置断点,暂停程序的执行, 检查程序状态。
06 单片机51的应用实例
CHAPTERLED闪烁程序总结词实现LED灯的闪烁功能
详细描述
通过单片机51的IO口控制LED灯的亮灭,实现LED灯的闪烁效果。具体实现方 法包括使用定时器中断或延时函数,控制LED灯的亮灭时间,以达到闪烁效果。
数码管显示程序
存储器
程序存储器
用于存储程序代码,包括指令和数据。
数据存储器
用于存储数据,包括工作寄存器和堆栈。
特殊功能寄存器
用于控制单片机各个部分的工作状态和参数设置。
输入/输出接口
输入接口
接收外部信号或数据,并将其转换为单片机可以处理的电平信号。
输出接口
将单片机处理后的电平信号输出到外部设备或电路。
输入/输出端口
精品课件-单片机原理及应用系统设计-第4章
;
PUSH
DPL
;
保护现场, 将主程序中
; DPTR的低八位放入堆
MOV
DPTR, #TABLE
; 在子程
第四章 单片机程序设计语言
恢复现场,
MOVC A, @A+DPTR
POP
DPL
将主程序中DPTR
; ;
;的低八位从堆栈中弹出
POP 场, 将主程序中DPTR
DPH
; 恢复现
;的高八位从堆栈中弹出
图 4-8 循环程序的典型形式
第四章 单片机程序设计语言
【例 4-4】 冒泡程序。假设有N个数, 它们依次存放 于LIST地址开始的存储区域中, 将N个数比较大小后, 使它 们按照由小到大的顺序排列,
编写该程序的方法: 依次将相邻两个单元的内容作比较, 即第一个数和第二个数比较,第二个数和第三个数比 较, ……, 如果符合从小到大的顺序则不改变它们在内存 中的位置,否则交换它们之间的位置。如此反复比较, 直到 数列排序完成为止。
LJMP MAIN
;
MAIN: MOV A, X
XRL A, Y
; (X)与(Y)进行异或操作
JB ACC.7, NEXT1
; 累加器A的第7位
为1, 两个数
;符号不同, 转移到
第四章 单片机程序设计语言
MOV
CJNE
转移到NEQUAL
CLR
P1.0置0
S
MOV DXCE1COUNTER, #00H
; 将DXCE1COUNTER赋值为0
而如下的注释则给出了额外有用的信息:
JNZ PC Comm_Err
;
第四章 单片机程序设计语言
(2) 注释应与其描述的代码相近, 对单条语句的注释应 放在其上方或右方相邻位置, 不可放在下面, 如放于上方
单片机第4讲PPT课件
流程图无需改变,只需要将汇编语言程序中相应的数 码管显示码改为共阴极数码管显示码即可。用汇编语言 编写“让一位LED数码管静态显示6b.ASM”的源代码如 下: Nhomakorabea-
12
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动3:让1位LED数码管静态显示“6” 指令说明
MOVC A,@A+DPTR指令说明 此条指令为变址寻址,也称基地址寄存器加变址寄存器间接
寻址,它是以程序计数器PC或数据指针DPTR作为基地址寄存器, 以累加器A作为变址寄存器,把两者内容相加形成操作数的地址。
这种寻址方式常用于读取程序存储器中常数表。这条指令的 功能是把DPTR的内容作为基地址,DPTR为16位特殊功能寄存 器,其高8位在DPH(地址为83H的内部数据存储器)中,低8位 在DPL(地址为82H的内部数据存储器)中。
把累加器A的内容作为地址偏移量,两者相加后得到16位地 址,把该地址对应的程序存储器ROM单元中的内容送到A中,A 中原数据自动擦除。
项目四 数码管的显示控制
[项目学习目标]
一、知识目标
1.了解LED数码管的结构与工作原理; 2.学习LED数码管显示码的组成; 3.知道LED数码管不同显示方式(静态与动态)的工作原理; 4.掌握AT89S51单片机与LED数码管的接口方法以及程序设计的方法。 5.学习4*4矩阵式键盘的工作原理,练习用4*4矩阵式键盘控制LED数码
-
6
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动2:学习7段LED数码管显示码
知识小贴士
若采用共阴极数码管,根据图3-1-1(d)共阴连接的特点,给出表3-1-4 即共阴极数码管显示码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
访问 SFR 的 数据类型
例:
bit a1; unsigned char a2; unsigned int a3; unsigned char *a4; unsigned int *a5; a1=0; //位a1为0 a2=0x20; //字节变量a2=20h a3=0x1234; //整型(字)变量a3=1234h a4=0x30; //a4指向内RAM30h单元 a5=0x2000; //a5指向外RAM2000h单元
注意:
Unsigned char code a[10]={0,1,4,9,16,25,36,49,64,81}; Main() {unsigned char x,y; x=3; y=a[x];
a[3]=5;
定义表格数据, 存放在ROM里
}
Unsigned char a[10]={0,1,4,9,16,25,36,49,64,81}; Main() {unsigned char x,y; x=3; y=a[x]; a[3]=5; }
单片机原理与应用技术
厦门理工学院电子与电气工程系 陈志英
第四章 单片机C语言程序设计
4.1 C51的一般格式 4.2 51单片机的C51定义 4.3 C51程序设计简单举例
4.1 C51的一般格式
C程序(.C) 汇编程序(.ASM) 指令代码(.BIN)
C编译器 汇编器
C编译器
C51
FRANKLIN C51 KEIL C51 格式基本相同,可以兼容
数 据 类 型 data/idata/pdata 指针型 code/xdata 通用指针 sbit SFR SFR16
长度/位 8 16 24 1 8 16
字节数 1 2 3 — 1 2
值 域 对象的 1 字节地址 对象的 2 字节地址 1 字节为存储器类型编码;2、3 字节为 地址偏移量或地址的高、低 8 位 0,1 0~255 0~65 535
数据存储类型 data bdata idata pdata xdata code
00H
0区 1区 2区 3区 可位寻址区
51 单片机存储空间 直接寻址片内数据 RAM 区,快速访问变量(128 B) 位寻址片内数据 RAM 区,允许位与字节混合访问(16 B) 间接寻址片内数据 RAM 区和 SFR 区(256 B) 分页寻址片外数据 RAM 区(256 B),由 MOVX 指令访问 间接寻址片外数据 RAM 区(64 KB),由 MOVX 指令访问 访问程序 ROM,由 MOVC 指令完成
一、C51程序结构
全局变量说明 /*可被各函数引用*/ main() /*主函数*/ { /*函数体开始*/ 局部变量说明 /*限于在本函数内使用*/ 执行语句(包括调用其它函数的语句) } /*主函数的函数体结束*/ function 1(形式参数表) /*可被调用的一个函数*/ { /*函数1的函数体开始*/ 局部变量说明 执行语句(包括调用其它函数的语句)
} /*函数1的函数体结束*/ …… function n(形式参数表) /*可被调用的第n个函数*/ …… /*格式同函数1,从“{”开始,到“}”结束*/
二、C51支持的数据类型
KEIL C51 支持的数据类型
数 据 类 型 位 字 符 型 整 型 长 整 型 型 无符号 有符号 无符号 有符号 无符号 有符号 浮点型 双精度浮点型 bit unsigned char signed char unsigned int signed int unsigned long signed long float double 长度/位 1 8 8 16 16 32 32 32 64 字节数 — 1 1 2 2 4 4 4 8 0,1 0~255 -128~+127 0~65 535 -32 768~+32 767 0~4 294 967 295 -2 147 483 648~+2 147 483 647 ±1.176E-38~±3.40E+38(6 位数字) ±1.176E-38~±3.40E+38(10 位数字) 值 域
三、C51数据的存储类型
Franklin C51所定义的任何数据类型必定以某种方 式存放在单片义变量类型时,还
必须定义其存储类型。下表给出了C51数据的存储 类型与51单片机存储空间之间的关系。
C51 数据存储类型与 51 单片机存储空间
0000H 0000H EA=1 内ROM EA=0 外ROM 外RAM或I/O 0FFFH 1000H
1FH 20H 2FH 30H
7FH 80H SFR FFH 内RAM地址映射图
FFFFH 外RAM及IO空间地址映射图 FFFFH
外ROM
ROM地址映射图
例:
char char char char char char data a1; //a1分配在内RAM bdata a2; //a2分配在内RAM20H~2FH中 idata a3; //a3分配在内RAM或SFR pdata a4; //a4分配在外RAM的低256字节 xdata a5; //a5分配在外RAM64KB中 code a6; //a6定位在ROM中
定义数组变量, 存放在RAM里
例:
1、实现内RAM(30H)=40H。 Unsigned char data *b1; b1=0x30; *b1=0x40; 2、实现外RAM(2000H)=12H. Unsigned char xdata *b1; b1=0x2000; *b1=0x12;
注意:
LARGE
4.2 51单片机的C51定义
如果用户不对常量与变量定义存储类型,C51编 译器会默认其存储类型。默认的存储类型与编译器 设置的存储模式有关。
模式种类 SMALL COMPACT 存储模式 默认存储类型为data,把变量放入直接寻址的片内数据 RAM128B中 默认存储类型为pdata,把变量放入直接寻址的片外数据 RAM低256B中 默认存储类型为xdata,把变量放入直接寻址的片外数据 RAM64KB中