ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:23.33KB ,
资源ID:10318790      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10318790.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机原理与实用技术教案.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机原理与实用技术教案.docx

1、单片机原理与实用技术教案第一章 单片机入门知识1.1 认识单片机1.1.1 什么是单片机单片机就是单片微型计算机,是将微机的主要组成部分(包括中央处理器CPU、一定容量的存储器RAM和ROM,以及输入输出IO接口电路等)集成在一块芯片上的计算机。1.1.2 单片机系统课本上介绍的是汽车追踪形式控制系统时钟系统看图片 1.1.3 单片机的应用领域1. 生产自动化2. 实时测控3. 智能化产品4. 智能化仪表5. 信息通信技术6. 科学研究7. 国防现代化1.1.4 单片机应用特点1. 面向控制2. 在线应用3. 嵌入式应用1.1.5 单片机的分类根据应用范围不同,分为通用型和专用型根据应用场合不

2、同,分为工业级和商用级根据处理数据能力,分为4位,8位,16位,32位,64位机根据内核不同还可分为51系列的,PIC的,AVR等还可以根据厂家不同进行分类,不同厂家又有不同的系列等等目前国内主流产品还是8位51系列1.2 单片机相关基础知识1.2.1 数制和编码1. 进位计数制(1) 十进制日常生活常用的是十进制,加法逢十进一,减法借一当十由0-9十个数码组成,为了和二进制、十六进制区分一般在右边用D表示,例85D(2) 二进制首先要讲为什么要引入二进制(B),由于计算机和单片机中的CPU、存储器和其他的硬件电路都是由集成电路做成,而集成电路都是由三极管组成,并且是利用三极管工作在开关状态下

3、集电极不是高电平就是低电平来表示1和0的。简单点说就是在计算机和单片机中就只有0和1,单片机就只认识0和1 ,所有我们引入二进制,二进制就只由0和1两个数码组成,二进制后加B表示,例如:1100.0011B(3) 十六进制因为用二进制表示一个数要写很长很难记忆,所以引入了十六进制,十六进制由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F十六个数码组成,后边加H表示,例:39H,0ABH,注意的是为了和其他字符分开,如果十六进制的第一位不是数字0-9而是字符的话应在其前加0以示区别。2各数制之间的转换 (1) 常用的十进制数怎么用二进制和十六进制表示呢?这就是各数制之间的转换问题

4、15以内的数字可以直接看表1-1,大家最好能记熟15以内的转换。 十进制 二进制 十六进制 0 0000 0H 1 0001 1H 2 0010 2H 3 0011 3H 4 0100 4H 5 0101 5H 6 0110 6H 7 0111 7H 8 1000 8H 9 1001 9H 10 1010 0AH 11 1011 0BH 12 1100 0CH 13 1101 0DH 14 1110 0EH 15 1111 0FH 16 10000 10H(2 ) 首先我们来看二进制转换成十进制1011.011B=123+022+121+120+02(-1)+12(-2)+12(-3) =18

5、+04+12+11+01/2+11/4+11/8 =11.375既是将二进制数按2的幂指数展开,最后的计算结果即为十进制(3) 同样,十六进制就可以按照16的幂指数展开即可。例如:6EH=6161+E160=96+14=110D(4) 十进制转换为二进制除2取余法2|412|20 1 最低位2|10 02|5 02|2 12|1 0 0 1 最高位倒过来写就是101001也就是说41D=101001B(5)十进制转换为十六进制 一种可以同上用除16取余法,也可以先转换为二进制,再由二进制转化为十六进制 (6)二进制和十六进制之间的转换 二进制到十六进制:整数部分从小数点左边第一位开始向左数,每

6、四位转换为一位十六进制数,小数部分是从小数点右边第一位开始向右数每四位转换成一位十六进制数,不足部分用0补充。例如:10 1101=0010 1101=2DH 01110001101.1100001=0011 1000 1101 . 1100 0010 =38D.C2H 十六进制数转换为二进制就直接一个数字转换为对应的四位二进制数即可。3. 二进制负数的表示 计算机里的数据分为无符号数和有符号数,对于无符号数只记大小不管正负,对于有符号数就要考虑符号,但是计算机只能分辨0和1,不能区别“-” “+”就用二进制的最高位来表示正负,最高位为0时表示正数,最高位为1时表示负数。此时最高位只表示正负,

