首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

跟我学单片机——第四课 常用数制及逻辑电路

跟我学单片机——第四课 常用数制及逻辑电路

数制:

谈到数字,有很多同学可能会觉的很可笑,数字?不就是1234……..这些吗?是的,在日常的生活当中,我们用的一般都是十进制,但在计算机中,它只能识别二进制数,所以在这里我还得跟大家共同分析一下:

1、十进制:十进制就是基数为“十”,所使用的数码为0~910个数字。逢十进一。是我们每天都会运用到的,在这里就不多谈了。

2、二进制:二进制的基数为“二”,其使用的数码只有01两个。在计算机中容易实现,在常用的的实现方式中如:可以用电路的高电平表示1,低电平表示0;或者三极管截止时集电极的输出表示1,导通时集电极输出表示0

3、十六进制:由于二进制位数太长,不易记忆和收写,所以人们又提出了十六进制的书写形式。我们在汇编语言中多数用十六进制。   


二进制编码

二进制编码在计算机中,是采用二进制数。因而,要在计算机中表示的数、字母、符号等都要以特定的二进制码来表示,这就是二进制编码。一、二进制编码的十进制数:BCD码(Binary-Coded Decimal字母与字符的编码字母和各种字符($#……)也必须按特定的规则用二进制编码才能在机中表示。普通的是采用ASCII( American Standard Code for Information Interchange)码。09ASCII码为30H~39H,大写字母A~ZASCII码为41H~5AH

[attach]292[/attach]

二进制数的运算


算术运算:加、减、乘、除逻辑运算:与、或、异或、异一、二进制加法规则为:(1000
21001
1
3110,进位
1
41111,进位
1
如:
1 1 0 1
1 0 1 1
--------------------
1 1 0 0 0


二进制减法规则为:(1000
211
0
310
1
4011,有借位如:
1 1 0 0 0 1 0 0
0 0 1 0 0 1 0 1
--------------------------------
1 0 0 1 1 1 1 1


二进制乘法规则为:(10×00
20×1
0
31×0
0
41×1
1
如:
1 1 1 1
×
1 1 0 1
------------------
1 1 1 1
0 0 0 0
1 1 1 1
1 1 1 1
-------------------------
1 1 0 0 0 0 1 1


二进制除法:除法是乘法的逆运算0 0 0 1 1 1
----------------------
1 0 1
1 0 0 0 1 1
1 0 1
-------------
0 1 1 1
1 0 1
----------------
1 0 1
1 0 1
---------
0

二进制逻辑运算

逻辑""的规则: 000
0
1
0
1
11


逻辑""的规则: 101
1
1
1
0
0
0
逻辑"异或"的规则:0异或0
1
0
异或1
1
1
异或1
0
逻辑""的规则: 0的异为
1
1
的异为0



带符号数的表示法


一、机器数与真值通常用最高位作为符号位,若字长为8位即D7为符号位,D6D0为数字位,符号位用0表示正,用1表示负如X=(01011011B=+91
X
=(11011011B=-91


二、原码按上所述,正数的符号位用"0"表示,负数的符号位用"1"表示,这种表示法就称为原码。X=+105 [X]原=01101001
X
=-105 [X]原=
11101001

三、反码正数的反码表示与原码相同,最高位为符号位,用"0"表示正,其余位为数值位。(+410
0 0 0 0 0 1 0 0
符号二进制数值(+3110
0 0 0 1 1 1 1 1
(+12710
0 1 1 1 1 1 1 1
而负数的反码表示为它的正数的按位取反(连符号位)而形成的。(+410
0 0 0 0 0 1 0 0
(-4101 1 1 1 1 0 1 1 ----反码表示(+3110
0 0 0 1 1 1 1 1
(-31101 1 1 0 0 0 0 0 ----反码表示(+12710
0 1 1 1 1 1 1 1
(-127101 0 0 0 0 0 0 0 ----反码表示(+0)=
0 0 0 0 0 0 0 0
(-0)=1 1 1 1 1 1 1 1 ----反码表示

 

四、补码正数的补码表示与原码相同,即最高位为符号位,用"0"表示正,其余位为数值位。如【+4】补=【+4】原=【+4】反=0 0 0 0 0 1 0 0
【+127】补=【+127】原=【+127】反=
0 1 1 1 1 1 1 1
负数的补码表示为它的反码,并在其最后位(即最低位)加1形成。【+4】原=
0 0 0 0 0 1 0 0
【-4】反=1 1 1 1 1 0 1 1 是+4各位取反【-4】补=1 1 1 1 1 1 0 0 反码+
1
【+31】原=0 0 0 1 1 1 1 1

【-31】反=1 1 1 0 0 0 0 0
【-31】补=
1 1 1 0 0 0 0 1
【+0】原=
0 0 0 0 0 0 0 0
【-0】反=
1 1 1 1 1 1 1 1
【-0】补=
0 0 0 0 0 0 0 0
8
位带符号数的补码特点:(1)【+0】补=【-0】补=
0 0 0 0 0 0 0 0
28位二进制补码所能表示的数值为+127~-
128
3)一个用补码表示的二进制数,最高位为符号位。当符号位为"0"(即正数)时,其余七位即为此数的二进制值;当符号位为"1"(即负数)时,其余几位不是此数的二进制值,把它们按位取反,且在最低位加1,才是它的二进制值。

如:【X】补=1 0 0 1 0 1 0 0 是负数,它的数值为0 0 1 0 1 0 0 按位取反,1 1 0 1 0 1 1,然后再加11 1 0 1 1 0 0=(10810
当负数采用补码表示时,就可以把减法转换为加法。例如: 641064+(-10)=64+【-10】补64
0 1 0 0 0 0 0 0
10
0 0 0 0 1 0 1 0
【-10】补=
1 1 1 1 0 1 1 0
减法运算:
64 0 1 0 0 0 0 0 0
10 0 0 0 0 1 0 1 0

-------------- ----- -------------------------------------------------------------------------------------
54 0 0 1 1 0 1 1 0
补码加法:
64 0 1 0 0 0 0 0 0
+【-10】补 ------> (+) 1 1 1 1 0 1 1 0

-------------- ----- ----------------------------------------------------------------------------------------------
1 0 0 1 1 0 1 1 0
1自然丢失。在8位字长的单字节运算中7位的进位,自然丢失。例:34-68=34+【-68】补34】补=
0 0 1 0 0 0 1 0
【+68】补=
0 1 0 0 0 1 0 0
【-68】补=
1 0 1 1 1 1 0 0
34 0 0 1 0 0 0 1 0
+(-68) + 1 0 1 1 1 1 0 0

-------------- ----- ------------------------------------->--------------------------------------------------------------
- 34 1 1 0 1 1 1 1 0
符号位为1,肯定结果为负,其数值部分为0 1 0 0 0 1 0
34
所以结果是-34

在微型机中,凡是带符号数一律是用补码表示的,所以,其运算结果也是补码。当字长为8位时,其范围为+127~-128。当运算结果超出这个表达范围时,结果就不正确了,这就称为溢出。这时要用多字节来表示。

数制之间的互换:


在本节课中,理论上的二、十、十六的转换方式我就不多论述,有兴趣的同学可以去参考下这方面的书籍,在下面我为大家讲解一下计算机中科学型计算器的数字转换方法,在以后的编程中经常会用到的。   


二进制与十进制、十六进制的转换有专用的计算器。当你看到我编写的这份教材时,相信你也有了一台电脑,这时你可以点击开始然后点击程序再点附件这时我们会看到有一个计算器的程序,我们点击一下计算器,这时一个计算器的操作界面就出来了。如果你看到的是一个跟我们普通计算器一样的界面,这时你还需要进行一个小小的设定,点击计算器界面上的查看,这时会下拉一个菜单,即标准型,科学型,我们选择科学型,这时一个可进行二、十、十六进制运算的计算器就出来了。    学了这么长时间有同学又会说了,老师,你总是跟我们讲这些,我们感觉好累的。同志们,我知道你们累,可是我更累呀,一字一字为你们编写这份教材,目的就是想你们能从我编写的这份教材中多学点东东,因为我前面所讲的都是至关重要的东西。好吧,既然有同学说累了,那我们就先休息一下,跟东方星老师用计算器先玩一下十六进制与十进制的转换吧。


刚才说到我们已打开了科学型的计算器,这时我们点击十六进制,然后点击计算器上的00,这时在计算器的显示屏上会显示00。记住:我们刚才输入的是十六进制,我们怎样把他转为十进制呢?这时我们选中十进制,这时显示屏上显示什么?还是0吧。哈哈,当然了,0用十六进制、十进制表示都是0啦。好,我们又把计算器设回到十六进制,然后输入7F,再点击十进制,这时显示什么?127,对吧。我们回想一下,我们前面说到的,00~7FH其实用十进制表示,是不是就是0~127,也就是我们所说的低128单元?你们再把80H~FFH转换一下,结果就不用我说了吧。

常用逻辑电路在逻辑电路中,输入和输出只有两种状态,即高电平和低电平。通常以逻辑“1”和“0”表示电平高低。
1
  与门是一个能够实现逻辑乘运算的、多端输入、单端输出的逻辑电路。

[attach]293[/attach]

逻辑解释:即如附件图所示,当开关AB当中只有全部闭合(即为高电平1)时,才会有输出(即灯泡才会亮)所以在与门电路中,只有输入的全部条件为高电平“1”时输会有输出。语言表达为:“有00,全11

图片:与门

 


2、  或门是一个能够实现逻辑加运算的、多端输入、单端输出的逻辑电路。

[attach]294[/attach]

逻辑解释:即如附件图所示,当开关A与B当中只要有一个开关闭合(即为高电平1)时,就会有输出(即灯泡才会亮)所以在或门电路中,只要输入的为高电平“1”就会有输出。语言表达为:“有1出1,全0出0”。

[此贴子已经被作者于2006-11-21 15:39:57编辑过]

3、  非门是一个能够实现逻辑非运算的、单端输入、单端输出的逻辑电路。非就是反,就是否定,也就是输入与输出的状态总是相反。

[attach]295[/attach]

逻辑解释:如附件图所示,当开关K断开时灯亮,开关闭合时灯灭。如以开关断开为灯亮,开关接通为灭为结果,则开关K与灯泡的因果关系为非逻辑关系。语言表达为:“有01,有10”。



图片或门.



图片非门

复合逻辑门电路:4.与非门 将一个与门与一个非门联接起来就构成了一个与非门。根据与门和非门的逻辑功能,可以列出与非门逻辑关系真值表。其逻辑功能的特点是:“当输入全为1,输出为0;只要输入有0,输出就为1”。真值表如下:[attach]296[/attach]


5.或非门将一个或门与一个非门联接起来就构成了一个或非门。根据或门和非门的逻辑功能,可以列出与非门逻辑关系真值表。其逻辑功能的特点是:“当输入全为0,输出为1;只要输入有1,输出就为0”。真值表如下:  

 

[attach]297[/attach]

6.异或门

异或门只有两个输入端和一个输出端,。其逻辑功能的特点是:“当两个输入端一个为0,另一个为1时,当两个输入端均为1或均为0时,输出为0”。真值表如下:

[attach]298[/attach]

异或门的作用是:把两路信号进行比较,判断是否相同。当两路输入信号不同,即一个为高电平,一个为低电平时,输出为高电平。反之当两个输出端信号相同时,即为高电平或低电平时,输出为低电平”。


触发器:


触发器是计算机记忆装置的基本单元,它具有把以前的输入‘记忆’下来的功能,一个触发器能储存一位二进制代码。下面我们简单的来介绍计算机中常用的几中触发器。

1R-S触发器R-S触发器的逻辑符号如附件图所示,它有两个输入端,两个输出端。其中,S为置位信号输入端,R为复位信号输入端;QQ非为输出端。规定Q为高、Q非为低时,该触发器为1状态;反之为0状态。其真值表如下。

[attach]299[/attach]
图片: R-S触发器

 

2D触发器D触发器又称数据触发器,它的逻辑符号如附件图所示,RS分别为强制置0、置1端,触发器的状态是由时钟脉冲CLK上升沿到来时D端的状态决字。当D=1时,触发器为1状态;反之为0状态。其真值表如下

 [attach]300[/attach]

 D触发器.

 

3J-K触发器J-K触发器的逻辑符号如下,RS分别为强制置0、置1端。K为同步置0输入端,J为同步置1输入端。触发器的状态是由时钟脉冲CLK下降沿到来时JK端的状态决定,其真值表如下

[attach]301[/attach]

J-K触发器的逻辑功能比较全面,因此在各种寄存器、计算器、逻辑控制等方面应用最为广泛。但在某些情况,如二进制计数、移位、累加等,多用D触发器。由于D触发器线路简章,所以大量应用于移位寄存器等方面。



   J-K触发器

返回列表