单片机原理与应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文由ruyunshui_rys贡献
ppt1。
单片机原理与应用
主 讲:王晓荣
Email:zdhwxr@163.com POPO: njwsir TEL : 83587368
要求
1. 2. 3. 4. 课堂上要记笔记 课前提前10分钟进教室 缺课需有请假条 课堂上禁止小声讲话
参考书
李广弟 《单片机基础》北航出版社 求是科技 《单片机典型模块设计实例导航》 人民邮电出版社 PROTEL相关书籍 C51相关书籍
1 单片机概述
1.1什么叫单片机 ? 什么叫单片机
英文解释:SCMC(Single Chip MicroComputer) 中文解释:一个单片的微型计算机 (CPU、内存、硬盘、主板等)
1.2单片机的特点 单片机的特点
体积小,价格低,开发成本低 容量小,速度慢 想想看:为什么8位、12M的单片机20多 年来还没有被淘汰?
1.3单片机的应用 单片机的应用
1.4单片机的种类 单片机的种类
生产单片机的公司很多: Motorola公司、 Intel公司、Atmel公司、Philips公司等 每个公司生产的单片机又有很多型号 但很多种类的单片机采用相同的内核 内核相同的单片机软硬件设计方法类似 以MCS-51为内核的单片机全球市场占有量 约为54% ;国内市场占有量约为80% ;
1.5单片机系统设计 单片机系统设计
硬件设计
画电路图 PCB板 硬件电路板
软件设计
汇编语言设计(基础;同微机原理中的学的汇编语言不 同;MCS-51的汇编共111条指令P70) C语言设计(常用;同标准C语言类似但不完全相同)
1.6实例:用8051实现发光二极管的闪烁 实例: 实例 实现发光二极管的闪烁
1.6.1硬件 硬件
89c51(引脚数;引脚标号;电源引脚) 时钟电路(通用电路;4M-12M) 复位电路(通用电路;原理;RESET键) EA引脚(为“1”,则从内部ROM开始执行 程序) 发光二极管(驱动能力问题)
1.6.2软件 软件
LOOP: SETB LCALL CLR LCALL AJMP MOV MOV DJNZ DJNZ RET P1.0 DELAY P1.0 DELAY LOOP R7, #50H R6, #0e0H R6, D2 R7, D1
DELAY: D1: D2:
END
1.6.3其它 其它
编程环境(如E6000) ROM;EPROM;FLASH (编程器) 仿真器
作业
1. 自学‘单片机概述’ 2. 8051、80C51、89C51的区别是? 3. 如果采用片内ROM,8051中的/E/A引脚 如何接? 4. 民用级、工业级、军用级的单片机温度范围 是? 5. 单片机的英文简称 6. 用8051实现两个发光二极管轮流发光(硬 件图及汇编程序)
2 单片机芯片的硬件结构
2.1单片机的结构框图
CPU RAM ROM C//T C//T …
2.1.1CPU
读取指令、执行指令
2.1.2 256B的RAM
内部RAM共有256个字节(00H—0FFH)。 可分为5个区域
通用寄存器区(00H—1FH) 位寻址区(20H—2FH、80H 、88H 、90H 、 98H 、0A0H 、0A8H 、0B0H 、0B8H 、 0D0H 、0E0H 、0F0H ) 用户RAM区(通常为20H—7FH) 专用寄存器区(80H—0FFH;仅使用了其中的23 个单元) 堆栈区(自定-7FH) 通用寄存器区(00H-1FH) 通用寄存器区
32个存储单元:R0-R7,共4组 哪些指令与通用寄存器区有关?(举例) 如何改变寄存器的组别? (后面会讲到)
用户RAM区(通常为 用户 区 通常为20H-7FH) 通常为
哪些指令与用户 用户RAM区有关? (举例) 用户 区
专用寄存器区(80H-0FFH) 专用寄存器区
共128个单元,但只利用了23个单元,每 个单元都有专门的用途 我们把有专门用途的存储单元叫做专用寄存 器 (参见P21表;共22个) 指令同用户RAM区的指令 介绍几个专用寄存器
程序计数器PC (占2个存储单元)
在专用寄存器区,但没有单元地址 MOV PC,#0FFH × 1.6例程序代码执行全过程 * MCS-51内核(系列)的单片机只能扩展 64k的ROM
累加器A (0E0H)
哪些指令与A有关? ADD 20H, 30H MOV A, 20H ADD A, 30H MOV 20H, A ×
√
程序状态字PSW (0D0H)
位序 位标志 PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0 CY AC F0 RS1 RS2 OV / P
CY: 进位标志(自动变化);位累加器 RS1、RS2: 寄存器组选择位 问:如何改变寄存器的组别? 哪些指令与PSW有关?
位寻址区(20H-2FH、部分专用寄存器) 位寻址区
哪些指令与位寻址区有关? CLR 20H 如果将2BH.3位置位,用什么指令? 答:SETB 5BH 如果将3BH.3位置位,用什么指令? 答:MOV A, 3BH ORL A, #08H MOV 3BH, A
作业
1. 2. 3. 4. 内部RAM可分为哪5个区域? CPU的作用是? 单片机复位时,(PC)=? 标出1.6例的每一条语句执行后的PC值。
堆栈区(自定-7FH) 堆栈区
堆栈的用途:子程序或中断程序调用时保护 断点(自动)和保护现场 SP工作原理*(举例)
片外RAM(顺便介绍) 片外 (顺便介绍)
如果片内RAM不够,最多可另外扩展64K 的外部RAM 片内RAM和片外RAM地址可重叠(画图) MOV A,30H 是将片内RAM还是片外RAM 中的数据读到A? MOV、MOVX的区别 如何读取片外RAM的内容?*
2.1.3 4KB的片内ROM及外部ROM
作用:存放程序和原始数据 如何读取程序?(前面已经介绍) 如何存放原始数据?(举例) 读取原始数据的指令是? ROM空间分配图* 不提倡片内ROM和片外ROM混用。 如何读取原始数据?(举例)
EQU #50H ;顺便介绍伪指令 AJMP MAIN ;原因以后讲 ORG 0030H MAIN: MOV SP, #60H MOV A, DATA …… ORG 1000H TAB: DB 0C0H, 0F9H, 0A4H DB 90H, 39H, 44H ORG 1100H TAB1: DW 0ABCDH, 3333H, 2222H DW 5555H, 5555H, 7777H END TAB2: DB 0ABH, 39H
DATA
2.1.4 2个定时 计数器 个定时/计数器 个定时
实现定时有两种:软件定时和硬件定时 1.6例中的延时子程序为软件定时 用片内定时/计数器定时为硬件定时 如何实现硬件定时以后详细讲
2.1.5 并口