单片机中数的表示及运算
单片机中的数是以二进制表示的,分为有符号数和无符号数两种。
有符号数的表示方法
有符号数是指有“ + (正)”、“ − (负)”符号的数。由于单片机采用二进制数,所以只有“1 ”和“0”两种数字,其中用“ 0 ”表示“ + ”,用“ 1 ”表示“ − ” 。单片机中的数据一般只有8位,一般规定最高位为符号位,因为要用1位表示数的符号,所以只有7位用来表示数值,可以表示− 127~+128。
有符号数的表示方法有 3 种:原码、反码和补码。同一有符号数,用 3 种表示方法得到的数是不同的。下面用3种方法来表示两个有符号数+1011101和− 1011101。
(1)原码
用“1”表示“−”,用“0”表示“+”,其他各数保持不变,采用这种方法表示出来的数称为原码。
+1011101用原码表示是01011101,可写成[01011101] 原。
− 1011101用原码表示是11011101,可写成[11011101] 原。
(2)反码
反码是在原码的基础上求得的。对于正的有符号数,其反码与原码相同;对于负的有符号数,其反码除符号位与原码相同外,其他各位数由原码各位数取反得到。
+1011101用反码表示是01011101,可写成[01011101] 反。
− 1011101用反码表示是10100010,可写成[10100010] 反。
(3)补码
补码是在反码的基础上求得的。对于正的有符号数,其补码与反码、原码相同;对于负的有符号数,其补码除符号位与反码一致外,其他数由反码加1得到。
+1011101用补码表示是01011101,可写成[01011101] 补。
− 1011101用补码表示是10100011,可写成[10100011] 补。
有符号数的运算
用原码表示有符号数简单、直观,但在单片机中,如果采用原码进行减法运算,需要很复杂的硬件电路;如果用补码,可以将减法运算变为加法运算,从而省去减法器而简化硬件电路。
例如:用二进制减法运算和补码加法运算分别计算35 − 21。
① 二进制减法运算:35 − 21=00100011 − 00010101=00001110
② 用补码加法运算。
先将算式转换成补码形式,35 − 21=[+35]+[ − 21]= [00100011] 原 +[10010101] 原 =[00100011] 反+ [11101010] 反 =[00100011] 补 +[11101011] 补。
再对补码进行二进制加法运算:
从上面的运算过程可以看出,补码的符号也参与运算,在8位单片机中,由于数据长度只能有8位,上式结果有9位,第9位会自然丢失,补码加法的运算结果与二进制减法的运算结果是一样的,都是00001110=14。
由此可见,用补码的形式进行运算,可以将减法运算转换为加法运算,运算结果仍是正确的,所以单片机普遍采用补码的形式表示有符号数。
无符号数的表示方法
无符号数因为不用符号位, 8 位全部用来表示数据,所以这种方法可以表示的数据范围是 0 ~ 255 。 8位二进制数的不同表示方式的换算关系见表1-6。
表1-6 8位二进制数的不同表示方式的换算关系
表1-6
续表
表1-6
从表1-6中可以看出,对于同一个二进制数,当采用不同的表示方式时,得到的数值是不同的,特别是大于10000000的有符号数。若想确切知道单片机中的二进制数所对应的十进制数是多少,先要了解该二进制数是有符号数还是无符号数,再换算出该二进制数对应的十进制数。
单片机的组成以及分类和指标
(此处已添加圈子卡片,请到今日头条客户端查看)单片机的组成
单片机又称单片微控制器,它把一个计算机系统集成到一块芯片上,主要包括微处理器(CPU)、存储器(随机访问存储器RAM、只读存储器ROM)和各种输入/输出接口(包括定时器/计数器、并行I/O接口、串行口、A/D转换器以及脉冲宽度调制(PWM)等,如图1-1所示。
▲图1-1 单片机组成框图
程序存储器(ROM)
ROM用来存放用户程序,分为EPROM、Mask ROM、OTP ROM和Flash ROM等。
EPROM型存储器编程(把程序代码通过一种算法写入程序存储器的操作)后,其内容可用紫外线擦除,用户可反复使用,故特别适用于开发阶段,但EPROM型单片机价格很高。
Mask ROM型单片机价格最低,适用于批量生产。由于Mask ROM型单片机的代码只能由生产厂商在制造芯片时写入,故用户更改程序代码十分不便,在产品未成熟时选用此型单片机风险较高。
OTP ROM型(一次可编程)单片机价格介于EPROM和MaskROM型单片机之间,它允许用户对其编程,但只能写入一次。
Flash ROM型单片机可采用电擦除的方法修改其内容,允许用户使用编程工具或在系统中快速修改程序代码,且可反复使用,故一推出就受到广大用户的欢迎。Flash ROM型单片机既可用于开发阶段,也可用于批量生产,随着制造工艺的改进,价格不断下降,使用越来越普遍,已成为现代单片机的发展趋势。
中央处理器(CPU)
CPU是单片机的核心单元,通常由算术逻辑运算部件(ALU)和控制部件构成。CPU就像人的大脑一样,决定了单片机的运算能力和处理速度。
随机存储器(RAM)
RAM用来存放程序运行时的工作变量和数据,由于RAM的制作工艺复杂,价格比ROM高得多,所以单片机的内部RAM非常宝贵,通常仅有几十到几百字节。RAM的内容具有易失性(也称为易挥发性),掉电后数据会丢失。最近出现了EEPROM 或Flash ROM 型的数据存储器,方便用户存放不经常改变的数据及其他重要信息。单片机通常还有特殊寄存器和通用寄存器,也属于RAM空间,但它们存取数据速度很快,特殊寄存器还用于充分发挥单片机各种资源的功效,但这部分存储器占用存储空间更小。
并行输入/输出(I/O)接口
通常为独立的双向I/O接口,既可以用作输入方式,又可以用作输出方式,通过软件编程设定。现代单片机的I/O接口也有不同的功能,有的内部具有上拉或下拉电阻,有的是漏极开路输出,有的能提供足够的电流可以直接驱动外部设备。I/O接口是单片机的重要资源,也是衡量单片机功能的重要指标之一。
串口输入/输出口
用于单片机和串行设备或其他单片机的通信。串行通信有同步和异步之分,这可以用硬件或通用串行收发器件实现。不同的单片机可能提供不同标准的串行通信接口,如 UART、SPI、I2C、MicroWire等。
定时器/针数器(T/C)
用于单片机内部精确定时或对外部事件(输入信号如脉冲等)进行计数,通常单片机内部有2个或2个以上的定时/计数器。
系统时钟
通常需要外接石英晶体或其他振荡源提供时钟信号输入,有的也使用内部RC振荡器。系统时钟相当于PC微机中的主频。
以上只是单片机的基本构成,现代的单片机又加入了许多新的功能部件,如模拟/数字转换器(A/D)、数字/模拟转换器(D/A)、温度传感器、液晶(LCD)驱动电路、电压监控、看门狗(WDT)电路、低压检测(LVD)电路等。此时的单片机才是真正单片化。内部的RAM和ROM的容量也越来越大,ROM 寻址空间甚至可达 64KB,可以说,单片机发展到了一个全新的阶段,应用领域也更为广泛,许多家用电器均走向利用单片机控制的智能化发展道路。
单片机的分类和指标
单片机从用途上可分成专用型单片机和通用型单片机两大类。专用型单片机是为某种专门用途而设计的,如DVD控制器和数码摄像机控制器芯片等。在用量不大的情况下,设计和制造这样的专用芯片成本很高,而且设计和制造的周期也很长。我们常用的都是通用型单片机,通用型单片机把所有资源(如 ROM、I/O 等)全部提供给用户使用。当今通用型单片机的生产厂家已不下几十家,种类有几百种之多。
下面对单片机的几个重要指标进行介绍。
(1)位数:是单片机能够一次处理的数据的宽度,有 1 位机(如 PD7502)、4 位机(如MSM64155A)、8位机(如MCS-51)、16位机(如MCS-96)、32位机(如IMST414)等。
(2)存储器:包括程序存储器和数据存储器,程序存储器空间较大,字节数一般从几KB到几十KB,另外还有不同的类型,如ROM、EPROM、E2PROM、Flash ROM和OTP ROM型。数据存储器的字节数则通常为几十字节到几百字节之间。程序存储器的编程方式也是用户考虑的一个重要因素,有的是串行编程,有的是并行编程,新一代的单片机有的还具有在系统编程(ISP, In-System-Programmable)或在应用再编程(IAP,In-Application re-Programmable)功能;有的还有专用的ISP编程接口JTAG口。
(3)I/O接口:即输入/输出接口,一般有几个到几十个,用户可以根据需要进行选择。
(4)速度:指的是 CPU 的处理速度,以每秒执行多少条指令来衡量,常用单位是 MIPS(百万条指令每秒),目前最快的单片机可达到100MIPS。单片机的速度通常是和系统时钟(相当于PC的主频)相联系的,但并不是频率高的处理速度就一定快,但对于同一种型号的单片机来说,采用频率高的时钟一般比频率低的速度要快。
(5)工作电压:通常工作电压是5V,范围是±5%或±10%;也有3V/3.3V电压的产品;更低的可在1.25V工作。现代单片机又出现了宽电压范围型,在2.5V~6.5V内都可正常工作。
(6)功耗:低功耗是现代单片机所追求的一个目标,目前低功耗单片机的静态电流可以低至μA或nA级。有的单片机还具有等待、关断、睡眠等多种工作模式,以此来降低功耗。
(7)温度:单片机根据工作温度可分为民用级(商业级)、工业级和军用级3种。民用级的温度范围是 0℃~70℃,工业级是-40℃~85℃,军用级是-55℃~125℃(不同厂家的划分标准可能不同)。
(8)附加功能:有的单片机有更多的功能,用户可根据需要选择适合自己的产品。比如有的单片机内部有A/D、D/A、串口、LCD驱动等,使用这种单片机可减少外部器件,提高系统的可靠性。
(此处已添加圈子卡片,请到今日头条客户端查看)相关问答
单片机 指令的字节数和周期数分别是什么?字节数就是指该指令的长度,毕竟指令从本质上来说也是由最小单位bit构成的。单片机中的指令字节一般有单字节(8bit)、双字节(16bit)。指令周期就是指执行该...
什么是 单片机 十进制?单片机十进制是指十进制数在单片机中的使用。十进制数,N(D)符号集:0~9;规则:逢十进一;十进制数的后缀为D但可省略;十进制数可用加权展开式表示,例...单...
8位 单片机 带符号数最大范围是多少?8位单片机带符号数最大范围是-128到127。在计算机存储中,使用二进制表示数值。对于带符号的8位数,首位表示正负,0表示正数,1表示负数,剩下7位表示数值大小。...
立即数是什么意思_作业帮[回答]在8086等CPU处理器中可按下面例子.单片机为例.通常把在立即寻址方式指令中给出的数称为立即数.立即数可以是8位、16位或32位,该数值紧跟在操作码之...
单片机 初学者,指出下列各条指令中源 操作数 的寻址方式并注释...[最佳回答]指出下列各条指令中源操作数的寻址方式并注释指令功能.MOV50H,@R0--寄存器间接寻址,片内数据传送MOVXA,@R1--寄存器间接寻址,片外RAM数据传送--...
单片机 数字后面的H表示什么?H表示十六进制。1.在数电领域中,单片机常常使用十六进制来表示数值,H就是十六进制的标志。例如,数字0x10H表示十六进制的10,相当于十进制的16。2.十六进制...
我想自学 单片机 ,希望知道学 单片机 要学哪些东西,比如数电模电?数电模电都得学,这里有个数模、模数转换问题。首先要学汇编和c语言,其次熟悉电子元件作用,单片机构造(典型的8501),编程技巧。另外手工操作的组装、焊接...
#在 单片机 中什么意思?#表示立即数寻址.采用立即寻址方式的指令,在立即数前面加上立即寻址符“#”立即数寻址又称立即寻址,即指令中直接给出操作数的寻址方式称为立即数寻址。在51...
学习 单片机 需要什么知识基础?朋友们好,我是电子及工控技术,我来回答这个问题。单片机作为一种实践性非常强的技术,要想入门单片机就要有做一些准备,有一句话叫“兵马未动,粮草先行”,我...单...
单片机 定时器预置数的方法?T1H=(65536-55536)/256T1L=(65536-55536)MOD256---------------------应该是“TH1”和“TL1”。他们两个,共同存放一个16位的二进制数...