版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.1单片机的概念随着计算机技术的迅速发展,根据社会各行各业应用的需求,计算机逐渐分化为两大类别:通用计算机和嵌入式计算机。嵌入式系统(EmbeddedSystem)是以应用为中心,以计算机技术为基础,软件和硬件可增减,针对具体应用系统,对功能、可靠性、成本、体积和功耗进行严格要求的专用计算机系统。嵌入式系统的核心部件有以下三类:嵌入式微处理器、嵌入式DSP处理器和微控制器(MicrocontrollerUnit,MCU)。单片机属于微控制器,是嵌入式系统的一种。几种常用单片机的外形1.2单片机的发展
单片机的发展历史单片机的发展趋势常用单片机分类
MCS-51系列单片机的简介1.2.1单片机的发展历史
第一阶段(1976-1978):单片机起步阶段。第二阶段(1978-1982):单片机完善阶段。第三阶段(1982-1990):8位单片机巩固发展
和16位单片机的推出阶段。第四阶段(1990-):单片机高速发展阶段。1.2.2单片机的发展趋势
字长由4位、8位、16位发展到32位。运行速度不断提高。片内存储容量越来越大。外围电路内装化。
低功耗和低电压。
低噪声与高可靠性。集成度越来越高,功能越来越强。小体积、低价格和专用化。1.2.3常用单片机分类1.2.4MCS-51系列单片机简介MCS-51系列单片机产品达数百个品种,并且还在不断推出功能更强的新产品。
MCS-51系列单片机已有十多种产品,可分为两大系列:51子系列和52子系列。
52子系列与51子系列的不同之处在于:片内数据存储器增至256字节;片内程序存储器增至8KB(8032无);有3个16位定时/计数器,6个中断源。其它性能均与51子系列相同。1.3单片机的应用
1.3.1单片机的主要特点
1.3.2单片机的应用领域1.3.1单片机的主要特点
有优异的性能价格比。
集成度高、体积小、有很高的可靠性。
控制功能强。
低功耗、低电压、便于生产便携式产品。体积小、结构简单。单片机的系统配置较便于构成各种规模的应用系统。1.3.2单片机的应用领域
智能仪表
机电一体化
实时控制系统
分布式系统日常生活单片机应用汽车电子家用电器航空航天医疗设备工业控制仪器仪表通信产品单片机产品1.4单片机系统的开发
单片机应用系统的硬件构成
单片机应用系统的开发过程1.4.1单片机应用系统的硬件构成
由于设计思想和使用要求不同,应用系统的构成也可分成如下三类:专用系统
模块化系统单机与多机应用系统1.4.1单片机应用系统的硬件构成1.4.2单片机应用系统的开发过程
单片机应用系统是由硬件和软件组成,硬件是由单片机、扩展存储器和输入/输出接口电路等组成,软件是各种工作程序的总称。系统开发过程主要由总体设计、硬件设计、软件设计、在线调试等部分组成。在开发过程中,它们并不是绝对分开的,而是交叉进行的。单片机系统的开发流程图1.5单片机应用系统的开发调试模式
集成开发环境+仿真器+编程器的开发模式
集成开发环境+ISP或IAP的开发模式
单片机开发的几个基本概念1.集成开发环境集成开发环境(简称IDEIntegratedDevelopEnvironment)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。是集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件。典型的如微软的VisualStudio系列,Borland的C++Builder、Delphi系列等。常用的单片机集成开发环境有飞思卡尔公司的CodeWarrior、Keil公司的µVision、MicroChip公司的MPLAB等。其中Keil公司的µVision是开发MCS-51单片机最常用的集成开发环境。51单片机集成开发环境uVsionII2.编程器
编程器又称烧写器、下载器,通过它将调试好的程序烧写到程序存储器中,不同档次的编程器价位相差较大,从几百到几千不等。
通常专用编程器具备以下功能:对多种型号单片机、EPROM、EEPROM、FLASH、存储器、ROM、PLD、FPGA等进行读取、擦除、烧写、加密等操作。
单片机编程器3.仿真器仿真器又称在线仿真器,其英文名称为InCircuitEmulator,简称ICE。ICE是由一系列硬件构成的设备,它应能仿真目标系统中的单片机,并能模拟目标系统的资源,完全“逼真”的实现脱机环境。使用时拔下单片机,换插ICE插头,这样系统就成了ICE一部分,原来由单片机执行程序改由仿真器来执行,利用仿真器的完整的硬件资源和监控程序,实现对用户目标码程序的跟踪调试,观察程序执行过程中的单片机寄存器和存储器的内容,根据执行情况随时修改程序。
单片机仿真器4.在线编程在系统编程(ISP)所谓在系统可编程ISP(In-SystemProgramming),指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。在应用编程(IAP)所谓在应用编程IAP(In-ApplicationProgramming),指MCU可以在系统中获取新代码并对自己重新编程,即可用程序来改变程序。ISP和IAP技术是未来仪器仪表的发展方向。
在线编程1.5.1集成开发环境+仿真器+编程器的开发模式
开发者需要先使用集成开发环境编写程序、编译程序,然后用仿真器对编写的程序在测试目标系统上进行仿真调试。当程序编写成功后,需要使用编程器将程序编译结果的二进制代码烧录进单片机的程序存储器中或利用在线编程功能将二进制代码烧录进单片机中。如果单片机的存储器是电可擦除的(E2PROM或FLASH),则可使用编程器完成擦除和烧录的所有过程;如果单片机的存储器是不可电擦除的(EPROM),还需要用到紫外光擦除器对存储器进行程序擦除,再使用编程器进行烧录。
这样的开发模式的优点是调试程序过程中利用仿真器对程序的运行情况进行充分的模拟仿真,可以对程序执行中的某一状态进行监控、设置断点、变量观察,有效的发现程序的问题,对程序进行较全面的评估,缩短软件的开发周期。但是这样的开发模式除了需要购买集成开发环境软件外,还要花费昂贵的资金购买仿真器、编程器等硬件设备,从而增加系统开发的成本。
1.5.2集成开发环境+ISP或IAP的开发模式
随着芯片集成技术的迅速发展,目前越来越多的单片机具备了ISP或IAP功能,这为单片机的开发提供了方便,使得在一些成本控制严格的应用开发中,可以省去昂贵的仿真器、编程器。与前一种模式一样,开发者同样需要先使用集成开发环境进行程序的编辑、编译工作。但不同的是开发者需要先利用集成开发环境提供的软件仿真功能先对程序进行初步验证,而后利用在线编程功能将程序的二进制代码烧录进单片机中,使用程序运行于目标系统上,直接在目标系统上对编写的程序进行测试。
这样的开发模式虽然不能利用仿真器对所调试程序进行监控,但是由于目前单片机集成开发环境软件功能的强大,可以利用集成开发环境的软件仿真功能在程序烧录之前对程序进行充分的验证。同时,由于程序调试时一直运行在最终的目标系统硬件上,也不会出现仿真环境与目标系统环境不一致导致的软件问题。目前,这种开发模式被越来越多的应用于单片机系统的开发。
1.5.2集成开发环境+ISP或IAP的开发模式
1.6计算机中的数制与编码1.6.1数制数制:是按进位原则进行计数的一种方法,即进位计数制。十进制数(1)记数符号:0、1、2、3、4、5、6、7、8、9;书写时用“D”作后缀(一般省略)。(2)进位原则:“逢十进一”。(3)按权展开式:二进制数(1)记数符号:0、1;书写时用“B”作后缀。(2)进位原则:“逢二进一”;(3)按权展开式:十六进制数(1)记数符号:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F;书写时用“H”作后缀。(2)进位原则:“逢十六进一”;(3)按权展开式:记住:十六进制与十进制、十六进制与二进制对应关系。1.3.2数制之间的相互转换1.二进制及其他进制转换为十进制数二进制、八进制和十六进制转换十进制的方法是:将二进制、八进制或十六进制写成按权展开式,然后各项相加,则得相应的十进制数。【例】把二进制数10101.1011B转换成相应的十进制数。解:
10101.1011B=1×24+0×23+1×22+0×21+1×20
+1×2-1+1×2-3+1×2-4
=21.6875D【例1.5】:将数1001.101B,246.12Q,2D07.AH转换为十进制数。各种进制数转换成十进制数的方法是:将各进制数先按权展成多项式,再利用十进制运算法则求和,即可得到该数对应的十进制数。1001.101B=246.12Q=2D07.AH=1×23+0×22+0×21+1×20+1×2-1+0×2-2+1×2-3
=8+1+0.5+0.125
=9.6252×82+4×81+6×80+1×8-1+2×8-2
=128+32+6+0.125+0.03125
=1660156252×163+13×162+0×161+7×160+10×16-1
=8192+3328+7+0.625
=11527.625任一十进制数N转换成q进制数,先将整数部分与小数部分分为两部分,并分别进行转换,然后再用小数点将这两部分连接起来。(1)整数部分转换第1步:用q去除N的整数部分,得到商和余数,记余数为q进制整数的最低位数码K0;
第2步:再用q去除得到的商,求出新的商和余数,余数又作为q进制整数的次低位数码K1;第3步:再用q去除得到的新商,再求出相应的商和余数,余数作为q进制整数的下一位数码Ki;第4步:重复第3步,直至商为零,整数转换结束。此时,余数作为转换后q进制整数的最高位数码Kn-1。2.十进制数转换为二、八、十六进制数例1.6:求十进制数168所对应的二、八、十六进制数。
解:168284余数0,K0=0242余数0,K1=0221余数0,K2=0210余数1,K3=125余数0,K4=022余数1,K5=121余数0,K6=020余数1,K7=1所以:168=10101000B168821余数0,K0=082余数5,K1=580余数2,K2=2因此:168=250Q1681610余数8,K0=8160余数10,K1=A故:168=A8H
步骤为:第1步:用q去乘N的纯小数部分,记下乘积的整数部分,作为q进制小数的第1个数码K-1;第2步:再用q去乘上次积的纯小数部分,得到新乘积的整数部分,记为q进制小数的次位数码K-i;第3步:重复第2步,直至乘积的小数部分为零,或者达到所需要的精度位数为止。此时,乘积的整数位作为q进制小数位的数码K-m。(2)小数部分转换例1.7:将0.686转换成二、八、十六进制数(用小数点后5位表示)。转换成二进制0.686×2=1.372K-1=10.372×2=0.744K-2=00.744×2=1.488K-3=10.488×2=0.976K-4=00.976×2=1.952K-5=1由上得:0.686≈0.10101B解:转换成八进制0.686×8=5.488K-1=50.488×8=3.904K-2=30.904×8=7.232K-3=70.232×8=1.856K-4=10.856×8=6.848K-5=6由上得:0.686≈0.53716Q转换成十六进制0.686×16=10.976K-1=A0.976×16=15.616K-2=F0.616×16=9.856K-3=90.856×16=13.696K-4=D0.696×16=11.136K-5=B由上得:0.686≈0.AF9DBH例1.8:将168.686转换为二、八、十六进制数。解:168.686≈10101000.10101B
168.686≈250.53716Q
168.686≈A8.AF9DBH
从以上例子可以看出,二进制表示的数愈精确,所需的数位就愈多,这样,不利于书写和记忆,而且容易出错。另外,若用同样数位表示数,则八、十六进制数所表示数的精度较高。所以在汇编语言编程中常用八进制或十六进制数作为二进制数的缩码来书写和记忆二进制数,便于人机信息交换。在MCS-51系列单片机编程中,通常采用十六进制数。根据例6、例7可得:(3)二进制数与八进制数之间的相互转换
由于23=8,故可采用“合3为1”的原则,即从小数点开始分别向左、右两边各以3位为1组进行二-八换算;若不足3位的以0补足,便可将二进制数转换为八进制数。反之,采用“1分为3”的原则将1位八进制数转换为3位二进制数;转换后二进制数首尾处的0可舍去。例1.9
将1111011.0101B转换为八进制数。解:根据“合3为1”和不足3位以0补足的原则,将此二进制数书写为:二进制数1111011小数点0101“合3为1”分解001111011小数点010100八进制数173小数点24因此,结果为1111011.0101B=173.24Q。例1.10将1357.246Q转换成二进制数。解:根据“1分为3”的原则,可将该八进制数书写为:八进制数1357小数点2461分为31357小数点246二进制数001011101111小数点010100110所以,结果为1357.246Q=1011101111.01010011B。
(4)二进制数与十六进制数之间的相互转换
由于24=16,故可采用“合4为1”的原则,从小数点开始分别向左、右两边各以4位为1组进行分组;若不足4位以0补足,便可将二进制数转换为十六进制数。例1.11:将1101000101011.001111B转换成十六进制数。二进制数1101000101011小数点001111合4为10001101000101011小数点00111100十六进制数1A2B小数点3C解:根据“合4为1”的原则,可将该二进制数书写为:结果为1101000101011.001111B=1A2B.3CH。
反之,采用“1分为4”的原则,每位十六进制数用4位二进制数表示,便可将十六进制数转换为二进制数。例1.12:将4D5E.6FH转换成二进制数。解:根据“1分为4”的原则,可将该十六进制数书写为:二进制4D5E小数点6FH合4为14D5E小数点6F十六进制0100110101011110小数点01101111结果为4D5E.6FH=100110101011110.01101111B。
1.6.2计算机中数的表示方法1.机器数与真值在前面小节中讨论的二进制数运算均为无符号数运算,但实际的数值是带有符号的。既可能是正数,用“+”号表示;也可能是负数,用“-”号表示。运算的结果也可能是正数,也可能是负数。于是在计算机中就存在着如何表示正、负数的问题。由于计算机只能识别0和1,因此,在计算机中通常把一个二进制数的最高位作为符号位,以表示数值的正与负(若用8位表示一个数,则D7位为符号位;若用16位表示一个数,则D15位为符号位),并用0表示“+”;用1表示“-”。例如:N1=+1011,N2=-1011在计算机中用8位二进制数的表示如下:2.原码、补码与反码(1)原码正数的符号位用0表示,负数的符号位用1表示,数值部分用真值的绝对值来表示的二进制机器数称之为原码,用[X]原表示。例如:+115和-115在计算机中(设机器字长为8位),其原码可分别表示为:[+115]原=01110011B;[-115]原=11110011B。D7D6D5D4D3D2D1D0N110001011N200001011
若真值为零,则零的原码有两种表示:[+0]原=00000000;[-0]原=10000000。8位二进制数的原码能表示的范围为—127
+127。(2)反码正数的反码与原码表示形式相同,负数的反码的符号位为1,数值位按位取反。零的反码有两种表示形式:[+0]反=00000000;[-0]反=11111111。8位二进制数的反码能表示的范围为—127
+127。例1.13:真值X1=+1000101,X2=-1010101,求两数的反码。解:[X1]反=01000101;[X2]反=10101010(3)补码在讨论补码之前,先介绍模(mod)的概念。模是指一个计量系统的计数量程。如,时钟的模为12。任何有模的计量器于均可化减法为加法运算。以时钟为例,设当前时钟指向11点,而准确时间为7点,调整时间的方法有两种,一种是时钟倒拨4小时,即11-4=7;另一种是时钟正拨8小时,即11+8=12十7=7。由此可见,在以12为模的系统中,加8和减4的效果是一样的。由此在计算机中引进补码表示法。正数的反码与原码表示形式相同,负数的反码的符号位为1,数值位按位求反加1。零的补码有一种表示形式:[+0]补=[-0]补=00000000。
8位二进制数的补码能表示的范围为—128
+127,若超出此范围,则为溢出。1.6.3计算机中数和字符的编码
在计算机中对数字、字母和字符多采用二进制代码进行编码,二进制数的位数越长,所能编码的数字、字母和字符就越多。常用的二进制编码有8421BCD码、ASCII码等。1.8421BCD码用二进制编码表示的十进制数称为二—十进制数,简称BCD(BinaryCodedDecimal)码。BCD码保留了十进制的权,用四位二进制数给0
9这10个数字编码。BCD码种类较多,如有8421码、2421码和余3码等。最常用的是8421BCD码(以下简称BCD码),组成它的4位二进制数码的权分别是8、4、2、1。8421BCD码与十进制数的对应关系如表1-3所示。表1-38421BCD码与十进制数的对应关系表十进制数8421BCD码8910111213141510001001000100000001000100010010000100110001010000011000十进制数8421BCD码0123456700000001001000110100010101100111
BCD码与十进制数之间的相互转换按上表对应关系进行。BCD码与二进制数之间的转换要通过转换成十进制数进行。
BCD码的加减法运算与十进制运算规则相同,加法为逢十进一、减法为借一为十。由于计算机只能进行二进制加法,并按逢十六进一的运算规则,因此计算机在进行BCD码加减法运算时,必须对运算结果进行修正。
BCD码加法运算的修正原则:若和的低4位大于9或低4位向高4位有进位,则低4位加6;若高4位大于9或高4位向最高位有进位,则高4位加6。
BCD码减法运算的修正原则:若差的低4位大于9或低4位向高4位有借位,则低4位减6;若高4位大于9或高4位向最高位有借位,则高4位减6。例1.14:用BCD数完成54+48的运算。解:54=(01010100)BCD,48=(01001000)BCD01010100+)0100100010011100(低4位大于9)+)0110(低4位加6修正)10100010(高4位有进位)+)0110(高4位加6修正)000100000010则(000100000010)BCD=102BCD2.ASCII码
ASCII码(AmeriacanStandardCodedforInformationInterchange)“美国信息交换标准代码”的简称,己成为国际通用的标准编码。编码表如表1—4所示。
ASCII码采用7位二进制编码,可为128个字符编码,这128个字符分为两类,一类是图形字符,包括10个十进制数符、52个大小写英文字母和34个其它字符,共计96个。图形字符具有特定的形状,可以在显示器上显示。另一类是控制字符,包括回车、换行、退格等,共32个。控制字符没有特定的形状但有一定的控制作用,不能在显示器上显示。表1-4ASCII码字符表0000010100111001011101110000NULDLESP0@P、p0001SOHDC1!1AQaq0010STXDC2“2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB‘7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,<L\l|1101CRGS-=M]m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广西钦州市2025-2026学年高一年级上册期末教学质量监测物理试卷(原卷版+解析版)
- 2025年无人机监管系统工程师客户需求挖掘技巧
- 2025 八年级地理下册三江源地区生态保护法律保障课件
- 糖尿病足间充质干细胞疗法
- 2026年人美版二年级美术下册第一单元《我们的童年》教学设计
- DB11-T 2362-2024 经营主体登记注册服务规范 个体工商户
- 2026年宁夏建设职业技术学院单招职业倾向性测试题库及答案详解(必刷)
- 2026年安徽卫生健康职业学院单招职业技能考试题库附答案详解ab卷
- 2026年宁德师范学院单招职业技能考试题库含答案详解(培优a卷)
- 2026年塔城职业技术学院单招职业倾向性考试题库及答案详解(必刷)
- 平面构成(普通高等院校艺术设计专业)全套教学课件
- 社会调查方法教案
- 2024发票相关知识培训课件
- 第8课+欧洲的思想解放运动 教学设计 高中历史统编版(2019)必修中外历史纲要下册
- 新人教版初中美术中考【试题】美术测试-八年级
- 中枢神经系统和外周神经系统的比较
- 《国际货运代理概述》课件
- 真人cs枪战策划方案
- 《心脏猝死的急救》课件
- 火龙罐综合灸疗法
- 幼儿园故事课件:《罗卡想要一顶帽子》
评论
0/150
提交评论