




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机普及讲稿
Gaojun
2007.3初稔
2007.7第一稿
、八—
刖§
东北大学秦皇岛分校高军
单片机的发展经历了兴盛到衰退再到兴盛的反复,近几
年单片机应用的迅速发展也强烈的激发了电子爱好者对单
片机的学习兴趣,但是与学习者的空前热情相比现在大多数
教材都是沿用十数年前的教学结构,没有及时进行知识概念
和教学理念的更新;更有些人故弄玄虚,把学习单片机这件
事情搞的复杂化,这样给一些基础薄弱的人的学习增加了难
度和压力。
我根据多年的教学和开发经验以及对学生的了解写了
这本讲稿,目的是让更多的人来单片机,学会单片机,因为
单片机应用是一门技能课,所以我认为教师的主要任务是将
单片机最基础的知识和技能用最通俗的语言最生动的形式
教授给学习者,让他们以轻松的心情走进单片机的世界,至
于单片机应用中的高级知识和技能则应该是学习者在实践
中不断的自学和充实,以此培养独立分析和解决问题的能
力。
这份讲稿不但讲述了单片机的基础知识,还详细讲解了
20个实际设计,配合硬件设备可以完成单片机学习中的所有
基础实验。
本文由于编撰时间仓促,难免存在文字上的错误,敬请
指正。
最后祝愿大家都能成为的单片机从业者。
目录
2
东北大学秦皇岛分校高军
第一讲:为什么学习单片机6
1.单片概念及发展史6
2.单片机的特点7
3.单片机的主要用途8
4.单片机与嵌入式的关系8
5.单片机的就业10
6.学完单片机能做什么11
第二讲:学习单片机的几种方法11
1.传统教学方式11
2.七天学会单片机12
3.实验贯穿教程13
4.整体+基础+实践13
第三讲:数制的基础13
1.进位计数制14
2.进制间的转换19
3.数的定点与浮点表示25
4.机器数的表示28
5.计算机中常用的编码36
6.逻辑数据的表示38
第四讲:开发简单的单片机系统39
1.单片机的最小系统39
2.点亮发光管42
3.单片机编程的一般过程43
4.介绍一个简单的编译软件45
第五讲:初学单片机儿个不易掌握的概念46
1.总线46
2.数据、地址、指令47
3.P0口、P2口和P3的第二功能用法48
4.程序的执行过程49
5.堆栈49
6.仿真、仿真机50
第六讲:汇编指令学习51
1.汇编和C语言在开发单片机时各有哪些优缺点?51
2.单片机MCS-51系列指令快速记忆法52
3.学习51汇编指令的需要掌握的基本知识点56
第七讲简单的程序设计60
1.数据传送类指令及练习60
2.综合编程举例67
第八讲:51单片机内部硬件基础72
1.MCS-51单片机的引脚配置图72
2.MCS-51单片机的总线73
3.51存储空间结构74
4.I/O口结构82
第九讲:成为单片机从业者?86
3
东北大学秦皇岛分校高军
1.信心+快乐86
2.应该储备的知识和技能87
3.了解51家族87
4.单片机硬件系统设计原则89
第十讲:常用下载程序的使用91
1.stc单片机卜一载说明(使用STC89c52)91
2.独立ISP下载线使用说明(使用89s52/51)98
第一|—讲:I/O的应用实例100
1.实验一位移法流水灯100
2.实验二逐个送数法流水灯103
3.如何精确计算延时子程序的执行忖间?105
4.实验三蜂鸣器嘀嘀声106
5.实验四蜂鸣器报警声108
第十二讲:独立按键的设计109
1.一种简易的独立按键结构及程序设计109
2.一种标准的独立按键结构及程序设计110
3.键盘防抖(消抖)概念111
第十三讲数码管控制方法114
1.数码管的结构114
2.多位数码管的驱动方法115
3.实验六数码管显示116
4.实验七独立按键与数码管综合实验118
第十四讲行列式(矩阵式)键盘119
1.行列式键盘的基本结构119
2.常用的行列式结构与程序120
3.实验八行列式按键120
第十五讲S51/52看门狗121
1.什么是看门狗121
2.实验九S51/52看门狗演示121
第十六讲单片机中断与定时122
1.中断的基本知识122
2.实验十外部中断128
3.MCS-51单片机的定时器/计数器131
4.实验十一定时器计数器139
第十七讲串行口142
1.串行接口概述142
2.8051单片机的串行接口结构145
3.串行口的工作方式148
4.计算波特率150
5.串行口的应用范例152
6.异步通讯程序举例154
7.单片机和PC机串口通讯156
8.实验十二串行口通信158
9.多机通信接口163
4
东北大学秦皇岛分校高军
第十八讲KEILC的使用指导165
1.如何建立一个C项目165
2.如何进行工程详细设置173
3.操作过程视频录象178
第十九章单片机加强实验179
实验十三1602液晶179
实验十四12864液晶181
实验十五温度测量187
实验十六EEPROM192
实验十七继电器控制193
实验十八串行A/D实验195
实验十九串行D/A实验199
实验二十时钟芯片(DS1302)实验202
实验二T■•一步进电机调速实验205
实验二十二步进电机正反转实验210
附录151汇编指令表(以字母顺序排列)212
附录251汇编指令表(以功能顺序排列)256
附录3ANS1C标准关键字264
附录4C51编译器的扩展关键字266
附录5AT89C51特殊功能寄存器列表267
5
东北大学秦皇岛分校高军
第一讲:为什么学习单片机
1.单片概念及发展史
无论规模大小、性能高低,计算机的硬件系统都是由
运算器、存储器、输人设备、输出设备以及控制器等单元组
成。在通用计算机中,这些单元被分成若干块独立的芯片,
通过电路连接而构成一台完整的计算机。而单片机技术则将
这些单元全部集成到一块集成电路中,即一块芯片就构成了
一个完整的计算机系统。这成为当时这一类芯片的典型特
征,因此,就以SingleChipMicrocomputer来称呼这一
类芯片,中文译为“单片机”.这在当时是一个准确的表达。
但随着单片机技术的不断发展,“单片机”已无法确切地表
达其内涵,国际上逐渐采用MCU(MicroControllerUnit)
来称呼这一类计算机,并成为单片机界公认的、最终统一的
名词。但国内由于多年来一直使用“单片机”的称呼,已约
定俗成.所以目前仍采用“单片机”这一名词。
20世纪70年代,美国仙童公司首先推出了第一款单片
机F—8,随后Intel公司推出了MCS—48单片机系列,其它
一些公司如Motorola>Zilog等也先后推出了自己的单片机,
取得了一定的成果,这是单片机的起步与探索阶段。总的来
说,这一阶段的单片机性能较弱,属于低、中档产品。随着
集成技术的提高以及CMOS技术的发展,单片机的性能也随
6
东北大学秦皇岛分校高军
之改善,高性能的8位单片机相继问世。1980年Intel公司
推出了8位高档MCS-51系列单片机,性能得到很大的提
高,应用领域也大为扩展。这是单片机的完善阶段。1983年
Intel公司推出了16位MCS—96系列单片机,加入了更多
的外围接口,如模/数转换器(ADC)、看门狗(WDT)、脉
宽调制器(PWM)等,其它一些公司也相继推出了各自的高
性能单片机系统。随后许多用在高端单片机上的技术被下移
到8位单片机上,这些单片机内部一般都有非常丰富的外围
接口,强化了智能控制器的特征,这是8位单片机与16位
单片机的推出阶段。
近年来,Intel、Motorola等公司又先后推出了性能更为
优越的32位单片机,单片机的应用达到了一个更新的层次。
随着科学技术的进步,早期的8位中、低档单片机逐渐
被淘汰。但8位单片机并没有消失,尤其是以80C51为内核
的单片机,不仅没有消失,还呈现快速发展的趋势。
2.单片机的特点
体积小、质量轻、价格便宜、为学习、应用和开发提供
了便利条件。
7
东北大学秦皇岛分校高军
3.单片机的主要用途
目前单片机渗透到我们生活的各个领域,几乎很难找到
哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种
仪表的控制,计算机的网络通讯与数据传输,工业自动化过
程的实时控制和数据处理,广泛使用的各种智能IC卡,民
用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣
机的控制,以及程控玩具、电子宠物等等,这些都离不开单
片机。更不用说自动控制领域的机器人、智能仪表、医疗器
械了。因此,单片机的学习、开发与应用将造就一批计算机
应用与智能化控制的科学家、工程师。
4.单片机与嵌入式的关系
嵌入式的概念:嵌入式系统是面向测控对象,嵌入到实
际应用系统中的计算机系统的统称。嵌入式系统按形态可分
为设备级(工控机)、板级(单板、模块)、芯片级(MCU、
SoC)o前两者是基于通用计算机系统,即将通用计算机系统
用于测控对象。后者是基于芯片形态的计算机系统,其中嵌
入式微处理器是在通用CPU基础上发展,增加满足测控对象
要求的外围接口电路,用于测控领域。
单片机是典型的嵌入式系统:单片机从体系结构到指令
系统都是按照嵌入式系统的应用特点专门设计的,它能很好
8
东北大学秦皇岛分校高军
地满足应用系统的嵌入、面向测控对象、现场可靠运行等方
面的要求,因此由单片机构成的系统是发展最快、品种最多、
数量最大、应用最广的嵌入式系统。由于单片机有嵌入式
应用的专用体系结构与指令系统,而量具有体积小、可靠性
高等特点,又具有各种各样的型号,可以满足不同的需求,
实际应用时,开发者可根据具体要求选用最佳型号的单片机
嵌入到应用系统中。
嵌入式系统的两种模式:(1).电子系统模式:电子技
术应用工程师为主体,实现传统电子系统的智能化,而计算
机专业队伍并没有真正进入单片机应用领域。因此,电子技
术应用工程师以自己习惯性的电子技术应用模式,从事控
制、仪器仪表、机械电子等方面的应用开发。这种应用模式
最重要的特点是:软、硬件的底层性和随意性;对象系统专
业技术的密切相关性;缺少计算机工程设计方法。
(2).计算机系统模式:虽然在单片机时代,计算机专
业淡出了嵌入式系统领域,但随着后PC时代的到来,网络、
通信技术得以发展;同时,嵌入式系统软、硬件技术有了很
大的提升,为计算机专业人士介入嵌入式系统应用开辟了广
阔天地。计算机专业人士的介入,形成的计算机应用模式带
有明显的计算机的工程应用特点,即基于嵌入式系统软、硬
件平台,以网络、通信为主的非嵌入式底层应用。
现在我们所说的“嵌入式系统”指具有与通用计算机相
9
东北大学秦皇岛分校高军
同的操作系统(WINDOWSME和LINUX),可以用通用计
算机上编程语言如C语言等编程,程序可移植到嵌入式芯片
上。因此“嵌入式系统”功能强大,技术复杂,开发周期长,
成本很高,适用于系统功能复杂(比如包含高级显示系统和
网络通讯系统等)的系统,而单片机系统简单灵活,开发周
期短,成本低,适用于系统功能简单的现场控制。二者各有
优点,功能互补,他们的选择应该由实际的需求决定,不要
出现“杀鸡用牛刀”或“小马拉大车”的现象。
学习“单片机”对“嵌入式”的好处:单片机是嵌入式
系统的基础,嵌入式系统是单片机发展的高级境界。如果没
有单片机的基础而从事高端嵌入式开发,就缺乏对硬件结构
的了解,是摘了一条腿的,一个全面的嵌入式系统开发人员
必须能够做到软件硬件都精通。
5.单片机的就业
深圳三年单片机工作经验一般6000以上。如果没6000千,
那就说明你实在不适合做这行。
“我在成都MOTOROLA,开发龙珠,用ARM9,月薪12000
元”
龙珠:摩托罗拉与北航合作开发DragonBall龙珠微处理器,
应用到无线通信、导航、安全和移动商务设备解决方案中。
根据协议,摩托罗拉将向北航提供龙珠微处理器开发系统、
10
东北大学秦皇岛分校高军
技术资料、技术培训及支持。北航负责龙珠微处理器的教学、
研发和技术推广。
6.学完单片机能做什么
我们用大家都很熟悉的电梯来做一个直观的了解,电梯
的运行模式控制就是典型的单片机控制系统,它主要关心以
下几个参数:电梯是否超重,电梯的运行速度,电梯的对每
个楼层的请求数据的获取,然后根据现在的运行方向及请求
方向和楼层的相邻关系确定电梯是否停靠。如果甲从1楼上
到8楼,行至3楼获得5楼的请求,若请求为“上”,则电
梯在5楼停,若请求为“下”,则电梯不停,原因很简单,
如果你是电梯你会从5楼背着一个包袱到8楼再背回到3楼
吗?作为乘客也不愿意从5楼到8楼再到3楼。所以单片机
可以看作一个人,只不过智商IQ比较低,太复杂的事情他
做不了或者是做不好。
第二讲:学习单片机的几种方法
1.传统教学方式
按照教材教学顺序讲解,配合实验内容。存在一定的问
题:1.教学内容过多,教学时间分散,不易形成整体概念,
不易消化接受。2.实验内容固定且比较复杂,都是验证性
实验,把写好的程序烧进芯片里,出来实验结果就做完了。
11
东北大学秦皇岛分校高军
得不到真正的锻炼,效果很差。很多大学生都学过单片机,
但是毕业后能直接从事单片机开发的寥寥无几。
2.七天学会单片机
第一天:google上搜索“单片机”“C51”“入门”“开发
板”,尽量把找得到的网站走马观花的看一遍,重点推荐“老
古开发网”。看各网站的关于C51,51单片机的入门指导等精
华文章。使用时间3-5小时。
第二天:去新华书店买几本第一天的网站里推荐的新手
入门的书看看,重点看前面三章既可。
至少要有一本C51的书。使用时间2-3小时。
第三天:去当地电子市场购买开发板一个(含芯片
100-300元),烧片机一台(1000元以下)。用C51写一个非
常小的程序(闪烁的灯,代码不超过20行),熟悉编译器和烧
片机的使用,然后把片子烧一下,插到开发板上,上电运行,
直到看到开发板上的灯在闪烁。剩余时间看第二天买来的
书。使用时间1-5小时。
第四天:学习书上定时器的使用,可以将第三天编写的
程序中灯的闪烁时间精确设定在1秒。
剩余时间看书。使用时间1-5小时。
第五天:学习使用单片机的串口和电脑通讯,学习使用
中断,使用键盘。剩余时间看书。使用时间1-5小时。
12
东北大学秦皇岛分校高军
第六天:将C51书上的例子选三到五个调试通过,不要将
光盘上的程序copy,要自己一行一行输入。使用时间5小时。
第七天:不需要编程序了,直接看看书上的剩余章节就
可以了。使用时间随意。
3.实验贯穿教程
此类教程不做系统完整讲解,直接通过做实验讲授相关
知识,这类教程往往是只见树叶不见森林,学习者往往停留
在点上,不容易掌握单片机的整体性。
4.整体+基础+实践
我们提倡的是:学习的整体性、基础性和实践性。先让
学习者对单片机的系统知识结构、系统的概念有一个整体的
认识,然后重点讲述学习单片机必须掌握的基本知识点同时
进行针对知识点的实验训练,强调自己分析自己动手。
我们的目标是让学习者能独立的实现简单单片机系统
的开发设计,同时适当培养学习者的自学能力和综合能力。
第三讲:数制的基础
计算机用于处理各种信息,首先需要将信息表示成具体
的数据形式。选择什么样的数制来表示数。对机器的结构、
性能和效率有很大的影响。二进制是计算机中数制的基础。
所谓二进制形式,是指每位数码只取二个值.要么是“0”,
13
东北大学秦皇岛分校高军
要么是“1",数码最大值只能是1,超过1就应向高位进位。
为什么要采用二进制形式呢?这是因为二进制最简单.它仅
有二个数字符号,这就特别适合用电子元器件来表示。制造
有两个稳定状态的元器件一般比制造具有多个稳定状态的
元器件要容易得多。
计算机内部采用二进制表示各种数据,对于单片机而
言.其主要的数据类型分为数值数据和逻辑数据两种。下面
分别介绍数制概念和各种数据的机内表示、运算等知识。
按进位的原则进行计数,称为进位计数制,简称“数制”。
数制有多种,在计算机中常使用的有十进制、二进制和十六
进制。
1.进位计数制
人们最常用的数是十制数,计算机中采用的是二进制
数,有时为了简化二进制数据的书写,也采用八进制和十六
进制表示方法。下面将分别介绍这几种常用的进制。
1.十进制数
十进制数是大家熟悉的,用0,1,2,…,8,9十个不
同的符号来表示数值,它采用的是“逢十进一,借一当十”
的原则。每一位的位权都是以10为底的指数函数,由小数
14
东北大学秦皇岛分校高军
点向左,各数位按位权展开。依次为10°、10、102、1()3等;
由小数点向右,各数的位权分别为10,10-2、10-3等。
例如526.23,如果按各数的位权来展开,可以写成下
面的形式:
526.23=5X102+2X1O'+6X10°+2X10'+3X102
这里的10°,10I1(Aio)io-在数学上称为权。而
基数就是指计数制中数字符号状态的个数,因此十进制数的
基数是10。
这样,对于任意包含n位整数m位小数的十进制数N,
其表示方式为:
nHn-2
N=±[kn-1lO+kn-2lO-+kolO°+k-1lO
也可以缩写为:
N=±£[KilOlke[0,1,2...,9}
i=-m
式中m、n均为正整数,括号里的10是十进制的基数。
所谓基数,就是计数制中数字符号状态的个数。10,叫作“权”。
2.二进制数
15
东北大学秦皇岛分校高军
基数为10的计数制叫十进制;基数为2的计数制叫作
二进制。
二进制数的计算规则是“逢二进一,借一当二”。
一个数N的二进制表示形式为:
,*,
N-(an-ian2a,n-3,••a)ao.aia-2a-m)2
其中,n和m分别表示这个二进制数的整数部分位数和
小数部分位数。aiG{0,1},i=-m,-m+L••,0,1,•••,
n-lo
在计算机中,任何数据都是用0和1表示的。因为计算
机要用电信号表示数字,数字符号越少,信号就越简单清楚,
因而出错的可能性也比较小。任何一个物理状态都有两种不
同的稳定状态,从原则上讲,可以用任何两个对立的物理状
态来表示0和1。而且二进制的运算规则简单,易于机器实
现。下面对二进制做详细的介绍。
⑴加法运算
0+0=00+1=1
1+0=11+1=10(逢2进1)
⑵减法运算
16
东北大学秦皇岛分校高军
0-0=00-1=1(有借位)
1-0=11-1=0
(3)乘法运算
0x0=00x1=0
1x0=01x1=1
(4)除法运算
0/1=01/1=1
下面通过举例来具体掌握一下二进制的四则运算。
[例3.1]计算(1010)2+(1101)2
进位1000
被加数1010十进制验算:10
加数+)1101+13
1011123
[例3.2]计算(110)2X(11)2
被乘数110
17
东北大学秦皇岛分校高军
乘数X)11
110
110
10010
3.八进制数
八进制数采用基数为八的计数制。八进制数主要采用0,
1,2,…,7这8个阿拉伯数字。八进制数的运算规则为“逢
八进一,借一当八”。一个任意的八进制数N的表示形式为:
0-21-m
N=±[kn-tS^+kn^S..+ko8°+k-18-+-k-m8]
4.十六进制数
十六进制数采用基数为十六的计数制。但只有0〜9这
十个数字,所以用A、B、C、D、E、F这6个字母来分别表
示10、11、12、13、14、15,字母不区分大小写。
十六进制数的运算规则为“逢十六进一,借一当十六”。
一个任意的十六进制数N的表示
形式为:
,
N—(311-13-11-23.0-3**3,13.0.CL-1£L-2..♦a.-m)16
18
东北大学秦皇岛分校高军
其中n和m分别表示N的整数部分位数和小数部分位数。
a,G(0,1,2,…,A,B,C,D,E,F),i=-m,-m+1,…,
0,1,…,n-l
为区别不同进制的数,一般在数据末尾用B、0、D、H
来分别表示二、八、十、十六进制,如1011B或(1011)2,75o
或(75)8,123D或(123)1。等。
2.进制间的转换
由于人们习惯于十进制数,而计算机内部采用的是二进
制数,因此就产生了各种进制之间的转换规则。下面将分两
方面来介绍一下各个进制之间的转换问题。
1.十进制数与二进制数之间的相互转换
(1)十进制数转换成二进制
将十进制数转换成二进制数时,要把整数部分和小数部
分分别进行转换,然后再把转换之后的结果相加。
整数部分采用“除2取余”的方法,也就是只要将它一
次一次地被2除,直到商为0为止,得到的余数“自下而上”
(从最后一个余数)读取,这就是二进制数的整数部分。
19
东北大学秦皇岛分校高军
小数部分采用“乘2取整”的方法,也就是将它一次一
次地被2乘,取乘积的整数部分,再取其小数部分被2乘,
直到小数部分为0结束,得到的整数“自上而下”读取,这
就是二进制数的小数部分。
例题3.3将(136)]。转换为二进制数。
余数
0A
0
0
1
0
0
0
转化结果为(136)10=(10001000)2
例题3.4将十进制数0.625转换成二进制数
20
东北大学秦皇岛分校高军
0.625
X2
1.2501
X2
0.5000
X2▼
1.0001
转换结果为:(0.625)lo=(O.101)2
需要说明的是,有的十进制小数不能精确地转换成二进
制小数,这样乘积的小数部分就永远不能为0,此时可以根
据精度的要求,将它转换到所需的位数即可。
十进制数到二进制数的转换过程可以推广到十进制数
和八进制数、十六进制数之间的转换。也就是将“除2取余”
和“乘2取整”相应地转换为“除M取余”和“乘M取整”
(M即可代表8或16)。
(2)二进制数转换成十进制数
将二进制数转换成十进制数就相对简单点,可以将二进
制数按“权”展开,相加即可。
[例3.5]将二进制数11101.101转换成为十进制数。
21
东北大学秦皇岛分校高军
解:
43211
(11101.1O1)2=1X2+1X2+1X2+OX2+1X2°+1X2-+OX
2-2+lX23
=16+8+4+0+1+0.5+0.25+0.125
二(29.875)io
2.二进制数与八进制、十六进制之间的相互转换
计算机中采用的是二进制数,但二进制数的最大缺点就
是显示和书写不方便。在实际应用中,人们经常把八进制数
和十六进制数作为二进制数的辅助计数方式。下面介绍一下
二进制数和八进制数、十六进制数之间的相互转换。
二进制数和八进制数互换:二进制数转换成八进制数
时,只要从小数点位置开始,向左或向右每三位二进制划分
为一组(不足三位时可补0),然后写出每一组二进制数所对
应的八进制数码即可。而二进制数和十六进制数则是将四位
二进制数作为一组对应十六进制数码,进行相应的转换。表
3.1给出了一组基本对应关系。
表3.1常用进制间对应关系
十进制数二进制数八进制数十六进制数
22
东北大学秦皇岛分校高军
0000
1111
21022
3113
410044
510155
611066
711177
81000108
91001119
10101012A
11101113B
12110014C
13110113D
14111016E
15111117F
[例3.6]将二进制数(11110101.111)2转换成八进制数:
011110101.111
3657
23
东北大学秦皇岛分校高军
即二进制数(11110101.111)2转换成八进制数是
(365.7)8。反过来,将每位八进制数分别用三位二进制数表
示,就可完成八进制数到二进制数的转换。
二进制数和十六进制数互换:二进制数转换成十六进制
数时,只要从小数点位置开始,向左或向右每四位二进制划
分为一组(不足四位时可补0),然后写出每一组二进制数所
对应的十六进制数码即可。
[例3.7]将二进制数(10110110110.0111)2转换成十六进
制数:
010110110110.0111
5B67
即二进制数(10110110110.0111)2转换成十六进制数是
(5B6.7)16。反过来,将每位十六进制数分别用四位二进制
数表示,就可完成十六进制数和二进制数的转换。
八进制数、十六进制数和十进制数的转换:这三者转换
时,可用二进制数作为媒介,先把待转换的数转换成二进制
数,然后将二进制数转换成要求转换的数制形式。
24
东北大学秦皇岛分校高军
3.数的定点与浮点表示
由于计算机所处理的数据(二进制数表示)可能既有整数
部分,又有小数部分。这就提出了一个小数点位置如何表示
的问题,所以就出现了数的定点表示和浮点表示方法。
用定点表示法表示的数就是定点数,而用浮点方法表示
的数就是浮点数。
1.定点数表示法
定点表示法中约定机器中所有数据的小数点位置固定不
变。一般采用两种简单的约定:定点整数和定点小数。
定点整数约定小数点在数值位的最低位之后,此时计算
机中所表示的数一律为整数。
计算机中的整数有正整数(也称不带符号的整数)和整数
两大类(也称带符号的整数)。带符号的整数必须使用一个二
进位作为其符号位,一般总是最高位(最左面的一位),0表
示+(正数),1表示-(负数)。其余各位则用来表示数值的大
小,如图3-1所示。例如:0010如n=+43;10101011-43o
负数反码:原码各位数取反。负数补码:原码各位数取
反加lo正整数无论采用原码、反码还是补码表示,其编码
25
东北大学秦皇岛分校高军
都是相同的,并无区别(原码、补码和反码将在下一小节进
行介绍)。
QQO
NfNNN2N|N
符号位数值部分(n-l)位1小数点位置
图3-1
所有定点整数绝对值的表示范围:1WIXIW2L1用定点
表示法表示数据的机器称为定点计算机,定点计算机目前多
采用定点小数的表示方法。
定点小数是用最高位表示符号,其他n-l位二进制数表
示数值部分,将小数点定在数值部分的最高位左边,因此任
何一个小数可以表示为如图3-2的形式。
NfNgNz…N2N]NO
t小数点位置n-l位数值位
图3-2
2.浮点数表示法
浮点数是指小数点在数据中的位置可以左右移动的数
据。
26
东北大学秦皇岛分校高军
一个实数可以表示成一个纯小数和一个乘塞的积,例
如:56.725=102X(0.56725)。其中指数部分用来指出实数
中小数点的位置,括号括出的是一个纯小数。二进制数的情
况完全类同,例如:1001.Oll=2loox(O.1001011)o任意一
个实数,在计算机内部都可以用指数(这是整数)和尾数(这
是纯小数)来表示,这种用指数和尾数来表示实数的方法叫
做浮点表示法。通常可表示为N=土S*R土E。所以,在计算机
中实数也叫作浮点数。而整数则叫作定点数。浮点数在机器
中的表示格式如图3-3所示。
0189才
图3-3
[例3.8]若R=2,阶码用移码表示,尾数用补码表示
0.11010001X210100=010010100
11010001000000000000000
-0.11010001X210100=110010100
00101111000000000000000
27
东北大学秦皇岛分校高军
0.11010001X2-10100=001101100
11010001000000000000000
-0.11010001X2H0100=101101100
11010001000000000000000
目前计算机系统对阶码多数采用移码表示,由于浮点数N
的范围主要由阶码决定。阶码相当于定点数中所取的比例因
子,但它作为浮点数的一部分,说明小数点可以浮动。有效
数的精度则主要由尾数决定。为了充分利用尾数的有效位
数,一般采取规格化的办法,即让尾数的绝对值限定在一个
范围内。如果阶码以2为底,则满足0.5W|N|W1;如果尾
数用补码表示,对正数规格化浮点数的尾数最高位等于1;
对负数规格化尾数为0;因此,规格化的浮点数,其尾数最
高位永远是符号位的反码。
4.机器数的表示
一个二进制数值数据,包括二进制表示的定点小数、定
点整数和浮点小数。这里所指的表示方法是指如何方便地表
示正数、零和负数。常用的编码方式有以下三种:原码、反
码、补码。
28
东北大学秦皇岛分校高军
在日常生活中人们习惯用正负号加上绝对值来表示一个
数的大小。数值数据在计算机中的编码表示称为机器数,而
把机器数所代表的实际数值称为机器数的真值。
例如:S=+0.110110是真值,S=0.110110为机器数
D-0.010011是真值,D=l.010011为机器数
前面提到的符号数的表示方法是一种最简单的表示方
法,为原码表示法。除原码以外,还有补码和反码等表示方
法。在介绍这些表示方法之前,先介绍模的概念与性质。
模是指一个计量系统的计数范围,计算机也可以看成是
一个计量器,它也有一个计量范围,即都存在一个“模”。
例如:时钟的计量范围是。〜11,模=12。
表示n位的计算机计量范围是。〜2忆1,模=2工
模实质上是计量器发生“溢出”的量,它的值在计量器
上表示不出来,计量器上只能表示模的余数。任何有模的计
量器,均可将减法转化为加法运算。
例如:设当前时针指向10点,而准确时间是6点,调整
时间可有以下两种拨法:一种是倒拨4小时,即:10-4=6;
另一种是顺拨8小时:10+8=12+6=6。在以12为模的系统中,
29
东北大学秦皇岛分校高军
加8和减4效果是一样的,因此凡是减4运算,都可以用加
8来代替。
对模而言,8和4互为补数。实际上以12为模的系统中,
H和1、10和2、9和3、7和5、6和6都有这个性质,共
同的特点是两者相加等于模。对于计算机,其概念和方法完
全一样。n位计算机,设n=8,所能表示的最大数是11111111,
若再加1变为100000000(9位),但因只有8位,最高位1
自然丢失,又变成00000000,所以8位二进制系统的模为
8
20在这样的系统中减法问题也可以化成加法问题,只需把
减数用相应的补数表示就可以了。把补数用到计算机对数的
处理上,就是补码。这个问题在讲到补码的时候再具体讲述。
下面分别以定点小数和定点整数为例给出三种编码的定
义。
1.原码表示法
原码表示法中最高位表示符号,其中如果符号位为0表
示该数为正,符号位为1则表示该数为负。
若[X]原=X°X|X2…X”,则原码定义如下:
30
东北大学秦皇岛分校高军
rXOWXS
[X]小\定点小数"
1+xT〈xWO。
X0<X<25
或[X]萨\定点整数,
12n+X-(2r-l)^X<0p
原码的表示方法简单易懂,而且与真值转换方便,但是
在做加法运算时就遇到了麻烦。当两个数相加时,如果是同
号,则数值相加,符号不变;如果是异号,数值部分实际上
是相减,而且必须比较两个数哪个绝对值大,才能确定减数
与被减数,这件事在手算时比较容易,而在计算机中这是一
件繁琐的工作。为了便于计算机进行加减法运算,需要使用
补码。
用二进制原码表示的数中,所用的二进制位数越多,所
能表示的数的范围就越大。例如,八位二进制原码表示的范
围是-128〜+127;十六位二进制原码表示的范围是-32768〜
+32767o
31
东北大学秦皇岛分校高军
原码的特点:所有正数的原码,最左边的一位是0,负数
是1。
[例3.9]X=+0.1011[X]原=01011
x=-o.ion[x]原=nou
原码的缺点:
⑴运算(加、减法)低效
(2)0有两种表示方法
+0:00000-0:10000
2.反码表示法
正数的反码和原码相同,负数的反码是保持负数原码的
符号位不变,而其余各位取相反码即为机器数的反码的表示
形式。因此,从补码定义可以推出反码的定义为:
32
东北大学秦皇岛分校高军
ZX0WXC1P
[X]干J定点小数。
<(2-2F)+X-1<XWO,
X0〈X<2)
或[Xk=J定点整数.,
12n-1+X-2n<X^0.'
从以上定义可以看出,在反码表示法中最左边一位是符
号位。当X为正数时,由于OWXa、反码表示法的最左边
一位是0;当X为负数时,2T为n位1,-2VXW0,其尾数
不会大于n-1个1,此时反码表示法的最左边一位是lo
反码也可以看作是以2n-l为模的补码,因此也叫作对1
的补码。
反码“0”也有两种表示方法:
[+0]反=0000...0[-0]反=1111...1
[例3.10][+11^=00000001,[+127]反=01111111
[-1]反=11111110,[-127]反二10000000
33
东北大学秦皇岛分校高军
特点:
①反码的和等于和的反码
②有两个零+0=00000-0=11111
③当最高位有进位而丢掉进位(即2)时,要在最低位加
1(循环进位)
3.补码表示法
前面已经介绍过模的概念,在这里就不再叙述了。计算
机的运算部件都有一定的字长限制,因此它的运算也是一种
模运算。对于定点小数,可以在模为2的前提下,实现正负
数数间的互补。对于n+1位的定点整数,取模为2向,下面
给出二进制数补码的定义:
34
东北大学秦皇岛分校高军
zXOWXJ
值]补=<定点小数,
<2+X-1<XW0P
X0WX<2)
或氏]补=J定点整数。
[2n<+X-2n<X<0.'
[例3.11]X=+1OO1O1[X]补=0100101
X=-100101[X]补=1011011
特点:
①补码的和等于和的补码,符号位和数值位一样参加运
算,不必单独处理,即:[X]补+[Y]补=[X+Y]补
②补码相减:[X]补-[Y]补二[X]补+[-丫]补
[Y]补一[-丫]补:符号位连同数值位一起取反加lo
35
东北大学秦皇岛分校高军
5.计算机中常用的编码
在计算机中,所有的信息都采用二进制表示,如大小写
的英文字母、标点符号、运算符号等,也必须采用二进制编
码来表示,因为这样计算机才能进行识别,下面来了解一下
计算机常用的两种编码。
1.ASCII码:
人们需要计算机处理的信息除了数值外,还有字符或字
符串。但在计算机中,所有信息都用二进制代码表示。为了
在计算机中能够表示不同的字符,为使计算机使用的数据能
共享和传递,必须对字符进行统一的编码。这样人们可以通
过n位二进制代码来表示不同的字符,这些字符的不同组合
就可表示不同的信息。常用的编码方式为美国标准信息交换
码(AmericanStandardCodeforInformationInterchange,
ASCH码),它是使用最广泛的一种编码。
基本的ASCH码有128个,每一个ASCH码与一个8位
(bit)二进制数对应,其第七位是0,称为基本的ASCH码,
相应的十进制数是0〜127。如,数字“0”的编码用十进制
数表示就是48。另外128个扩展的ASCII码,最高位都是1,
用于表示一些图形符号,是扩展ASCH码。
2.BCD码
36
东北大学秦皇岛分校高军
计算机中采用二进制数表示,但二进制不是很直观,所
以在计算机的输入输出时通常用十进制数表示。不过这样的
十进制数要采用二进制的编码来表示。这样的二进制数编码
具有十进制数的特点,但形式上是二进制数。BCD码是一种
用四位二进制数字来表示一位十进制数字的编码,也称为二
进制编码表示的十进制数(BinaryCodeDecimal),简称BCD
码。表3.2列出了十进制数0〜15的BCD码。
表3.2BCD编码表
十进制数BCD码十进制数BCD码
0000081000
1000191001
200101000010000
300111100010001
401001200010010
501011300010011
601101400010100
701111500010101
BCD码有两种格式:
(1)压缩BCD码格式(PackedBCDFormat)0用4个二进
制位表示一个十进制位,就是用0000B〜1001B来表示十进
37
东北大学秦皇岛分校高军
制数0〜9。例如:十进制数4256的压缩BCD码表示为:
0100001001010110
(2)非压缩BCD码格式(UnpackedBCDFormat)
用8个二进制位表示一个十进制位,其中,高四位无意
义,一般用XXXX表示,低四位和压缩BCD码相同。例如:
十进制数4256的非压缩BCD码表示为:
xxxxOlOOxxxxOOlOxxxxO101xxxxO110
6.逻辑数据的表示
为了使计算机具有逻辑判断能力,就需要逻辑数据,并
能对它们进行逻辑运算,得出一个逻辑式的判断结果。每个
逻辑变量或逻辑运算的结果产生逻辑值,该逻辑值仅取“真”
或“假”两个值。判断成立为“真”,判断不成立为“假,
在计算机内常用0和1表示这两个逻辑值,0表示假,1表
示真。
最基本的逻辑运算有'与"、“或”、“非”3种。这3种运
算分别描述如下。
1.逻辑“与”
逻辑“与”也称之为逻辑乘,最基本的“与”运算有
两个输入量和一个输出量。
逻辑“与”可以用两个串联的开关来等效。用语言描述就
是:只有两个输人量都是“1”时,输出才为“1”;或者说
38
东北大学秦皇岛分校高军
“有0为0,全1出1”。
2.逻辑“或”
逻辑“或”也叫逻辑加,最基本的逻辑“或”有两个输人
量和一个输出量。
逻辑“或”可用两个并联的开关来等效。用语言描述就是:
只有两输人量都是“0”时,输出才为“0”;或者可以这样
说“有1为1,全0出0”。
3.逻辑“非”
逻辑“非”即取反逻辑“非”的运算规则
逻辑“非”可以用灯的并联开关来等效。用语言描述就是:
1的反是0,0的反是1o
若在一个逻辑表达式中出现多种逻辑运算,可用括号指定
运算的次序;无括号时按逻辑“非”、逻辑“与”、逻辑“或”
的顺序执行。
第四讲:开发简单的单片机系统
1.单片机的最小系统
是指用最少的元件组成的单片机可以工作的系统,一般应该
包括:单片机、晶振电路、复位电路.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司新年开班活动方案
- 公司福利拼图活动方案
- 公司组织打排球活动方案
- 公司现场抢红包活动方案
- 公司春节团队活动方案
- 2025年影响力与传播学综合能力考试试题及答案
- 2025年文化遗产保护与管理考试题及答案
- 2025年摩托车驾驶技术培训和考核试卷及答案
- 2025年农村经济管理考试试卷及答案
- 2025年计算机设计师职业资格考试题及答案
- 保密管理与商业机密保护
- 【低保政策执行过程中产生的消极效果及优化建议分析11000字(论文)】
- 医院护理培训课件:《妊娠剧吐的护理查房》
- 深圳小学六年级下册英语单词表(带音标)
- 幼儿园小班数学《图形王国历险记》课件
- GB/T 22461.1-2023表面化学分析词汇第1部分:通用术语及谱学术语
- 造林(乔木林、灌木林、经济林)单元工程质量评定表(2023版)
- 必修2册重点知识点提纲 高中地湘教版
- 2023春国开个人与团队管理1-32章自测试题及答案
- 2023-2024学年四川省凉山州小学数学五年级下册期末自测试卷
- 微小病变肾病指南解读
评论
0/150
提交评论