第一章 单片机的基础知识第一节 不同进位计数制及其互换第二节 带符号的二进制数第三节 BCD码及文字符号代码第四节 单片机系统的组成第五节 8051单片机的结构第六节 8051单片机的复位和低功耗工作方式本章要点
本章 主要介绍学习 8051单片机所必须的一些预备知识,包括 三种 进位计数制间的互换、补码的基本知识。 8051单片机的基本结构,程序存储器、数据存储器、特殊功能寄存器的组织方式,以及
8051单片机的复位工作方式和低功耗工作方式。
第一节 不同进位计数制及其互换一、二进制与十六进制的互换二进制整数转换为十六进制数整数可从小数点开始向左,每四位为一组转换为一位的十六进制数。
二进制小数转换为十六进制数小数则从小数点开始向右,同样以四位为一组,每四位小数转换为一位的十六进制小数。
十六进制整数转换为二进制数,则一位十六进制数可转换为四位二进制数。
同样十六进制小数转换为二进制小数,也是一位十六进制小数转换为四位二进制小数。
二进制 十六进制二,二进制与十进制数的互换二进制整数 十进制整数二进制整数转换为十进制整数,可按各位数的权,即底数为 2的 n-1次幂来确定,n表示该数的位数,例如二进制数为
101010l0B,则十进制数为:
1 7 02021202120212021 01234567
十进制整数转换为二进制整数,可采用逐次除以 2,余数反序排列,即第 1次除以 2的余数排在最低位。以 25为例逐次除以 2列式如下:
25÷ 2=12 …… 余 1
12÷ 2=6 …… 余 0
6÷ 2=3 …… 余 0
3÷ 2=1 …… 余 1
1÷ 2=0 …… 余 1
并按习惯将二进制数写成 8位,可得 25=0001100lB。
二进制小数转换为十进制小数,可按底数为 2的负 n次幂来确定,n同样表示位数,例如求 0.00110011B的十进制值。
1 9 9 2 1 8 7 5.0212120 2021212020 87654321
十进制小数转换为二进制小数,采用小数部分逐次乘 2,
每次乘积若产生整数则将整数个位 (即所为溢出位 )按正序排列,小数部分继续乘 2。以 0.6875为例。
其小数点右边数逐次乘 2
0.68752=1.375 …… 小数点左边整数为 1
0.3752=0.75 …… 小数点左边整数为 0
0,752=1.5 …… 小数点左边整数为 1
0.52=1 …… 小数点左边整数为 1
可得出
0.6875=0.1Oll0000B
二进制小数 十进制小数三、十六 进制与十进制数的互换十六进制 整数 转换为十进制 整数可按各位数的权,即底数为 16的 n 次幂来确定,n表示该数的位数。例如:
3 5 4 4 2 11611671610168718 0123HA
十进制 整数 转为十六进制 整数采用逐次除以 16,余数反序排列的方法。例如:
13562÷ 16=847 ……余 10(记作 0AH)
847÷ 16=52 ……余 15(记作 0FH)
52÷ 16=3 ……余 4
3÷ 16=0 ……余 3
可得 13562=34FAH
十六进制整数 十进制整数十六进制 小数 转 换 为十进制 小数,则按 小数点以后各位的权,用底数为 16的负 n次幂来确定,n 同样表示位数。
2 9 2 1 2 9 5 1 6.0 1691612161016494.0 4321HAC
十进制 小数 转为十六进制 小数采用小数部分逐次乘 16,
每次乘积若产生整数,则将所得整数按正序排列,例如十进制小数 0.359375转换为十六进制数:
0.359375× 16=5.75 …… 小数点左边整数为 5
0.75× 16=12.0 …… 小数点左边整数为 0CH
可得
0.359375=0.5CH
十六进制小数 十进制小数返回本章首页第二节 带符号的二进制数一,带符号二进制数的表示方法原码表示法,规定最高位为符号位,其余表示数值。
反码表示法,规定最高位为符号位,对于正数,其余各位表示数值。对于负数,其余各位应将 1换成 0,将 0换成 1,即所谓逐位取反。
补码表示法,仍然规定最高位定为符号位,
对于正数,其余各位表示数值。对于负数,
除符号位外,其余按原码的各位值,逐位取反,全部取反后再加 1,简称为取反加 1。
带符号二进制数表示方法举例:
BxBx
BxBx
xxxx
ft
ft
ctcoft
1 1 0 1 0 1 0 1)( 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1)( 1 0 1 0 1 0 1
,
)(,)(,)(
.
.
...


原码表示法为补码为反码为原码为真值
BxBx
BxBx
co
co
1 0 1 0 1 0 1 0)( 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1)( 1 0 1 0 1 0 1
:
.
.


反码表示法
BxBx
BxBx
ct
ct
1 0 1 0 1 0 1 1)( 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1)( 1 0 1 0 1 0 1
:
.
.


补码表示法可见正数的反码和补码与原码完全相同。
第三节 BCD码及文字符号代码一,BCD码
BCD 码以 4位为一组,选用 0000B至 1001B的十种状态代表 0-9共 10个数,舍弃二进制表示法中的其余 6种状态。例如十进制数 84.7的 BCD码为:
8 4,7 0
1000 0100.0111 0000
BCD 码 10010100,01110010转换为十进制数为:
1001 0100.0111 0010
9 4,7 2
二,ASCII码
ASCII 码是美国信息交换标准代码的简称,
共 128个,用数码 0000000O-01111111 表示各种文字或符号,其中用于表示英文大小写字母的有
52个,表示 0至 9数字的有 10个,常用书写符号 (!
%等等 )和常用运算符号 (如 +,-,<,>等 )有 32
个,另外还有控制符号 34个,共计 128个。例如英文大写字母 A 的 ASCII码为 01000001,或写成十六进制为 41H。
返回本章首页第四节 单片机系统的组成一,单片机系统的硬件硬件是指构成单片机系统的所有电子、机械和磁性的部件及设备,包括中央处理单元、存储器、
外围设备与输入输出接口。它的组成如图。
单片机系统的硬件组成二,单片机系统的软件软件是各种程序及数据的总称,它以数字形式存储在硬件之中,要单片机完成某项任务,
首先要把操作步骤按照单片机所能理解的语言编成程序,并通过编程器把程序连同原始数据存入 ( 或称写入 ) 单片机的 ROM,然后在程序控制下,才能自动进行各种操作和运算 。
软件可以用不同的语言编写,即机器语言、
汇编语言和高级语言。
1机器语言,机器语言是以二进制数码表示的指令和数据的一种语言 。 它可以直接为单片机的 CPU所识别,用其他语言编写的程序最后也要转换成机器指令,才能送入
CPU执行运算,由于这种语言随机器的不同而异,故称之为机器语言 。
2汇编语言,汇编语言是以助记符代替机器指令的一种语言,每条助记符都对应一条机器指令,目的是为了对写出来的指令容易阅读且直观易记 。
3高级语言,高级语言是一种面向过程的语言,面向过程是指这种语言只考虑解题的过程,只有在细节的地方才考虑使用的是什么机器,所使用的词和语句都尽量采用常用的单词,数学符号和表达式,比较符合人的习惯,但最终还是要转换为以机器语言表示的目标程序,才能使用 。
返回本章首页第五节 8051单片机的结构一,8051单片机的内部结构
8051单片机内部包括 (1)时钟振荡器 (2)8位的 CPU(3)128
字节的 RAM数据存储器 (4)4K字节的程序存储器 (5)4个 8位的并行 I/ O端口 (6)一个全双工异步串行通信口 (UART)(7)两个
16位的定时 /计数器 (8)5个中断源及两个优先级的中断结构 。
二,外部引脚
8051单片机的引脚是面向用户的,所以使用者需要熟悉各引脚的用途,以便正确接线。常用的
8051芯片是用双列直插 40脚封装。
三,时钟振荡器时钟振荡器是单片机工作的原始动力,可以利用内部的振荡电路,在外围加接晶振和电容组成 。 也可从外部引入 。
利用内部时钟电路组成的振荡器利用片外的振荡器输入四、程序存储器的组织
8051片内程序存储器有 4KB,其地址为 0000H-0FFFH。
若需要可在片外扩充,其地址从 0000H-0FFFFH。当 EA
为高电平时,则执行片内 ROM程序到 0FFFH后自动转到片外。 EA为低电平时,则一开始就从片外 0000H地址开始执行片外 ROM的程序。
执行程序示意图五、数据存储器的组织
8051单片机片内 RAM有 128单元,其地址为 00H-7FH,
内部特殊功能寄存器地址为 80H— FFH(但不是连续的 )。
如在片外扩充,地址为 0000H-0FFFFH。
特殊功能寄存器数据存储器中的特殊功能寄存器区实际上是单片机内部寄存器或 I/ O口,只是按统一编址的原则,把它们的地址划定在片内存储区的
80-0FFH单元,所以 80H-0FFH这一区域被定为特殊功能寄存器区,它不是用于存储一般的数据,而是用于实现对片内 I/ O接口,定时器接口,串行口缓冲区等接口的输入和输出操作,,
特殊功能寄存器的地址并不连续,一部分尚未作具体的定义,没有定义的实际上也不存在 。
有一部分 (指字节地址能被 8整除的部分 )可进行位寻址 。 在操作指令中可使用字节或位的名称与使用字节或位的地址同样有效 。
程序状态字寄存器程序状态字寄存器 PSW是特殊功能寄存器中的一个,其字节地址为 0DOH,用来提供运算结果的特征标志 。 PSW的各位定义为:
CY(PSW.7)为累加器 A的进位标志,运算结果最高位有进位或借位时 CY置 1。
AC(PSW.6)为 半进位标志,运算中低半字节产生进位时置 1。
F0(PSW.5)为 用户使用的备用标志位 。
RSl,RS0( PSW.4和 PSW.3) 作为 工作寄存器区选择控制位 。 按表 1-3选择使用区 。
OV(PSW,2)为 溢出标志位,有溢出时置 1。
P(PSW,0)为 奇偶标志位,若,1” 的个数为奇数该位置,1”,若为偶数该位置 0。
六、堆栈
8051单片机的堆栈,是从片内 RAM中,由用户自行指定的一部分内存区,例如图中由用户指定从 69H后的内存单元作为堆栈。
返回本章首页第六节 8051单片机的复位和低功耗工作方式一、复位方式
1.复位目的与复位条件复位目的,是对单片机的片内电路重新进行初始化,使有关部件都恢复到原先规定的初始状态。
并使 PC=0000H,不论原来程序运行到什么地方,
都将重新从 0000H开始运行。
复位条件,必须在 8051单片机的 RST引脚,保持两个机器周期以上的高电平 。
2,复位电路由单片机提供的 RST引脚,外接 R,C元件组成复位电路 。 如下图所示 。 当 S按钮按下时利用 RC电路可保持 RST有 两个机器周期以上的高电平 。
3,复位后某些特殊寄存器状态寄存器 内容 寄存器 内容
PC 0000H TMOD 00H
ACC 00H TCON 00H
B 00H PCON 00H
PSW 00H TH0 00H
SP 00H TL0 00H
DPTR 0000H TH1 00H
P0-P3 0FFH TL1 00H
IP xxx00000H SCON 00H
IE 0xx00000H SBUF 不定二、低功耗工作方式
1,待机 ( 休闲 ) 状态待机 ( 休闲 ) 状态是一种低功耗的工作方式 。
进入待机状态后,除中断功能外,停止其他工作,但片内 RAM及特殊功能寄存器都要保持不变,I/O引脚保持原逻辑值,ALE,PSEN保持逻辑高电平,停止取指 。 在这种状态下,工作电流可以从正常的 20mA降到 5mA,使系统能在低功耗下待命 。
要使单片机进入待机 ( 休闲 ) 状态,可以利用片内特殊功能寄存器中的 PCON,将其 D0位
IDL置 1( MOV PCON,#01H),要退出可将
IDL置 0,或通过复位退出 。
2.掉电保护状态单片机掉电后可以投入备用电池,这时希望系统耗电尽量小,以增大电池的使用时间,为此掉电后,要使单片机进入掉电保护状态,这时工作电流大约只有 75μA。 片内振荡器停振,
所有功能部件停止工作,ALE,PSEN为低电平,仅保留片内 RAM的数据信息。
要进入掉电保护状态,可将 PCON寄存器中的 D1位 PD置 1,要退出掉电保护状态,只能通过复位。
返回本章首页