7、不表示大小。比如:1011 1100B如果是无符号数则为0BCH,若是有符号数则表示-011 1100B,即为-3CH有符号数的表示方法有以下4种:(1)真值:实际的数(2)原码:将符号用0,1表示的数(3)反码:对于负数,反码是原码除了符号位之外的各位取反;正数的反码等于原码(4)补码:负数的补码等于反码加1,正数的补码等于原码。正数的原码=反码=补码注意在计算机系统中负数总是以补码形式出现的。4. 编码由于计算机只认识0和1 ,而人类日常生活中要用到十进制0-9,还有英语字母a-z,A-Z等等计算机不能识别的字符,为了做到人机交互,就出现了编码,就是将人们常用的数字,字符用二进制的有序排列

8、来表示,把这种用0,1表示其他信息的组合叫做编码。常用的编码:(1)二-十进制码(BCD码):8421码,余3码,格雷码等(2)ASCII码第二章 单片机的基本组成及工作原理2.1 单片机的基本组成及工作原理2.1.1 程序软件2.1.2 硬件(存储器、CPU、I/O接口)1.存储器:用来存放程序和数据存储器由一个个存储单元组成,每个存储单元都是由寄存器组成,每个存储单元为8位即一个字节,每个存储单元都有自己唯一对应的地址。存储器分随机存储器RAM和只读存储器ROMRAM既可读又可写,掉电后内容丢失,相当于PC机的内存ROM只能读,不能写内容固定,不会丢失根据编程方式不同,ROM分为以下5种:

9、(1) 掩膜ROM(Mask Rom):程序在芯片生产过程中完成,用户不能改变,适用于不需要修改程序的定型产品(2) 可编程ROM(PROM):芯片出厂时里面没有程序,程序由用户写入,但是只能写一次,一旦写人不能再修改,所以也称为一次可编程ROM(3) 紫外线擦除可改写ROM(EPROM):允许反复用紫外线擦除后,重新写入(4) 电擦除可改写ROM(EEPROM):用电信号写入和擦除,可以通过读写操作对存储单元读出和写入,和RAM一样,只是比RAM慢,掉电能保存信息(5) 快速电擦除可改写ROM(flashROM)读写速度比EEPROM快2.中央处理器CPU(运算器和控制器)运算器包含算术逻辑

10、运算单元,可以进行算术和逻辑运算。在运算中会频繁使用CPU内部几个寄存器:累加器ACC,寄存器B等,并把运算结果特征状态放到程序状态字PSW中。控制器从程序存储器中读取指令、分析指令,产生相应的控制信号,控制单片机系统做出各种动作,实现控制功能。3.I/O接口I/O接口单片机的输入输出接口,主要负责单片机与外设之间的交流。51单片机有4个8位的并行口,分别为P0,P1,P2,P3;还有两个串行口P3.0,P3.14单片机的基本组成图见课本图2-12.2 51单片机的存储器2.2.1 51单片机存储器配置 单片机芯片内部集成了ROM和RAM(8031,8032等无片内ROM),当内部集成的不够用

11、时还可以扩展外部ROM和RAM。因此单片机的存储器在物理空间上分为四部分:内部ROM, 外部ROM,内部RAM,外部RAM 那我们在前面介绍了每个存储单元都有自己的地址,那么单片机的存储器又是怎么分配地址的呢?也就是说怎么编址的呢?并不是物理控制分四部分就按4组编址,也不是不分组统一编址,而是内部ROM 和外部ROM统一编址,而内部RAM 和外部RAM分开编址,总共是三部分。2.2.2 程序存储器ROM 以8051为例,内部ROM为4KB,内部RAM为256B,外部可扩展ROM和RAM最大均为64KB。内部RAM地址从00H-FFH;外部RAM地址从0000H-FFFFH内部ROM地址为000

12、0H-0FFFH,外部ROM地址为0000H-FFFFH很显然,内部ROM和外部ROM地址有重叠,那么比如说访问0010H时究竟是访问片内的呢 还是片外的呢,这就要根据单片机31引脚的电平来决定。EA=0则为片外,EA=1则为片内,如果是地址高于4KB部分不论EA为何值都一定指的是片外ROM。一般使用时如果程序不大于4KB则不需要扩展ROM,而直接将EA接电源;如果程序大于4KB则一般选用无片内ROM的单片机,以免资源浪费,此时EA直接接地。2.2.3数据存储器RAM-重点 单片机内部RAM地址为00H-FFH,外部为0000H-FFFFH,虽说有重叠部分,但是访问时是用不同的指令区分的,这个

