单片机符号位数
- 格式:wps
- 大小:21.50 KB
- 文档页数:4
计算机通过执行程序完成人们指定的任务,程序由一条一条指令构成,能为CPU识别并执行的指令的集合就是该CPU的指令系统。
MCS-51单片机汇编语言指令格式:操作符目的操作数,源操作数指令中的常用符号Rn: n=(0~7),表示当前工作寄存器R0~R7中的一个Ri: i=(0、1),代表R0和R1寄存器中的一个,用作间接寻址寄存器dir : 8 位直接字节地址(片内RAM 和SFR )#data: 8位立即数,即8位常数。
可以为2进制(B)、10进制、16进制(H)、字符(‘ ’)#data16: 表示16位立即数,即16位常数,取值范围为#0000H~#0FFFFHaddr16 : 表示16位地址addr11 : 表示11位地址rel : 相对偏移量(为一字节补码)用于相对转移指令中bit :位地址,在位地址空间中。
$: 表示当前指令的地址。
寻址方式1、立即寻址指令中直接给出操作数的寻址方式。
在51系列单片机的指令系统中,立即数用一个前面加“#“号的8位数(#data,如#30H)或16位数(#data16,如#2052H)表示。
立即寻址中的数,称为立即数。
例如指令:MOV A,#30H2、直接寻址操作数的地址直接出现在指令中。
寻址对象:①内部数据存贮器:使用它的地址。
②特殊功能寄存器:既可使用它的地址,也可以直接使用寄存器名。
3、寄存器寻址操作数存放在寄存器中。
寻址对象:A,B,DPTR,R0~R7 。
B 仅在乘除法指令中为寄存器寻址,在其他指令中为直接寻址。
A 可以寄存器寻址又可以直接寻址,直接寻址时写作ACC例如:MOV A,R0 ;R0→A,A、R0均为寄存器寻址,机器码E8MUL AB ;A*B→BA,A、B为寄存器寻址,机器码A4MOV B,R0 ;R0→B,R0为寄存器寻址,B为直接寻址机器码88F0,其中F0为B的字节地址(见表1-2)PUSH ACC ;A的内容压入堆栈机器码C0E04、寄存器间址操作数存放在以寄存器内容为地址的单元中。
常用PIC系列8位单片机芯片引脚符号的功能常用PIC系列8位单片机芯片引脚符号的功能类别:单片机/DSP一、关于I/O口符号PIC单片机系列封装引脚最少的是8引脚(如PIC12C5XX和PIC12C6XX),多的可达84引脚(如PIC17C76X),其中I/O(输入/输出)口线按PIC单片机产品型号不同,其口线数量也不相同。
8脚封装的I/O 口线是6根线,而84脚封装的I/O线多达66根线。
这些口线符号分别按英文字母顺序排列编号,简称A口、B口、C口、D口、E口、F口……,每个口是8位的,但不一定占满8位。
这些口在封装引脚图的标注上均在各口之前加有R 符号。
例如B口标注为RB0、RB1、RB2……RB7;E口为RE0、RE1……RE7;G口为RG1、RG2……;而对8脚封装的单片机共有6根I/O口线,其引脚图的标注与上略有不同而是GP0~GP5。
上述的各口线都是可独立编程的双向I/O口线。
二、引脚的复用功能和符号单片机的信号引脚是单片机外特性的体现,在硬件上用户只能使用引脚,通过引脚的连接组建单片机系统。
PIC8位单片机系列和MCS-51系列单片机一样,其引脚除电源VDD、VSS为单一功能外,其余的信号引脚常是多个功能,即引脚的复用功能。
常见的引脚符号和主要功能如下:1MCLR/Vpp 清除(复位)输入/编程电压输入。
其中MCLR为低电平时,对芯片复位。
该脚上的电压不能超过VDD,否则会进入测试方法。
Vpp代表编程电压。
2OSC1/CLKIN 振荡器晶体/外部时钟输入端。
3OSC2/CLKOUT 振荡器晶体输出端,在晶体振荡方式接晶体,在RC方式输出OSC1频率的1/4信号CLKOUT。
4TOCK1TMRO计数器输入端,如不用,为了减少功能应接地或接VDD。
5TICK1TMR1时钟输入端。
6TIOSI TMR1的振荡输入端。
7TIOSOTMR1的振荡输出端。
8RD、WR、CS 分别代表并行口读信号、写信号和片选控制线。
概念(填空题)1.单片微型计算机(single chip microcomputer)简称单片机,它是把微型计算机的各个功能部件:中央处理器CUP,随机存储器RAM,只读存储器ROM,定时/计数器及I/O接口电路集成在一块芯片上,构成一个完整的微型计算机。
2.CPU处理字的长度,有4位,8位,16位,32位单片机。
提供小范围寻址空间(小于8KB)的单片机称为低档8位单片机,串行I/O接口或A/D转换以及可进行16KB以上寻址的单片机称为高档8位单片机.3.从制造工艺上看,MCS-51系列单片机采用两种半导体工艺生产,一种是HMOS工艺,即高速度,高密度短沟道MOS工艺;另一种是CHMOS工艺,即互补金属氧化物的HMOS芯片。
CHMOS是CMOS和HMOS的结合,除保持了HMOS高速度和高密度的特点外,还具有COMS低功耗的特点。
4.MCS—51单片机的系统结构如下:(1)8位CPU,片内时钟振荡器,频率范围1.2MHz~12 MHz;(2)4KB程序存贮器,片内低128B数据存贮器RAM;(3)片内有21个特殊功能存储器SFR;(4)可寻址外部程序存储器和数据存储空间各64KB;(5)4个8位并行I/O口,1个全双工串行口;(6)2个16位定时/计数器;(7)5个中断源,2个中断优先级;(8)位寻址功能,适用于布尔处理的位处理机。
5.ALE:地址锁存允许信号输出端。
用于锁存低8位地址信号。
ALE端就周期性地以时钟振荡频率的1/6固定频率向外输出正脉冲信号.6./EA:程序存储器地址允许输入端。
当EA为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFFH时,将自动转向执行片外程序存储器指令;当EA为低电平时,CPU只执行片外程序存储器指令。
7.数据总线data bus:数据总线值片内外之间用来互相传送数据的总线,宽度为8位,每次恰好操作一个字节的8位数据,表示符号D7~D0,由P0口提供。
PC = progammer counter //程序计数器ACC = accumulate //累加器PSW = progammer status word //程序状态字SP = stack point //堆栈指针DPTR = data point register //数据指针寄存器IP = interrupt priority //中断优先级IE = interrupt enable // 中断使能TMOD = timer mode //定时器方式(定时器/计数器控制寄存器) ALE = alter (变更,可能是) 寄存器控制PSEN = progammer saving enable //程序存储器使能(选择外部程序存储器的意思)EA = enable all(允许所有中断)完整应该是enable all interrupt PROG = progamme (程序) SFR = special funtion register //特殊功能寄存器TCON = timer control //定时器控制PCON = power control //电源控制MSB = most significant bit//最高有效位LSB = last significant bit//最低有效位CY = carry //进位(标志)AC = assistant carry //辅助进位OV = overflow //溢出ORG = originally //起始来源DB = define byte //字节定义EQU = equal //等于DW = define word //字定义E = enable //使能OE = output enable //输出使能RD = read //读WR = write //写中断部分:INT0 = interrupt 0 //中断0INT1 = interrupt 1//中断1T0 = timer 0 //定时器0T1 = timer 1 //定时器1TF1 = timer1 flag //定时器1 标志(其实是定时器1中断标志位)IE1 = interrupt exterior //(外部中断请求,可能是)IT1 = interrupt touch //(外部中断触发方式,可能是)ES = enable serial //串行使能ET = enable timer //定时器使能EX = enable exterior //外部使能(中断)PX = priority exterior //外部中断优先级PT = priority timer //定时器优先级PS = priority serial //串口优先级助记符号的记忆方法表格列举法把44个指令助记符按功能分为五类,每类列表记忆。
单片机中无符号数运算出现的问题
在单片机编程中,我们经常会用到一些无符号数与有符号数的混合运算,另外我们所用的单片机很有可能是16位或者8位的,这样,编程时所用的一些变量的取值范围会对我们的运算有所限制.比如说8位的单片机无符号数最大值为255,有符号最大数为127;16位单片机无符号数最大值为65535,有符号数最大值为32767.对于32的单片机来说,因为我们一般所处理的值很少能超过有符号数的最大取值,所以比较少遇到下面出现的问题.
在一些运算中,我们希望有些数能表示正负,这就得用有符号数,而有些数的取值会超过有符号数的最大值,这时我们就得用无符数来表示.下面是我编程时遇到的两个问题(用的是MC9S12XS128处理器,16位的单片机).
变量的声明如下:
int iError;
unsigned int uiExpectSpeed;
unsigned int uiCurrentSpeed;
语句如下:
iError = (uiExpectSpeed - uiCurrentSpeed)/3; //(1) 第一个语句。
《单片机原理与应用》课后习题参考答案第1章1.(1)15 (2)0.0859375 (3)14.68752.(1)10000100 (2)1011101001111 (3)100110100. 10113. 原码:正数的符号位用0表示,负数符号位用1表示,而数值位保持原样的机器码称为原码。
反码:在计算机中,对于正数,其反码的符号位为“0”,数值部分保持不变;对于负数,其反码除了在符号位上表示“1”外,数值部分的各位都取与它相反的数码,即“0”变“1”、“1”变“0”。
也就是说:正数的反码与它的原码相同;负数的反码由其绝对值按位求反后得到。
补码:在计算机中,对于正数,其补码的符号位为“0”,数值部分保持不变;对于负数,其补码除了在符号位上表示“1”外,数值部分的各位都取与它相反的数码,然后在最低位加“1”。
也就是说:正数的补码与它的原码相同;负数的补码由其对应的绝对值按位求反后加1得到。
4.(1)原码:000101110 反码:000101110 补码:000101110(2)原码:10.10101101 反码:10.01010010 补码:10.01010011(3)原码:00.101011 反码:00.101011 补码:00.1010115.[N]原=1.1010 [N]补=1.0110 N=-0.6256.原码0.1010-0.1011 = -0.0001补码0.1010+(1.0101)=(1.1111)7. 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
微处理器是是指计算机内部对数据进行处理并对处理过程进行控制的部件,采用大规模集成电路工艺在一块或几块芯片上制成的中央处理器。
如果将构成微型计算机的各功能部件(CPU,RAM,ROM及I/O接口电路)集成在同一块大规模集成电路芯片上,一个芯片就是一台微型机,则该微型机就称为单片微型计算机。
8. MCS-51系列单片机是美国INTEL公司于1980年推出的一种8位单片机系列。
一、填空题1.计算机中最常用的字符信息编码是 ASCII码。
2.计算机中常用的码制有原码,反码和补码。
3. 十进制数29的二进制表示为 11101B。
4. 十进制数-29的8位补码表示为 11100011B 。
5.如果存储单元的数据位为8位,当它存放无符号数时,则该数的范围为 0~255 ;存放有符号数时,以原码表示的范围为 -127~127 ,以补码表示,范围为 -128~127 。
6.设X=87H,Y=E6H,则X与Y按位“或”运算为 E7H,X与Y的按位“异或”运算为 61H 。
(要求结果写成16进制形式)7.按照CPU对数据处理的位数,单片机通常分为 4 位、8 位、 16 位、 32 位等四类。
8.计算机的经典结构由运算器、控制器、存储器、输入设备、输出设备组成。
9.一个完整的计算机系统由硬件系统和软件系统两大部分组成。
10. 如果存储单元的数据位为16位,当它存放无符号数时,则该数的范围为 0~65536 。
11.计算机三大总线分别为地址总线、数据总线和控制总线。
二、单选题1.数据的存储结构是指(C)。
A、存储在外存中的数据B、数据所占的存储空间量C、数据在计算机中的顺序存储方式D、数据的逻辑结构在计算机中的表示2.真值0表示形式唯一的机器数是(C )。
A. 原码B.反码C.补码D.原码和反码3.计算机能直接识别的语言是(C)。
A.汇编语言 B.自然语言 C.机器语言 D.C语言一、填空题1. 复位后寄存器PC= 0 、SP= 7 、P0~P3= FFH 、PSW= 0 。
2.EA引脚的作用是允许访问片外程序存储器输入线。
3. 8051是 8 位的单片机,其内部存储器容量为 128B RAM, 4KB ROM。
4.当80C51引脚ALE信号有效时,表示从P0口稳定地送出了低8位地址。
5. 80C51单片机有两种复位方式,即上电自动复位和按键手动复位。
6.8051单片机片内包含 4KB ROM和 128B RAM(填容量), 2 个定时器。
单片机带符号数的表示方法
单片机中的带符号数表示通常约定一个数的最高位为符号位。
如果该位为0,则表示正数;如果该位为1,则表示负数。
在单片机中,带符号数的表示方法主要有原码、反码和补码3种。
原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。
例如,+11的原码表示为,-11的原码表示为。
反码是符号位加上真值的绝对值后,符号位不变,其余各位取反。
例如,
+11的反码表示为,-11的反码表示为。
补码是在反码的基础上加1。
正数的补码与其原码相同,负数的补码是其反码加1。
例如,+11的补码表示为,-11的补码表示为。
需要注意的是,在单片机中只有8位二进制数来表示有符号数,其中最高位为符号位,其余7位表示数值。
因此,可表示的数值范围为- 127~+ 128。
以上信息仅供参考,建议咨询电子计算机相关专业人士获取更多准确信息。
本文说明一个基本的问题,补码的问题。
需要说明一点补码是对负整数在计算机中存储的一种形式;另一种形式是负数在计算机中可以用符号+负数绝对值的形式表示一个负数;比如(-3: 1000 0011存储)但是这种表示的负数有两个零+0,-0,最要命的一点是不能做算术运算。
比如10-3=10+(-3)=0000 1010+ 1000 0011=1000 1101=-13显然是错的。
所以负整数必须以补码存储。
负数在计算机中如何表示?举例来说,+8在计算机中表示为二进制的1000,那么-8怎么表示呢?很容易想到,可以将一个二进制位(bit)专门规定为符号位,它等于0时就表示正数,等于1时就表示负数。
比如,在8位机中,规定每个字节的最高位为符号位。
那么,+8就是00001000,而-8则是10001000。
但是,随便找一本《计算机原理》,都会告诉你,实际上,计算机内部采用2的补码(Two’s Complement)表示负数。
在讲补码之前简单介绍机器数,真值,原码和反码的背景。
1、机器数一个数在计算机中的二进制表示形式, 叫做这个数的机器数。
机器数是带符号的,在计算机用一个数的最高位存放符号, 正数0,负数为1。
比如,十进制中的数+3 ,计算机字长为8位,转换成二进制就是0000 0011。
如果是-3 ,就是1111 1101 。
那么,这里的00000011 和1111 1101 就是机器数。
机器数包含了符号和数值部分。
2、真值因为第一位是符号位,所以机器数的形式值就不能很好的表示真正的数值。
例如上面的有符号数1111 1101,其最高位1代表负,其真正数值是-3 而不是形式值253(1111 1101按无符号整数转换成十进制等于253)。
所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。
例:0000 0001的真值= +000 0001 = +1,1000 0001的真值= –0111 1111 = –127;这里所说的比如-3二进制代码为10000011,就是我们计算机里面对-3表示的源码。
第1章 单片机基础知识概述内容概述:本章主要介绍单片机的定义、发展历史,单片机分类方法、应用领域及发展趋势,单片机中数的表示和运算方法,基本逻辑门电路,以及与单片机系统仿真工具Proteus相关的内容。
教学目标:●了解单片机的概念及特点;●掌握单片机中数的表示和运算方法及基本逻辑门电路;●初步了解Proteus软件的功能。
1.1 单片机概述1.1.1 单片机及其发展概况1.什么是单片机单片机是在一块半导体硅片上集成了计算机基本功能部件的微型计算机。
随着大规模集成电路技术的发展,可以将中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM)、定时/计数器及输入/输出(I/O)接口电路等主要计算机部件,集成在一块电路芯片上。
虽然只是一个芯片,但从组成和功能上,单片机都已具有了微机系统的基本含义。
单片机自从问世以来,性能都在不断提高和完善,它不仅能够满足很多应用场合的需要,而且具有集成度高、功能强、速度快、体积小、使用方便、性能可靠、价格低廉等特点。
因此,在工业控制、智能仪器仪表、数据采集和处理、通信、智能接口、商业营销等领域得到广泛应用,并且正在逐步取代现有的多片微机应用系统。
2.单片机的发展单片机诞生于1971年,大体经历了SCM、MCU和SoC三大阶段。
SCM(Single Chip Microcomputer)即单片微型计算机阶段,其主要的技术发展方向是:寻求最佳单片形态的嵌入式系统体系结构。
在开创嵌入式系统的发展道路上,Intel公司功不可没,奠定了SCM与通用微机完全不同的发展道路。
这一阶段最有代表性的产品是Intel公司的8位MCS-51系列单片机。
MCU(Micro Controller Unit)即微控制器阶段,其主要的技术发展方向是:不断推进在嵌入式系统中集成各种外围电路与接口电路的能力,以满足智能化控制的需求。
在此阶段中,Philips 公司以其在嵌入式应用方面的强大实力,推出了基于MCS-51内核的微控制器系列产品,使单片机进入MCU阶段。
符号含义Rn R0~R7寄存器n=0~7Direct 直接地址,内部数据区的地址RAM(00H~7FH)SFR(80H~FFH) B,ACC,PSW,IP,P3,IE,P2,SCON,P1,TCON,P0@Ri 间接地址Ri=R0或R1 8051/31RAM地址(00H~7FH) 8052/32RAM地址(00H~FFH)#data 8位常数#data16 16位常数Addr16 16位的目标地址Addr11 11位的目标地址Rel 相关地址bit 内部数据RAM(20H~2FH),特殊功能寄存器的直接地址的位指令介绍指令字节周期动作说明一、算数运算指令1.ADD A,Rn 1 1 将累加器与寄存器的内容相加,结果存回累加器2.ADD A,direct 2 1 将累加器与直接地址的内容相加,结果存回累加器3.ADD A,@Ri 1 1 将累加器与间接地址的内容相加,结果存回累加器4.ADD A,#data 2 1 将累加器与常数相加,结果存回累加器5.ADDC A,Rn 1 1 将累加器与寄存器的内容及进位C相加,结果存回累加器6.ADDC A,direct 2 1 将累加器与直接地址的内容及进位C相加,结果存回累加器7.ADDC A,@Ri 1 1 将累加器与间接地址的内容及进位C相加,结果存回累加器8.ADDC A,#data 2 1 将累加器与常数及进位C相加,结果存回累加器9.SUBB A,Rn 1 1 将累加器的值减去寄存器的值减借位C,结果存回累加器10.SUBB A,direct 2 1 将累加器的值减直接地址的值减借位C,结果存回累加器11.SUBB A,@Ri 1 1 将累加器的值减间接地址的值减借位C,结果存回累加器12.SUBB A,#data 2 1 将累加器的值减常数值减借位C,结果存回累加器13.INC A 1 1 将累加器的值加114.INC Rn 1 1 将寄存器的值加l15.INC direct 2 1 将直接地址的内容加116.INC @Ri 1 1 将间接地址的内容加117.INC DPTR 1 1 数据指针寄存器值加1说明:将16位的DPTR加1,当DPTR的低字节(DPL)从FFH溢出至00H时,会使高字节(DPH)加1,不影响任何标志位18.DEC A 1 1 将累加器的值减119.DEC Rn 1 1 将寄存器的值减120.DEC direct 2 1 将直接地址的内容减121.DEC @Ri 1 1 将间接地址的内容减122.MUL AB 1 4 将累加器的值与B寄存器的值相乘,乘积的低位字节存回累加器,高位字节存回B寄存器说明:将累加器A和寄存器B内的无符号整数相乘,产生16位的积,低位字节存入A,高位字节存入B寄存器。
单片机数据类型单片机数据类型1、字节型:单片机中最常用的数据类型,可用来存放一个字节(8位)的二进制数据,其取值范围是-128~127或者0~255(未符号和有符号分别)。
2、字型:存放两个字节(16位)的二进制数据,取值范围是-32768~32767或者0~65535(未符号和有符号分别)。
常用于单片机的内存单元的存储,用来记录数据或者存储一些内存地址,有的单片机可以把字型看作两个字节组成的数组,例如80C51的字型可以作为4个字节的有符号数。
3、位型:位型是一个特殊的变量,通常只有0和1两种情况,但是位型并不只代表一个位,在不同的单片机中,位型变量可以用一个字节(8位),把这一个字节中8位分别表示称为8个位变量(B0,B1,B2,B3,B4,B5,B6,B7),每一位上都可以储存一个二进制的数(0或1),便于状态的控制。
4、双字型:是指占用4个字节(32位)的二进制数据,取值范围是-2147483648~2147483647或者0~4294967295(未符号和有符号分别),是一种大数据类型,可以用于更好的实现图像处理,主要用于PC机数据类型转换,因为单片机中内存存储能力有限,不能用于单片机系统中。
5、浮点型:浮点型数据类型是单片机中具有浮点运算能力的型号支持的数据类型,存储一个浮点数的格式是一般定义的IEEE754标准,占用4个字节(32位),存放范围非常大,单片机浮点型变量最多可以表示6位小数。
6、贝吉塔型:贝吉塔型数据类型是用于控制单片机定时器的数值,由于单片机定时器模块的频率固定,一般来说只能使用16位的定时器数据类型(2个字节),它的取值范围是0~65535,比字型稍小,但仍然可以满足单片机定时器的大部分要求。
2.7何谓程序状态字?它的符号是什么?它的位置在哪里?它的各位的含义是什么?为1,0各代表什么?各在何种场合有用?解:程序状态字PSW是一个8位寄存器,包含了许多程序状态信息,指在电脑中,一段包含被操作系统和潜在硬件使用的程序状态信息的内存或硬件区域。
一般用一个专门的寄存器来指示处理器状态。
符号是PSW。
位于微处理器中的运算器中。
各位的含义为:进位标志位C(PSW.7),为1表示其运算结果的最高位D7有进位或借位,否则为0,在进行位数操作运算时起作用。
辅助进位标志AC(PSW.6),为1表示低半字节的最高位D3有借位或进位,否则为0,在进行BCD码运算而进行二-十进制调整时起作用。
软件标志FO(PSW.5),用户定义的一个状态标志,可通过软件对它进行置位清零,在编程时也可测试其是否建起而进行程序分支。
工作寄存器组选择位RS1,RS0(PSW.4,PSW.3),可借软件置位或清零,以选定4个工作寄存器组中的一个投入工作。
溢出标志OV(PSW.2),为1表示它已经超过了累加器以补码形式表示一个符号数的范围。
为0表示最高位,最高次二位有借位或进位。
是作为符号数加法,减法时由硬件置位或清除,以指示运算结果是否溢出。
奇偶标志P(PSW.0),其中D1位未定义。
在奇偶标志中,为1表示累加器中1的个数为奇数,0表示为偶数。
2.16 E___A___引脚的作用是什么?在下列四种情况下,E___A___引脚各应该接何种电平?1)只有片内ROM2)只有片外ROM3)有片内ROM和片外ROM4)有片内ROM和片外ROM,片外ROM所存为调试程序解:E___A___是片外程序存储器选用端。
引脚有效(低电平)时只选用片外程序存储器。
否则计算机上电或复位后先选用片内程序存储器。
1)只有片内ROM时,E___A___=1,接高电平2)只有片外ROM时,E___A___=0,接低电平3)有片内ROM和片外ROM时,E___A___=1,接高电平4)有片内ROM和片外ROM,片外ROM所存为调试程序,此时计算机处于调试状态,E___A___=0,接低电平。