51单片机复习笔记经典1
- 格式:doc
- 大小:216.50 KB
- 文档页数:14
1、IP、IE、TCON、TMOD、SCON其中每一位的具体含义是什么?IP:中断优先寄存器(B8H);IE:中断允许寄存器(A8H);TCON:控制寄存器,控制定时/计数器的启动和益处;TMOD:方式寄存器,设定定时/计数器T0和T1的工作方式;SCON:串口控制寄存器PCON:电源控制寄存器2、MCS-51系列单片机的时钟周期、位周期、机器周期、指令周期之间的关系是什么?12个时钟周期=6个位周期=1个机器周期,1至2个机器周期=一个指令周期3、MCS-51系列单片机的特殊功能寄存器复位后的初始内容是什么?单片机复位操作使单片机进入初始化状态,初始化后PC=0000H 特殊功能寄存器的状态。
P0~P3为FFH,SP=07H,SBUF不定,IP、IE和PCON的有效位为0,其余特殊功能寄存器的状态均为00H。
4、MCS-51系列单片机的I/O口除了可以做输入输出口外还可以充当什么接口?其中哪组I/O口必须外接上拉电阻?地址/数据复用线P0口5、MCS-51系列单片机RST、EA、ALE、RD、WR引脚作用是什么?RST即为RESET,复位信号线;EA:中断允许总控位。
EA=0(低电平),屏蔽所有中断请求,EA=1(高电平),开放中断;ALE:地址锁存有效输出端;RD:读信号线;WR:写信号线。
6、MCS-51系列单片机的复位电平是高电平还是低电平?其复位电路应怎样设计?51是高电平复位。
当上电一瞬间,电容需要充电,认为电流可以流过电容,所以电容相当于短路,这是复位脚相当于接入高电平,进入上电复位状态。
当电容电量充满以后,电容不再有电流流过,相当于短路,这时复位脚就相当于通过电阻接地(低电平),单片机进入正常状态。
7、MCS-51系列单片机有几级中断?几个中断源?其优先级排序是什么?二级中断;5个中断源;排列从高到低为外部中断0;定时/计数器0;外部中断1;定时/计数器1;串行口。
8、MCS-51系列单片机的中断源标志位分别是什么?清零方式是什么样的?外中断标志是IF0,IF1 ;定时器中断标志是TF0,TF1;串口中断标志是RI,TITI,RI软件清零,其余硬件清零。
51⼊门笔记-(2)常见单⽚机的种类与简介常见单⽚机种类与简介单⽚机从当初的4位发展到8位、32位,甚⾄更⾼,到现在可以说种类繁多⽽且齐全,数量庞⼤,在不同的领域主流的单⽚机有不同,很多设计开发有时候要⾯临很多选择。
下⾯介绍⼏种常⽤的单⽚机:1、51系列单⽚机stc的51单⽚机51单⽚机最初是由Intel始创的8004单⽚机开始,这是8位的单⽚机,特点是:寄存器少,。
很多功能需要外部扩展,像AD转换、PWM专门输出信号等、I/O⼝输出能⼒不强、运⾏速度慢、抗⼲扰能⼒差、功耗⾼、不具备⾃编程能⼒。
但是它的外围电路相对简单,上⼿容易,适合⼊门级,很多⾼校单⽚机都是以51单⽚机教学为主,在⼯业测控系统应⽤很⼴泛。
⽬前⽣产51单⽚机的⼚家有:英特尔、艾德梅尔、西门⼦、华邦以及国产的宏晶等。
2、AVR系列单⽚机arduino nano开发板,芯⽚为avr单⽚机AVR单⽚机是由Atmel公司最初提出,也是8位单⽚机,后来也有16位的,但是与51不⼀样,它内部指令⼤⼤简化,同时内部结构精简,因此速度更快,功能更加强⼤,驱动能⼒⽐51的强,功耗也很低,抗⼲扰能⼒更强,内部有强劲的Flash程序存储器,烧录快捷⽅便,内部集成多种频率的RC振荡器、PWM输出、AD转换、看门狗、上电⾃动复位等功能。
AVR单⽚机有三种系列:1、tiny AVR,这种主要被⽤于需要性能不是很⾼、效率低下以及在⼩封装中使⽤2、mega AVR,这种主要是针对需要加额外外围电路设计的理想选择,⾃编程能⼒强3、Xmega AVR,这种主要是在⾼集成度和低功耗使⽤AVR单⽚机主要应⽤在打印机、空调、电表等控制电路板当中。
3、STM8系列stm8开发板STM8系列是意法半导体公司⽣产的8位的单⽚机。
该型号单⽚机分为STM8A、STM8S、STM8L三个系列。
从2008年STM8发布⾄今已有13年,截⽌到2018年底累计出货量已经超过40亿⽚。
4、STM32系列单⽚机stm32芯⽚STM32系列单⽚机是有ST公司推出的,表⽰ARM Cortex-M内核的32位微控制器,这个芯⽚功能就更强⼤了,光是学习起来就有厚厚的⼀本书,这还不包括实际操作实践,从事软件开发的⼯程师,特别是设计⼤型系统对这个芯⽚⼀定不陌⽣。
51单⽚机学习总结(史上最全版,⾃⼰总结)单⽚机学习总结Lesson1 预备知识与点亮⼀个⼆极管⼀、预备知识与流⽔灯1、CPU ROM RAM STC I/O⼝2、电平特性:⾼与低,TTL电平:⾼+5v,低0v;RS232电平:⾼-12v,低+12v,计算机与单⽚机通讯时要加电平转换芯⽚max232(实验板上左下⾓)3、⼆进制:遇⼆进⼀;⼗六进制:⼗进制中的0-15分别表⽰为⼗六进制的0、1....9、A、B、C、D、E、F,⼀般把四个⼆进制数放在⼀起转换为⼀个⼗六进制数,转换时先把⼆进制数转换成⼗进制数,再把⼗进制数转换成⼗六进制数。
0001B>1H;1010B>AH;0010 1100>2CH(这⾥B表⽰的是⼆进制,H表⽰的⼗六进制)。
0x表⽰⼗六进制。
4、⼆进制的逻辑运算:“与”、“?”、“&”;“或”、“+”、“|”;“⾮”“A”;“异或”“⊕”,相同为0,不同为1。
按位与&,按位或|,按位异或~,按位取反~5、芯⽚缺⼝⽅向,芯⽚插反会导致短路。
⼆、80C51系列介绍1、80C51的引脚封装:总线型:有4组⾮总线型:只有20个引脚,送数据时,数据在总线上跑2、C51知识:sfr,特殊功能寄存器声明;sfr16,sfr的16位数据声明;sbit,特殊功能位声明;bit,位变量声明。
例如sfr SCON=0X98,sfr16 T2=0xCC,sbit 0V=PSW^2(第2位定义为ov)。
单⽚机都是从0开始记值。
3、C-51的运算符:4、单⽚机掌握⼏点:5、stc-isp的使⽤就德飞莱单⽚机⽽⾔,单⽚机类型为stc90c516RD+,com类型为com4,在下载程序时,⼀定要先把开发板上的电源断掉,过2秒钟再打开,顺序不能颠倒。
如果此界⾯长期没有变化,考虑以下⼏点:6、Keil的使⽤:(1)、先建⼯程,⽂件名没有后缀名,保存,选择atmel中的80c52(2)、再建⽂件,有后缀名,后缀名.c(c语⾔)或.asm(汇编语⾔)(3)、将⽂件添加在⼯程⾥,在左⽅,右击(5)、先下载程序,后打开电源(6)、注释的⽅式有两种,⼀是//,换⾏⽆效;⼆是/* */,但是注释的语句不编译。
一、51单片机的硬件结构1. 硬件结构框图说明:○1微处理器(CPU):51单片机含一个8位CPU,与通用的CPU功能基本相同,含运算器和控制器,不仅可以字节处理,还可以位处理。
例如:未处理、查表、状态检测、中断处理等。
○2数据存储器(RAM):51为128B,52为256B;片外最大可扩展到64K。
○3程序存储器(ROM/EPROM):8031没有,8051有4K的ROM,8751有4K的EPROM;片外可扩展至64K。
○4中断系统:5个中断源,2级优先权。
○5定时器/计数器:2个16位定时/计数器,四种工作方式。
○6串行口:1个全双工串行口,四种工作方式。
可进行串口通信,扩展并行I/O口,多机通信等。
○7P1、P2、P3、P0口:四个8位并行I/O口。
○8特殊功能寄存器(SFR):共21个,对片内部件进行管理、控制、监视;实际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。
2. 引脚排列(1)电源及时钟引脚○1电源引脚:Vcc(40脚)解5V电源、Vss(20脚)接地。
○2时钟引脚:两个始终引脚XTAL1、XTAL2外接晶振,或接晶体与片内反相放大器构成振荡器。
XTAL1(19脚):内部反相放大器的输入端。
若接晶振则应接地;XTAL2(18脚):内部反相放大器的输出端。
若采用外部时钟振荡器,该引脚接收时钟振荡信号。
(2)控制引脚○1RST/Vpd(9脚):复位信号输入,高电平有效。
单片机运行时,此脚持续2个机器周期(24个时钟振荡周期)的高电平,就可复位。
平时应为0.5V低电平;Vpd为第二功能,备用电源输入端。
○2:ALE为地址锁存允许,正常工作时,ALE不断输出正脉冲信号。
当访问外部存储器时,ALE输出信号的负跳变沿用作低8位地址的锁存信号;PROG’为编程脉冲输入端。
○3PSEN’(Program Strobe Enable,29脚):程序存储器允许输出控制端。
低电平是外部程序存储器选通。
51单片机内部结构:集成了中央处理器(CPU)、存储器系统(RAM和ROM)、定时/计数器、并行接口、串行接口、中断系统和一些特殊功能寄存器中央处理器:单片机cpu包含运算部件和控制部件算数逻辑ALU为8位运算器ALU有位计算器可以对一位二进制数据进行置位、清零、求反、测试转移及位逻辑与,或等处理累加器ACC为8位寄存器是CPU中使用最频繁的存储器程序计数器PC是16位寄存器,它存放下一条要执行的指令的地址堆栈指针SP用来控制堆栈段内容的入栈(输入)与出栈(输出),51单片机中SP始终指向栈底位置数据指针DPTR是16位寄存器,通常用DPTR实现对片外数据存储器64KB空间的访问程序存储器:程序存储器外部内部共用64KB存储空间8031,8032内部没有程序存储器,只能外部扩展64KB。
8051,8751内部有4KB程序存储器地址范围0000H-0FFFH;8052,8752内部有8KB程序存储器,地址范围0000H-1FFFH,外部最多可扩展64KBEA引脚接低电平从片外程序存储器取命令,高电平从片内程序存储器取命令8031,8032的EA只能保持低电平(指令只能从片外程序存储器取得)51单片机片内随机存储块128字节编址00H-7FH 特殊功能寄存器128字节编址80H-0FFH 工作寄存器组区:00H-1FH单位为工作寄存器组区共32字节工作寄存器有0,1,2,3四组,每组8个寄存器,依次用R0-R7表示和使用堆栈在存储器中按(先入后出,后入先出)原则进行管理的一段的存储区域,通过堆栈指针SP管理堆栈主要是为子程序调用和中断调用设立的,用于保护断点地址和保护现场状态根据入栈方向堆栈分为向上,向下生长型向上生长型堆栈入栈时SP指针先加1,指向下一个高地址单元,出栈时先把SP指针指向单元的数据送出,再把SP指针减1,数据是向高地址单元储存的;向下生长型堆栈入栈时SP 指针先减1,指向下一个低地址单元,再把数据送入当前SP指针指向的单元,出栈时先把SP指针指向单元的数据送出,再把SP指针加1,数据是向低地址单元储存的51单片机堆栈是向上生长型,位于片内随机储存块中,堆栈指针SP为8位51单片机当数据存储器不够时,可扩展外部数据存储器,扩展外部数据存储器最多为64KB 51单片机输入/输出接口:P0口是三态双向口,可作为地址/数据分时复用接口,也可作为通用I/O接口P1口是准双向口,它只能作为通用I/O接口使用P2口是准双向口,用途为:通用I/O接口和高8位地址线P3口作为通用I/O接口,第二功能输出线为高电平,与非门3的输出取决于锁存器状态,作为第二功能使用时,锁存器Q输出端必须高电平,否则V1管导通引脚将被钳位在低电平外部引脚:外接晶体引脚:XTAL1、XTAL2(19、18引脚) 控制线:ALE/PROG(30引脚)、PSEN(29引脚)、RST/Vpd(9引脚)、EA/Vpp(31引脚)51单片机工作方式:复位方式、程序执行方式、单步执行方式(调试)每一个机器周期包含12个时钟周期,每个机器周期ALE信号固定出现两次,分别在(S1P2、S4P2)每出现一次信号,CPU就进行一次取指令的操作51单片机的寻址方式按操作数的类型分为数的寻址和指令寻址,数的寻址根据数的种类有常数寻址(立即寻址)、寄存器数寻址(寄存器寻址)、存储器数寻址(直接寻址方式、寄存器间接寻址方式、变址寻址方式)和位数据寻址(位寻址)。
单片机复习知识点一、理论知识:1. 二进制与十进制的转换(要求会计算)二进制转十进制:加权求和。
十进制转二进制:整数部分:除二取余,逆序排列,即最初得到的余数是二进制整数的最低位,最后得到的余数是二进制整数的最高位,如下所示:小数部分:乘二取整,顺序排列,即最初得到的整数是二进制小数的最高位,如下所示:2. 什么是单片机?将微处理器(CPU)、存储器(ROM 和RAM)及各种输入输出接口(I/O)集成在一个芯片上,就称之为单片微型处理器,简称单片机。
存储器按功能划分可分为程序存储器和数据存储器。
3. 单片机最小系统的组成:单片机最小系统由工作电源、时钟(或晶振)电路和复位电路三部分组成,它为单片机的工作提供最基本的硬件条件。
4. 单片机的复位条件是什么,复位后的I/O 口状态是什么?单片机的复位条件是持续两个机器周期以上的高电平,复位后的I/O 口为FFH。
5. 单片机的时序:晶振电路为单片机的工作提供了基本的时序。
时钟周期:也称振荡周期,定义为时钟频率的倒数,也就是外接晶振频率的倒数,是单片机中最基本、最小的时间单位。
机器周期:单片机的基本操作周期,在一个操作周期内,单片机完成一项基本操作,它由12 个时钟周期组成。
因此,外接12MHz 晶振的单片机的机器周期为1 微秒(1μS)。
6. 单片机的I/O 口配置:STC89C52RC单片机有40个引脚,4组8位并行I/O口,分别为P0、P1、P2和P3。
P3口:P3口的每根口线都有其独立定义的第二功能。
7. C51占64 位,8 个字节。
在数前面加上“0x”,表示该数为十六进制数。
8. 数码管的结构分类和显示控制方式:数码管按内部结构不同可分为共阳极和共阴极两种,其中,共阳极的公共端结高电平,共阴极的公共端接低电平。
数码管显示的控制方式分为:静态显示和动态显示,其中动态显示需要实时刷新才能获得稳定的显示效果,刷新周期小于25ms。
9. 键盘的基本知识:键盘分为编码式键盘和非编码式键盘。
单片机基础一、 单片机基础知识1.1 51系列单片机简介:51系列单片机是单片机领域中的一类,也是影响最为深远,使用最为广泛的单片机系列。
51单片机是指Intel的MCS‐51系列及和其具有兼容内核的单片机。
51系列单片机最早由Intel公司发展起来,随后将51内核授权给其他各个厂商。
因此,现在MCS‐51兼容的单片机种类繁多,如:Atmel公司的AT889C系列、AT89S系列、Silicon Laboratories的C8051F 系列以及STC的单片机等。
这些系列的单片机都有着十分接近的指令系统和硬件结构,在开发起来很方便移植。
1.2 STC系列单片机:STC89C51RC系列单片机是STC推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统的8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择,HD版本和90C版本内部集成MAX810专用复位电路。
特征:1) 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可任意选择,指令代码完全兼容传统80512)工作电压:5.5V ‐ 3.3V (5V单片机) / 3.8V ‐ 2.0V (3V单片机)3) 工作频率范围:0~40MHz,相当于普通8051的 0~80MHz,实际工作频率可达48MHz.4)用户应用程序空间:4K / 8K / 13K / 16K / 32K / 64K字节5)片上集成1280字节或512字节RAM6)通用I/O口(35/39个),复位后为:P1/P2/P3/P4是准双向口/弱上拉(普通8051传统I/O 口);P0口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
7)ISP(在系统可编程)/ IAP(在应用可编程),无需专用编程器,无需专用仿真器 可通过串口(RxD/P3.0, TxD/P3.1)直接下载用户程序,数秒即可完成一片8)有EEPROM功能9)看门狗10)内部集成MAX810专用复位电路(HD版本和90C版本才有),外部晶体20M以下时,可省外部复位电路。
一、51单片机的硬件结构1. 硬件结构框图说明:○1微处理器(CPU):51单片机含一个8位CPU,与通用的CPU功能基本相同,含运算器和控制器,不仅可以字节处理,还可以位处理。
例如:未处理、查表、状态检测、中断处理等。
○2数据存储器(RAM):51为128B,52为256B;片外最大可扩展到64K。
○3程序存储器(ROM/EPROM):8031没有,8051有4K的ROM,8751有4K的EPROM;片外可扩展至64K。
○4中断系统:5个中断源,2级优先权。
○5定时器/计数器:2个16位定时/计数器,四种工作方式。
○6串行口:1个全双工串行口,四种工作方式。
可进行串口通信,扩展并行I/O口,多机通信等。
○7P1、P2、P3、P0口:四个8位并行I/O口。
○8特殊功能寄存器(SFR):共21个,对片内部件进行管理、控制、监视;实际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。
2. 引脚排列(1)电源及时钟引脚○1电源引脚:Vcc(40脚)解5V电源、Vss(20脚)接地。
○2时钟引脚:两个始终引脚XTAL1、XTAL2外接晶振,或接晶体与片内反相放大器构成振荡器。
XTAL1(19脚):内部反相放大器的输入端。
若接晶振则应接地;XTAL2(18脚):内部反相放大器的输出端。
若采用外部时钟振荡器,该引脚接收时钟振荡信号。
(2)控制引脚○1RST/Vpd(9脚):复位信号输入,高电平有效。
单片机运行时,此脚持续2个机器周期(24个时钟振荡周期)的高电平,就可复位。
平时应为0.5V低电平;Vpd为第二功能,备用电源输入端。
○2:ALE为地址锁存允许,正常工作时,ALE不断输出正脉冲信号。
当访问外部存储器时,ALE输出信号的负跳变沿用作低8位地址的锁存信号;PROG’为编程脉冲输入端。
○3PSEN’(Program Strobe Enable,29脚):程序存储器允许输出控制端。
低电平是外部程序存储器选通。
51单片机知识典型复习题(含答案)一、填空题1、AT89S51单片机为8 位单片机,共有40 个引脚。
2、MCS-51系列单片机的典型芯片分别为8031 、8051 、8751 。
3、AT89S51访问片外存储器时,利用ALE 信号锁存来自P0口发出的低8位地址信号。
4、AT89S51的P3口为双功能口。
5、AT89S51内部提供 2 个可编程的16 位定时/计数器,定时器有4 种工作方式。
6、AT89S51有 2 级中断, 5 个中断源。
7、AT89S51的P2 口为高8位地址总线口。
8、设计一个以AT89C51单片机为核心的系统,如果不外扩程序存储器,使其内部4KB闪烁程序存储器有效,则其EA* 引脚应该接+5V9、单片机系统中使用的键盘分为独立式键盘和行列式键盘,其中行列式键盘的按键识别方法有扫描法和线反转法。
10、AT89S51内部数据存储器的地址范围是00H~7FH ,位地址空间的字节地址范围是20H~2FH ,对应的位地址范围是00H~7FH ,外部数据存储器的最大可扩展容量是64K 。
11、如果(A)=34H,(R7)=0ABH,执行XCH A, R7;结果(A)= 0ABH ,(R7)= 34H 。
12、在R7初值为00H的情况下,DJNZ R7,rel指令将循环执行256 次。
13、欲使P1口的低4位输出0,高4位不变,应执行一条ANL P1, #0F0H 命令。
14、若CPU使用的是寄存器第1组,R0~R7的地址范围是08H-0FH。
15、单片机进行串行通信时,晶振频率最好选择11.0592MHz16、当MCS-51执行MOVX A,@R1指令时,伴随着RD 控制信号有效。
17、若A中的内容为67H,那么,P标志位为 1 。
18、AT89S51唯一的一条16位数据传送指令为MOV DPTR,#data16 。
19、LJMP的跳转范围是64K,AJMP的跳转范围是2K B,SJMP的跳转范围是±128 B(或256B)。
MCS-51单片机的基本结构XTAL1XTAL2VCC VSSMCS-51单片机的基本结构:1、微处理器CPU :为8位的CPU ,且内含一个1位CPU (布尔处理器),不仅可以处理字节数据,还可以进行位变量的处理。
2、内部数据存储器(RAM ):128字节片内RAM 。
(8052系列为256字节)3、内部程序存储器(ROM/EPROM/):8031无此器件,8051为4KROM ,8751为4KEPROM 。
4、定时器/计数器:内含2个16位定时/计数器,具有四种工作方式。
5、串行口:1个全双工的串行口,具有四种工作方式。
6、中断控制系统:具有5个中断源,2级中断优先权。
7、P0、P1、P2、P3:为4个并行8位I/O 口。
8、特殊功能寄存器(SFR ):共有21个,用于对片内各功能模块进行管理、控制、监视。
实际上是一些控制寄存器和状态寄存器,是一个特殊功能的RAM 区。
12346758910111213144039383735343633323130292827P1.0P1.1P1.4P1.3P1.2P1.5RST/VPD P1.7P1.6RXD P3.0TXD P3.1T0 P3.4T1 P3.5Vcc P0.0P0.3P0.2P0.1P0.4P0.6P0.5P0.7P2.7PSEN P2.6EA/VPP ALE/PROG 151617181920WR P3.6RD P3.7XTAL1XTAL2VSS262524232121P2.5P2.1P2.2P2.0P2.4P2.3INTO P3.2INT1 P3.389C511、电源、时钟电路VCC(40脚)—+5V电源VSS(20脚)—地XTAL1(19脚)—芯片内部振荡电路(单级反相放大器)输入端。
XTAL2(18脚)—芯片内部振荡电路(单级反相放大器)输出端。
MCS-51的时钟可由内部方式或外部方式产生。
1)内时钟方式利用芯片内部的振荡电路,在XTAL1、XTAL2的引脚上外接定时元件,内部振荡器便能产生自激振荡,用示波器便可以观察到XTAL2输入的正弦波,定时元件可以采用石英晶体和电容组成的并联谐振电路,连接方法如图2.2(a)所示。
单片机C51基础知识汇总目录1、标识符2、数据类型3、变量4、常量5、二进制、八进制、十进制、十六进制6、运算符7、语句8、注释9、if语句10、switch--case语句11、for循环12、while循环13、do—while循环14、循环控制15、一维数组16、二维数组17、字符数组与字符串数组18、函数19、函数重入与递归20、预处理21、宏22、条件编译指令23、指针(*)24、结构(struct)25、联合(union)26、枚举(enum)主要内容1 .标识符标识符就是编程时使用的表示某个事情名称的符号,如函数名、变量名、引脚名、特殊功能寄存器名等。
标识符有系统标识符和用户自定义标识符之分。
标识符的命名规则:(1) 标识符第一个字符必须是字母或下划线。
(2) 标识符只能由字母、数字和下划线三类字符组成。
(3) 标识符是区分大小写的。
如A 和a 是两个不同的标识符。
(4) 标识符有效长度不超过32 个字符。
(5) 标识符不能是C51 的关键字。
2 .数据类型char有符号字符型,一字节,值域-128~127。
int 有符号整型,两字节,值域-32768~32767。
long有符号长整型,四字节,值域-2147483648~2147483647 unsigned char无符号字符型,一字节,值域0~255unsigned int无符号整型,两字节,值域0~65535unsigned long无符号长整型,四字节,值域0~4294967295float浮点型(都是有符号的),四字节,±1.175494E-38~±3.402823E+38bit位变量,一个二进制位,值域0~1。
sbit51 单片机特殊功能寄存器位,值域0~1。
Sfr 51 单片机特殊功能寄存器,值域0~255。
sfr1651 单片机特殊功能寄存器,如DPTR,值域0~65535。
bit,sbit,sfr,sfr16不是标准C 的内容,是51 单片机及C51 编译器特有的,不能用指针对它们进行操作。
C51单片机知识总结C51单片机知识总结单片机I/O口的使用51单片机总共有P0、P1、P2、P3四个8位双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。
4个I/O端口都能作输入输出口用,其中P0和P2通常用于对外部存储器的访问。
在无片外扩展存储器的系统中,这4个端口的每一位都可以作为准双向通用I/O端口使用。
在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。
下图为P0口的某位P0.n(n=0~7)结构图,它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路及控制电路组成。
从图中可以看出,P0口既可以作为I/O 用,也可以作为地址/数据线用。
①输出时CPU发出控制电平“0”封锁“与”门,将输出上拉场效应管T1截止,同时使多路开关MUX把锁存器与输出驱动场效应管T2栅极接通。
故内部总线与P0口同相。
由于输出驱动级是漏极开路电路,若驱动NMOS或其它拉流负载时,需要外接上拉电阻。
P0的输出级可驱动8个LSTTL负载。
②输入时----分读引脚或读锁存器读引脚:由传送指令(MOV)实现;下面一个缓冲器用于读端口引脚数据,当执行一条由端口输入的指令时,读脉冲把该三态缓冲器打开,这样端口引脚上的数据经过缓冲器读入到内部总线。
读锁存器:有些指令如:ANLP0,A称为“读-改-写”指令,需要读锁存器。
上面一个缓冲器用于读端口锁存器数据。
**原因:如果此时该端口的负载恰是一个晶体管基极,且原端口输出值为1,那么导通了的PN结会把端口引脚高电平拉低;若此时直接读端口引脚信号,将会把原输出的“1”电平误读为“0”电平。
现采用读输出锁存器代替读引脚,图中,上面的三态缓冲器就为读锁存器Q端信号而设,读输出锁存器可避免上述可能发生的错误。
**P0口必须接上拉电阻;在读信号之前数据之前,先要向相应的锁存器做写1操作的I/O口称为准双向口;三态输入缓冲器的作用:(ANLP0,A)准双向口:从图中可以看出,在读入端口数据时,由于输出驱动FET并接在引脚上,如果T2导通,就会将输入的高电平拉成低电平,产生误读。
《单片机原理与应用》复习提纲第一章第二章MCS-51系列单片机的硬件结构1. MCS-51单片机的总体结构MCS-51单片机的内部结构•8位的CPU;•128个字节的片内RAM;•4K字节的片内ROM程序存储器(8031无)•外部的RAM和ROM的寻址范围为64K•21个字节的专用寄存器•4个8位并行I/O口•1个全双工的串行口•2个16位的定时器/计数器•5个中断源、2个中断优先级MCS-51单片机的总线结构微处理器又称为CPU,是单片机内部的核心部件,它决定了单片机的重要功能特性。
它由运算器和控制器两大部分组成。
对CPU的使用就是对CPU中的寄存器的使用。
•累加器ACC•寄存器B•程序状态字PSW•布尔处理器C•程序计数器PC,16位•数据指针寄存器DPTR,16位DPTR寄存器中存放外部数据存储器地址•堆栈指针SP•2.程序存储器程序存储器通常存放程序指令、常数及表格等,系统在运行过程中不能修改其中的数据。
.程序的几个特殊地址:•复位0000H,PC复位指向该地址•外部中断0 0003H•定时器/计数器0溢出000BH•外部中断1 0013H•定时器/计数器1溢出001BH•串行口中断0023H3.数据存储器•数据存储器则存放缓冲数据,系统在运行过程中可修改其中的数据。
•包括:•1)编址与访问•2)片内数据存储器•3)特殊功能寄存器块片内128字节数据存储器要求熟悉4个工作寄存器区的使用方法RS0,RS1。
如:RS1,RS0=10 , R1的直接地址为11H。
00H~1FH :32个字节,内部RAM的寄存器区共有32个单元,分为4组,每组8单元。
•20H~2FH:16个字节,128位寻址区,128位寻址区的字节地址范围是20H~2FH。
•30H~7FH:通用寄存器区或数据缓冲区,堆栈区。
••堆栈:•使用片内RAM、初始化时SP=07H•51系列单片机的堆栈是向上生长的•一般程序中堆栈的开始:•MOV SP,#60H4.单片机的复位电路高电平复位,一般高电平保持2个机器周期以上有效复位5.时序•(1)振荡周期•(2)状态周期•(3)机器周期•(4)指令周期•外部晶振的2分频是MCS-51单片机的内部时钟周期,6个时钟周期构成了单片机的1个机器周期。
即1个机器周期是外部晶振频率的12分频。
例:单片机的晶振频率为6MHz,执行下列程序需要203 个机器周期和406 微秒时间。
(下列程序中注释的数字为执行该指令所需的机器周期数)MOV R3,#50 ;1LOOP:NOP ;1NOP ;1DJNZ R3,LOOP ;2•RET ;2•第三章MCS-51系列单片机指令系统1.寻址方式1)概述2)寻址就是寻找指令中操作数或操作数所在的地址。
3)所谓寻址方式就是如何找到存放操作数的地址,把操作数提取出来的方法。
它是计算机的重要性能指标之一,也是汇编语言程序设计中最基本的内容之一。
寻址方式说明立即寻址寄存器寻址直接寻址寄存器间接寻址基寄存器加变址寄存器间接寻址相对寻址位寻址2.数据传送类共29条。
按其操作方式,又可把它们分为三种:数据传送、数据交换和栈操作。
助记符:MOV、MOVX、MOVC、数据传输XCH、XCHD、SWAP、数据交换PUSH、POP。
栈操作应用举例:DPTR是数据指针,用于存放16数据,可以存放地址。
1)把片内RAM 6AH单元中的内容传送到片外RAM 3000H单元。
MOV A, 6AHMOV DPTR, #3000HMOVX @DPTR, A2)把片外I/O口地址为2000H的数据读入片内RAM 40H单元中。
MOV DPTR, #2000HMOVX A, @DPTRMOV 40H, A3)把片外I/O口地址为2000H的数据写入片外RAM 4000H单元中。
MOV DPTR, #2000HMOVX A, @DPTRMOV DPTR, #4000HMOVX @DPTR, A4)把外部数据存储器2040H单元内容和片外RAM 2230H单元互换。
MOV DPTR, #2040HMOVX A, @DPTRMOV R1, AMOV DPTR,#2230HMOVX A, @DPTRMOV DPTR,#2040HMOVX @DPTR,AMOV DPTR,#2230HMOV A,R1MOVX @DPTR,A5)已知片内RAM 50H单元中存放数据为0AAH,把此数据值压入堆栈,然后再弹回到40H单元中,设堆栈指针为60H。
MOV SP, #60HMOV 50H, #0AA HPUSH 50HPOP 40H3.算术运算类(24条)加、减、乘、除基本四则运算和增量(加1)、减量(减1)运算。
助记符:ADD、ADDC、INC、DAASUBB、DEC、MUL、DIV共8种操作助记符应用举例:1)将片内RAM 40H和41H单元内容相加,结果放42H。
MOV A,40HADD A, 41HMOV 42H,A2)将片外RAM 2000H和2001H两单元中的BCD码相加,结果放2002H。
MOV DPTR, #2000HMOVX A, @DPTRMOV R1, AMOV DPTR,#2001HMOVX A, @DPTRADD A, R1DA AMOV DPTR,#2002HMOVX @DPTR,A3)设被加数存入片内RAM30H~32H单元中,加数存入片内RAM40H~42H,低位在前,高位在后,各单元中均为压缩的BCD码。
将结果之和分别存入50H~52H单元中。
没有使用寄存器MOV A,30HADD A, 40HDA AMOV 50H ,AMOV A,31HADDC A, 41HDA AMOV 51H ,AMOV A,32HADDC A, 42HDA AMOV 52H ,ARET4)把R1R0和R3R2中的两个4位BCD码数相加,结果送R5R4中,如有进位,则进位位存入位地址20H中。
(这个是平时设计程序时应该想到的)MOV A, R0ADD A, R2DA AMOV R4,AMOV A, R1ADDC A, R3DA AMOV R5,A;假设高位相加有进位CLR 20HJNC L1;判断进位位是否为1,不为1转移。
SETB 20H;(寄存器置位是个什么概念?)L1: SJMP L14. 逻辑运算类(24条)包括清除、求反、移位及与、或、异或等操作。
这类指令有:CLR、CPL、RL、RLC、RR、RRC、ANL、ORL、XRL,共9种操作助记符。
应用举例:1)把累加器A中低4位(高4位清0)送入外部数据存储器的3000H单元。
MOV DPTR,#3000HANL A, #0FH;与命令,屏蔽高四位。
与零与为零,与1与不变MOVX @DPTR, A2)将累加器A的低4位的状态通过P1口的高4位输出。
ANL A, #0FH;屏蔽高四位SWAP A;高低四位交换ANL P1, #0FH;屏蔽高四位ORL P1,A ;两者或,低四位变成高四位输出3)编程将片内RAM 21H单元的低3位和20H单元的低5位合并为一个字节送片内RAM 30H,要求21H的低3位放在高位上。
MOV 30H, 20H ;先把20的低五位放在30中ANL 30H, #1FH;低五位保持不变,高三位为零MOV A, 21H ;把21移入A中SWAP A ;A的高低位互换RL A ;左移,使得原21中第三位变成高三位ANL A, #0E0H ;屏蔽低五位;ORL 30H,A ;或命令得到最终结果5. 控制转移类(17条)计算机在运行过程中,有时因为操作的需要或程序较复杂,程序指令往往不能按顺序逐条执行,需要改变程序运行的方向。
MCS-51的控制转移类指令包括无条件转移、条件转移、调用和返回指令等。
指令有AJMP绝对转移、LJMP长转移、SJMP短转移、JMP A+@DPTR、JZ、JNZ、CJNZ、DJNZ、ACALL、LCALL、RET、RETI、NOP共13种操作助记符。
LJMP、SJMP的转移范围应用举例1)将累加器A的低4位取反4次,高4位不变,每变换一次从P1口输出。
方法1: MOV R0, #0LL: XRL A, #0FH ;异或命令,高位不变,低位为1INC R0 ;加1MOV P1, A ;输出A,高四位不变,低四位输出CJNE R0, #04H,LLRET (这个程序没有看懂!!!)方法2: MOV R0, #04HLL: XRL A, #0FHMOV P1, ADJNZ R0,LLRET6. 位操作类(17条)以进位标志C作为累加器C在使用位操作类指令时要和字节操作类指令区别开来,因为它们的助记符是相同的。
这类指令的助记符有:MOV、CLR、CPL、SETB、ANL、ORL、JC、JNC、JB、JNB、JBC,共11种操作助记符。
应用举例:1)将累加器的ACC.5与00H位128位寻址相与后,通过P1.4输出。
MOV C, ACC.5ANL C,00HMOV P1.4, C7. 伪指令汇编程序对用汇编语言写的源程序进行汇编时,还要提供一些汇编用的指令,例如要指定程序或数据存放的起始地址;要给一些连续存放的数据确定单元等等。
但是,这些指令在汇编时并不产生目标代码,不影响程序的执行,所以称为伪指令。
ORG定位伪指令DB定义字节伪指令DW定义字伪指令EQU赋值伪指令END汇编结束伪指令说明以下指令的意义:1.MOV P1, #82H ;在P1口输出100000102.SWAP A ;A的高低四位互换3.ANL 30H,#20H ;用20H内容与30H内容相与4.DEC @R0 ;R0内容为地址的内容减15.CJNE A, #60H, NEG;A的内容与60H内容相同转移6.SETB C ;进位位置17.RL A ;A左移1位8.MOVX A,@DPTR ;以DPTR内容为地址,取其内容9.ORL 30H,A ;或命令,改变30H 内容10.MOV 30H, 20H ;20H内容转移到30H第四章汇编语言程序设计1.顺序结构的程序应用举例:1)将片外I/O口1000H数据读入片内RAM 30H单元中。
MOV DPTR #1000HMOV A @DPTRMOV 30H A2)把二个外部数据存储器2000H单元和2010H单元内容互换。
MOV DPTR #2000H ;读取2000内容MOV A @DPTR ;把内容放到A中MOV R0 A ;暂时保存2000内容MOV DPTR #2010H ;读取2010内容MOV A @DPTR ;送到A中方法一:MOV DPTR #2000H ;指向2000地址MOV @DPTR A ;把2010内容放到2000中MOV DPTR #2010H ;指向2010地址MOV A R0 ;把2000内容置入A中MOV @DPTR A ;把A中内容置入2010方法二:XCH A R0MOV DPTR #2010HMOV @DPTR AMOV A R0MOV DPTR #2000HMOV @DOTR A3)将31H、30H和41H、40H中的两个4位BCD码数相加,结果送31H、30H中,(低位在低字节,高位在高字节)方法一:MOV R0 #30HMOV R1 #40HMOV R2 #02HCLC CLOOP: MOV A R1ADDC A R0DA AMOV @R0 AINC R0INC R1DJNZ R2, LOOP(程序不确定)方法二:CLC CMOV A 30HADD A 40HDA AMOV 30H AMOV A 31HADDC A 41HDA AMOV 31H;假如高位相加有进位CLC 32HJNC L1判断进位位是否为1,不为1转移SETB 32H ???????(能否这样置位,置位只能是位置位,不可以寄存器置位)L1:SJMP L14) 将片内RAM 20H单元中的数拆成两段,每段4位,并将其分别存入21H、22H单元中。