13、后续讲指令的时候会详细介绍。 除非需要处理的数据量很大比如在实时数据采集等场合,否则应该首先考虑充分利用片内数据存储空间。单片机的内部RAM虽然容量不大,但是比较复杂功能强大,可以说学好了片内RAM就基本上掌握了单片机。51系列各芯片的RAM容量和形式各不相同,下面以8051为例分析单片机的内部RAM。8051内部RAM的256B按功能分为低128字节和高128字节。其中低128字节功能没有特别规定供用户使用,高128字节为专用寄存器。1. 片内RAM低128字节按用途分为三部分:通用寄存器区,位寻址区,堆栈和数据缓冲区(1) 通用寄存器区:00H-1FH32个单元分为4个组BANK0-BAN

14、K3,每组8个寄存器R0-R7,称为通用寄存器,也叫工作寄存器,正被使用的称为当前工作寄存器组。怎么选用哪一组为当前工作寄存器组呢?通过程序状态字PSW中的第3,4位RS0,RS1决定如下表:RS1RS0寄存器组地址00000H-07H01108H-0FH10210H-17H11318H-1FH编程时应充分利用通用工作寄存器组。(2) 位寻址区片内RAM 20-2FH单元即可作为一般RAM 单元使用,也可以对其中每一位按位操作。共16个单元合计128位位地址为00H-7FH。(3) 堆栈和数据缓冲区剩下的30H-7FH的80个单元供用户随意使用,一般把堆栈开辟在此区。2. 专用寄存器区 805

15、1中有22个专门用途的寄存器,称为专用寄存器或者特殊功能寄存器,可寻址的有21个,零散的分布在80H-0FFH的高128单元中,见课本表2-3.(1) 累加器A使用最频繁的寄存器,8位,几乎所有运算A都参与。(2) B寄存器8位寄存器,主要用于乘除运算。乘除运算主要用A,B两个寄存器,乘法运算时A为被乘数,B为成数,积的低8位放A中,高8位放B中;除法运算时,A为被除数,B为除数,商放A中,余数放B中。B也可以做一般数据寄存器使用。(3) 程序计数器PC16位,不可寻址,用来存放即将执行的指令的地址,因为是16位,所以最大寻址空间是216,即64KB。PC指针会自动加1从而实现程序的顺序执行,

16、用户不可以修改PC指针的内容,但是可以通过跳转指令实现程序的跳转。(4) 程序状态字PSW8位,每一位都有定义。位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0名称CYACF0RS1RS0OV-P(1)CY或C:进位位。功能一:存放算术运算的进位标志,进位或借位时硬件自动置1,否则清零;功能二:布尔处理机中做累加器(2)AC辅助进位位(3)F0用户标志位(4)(5)OV溢出标志位(6)P奇偶校验位(5) 数据指针DPTR16位,可分为两个8位寄存器DPH,DPL2.3 单片机外围电路2.3.1 时钟电路2.3.2 复位电路第三章 单片机指令系统3.3.2 片

17、外数据存储器与累加器A之间的传送指令指令有四条:MOVX A, DPTR; A(DPTR) 读指令MOVX A, Ri ; A(Ri) 读指令MOVX DPTR, A; (DPTR) (A) 写指令MOVX Ri, A; (Ri) (A) 写指令功能:实现片外数据存储器(或扩展I/O)与累加器A之间的数据传送。说明:(1) 片外RAM与片内RAM之间的数据传输,片外RAM之间的数据传输,必须通过累加器A中转。(2) 寻址方式只能是寄存器间接寻址,参与间接寻址的寄存器只有Ri和DPTR,总共是3个。一般经常用DPTR,用Ri时需要P2口配合使用(因为Ri是8位的寄存器只能寻址256个字节,所以高

18、8位地址要由P2口决定)。(3) 单片机的扩展I/O的数据传输也通过该指令实现。3.3.3 程序存储器向累加器A的传送指令指令只有两条:MOVC A, A+PC ;A(A)+(PC)MOVC A, A+DPTR ;A(A)+(DPTR)功能:从程序存储器中读取数据送入累加器A。说明:(1) ROM只能读不能写,所有数据传送是单向的,只能从ROM中读数据传送给累加器A(2) 因为片内ROM 和片外ROM是统一编址,所以内部ROM和外部ROM都用该指令访问。(3) 该指令主要用于查表,所以也叫做查表指令。应用时用DPTR或PC确定表格的首址,查表时根据累加器A中的内容查找到表格中的相应项。1000

19、H1001H1002H1003H1004H30H55H78H90H12H例如上表我们要想查找表中第三格的值,可以这样:MOV DPTR, #1000HMOV A , #02HMOVC A, A+DPTR3.4 算术运算指令3.4.1 加法指令1.不带进位的加法指令ADD具体指令有4条:ADD A, Rn ; A (A)+(Rn)ADD A, direct ; A (A)+(direct)ADD A, #data ; A (A)+data ADD A, Ri ; A (A)+(Ri)功能:ADD指令把源操作数与累加器A的内容相加,结果存在累加器中。该操作不改变源操作数,影响PSW中的C,AC,O

