1、n了解单片机的分类和发展历史。n了解单片机的特点及应用。n掌握计算机中常用的数制和码制。n掌握微型计算机的基本结构与基本原理。n不同数制之间的转换和有符号数的加减法运算。n微型计算机执行程序的过程。n1.11.1 嵌入式系统与单片机嵌入式系统与单片机 n1.21.2 单片机的应用单片机的应用 n1.31.3 计算机运算基础计算机运算基础 n1.41.4 微型计算机的结构与原理微型计算机的结构与原理n本章小结本章小结 n习题习题 n1.1.1 1.1.1 嵌入式系统的概念嵌入式系统的概念 n1.1.2 1.1.2 单片机技术的发展单片机技术的发展 n1.1.3 1.1.3 单片机的特点、分类及发
2、展趋势单片机的特点、分类及发展趋势 计算机发展简介计算机发展简介n第一台电子计算机于1946年问世。n计算机的发展日新月异,至今已经历了由电子管计算机、晶体管计算机、集成电路计算机到大规模集成电路计算机四代。n单片机的出现是计算机技术发展史上的一个重要里程碑,它使计算机从海量数值计算进入到智能化控制领域。计算机技术逐步发展形成通用计算机系统和嵌入式计算机系统两大分支。基本概念基本概念n嵌入式计算机系统是面对测控对象,嵌入到应用系统中的计算机系统的统称,简称嵌入式系统(Embedded System)。n通用计算机系统主要满足海量、高速数值处理,兼顾控制功能;嵌入式计算机系统主要满足测控对象的控
3、制功能,兼顾数值处理。嵌入式计算机系统与通用计算机系统的主要区别嵌入式计算机系统与通用计算机系统的主要区别n嵌入式系统最显著的特点是面对工控领域的测控对象。控制对象对嵌入式计算机系统采集、处理、控制的速度要求是有限的,而对控制方式与控制能力的要求是无限的。n为了实现海量高速数值计算,通用计算机系统对计算机运行速度的要求是无限的,而对计算机的控制功能的要求是有限的。n在数字信号处理(DSP)领域的嵌入式系统也要求高速处理能力,在多媒体技术的外设管理领域的通用计算机系统也要求良好的控制能力,但两者存在本质的差别。嵌入式系统的分类嵌入式系统的分类n工业控制计算机。n通用CPU模块。n嵌入式微处理器(
4、Embedded Processor)。n嵌入式微控制器(Embedded Microcontrollers)。嵌入式微控制器是嵌入式系统概念广泛使用后,给传统单片机定位的称呼。单片机是经典的嵌入式系统,它具有唯一的专门为嵌入式应用设计的体系结构与指令系统。国内外公认的标准体系结构是Intel的MCS-51系列,其中8051已被许多厂家作为基核,发展了许多兼容系列,所有这些系列都统称为80C51系列。n第一阶段(19741976)初始阶段。以4位单片机为主,功能比较简单。如1974年美国Fairchild公司生产的第一台单片机F8,采用双片形式,功能简单。n第二阶段(19761978)探索阶段
5、。单芯片形式,低档8位单片机。如1976年美国Intel公司生产的MCS-48系列单片机,这是第一台完全的8位单片机。MCS-48的推出是在工控领域的探索,此后,各种8位单片机纷纷应运而生。n第三阶段(19781982)完善阶段。提高电路的集成度,增加8位单片机的功能。如Intel公司在MCS-48基础上推出了完善的高档8位单片机系列MCS-51。n第四阶段(19821990)巩固和发展阶段。巩固发展8位单片机、推出16位单片机、向微控制器发展,强化了智能控制器的特征 。如将ADC、DAC、PWM、WDT、DMA集成到单片机。n第五阶段(1990至今)全面发展阶段。适合不同领域要求的单片机,如
6、各种高速、大存储容量、强运算能力的8 位/16位/32位通用型单片机,还有用于单一领域的廉价的专用型单片机。单片机的主要特点单片机的主要特点 n集成度高 n控制功能强 n可靠性高 n低功耗、低电压 n外部总线丰富 n功能扩展性强 n体积小、成本低 n性价比高 单片机的分类单片机的分类 n按单片机数据处理位数来划分 4位单片机 8位单片机 16位单片机 32位单片机 n按单片机适用范围来划分 通用型单片机 专用型单片机 n按单片机并行总线来划分 总线型单片机(如AT89C51)非总线型单片机(如AT89C2051)单片机的发展趋势单片机的发展趋势nCMOS化单片机将具有更低的功耗、更低的电压。n
7、高性能化精简指令集(RISC)结构和流水线技术将得到广泛应用。n高可靠性提高单片机的抗电磁干扰能力。n大容量化扩大片内存储器容量。n多功能化把众多的各种外围功能器件集成在片内,如模/数转换器、数/模转换器、液晶显示驱动器 等。n串行扩展技术 SPI、I2C、Microwire、1-Wire等串行总线的引入,可以使单片机的引脚设计得更少,单片机系统结构更加简化。n1.2.1 1.2.1 智能仪器的应用智能仪器的应用 n1.2.2 1.2.2 通信设备的应用通信设备的应用 n1.2.3 1.2.3 家用电器的应用家用电器的应用 n1.2.4 1.2.4 工业控制的应用工业控制的应用 n单片机用于各
8、种仪器仪表,使仪器仪表智能化,可以提高测量的自动化程度和精度;简化仪器仪表的硬件结构,减小体积,提高其性价比。例如:温度智能控制仪表、医用仪表、汽车电子设备、数字示波器等。n例如,在普通模拟示波器的基础上用单片机进行改造而成的数字存储示波器,克服了普通模拟示波器的缺点,并增加了许多功能,如可以显示大量的预触发信息,可以长期贮存波形,可以在打印机或绘图仪上制作硬拷贝以供编制文件使用,可以将采集的波形和操作人员手工或示波器全自动采集的参考波形进行比较,波形信息可用数学方法进行处理。n单片机与通信技术相结合促使通信设备的智能控制水平大大提高,广泛应用于通信的各个领域。例如:调制解调器、传真机、复印机
9、、打印机、移动电话机、固定电话机等。n例如,传统的电话机只能实现简单的拨号、响铃、通话等功能,使用单片机后,可以开发出来电显示、存储电话号码、时钟显示、免提、重拨、声控等功能。功能更多的无绳电话机、录音电话机、可视电话机等多功能电话机也已走进人们的生活。n传统的家电配上单片机以后,提高了智能化程度,增加了功能,倍受人们喜爱;单片机使人类生活更加方便、舒适、丰富多彩。例如:洗衣机、电冰箱、电子玩具、收录机、微波炉、电视机、录像机、音响设备、程控玩具、游戏机等。n例如,单片机控制的全自动洗衣机集洗涤、脱水于一体,能自动完成洗衣全过程,并有多种洗涤程序供用户自由选择,能任意调节工作时间,显示工作状态
10、、洗涤时间和脱水时间,能自动处理脱水不平衡,具有各种故障和高低电压自动保护功能,工作结束或电源故障会自动断电以确保安全。目前,有的全自动洗衣机还采用了模糊技术,即洗衣机能对传感器提供的信息进行逻辑推理,自动判断衣服质地、重量、脏污程度,从而自动选择最佳的洗涤时间、进水量、漂洗次数、脱水时间,并显示洗涤剂的用量,达到整个洗涤过程自动化,使用方便,节能节水。n机电一体化是机械工业发展的方向。机电一体化产品是指集机械技术、微电子技术、计算机技术于一体,具有智能化特征的机电产品,例如微机控制的车床、钻床等。单片机作为产品中的控制器,能充分发挥它体积小、可靠性高、功能强等优点,可大大提高机器的自动化、智
11、能化程度。n单片机广泛用于导弹的导航装置、飞机上各种仪表的控制、计算机的网络通信与数据传输、机器人、工业自动化过程的实时控制和数据处理。例如,在这些实时控制系统中,都可以用单片机作为控制器,单片机的实时数据处理能力和控制功能,可使系统保持在最佳工作状态,提高系统的工作效率和产品质量。n在比较复杂的系统中,常采用分布式多机系统。多机系统一般由若干台功能各异的单片机组成,各自完成特定的任务,它们通过串行通信相互联系、协调工作。单片机在这种系统中往往作为一个终端机,安装在系统的某些节点上,对现场信息进行实时测量和控制。单片机的高可靠性和强抗干扰能力,使它可以置于恶劣环境的前端工作。n在教育部倡导的全
12、国大学生电子设计大赛中,有一道设计简易智能电动车的题目,参赛者用51系列单片机完成了设计任务并取得了较好的成绩。该设计采用单片机AT89C51和AT89C2051芯片为核心部件,利用光电检测技术、超声波测距、电涡流检测技术并配合一套独特的软件实现了电动车识别并选择正确的行进路线、电机的方向和速度控制、自动寻找光源、判断并自动躲避障碍物、时间显示、蜂鸣器报警等功能。电动车控制方案如下图所示。智能电动车控制方案 n1.3.1 1.3.1 数制数制 n1.3.2 1.3.2 有符号二进制数的编码有符号二进制数的编码 n1.3.3 1.3.3 二进制编码二进制编码 n数制是指数的制式,是人们利用符号进
13、行计数的科学方法。n数制有很多种,在计算机中常用的数制有十进制、二进制和十六进制。1.1.十进制十进制n十进制中共使用09十个数字符号(称为数码),数码的个数称为基数。十进制的基数为10,任何一个十进制数都可用这十个数码的组合来表示。n十进制数一般有以下特点:l有09十个数字符号,基数为10,各位的权为10n(n为整数)。l运算规则是加法逢十进一、减法借一为十。l用后缀D(Decimal)表示十进制数,通常对十进制数可不加后缀。1.1.十进制十进制n任一个数中每一位的值可用该位的数字乘以基数的幂次来表示,基数的幂次称为权。n十进制数各位的权是以10为底的幂,任何一个十进制数都可用权展开式来表示
14、。例如:十进制数1986.129可如下式展开:1986.129=1103+9102+8101+6100+110-1 +210-2+910-3 上式中100、101、102、103分别称为0权位、1权位、2权位、3权位。2.2.二进制二进制n二进制中共使用0、1两个数字符号。n二进制数一般有以下特点:l有0、1两个数字符号,基数为2,各位的权为2n(n为整数)。l运算规则是加法逢二进一、减法借一为二。l用后缀B(Binary)表示二进制数。2.2.二进制二进制n二进制数各位的权是以2为底的幂,任何一个二进制数都可用权展开式来表示。例如:二进制数1011.11可如下式展开:1011.11B=123
15、+022+121+120+12-1+12-2 =11.75 由上式可知,二进制数1011.11B相当于十进制数11.75。3.3.十六进制十六进制n十六进制中共使用09及AF十六个数字符号,其中AF相当于十进制数的1015。n十六进制数一般有以下特点:l有09及AF十六个数字符号,基数为16,各位的权为16n(n为整数)。l运算规则是加法逢十六进一、减法借一为十六。l用后缀H(Hexadecimal)表示十六进制数。3.3.十六进制十六进制n十六进制数各位的权是以16为底的幂,任何一个十六进制数都可用权展开式来表示。例如:十六进制数5D6E.4可如下式展开:5D6E.4H=5163+13162
16、+6161+14160+416-1 =23918.25 由上式可知,十六进制数5D6E.4相当于十进制数23918.25。十进制数、二进制数和十六进制数对照表十进制数二进制数十六进制数十进制数二进制数十六进制数000000810008100011910019200102101010A300113111011B401004121100C501015131101D601106141110E701117151111F4.4.不同数制之间的转换不同数制之间的转换n二进制数转换成十六进制数采用“四位合一位”法 n十六进制数转换成二进制数采用“一位分四位”法 n二进制数转换成十进制数按权展开后相加 n十六
17、进制数转换成十进制数按权展开后相加 n十进制整数转换成二进制整数采用“除以2取余”法n十进制整数转换成十六进制整数采用“除以16取余”法n十进制小数转换成二进制小数采用“乘2取整”法 n十进制小数转换成十六进制小数采用“乘16取整”法 4.4.不同数制之间的转换不同数制之间的转换【例1】将十进制整数100转换成二进制整数。解:用2连续除100,直至商小于2,算式如下:运算结果:100=1100100B。4.4.不同数制之间的转换不同数制之间的转换【例2】将十进制小数0.618转换成二进制小数。解:用2连续乘以0.618,小数部分为0或保留4位小数,算式如下:运算结果:0.6180.1001B。
18、基本概念基本概念n在计算机中把有符号数、字母、数字和字符用二进制代码按一定规律编排,使每组代码具有特定的含义,称为计算机编码。n有符号二进制数的正负号分别用有符号二进制数的正负号分别用“+”+”和和“-”-”来表示。一来表示。一般规定最高位为般规定最高位为符号位符号位,最高位为,最高位为“0”0”表示正数,为表示正数,为“1”1”表示负数,这种把符号数值化的数称为表示负数,这种把符号数值化的数称为机器数机器数,而原来的,而原来的数值称为机器数的数值称为机器数的真值真值。n有符号二进制数有三种表示法,即有符号二进制数有三种表示法,即原码原码、反码反码和和补码补码。1.1.原码原码n原码的表示方法
19、:正数的符号位用“0”表示。负数的符号位用“1”表示。n0的原码有两种表示形式:+0原=00000000 -0原=10000000n原码的特点:原码表示简单直观,但0的表示不唯一,加减运算复杂。n8位二进制数的原码能表示的范围为 11111111B01111111B (-127+127)2.2.反码反码n反码的表示方法:正数的反码与原码表示形式相同。负数的反码的符号位为1,数值位按位取反。n0的反码有两种表示形式。+0反=00000000 -0反=11111111n8位二进制数的反码能表示的范围为 10000000B01111111B (-127+127)3.3.补码补码n补码的表示方法:正数
20、的补码表示与原码表示形式相同。负数的补码的符号位为1,数值位按位求反加1。n0的补码只有一种表示形式:+0补=-0补=00000000n补码的特点:0的表示唯一,加减运算方便。n8位二进制数的补码能表示的范围为 10000000B01111111B (-128+127)4.4.有符号数的运算有符号数的运算n补码的加法运算规则:X+Y补=X补+Y补n补码的减法运算规则:X-Y补=X补-Y补=X补+-Y补n在计算机中有符号数一般用补码表示,无论是加法还是减法都可采用加法运算,而且是连同符号位一起进行运算的,运算的结果仍为补码。4.4.有符号数的运算有符号数的运算【例8】真值X1=+17,X2=+2
21、5,求X1-X2的值。解:X1补=00010001 -X2补=11100111 X1-X2补=X1补+-X2补=11111000 用二进制加法运算如下:X1-X2=X1-X2补补=-88D n在计算机中对数字、字母和字符用二进制代码进行编码的方法很多,二进制数的位数越长,所能编码的数字、字母和字符就越多。n常用的二进制编码有BCD码、ASCII码等。1.BCD1.BCD码码n用二进制编码表示的十进制数称为二-十进制数,简称BCD(Binary Coded Decimal)码。nBCD码保留了十进制的权,用四位二进制数给09这10个数字编码。nBCD码种类较多,如有8421码、2421码和余3码
22、等。n最常用的是 8421BCD码(以后简称BCD码),组成它的4位二进制数码的权分别是8、4、2、1。8421BCD码与十进制数的对应关系表十进制数8421码十进制数8421码十进制数8421码00000 60110 120001001010001 70111 130001001120010 81000 140001010030011 91001 150001010140100 1000010000 160001011050101 1100010001 17000101111.BCD1.BCD码码nBCD码的加减法运算与十进制运算规则相同,加法为逢十进一、减法为借一为十。nBCD码加法运算的
23、修正原则:若和的低4位大于9或低4位向高4位有进位,则低4位加6;若高4位大于9或高4位向最高位有进位,则高4位加6。nBCD码减法运算的修正原则:若差的低4位大于9或低4位向高4位有借位,则低4位减6;若高4位大于9或高4位向最高位有借位,则高4位减6。2.ASCII2.ASCII码码nASCII码(Ameriacan Standard Coded for Information Interchange)是“美国信息交换标准代码”的简称,已成为国际通用的标准编码。nASCII码采用7位二进制编码,可为128个字符编码,这128个字符分为两类。l图形字符包括10个十进制数符、52个大小写英文字
24、母和34个其它字符,共计96个。图形字符具有特定的形状,可以在显示器上显示。l控制字符包括回车、换行、退格等,共32个。控制字符没有特定的形状但有一定的控制作用,不能在显示器上显示。ASCIIASCII码字符表码字符表 字字 高高低低 符符 位位 位位0123456700000101001110010111011100000NULDLESP0P、p10001SOHDC1!1AQaq20010STXDC2“2BRbr30011ETXDC3#3CScs40100EOTDC44DTdt50101ENQNAK%5EUeu60110ACKSYN&6FVfv70111BELETB7GWgw81000BSC
25、AN(8HXhx91001HTEM)9IYjyA1010LFSUB*:JZjzB1011VTESC+;KkC1100FFFS,Ll|D1101CRGS-=MmE1110SORS.NnF1111SIUS/?OoDELn1.4.1 1.4.1 微型计算机的基本结构微型计算机的基本结构 n1.4.2 1.4.2 微型计算机的工作原理微型计算机的工作原理 n微型计算机由硬件系统和软件系统两大部分组成,一般把二者构成的系统称为微型计算机系统。n微型计算机的硬件主要是由CPU(运算器和控制器)、存储器、I/O接口和I/O设备组成,各组成部分之间通过地址总线AB(Address Bus)、数据总线DB(Da
26、ta Bus)、控制总线CB(Control Bus)联系在一起。n微型计算机的软件包括系统软件和应用软件两大类。软件与硬件相辅相成,共同构成微型计算机系统,缺一不可。微型计算机的系统结构框图微型计算机的系统结构框图 CPU 运算器 控制器 器 程序存储器 ROM 数据存储器 RAM 输入/输出设备 I/O 接口 DB CB 微型计算机系统采用总线结构形式。总线结构的主要优点:设计简单、灵活性好、易于扩展、便于故障检测和维修。ABn指令是对计算机发出的一条条工作命令,命令它执行规定的操作,程序是实现既定任务的指令序列。n把程序和数据送到具有记忆功能的存储器中保存起来,计算机工作时只要给出程序中
27、第一条指令的地址,控制器就可依据存储程序中的指令顺序周而复始地取出指令、分析指令、执行指令,直到执行完全部指令为止。微型计算机执行程序的过程微型计算机执行程序的过程n微型计算机执行程序的过程就是逐条执行指令的过程。由于执行每一条指令,都包括取指令与执行指令两个基本阶段,所以,微机的工作过程,也就是不断地取指令和执行指令的过程。n17+15的加法运算程序如下:存储地址 机器语言程序 汇编语言程序 注释 0000H 74 11 MOV A,#11H;数11H送入累加 器A 0002H 24 0F ADD A,#0FH;数0FH与累加器A中的11H 相加,和送入累加器A 0004H 80 FE SJ
28、MP ;暂停执行程序的过程示意图执行程序的过程示意图 ALU O I2 I1 A ID IR PLA DR 0000H 01110100 00010001 00100100 00001111 10000000 11111110 RA 存储器 0006H 0003H 0004H 0005H 0002H 0001H AR AB DB PC 1 执行第一条指令的过程(一)执行第一条指令的过程(一)n开始执行程序时,必须先给程序计数器PC赋以第1条指令的首地址0000H,然后就进入第一条指令的取指令阶段。n取第一条指令的步骤如下:把程序计数器PC的内容0000H送到地址寄存器AR。程序计数器PC的内容
29、送入AR后,PC自动加1,即由0000H变为0001H。此时AR的内容并没有变化。把地址寄存器AR的内容0000H通过地址总线AB送至存储器,经地址译码器译码,选中存储器相应的0000H单元。CPU控制器发出读命令。在读命令控制下,把所选中的0000H单元中的内容即第1条指令的操作码74H读到数据总线DB上。把读出的内容74H经数据总线DB送到数据寄存器DR。因取出的是指令的操作码,故把数据寄存器DR的内容74H送到指令寄存器IR,然后再送到指令译码器ID。这就完成了第一条指令的取指令阶段,然后转入第一条指令的执行阶段。执行第一条指令的过程(二)执行第一条指令的过程(二)n经过对操作码74H译
30、码后,CPU识别出这个操作码是把下一个存储单元中的操作数送入累加器A的双字节指令,所以,执行第一条指令就必须把指令第2字节中的操作数取出来。n取第一条指令操作数的步骤如下:把程序计数器PC的内容0001H送到地址寄存器AR。程序计数器PC的内容送到AR后,PC自动加1,变为0002H。此时AR中的内容并没有变化。把地址寄存器AR的内容0001H通过地址总线AB送至存储器,经地址译码器译码,选中存储器相应的0001H单元。CPU控制器发出读命令。在读命令控制下,将选中的0001H单元的内容11H读到数据总线DB上。把读出的内容11H经数据总线DB送到数据寄存器DR。因CPU已知这时读出的是操作数
31、,且指令要求把它送到累加器A,故把数据寄存器DR的内容11H经内部数据总线送到累加器A中,于是第一条指令执行完毕,进入第二条指令的取指令阶段。n计算机按规模、性能、用途和价格来分类,可分为巨、大、中、小、微型计算机。计算机技术已发展成通用计算机系统和嵌入式计算机系统两大分支,嵌入式系统一般可分为工业控制计算机、通用CPU模块、嵌入式微处理器和嵌入式微控制器四类。单片机是经典的嵌入式系统,它具有专门为嵌入式应用设计的体系结构与指令系统。n单片机主要特点:集成度高、控制功能强、可靠性高、低功耗、低电压、外部总线丰富、功能扩展性强、体积小、性价比高。单片机按数据处理位数可分为4位机、8位机、16位机
32、和32位机,按适用范围可分为通用型和专用型,按并行总线可分为总线型和非总线型。n在计算机中常用的数制有十进制、二进制和十六进制。不同数制之间的转换都有一定的规则,如二进制数转换成十六进制数采用“四位合一位”法,十六进制数转换成二进制数采用“一位分四位”法,十进制整数转换成二进制整数采用“除2取余”法,十进制整数转换成十六进制整数采用“除16取余”法,十进制小数转换成二进制小数采用“乘2取整”法,十进制小数转换成十六进制小数采用“乘16取整”法。n有符号二进制数有三种表示法,即原码、反码和补码。在计算机中有符号数一般用补码表示,无论是加法还是减法都可采用加法运算,而且是连同符号位一起进行的,运算
33、的结果仍为补码。nBCD码的加减法运算与十进制运算规则相同,但必须对运算结果进行修正。ASCII码是国际通用的标准编码,采用7位二进制编码,分为图形字符和控制字符两类,共128个字符。n微型计算机由硬件系统和软件系统两大部分组成。硬件主要是由CPU、存储器、I/O接口和I/O设备组成,采用总线结构形式。软件包括系统软件和应用软件两大类,程序设计语言分为三级,分别是机器语言、汇编语言和高级语言。n微型计算机执行程序的过程就是逐条执行指令的过程。执行每一条指令,都包括取指令与执行指令两个基本阶段。1.十进制、二进制、十六进制数各有什么特点?请举例加以说明。2.将下列十进制数转换为二进制和十六进制数
34、。255 127 0.123 0.1415 45.32 1999.083.将下列二进制和十六进制数转换为十进制数。1001010B 0.1010111B 1010.11B 1C3H 0.A49H EB.0AH4.将下列二进制数转换为十六进制数。1011011B 0.1010101B 1010.0101B 111000010100.1110101B5.机器数、真值、原码、反码和补码如何表示?请举例加以说明。6.下列是有符号数的原码,请写出其反码和补码。01111011B 10101010B 10000001B 11111111B7.把下列数看成无符号数时,对应的十进制数为多少?若把它们看成有符号数的补码,对应的十进制数是多少?10101010B 00110010B 10000001B8.把下列各数用补码表示,再按补码运算规则分别求出X+Y补和X-Y补。X=+46 Y=-78 X=+112 Y=-519.写出89和157两数的BCD码,并对这两个BCD码进行加法运算。10.微型计算机系统的硬件和软件包括哪些部分?11.结合图1-2简述微型计算机执行一条指令的过程。