单片机原理与实用技术教案_第1页
单片机原理与实用技术教案_第2页
单片机原理与实用技术教案_第3页
单片机原理与实用技术教案_第4页
单片机原理与实用技术教案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理与实用技术教案 第一章单片机入门知识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单片机的分类根据应用范围不同,分为通用型和专用型根据应用场合不同,分为工业级和商用级根据处理数据能力,分为4位,8位,16位,32位,64位机根据内核不同还可分为51系列的,PIC的,AVR等还可以根据厂家不同进行分类,不同厂家又有不同的系列等等目前国内主流产品还是8位51系列1.2单片机相关基础知识1.2.1数制和编码1.进位计数制 (1)十进制日常生活常用的是十进制,加法逢十进一,减法借一当十由0-9十个数码组成,为了和二进制、十六进制区分一般在右边用D表示,例85D (2)二进制首先要讲为什么要引入二进制(B),由于计算机和单片机中的CPU、存储器和其他的硬件电路都是由集成电路做成,而集成电路都是由三极管组成,并且是利用三极管工作在开关状态下集电极不是高电平就是低电平来表示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)常用的十进制数怎么用二进制和十六进制表示呢?这就是各数制之间的转换问题15以内的数字可以直接看表1-1,大家最好能记熟15以内的转换。 十进制二进制十六进制000000H100011Hxx02H300113H401004H501015H601106H701117H810008H910019H1010100AH1110110BH1211000CH1311010DH1411100EH1511110FH161000010H (2)首先我们来看二进制转换成十进制1011.011B=123+022+121+120+02(-1)+12(-2)+12(-3)=18+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?00?1最高位倒过来写就是101001也就是说41D=101001B (5)十进制转换为十六进制一种可以同上用除16取余法,也可以先转换为二进制,再由二进制转化为十六进制 (6)二进制和十六进制之间的转换二进制到十六进制整数部分从小数点左边第一位开始向左数,每四位转换为一位十六进制数,小数部分是从小数点右边第一位开始向右数每四位转换成一位十六进制数,不足部分用0补充。 例如101101=00101101=2DH01110001101.1100001=001110001101.11000010=38D.C2H十六进制数转换为二进制就直接一个数字转换为对应的四位二进制数即可。 3.二进制负数的表示计算机里的数据分为无符号数和有符号数,对于无符号数只记大小不管正负,对于有符号数就要考虑符号,但是计算机只能分辨0和1,不能区别“-”“+”就用二进制的最高位来表示正负,最高位为0时表示正数,最高位为1时表示负数。 此时最高位只表示正负,不表示大小。 比如10111100B如果是无符号数则为0BCH,若是有符号数则表示-0111100B,即为-3CH有符号数的表示方法有以下4种 (1)真值实际的数 (2)原码将符号用0,1表示的数 (3)反码对于负数,反码是原码除了符号位之外的各位取反;正数的反码等于原码 (4)补码负数的补码等于反码加1,正数的补码等于原码。 正数的原码=反码=补码注意在计算机系统中负数总是以补码形式出现的。 4.编码由于计算机只认识0和1,而人类日常生活中要用到十进制0-9,还有英语字母a-z,A-Z等等计算机不能识别的字符,为了做到人机交互,就出现了编码,就是将人们常用的数字,字符用二进制的有序排列来表示,把这种用0,1表示其他信息的组合叫做编码。 常用的编码 (1)二-十进制码(BCD码)8421码,余3码,格雷码等 (2)ASCII码第二章单片机的基本组成及工作原理2.1单片机的基本组成及工作原理2.1.1程序软件2.1.2硬件(存储器、CPU、I/O接口)1.存储器用来存放程序和数据存储器由一个个存储单元组成,每个存储单元都是由寄存器组成,每个存储单元为8位即一个字节,每个存储单元都有自己唯一对应的地址。 存储器分随机存储器RAM和只读存储器ROM RAM既可读又可写,掉电后内容丢失,相当于PC机的内存ROM只能读,不能写内容固定,不会丢失根据编程方式不同,ROM分为以下5种 (1)掩膜ROM(Mask Rom)程序在芯片生产过程中完成,用户不能改变,适用于不需要修改程序的定型产品 (2)可编程ROM(PROM)芯片出厂时里面没有程序,程序由用户写入,但是只能写一次,一旦写人不能再修改,所以也称为一次可编程ROM (3)紫外线擦除可改写ROM(EPROM)允许反复用紫外线擦除后,重新写入 (4)电擦除可改写ROM(EEPROM)用电信号写入和擦除,可以通过读写操作对存储单元读出和写入,和RAM一样,只是比RAM慢,掉电能保存信息 (5)快速电擦除可改写ROM(flashROM)读写速度比EEPROM快2.中央处理器CPU(运算器和控制器)运算器包含算术逻辑运算单元,可以进行算术和逻辑运算。 在运算中会频繁使用CPU内部几个寄存器累加器ACC,寄存器B等,并把运算结果特征状态放到程序状态字PSW中。 控制器从程序存储器中读取指令、分析指令,产生相应的控制信号,控制单片机系统做出各种动作,实现控制功能。 3.I/O接口I/O接口单片机的输入输出接口,主要负责单片机与外设之间的交流。 51单片机有4个8位的并行口,分别为P0,P1,P2,P3;还有两个串行口P3.0,P3.14单片机的基本组成图见课本图2-12.251单片机的存储器2.2.151单片机存储器配置单片机芯片内部集成了ROM和RAM(8031,8032等无片内ROM),当内部集成的不够用时还可以扩展外部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地址为0000H-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,虽说有重叠部分,但是访问时是用不同的指令区分的,这个后续讲指令的时候会详细介绍。 除非需要处理的数据量很大比如在实时数据采集等场合,否则应该首先考虑充分利用片内数据存储空间。 单片机的内部RAM虽然容量不大,但是比较复杂功能强大,可以说学好了片内RAM就基本上掌握了单片机。 51系列各芯片的RAM容量和形式各不相同,下面以8051为例分析单片机的内部RAM。 8051内部RAM的256B按功能分为低128字节和高128字节。 其中低128字节功能没有特别规定供用户使用,高128字节为专用寄存器。 1.片内RAM低128字节按用途分为三部分通用寄存器区,位寻址区,堆栈和数据缓冲区 (1)通用寄存器区00H-1FH32个单元分为4个组BANK0-BANK3,每组8个寄存器R0-R7,称为通用寄存器,也叫工作寄存器,正被使用的称为当前工作寄存器组。 怎么选用哪一组为当前工作寄存器组呢?通过程序状态字PSW中的第3,4位RS0,RS1决定如下表RS1RS0寄存器组地址00000H-07H01108H-0FH10210H-17H11318H-1FH编程时应充分利用通用工作寄存器组。 (2)位寻址区片内RAM20-2FH单元即可作为一般RAM单元使用,也可以对其中每一位按位操作。 共16个单元合计128位位地址为00H-7FH。 (3)堆栈和数据缓冲区剩下的30H-7FH的80个单元供用户随意使用,一般把堆栈开辟在此区。 2.专用寄存器区8051中有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从而实现程序的顺序执行,用户不可以修改PC指针的内容,但是可以通过跳转指令实现程序的跳转。 (4)程序状态字PSW8位,每一位都有定义。 位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0名称CY ACF0RS1RS0OV-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片外数据存储器与累加器A之间的传送指令指令有四条MOVX A,DPTR;A(DPTR)读指令MOVX A,Ri;A(Ri)读指令MOVXDPTR,A;(DPTR)(A)写指令MOVXRi,A;(Ri)(A)写指令功能实现片外数据存储器(或扩展I/O)与累加器A之间的数据传送。 说明 (1)片外RAM与片内RAM之间的数据传输,片外RAM之间的数据传输,必须通过累加器A中转。 (2)寻址方式只能是寄存器间接寻址,参与间接寻址的寄存器只有Ri和DPTR,总共是3个。 一般经常用DPTR,用Ri时需要P2口配合使用(因为Ri是8位的寄存器只能寻址256个字节,所以高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中的内容查找到表格中的相应项。 例如上表我们要想查找表中第三格的值,可以这样MOV DPTR,#1000H MOV A,#02H MOVCA,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 ADDA,Ri;A(A)+(Ri)功能ADD指令把源操作数与累加器A的内容相加,结果存在累加器中。 该操作不改变源操作数,影响PSW中的C,AC,OV和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)+(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)为单独取得进位位的值用MOVA,#00H ADDCA,#00H3.增量指令INC指令有5条INC A;A(A)+1INC Rn;Rn(Rn)+1INC direct;directdirect+1INCRi;(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;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-1DECRi;(Ri)(Ri)-1说明 (1)与INC指令类似,但是没有DEC DPTR指令 (2)若原来为00H,执行指令后将变为0FFH,但是不改变进位位C。 3.4.3乘法指令指令仅1条MUL AB3.4.4除法指令1条指令DIV AB3.5逻辑运算及移位指

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论