20、V和P位。说明:(1) ADD指令的目的操作数只能是累加器A,且只有以上4种形式。(2) 指令中,参加运算的两个8位二进制数,即可看做是8位无符号数(0-255),也可以看做是7位有符号数的补码数(-128- +127)。(3) ADD运算对PSW的影响:C:如果最高位有进位则C置1,反之则清0;AC:如果低4位向高4位有进位,则AC置1,反之则清0;OV:如果位6有进位而位7没有或者位7有进位而位6没有,则OV置1,反之OV清0。2. 带进位加法指令ADDC具体指令有4条:ADDC A, Rn ; A (A)+(Rn)+(C)ADDC A, direct ; A (A)+(direct) +

21、(C)ADDC A, #data ; A (A)+data +(C)ADDC A, Ri ; A (A)+(Ri) +(C)功能:该操作与ADD类似,只是PSW中的进位位C要参与运算。带进位加法指令通常用于多字节数加法运算。多字节数加法原则:(1)多字节数求和,从低字节开始,最低字节相加用ADD指令,其他字节相加用ADDC指令;(2)N字节数相加,结果可能是N+1字节数;(3)为单独取得进位位的值用MOV A,#00H ADDC A,#00H3. 增量指令INC指令有5条:INC A ; A (A)+1INC Rn ; Rn (Rn)+1INC direct ; directdirect+1I

22、NC Ri ; (Ri) (Ri)+1INC DPTR ; DOTR (DPTR)+1功能:对A,Rn,内部RAM单元及数据指针进行加1操作,除INC A会影响P外,不影响任何标志位。说明:若操作数为0FFH,执行指令后,将会变为00H,但是不影响进位位C。4. 十进制调整指令指令只有1条:DA A功能:对累加器中由上一条加法指令(加数和被加数均为压缩的BCD码)所获得的结果进行调整。3.4.2 减法指令1.带进位减法指令SUBB指令共有4条:SUBB A, Rn ; A (A)-(Rn)-(C)SUBB A, direct ; A (A)-(direct) -(C)SUBB A, #data

23、 ; A (A)-data -(C)SUBB A, Ri ; A (A)-(Ri) -(C)说明:(1) MCS-51指令系统中,无不带进位(实为借位)的减法指令。若进行不带借位的减法运算,需先将C清零。(2) 多字节相减,从低字节开始,最低字节相减时,应先将进位位C清零。2. 减1指令DEC指令共有4条:DEC A ; A (A)-1DEC Rn ; Rn (Rn)-1DEC direct ; directdirect-1DEC Ri ; (Ri) (Ri)-1说明:(1) 与INC 指令类似,但是没有DEC DPTR指令(2) 若原来为00H,执行指令后将变为0FFH,但是不改变进位位C。

24、3.4.3 乘法指令指令仅1条:MUL AB3.4.4 除法指令1条指令:DIV AB3.5 逻辑运算及移位指令3.5.1 逻辑运算指令1. 逻辑与指令 ANL6条指令:ANL A, Rn ;A (A)(Rn)ANL A, direct ; A (A)(direct)ANL A, Ri ; A (A)(Ri) ANL A, #data ; A (A)data ANL direct, A ; direct (direct)(A) ANL direct, #data ; direct (direct)data说明:(1) 该指令是按位进行的,对进位位没有影响(2) 该指令用于屏蔽某些位。与0与清零

25、,与1 与不变2. 逻辑或指令ORL6条指令:ORL A, Rn ;A (A)(Rn)ORL A, direct ; A (A) (direct)ORL A, Ri ; A (A) (Ri) ORL A, #data ; A (A) data ORL direct, A ; direct (direct) (A) ORL direct, #data ; direct (direct) data用来给某些位置1与0或不变,与1或置13. 逻辑异或指令XRL6条指令:XRL A, Rn ;A (A)(Rn)XRL A, direct ; A (A) (direct)XRL A, Ri ; A (A) (Ri) XRL A, #data ; A (A) data XRL direct, A ; direct (direct) (A) XRL direct, #data ; direct (direct) data用于对某些位取反与0异或不变,与1异或取反自身异或等效于清零4. 累加器清零指令 CLRCLR A5. 累加器取反指令CPLCPL A3.5.2 位移指令1. 循环左移RL A2. 循环右移RR A3. 带进位循环左移RLC A4. 带进位循环右移RRC A3.6 位操作指令3.6.1 位传送指令MOV C, bit ; C (bit)MOV bit,C ; bit (C)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1