51单片机硬件知识总结

51单片机硬件知识总结
51单片机硬件知识总结

51单片机硬件知识总结

51单片机内各个硬件通过片内总线连接在一起,单片机的地址信号,数据信号和控制信都通过总线传达。51单片机硬件总结如下:

1.微处理器(CPU)

微处理器包括运算器和控制器两大部分,它是单片机的核心,完成运算和控制功能。运算器是单片机的运算部件,用于实现算术运算和逻辑运算:控制器是单片机的指挥和控制部件,它保证单片机各部分能自动而协调地工作。

2.存储器(数据存储器RAM,程序存储器ROM)

51单片机内部有64KB程序存储器空间(可寻址,实际要看芯片型号),128B片内数据存储器空间,128B内部特殊功能寄存器。其中程序存储器通常放程序指令,常数及表格等,系统在运行时不能修改其中的数据;数据存储器则存放缓冲数据,系统运行过程中可修改其中的数据。128B片内数据寄存存储器可以分为三部分:00H~1FH为工作寄存器区(通用寄存器区),该区分为四个小区,用于保护现场;20H~2FH是位寻址区,用于间接访问某一存储单元;30H~7FH是数据缓存区。128B特殊功能寄存器,又称为专用寄存器,专用于控制、管理片内算术逻辑部件、并行I0口、串行I0口、定时器/计数器、中断系统等功能模块的工作。用户在编程时可以置数设置,却不能自由移作它用。各专用寄存器(PC 例外)与片内RAM统-编址,且可作为直接寻址字节直接寻址。除此之外,由于扩展片外存储器后,地址寻址与片内重叠,但不会造成混乱,因为地址寻址方式不一样,只是编程上要特别注意。3.定时器/计数器

51单片机内部有两个16位定时器/计数器,以实现定时或计数功能,其核心部件——计数器是“加法计数器”。在工作过程中,51单片机的定时器/计数器可工作于定时器方式,也可以工作于计数器方式。在作定时器使用时,输入的时钟脉冲是由晶体振荡器的输出经12分频后得到的,所以定时器也可看作是对单片机机器周期的计数(每个机器周期包含12个振荡周期),故其频率为晶振频率的1/12。如果晶振频率为12MHz,则定时器每接收-一个输入脉冲的时间为1μs。在作计数器使用时,是对外部事件的计数。外部输入信号是通过相应的外部输入引脚T0(P3.4)或T1(P3.5)输入。在这种情况下,当检测到输入引脚上的电平由高跳变到低时,计数器就加1(它在每个机器周期的S5P2时采样外部输入,当采样值在这个机器周期为高,在下-一个机器周期为低时,则计数器加1),加1操作发生在检测到这种跳变后的-一个机器周期的S3P1,因此需要两个机器周期来识别-一个从1到0的跳变,故最高计数频率为晶振频率的1/24。这就要求输入信号的电平在跳变后至少一个机器周期内保持不变,以保证在给定的电平再次变化前至少被采样1次。

4.中断

51单片机有5个中断源(两个外部中断、两个定时器/计数器溢出中断、-个串行口中断)两个中断优先级,通过四个专用中断控制寄存器进行中断管理。在外部中断源中,中断请求

信号有效方式分为电平触发和脉冲触发两种,电平方式是地电平触发有效,脉冲方式为负跳变触发有效。

5.位处理器

位处理器也称为布尔处理器。位处理器能对可寻址位进行复位、置位、取反等位操作。位处理器是单片机的重要组成部分,因为它是单片机实现控制功能的保证。

6.并行IO口

51单片机内部有4个并行IO接口(PO、PI、P2、P3),以实现数据的并行输入输出及总线扩展。

7.串行口

51单片机内部有一个全双工的串行通信口,以实现单片机和其他设备之间的串行数据传送。该串行通信口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位寄存器使用。51单片机全双工的串行接口对外表现为两个引脚:RXD(P3.0)、TXD(P3.1)。在接收方式下,串行数据通过引脚RXD(P3.0)进入;在发送方式下,串行数据通过TXD(P3.1)送出。在内部结构上,串行口主要由2个数据缓冲器(SBUF)、1个输入移位寄存器、1个串行口控制寄存器(SCON)和1个波特率倍增控制寄存器(PCON)等组成。串行口数据缓冲寄存器(SBUF)是可以直接寻址的专用寄存器。在物理上一个作发送寄存器,一个作接收寄存器,两个寄存器共用一个口地址99H,由内部读、写信号区分。CPU写SBUF时为发送缓冲器,读SBUF时为接收缓冲器。接收缓冲器是双缓冲结构,它是为了避免在接收下一帧数据之前,CPU未能及时响应接收器的中断,把上一帧数据读走,而产生两帧数据重叠的问题。对于发送缓冲器,为了保证最大传输速率,不需要双缓冲,这是因为发送时CPU是主动的,不会产生写重叠的问题。特殊功能寄存器SCON用来存放串行口的控制和状态信息,波特率倍增控制寄存器PCON用来对传输过程中的波特率进行加倍控制。

51单片机所有外部引脚说明如下:

51单片机大都采用40条引脚的双列直插式封装。 电源引脚VCC(接5V电源),VSS(接地)。 时钟引脚XTAL1,XTAL2,单片机的时钟产生方法有内部时钟方式和外部时钟方式两种,内部方式所得到的时钟信号比较稳定,应用较多,大多数单片机应用系统采用内部时钟方式,内部产生方式是在XTAL1和XTAL2之间接入一个晶振,且连接两个电容,起稳定作用。

●RST/VPD引脚,为单片机的上电复位或掉电保护端。?输入输出引脚P0~P3,输入输出引脚P0~P3除具有基本的输入输出功能外,P0、P2、P3 还具有第二功能。P0口当用作第二功能时,是作为地址总线低8位及数据总线分时复用口,一般作为扩展时地址/数据总线口使用。P2口当用作第二功能时,用作高8位地址总线,一般作为扩展时地址总线的高8位使用。P3口当用作第二功能时,P3.0与P3.1为串行口输入输出端,P3.2与P3.3为外部中断请求输入端,P3.4与P3.5为定时器/计数器脉冲输入端,P3.6与P3.7为外部数据存储器选通信号的输出端。

?PSEN非、EA非引脚,PSEN非为片外程序存储器读选通信号输出端,低电平有效,EA非为片外程序存储器选用端,当EA非端为高电平时,选择片内ROM,否则为片外ROM.

51单片机中断程序大全

//实例42 :用定时器T0 查询方式 P2 口8 位控制LED 闪烁 //#include单片机寄存器定义的头文件 51包含 /******************************************************* *******函数功能:主函数 ******************************************************** ******/void main(void){ // EA=1;开总中断// 中断允许T0 // 定时器// ET0=1; 1的模式TMOD=0x01;// 使用定时器T0 位赋初值定时器T0 的高8 TH0=(65536-46083)/256; // 位赋初值的高8 TL0=(65536-46083)%6; // 定时器T0 T0启动定时器TR0=1;// TF0=0;P2=0xff; 无限循环等待查询while(1)// {while(TF0==0); TF0=0;P2=~P2; 位赋初值的高8 定时器TH0=(65536-46083)/256; // T0 位赋初值T0 TL0=(65536-46083)%6; //

定时器的高8 }} 1KHzT1:用定时器43 实例// 音频查询方式控制单片机发出 #include 单片机寄存器定义的头文件51 // 包含sbit sound=P3^7;将// 引脚sound P3.7 位定义为 /********************************************************** **** 函数功能:主函数 ******************************************************** ******/void main(void){// EA=1;开总中断// 中断允许ET0=1;// // 定时器T0 1的模式使用定时器// T1 TMOD=0x10; 位赋初值// TH1=(65536-921)/256; T1 定时器的高8 TL1=(65536-921)%6; // 定时器T1 的高8 位赋初值 TR1=1;// 启动定时器T1TF1=0; while(1)// 无限循环等待查询{while(TF1==0); TF1=0;

最新-单片机原理及应用期末考试必考知识点重点总结 精品

单片机概述 单片机是微单片微型计算机的简称,微型计算机的一种。 它把中央处理器(CPU),随机存储器(RAM),只读存储器(ROM),定时器\计数器以及I\O 接口,串并通信等接口电路的功能集成与一块电路芯片的微型计算机。 字长:在计算机中有一组二进制编码表示一个信息,这组编码称为计算机的字,组成字的位数称为“字长”,字长标志着精度,MCS-51是8位的微型计算机。 89c51 是8位(字长)单片机(51系列为8位) 单片机硬件系统仍然依照体系结构:包括CPU(进行运算、控制)、RAM(数据存储器)、ROM(程序存储器)、输入设备和输出设备、内部总线等。 由于一块尺寸有限的电路芯片实现多种功能,所以制作上要求单片机的高性能,结构简单,工作可靠稳定。 单片机软件系统包括监控程序,中断、控制、初始化等用户程序。 一般编程语言有汇编语言和C语言,都是通过编译以后得到机器语言(二进制代码)。 1.1单片机的半导体工艺 一种是HMOS工艺,高密度短沟道MOS工艺具有高速度、高密度的特点; 另一种是CHMOS工艺,互补金属氧化物的HMOS工艺,它兼有HMOS工艺的特点还具有CMOS的低功耗的特点。例如:8181的功耗是630mW,80C51的功耗只有110mW左右。1.2开发步5骤: 1.设计单片机系统的电路 2.利用软件开发工具(如:Keil c51)编辑程序,通过编译得到.hex的机器语言。 3.利用单片机仿真系统(例如:Protus)对单片机最小系统以及设计的外围电路,进行模拟的硬软件联合调试。 4.借助单片机开发工具软件(如:STC_ISP下载软件)读写设备将仿真中调试好的.hex程序拷到单片机的程序存储器里面。 5.根据设计实物搭建单片机系统。 2.1MCS-51单片机的组成:(有两个定时器) CPU(进行运算、控制)、RAM(数据存储器)、ROM(程序存储器)、I/O口(串口、并口)、内部总线和中断系统等。 工作过程框图如下:

51单片机中断程序大全

//实例42:用定时器T0查询方式P2口8位控制LED闪烁#include // 包含51单片机寄存器定义的头文件 /************************************************************** 函数功能:主函数 **************************************************************/ void main(void) { // EA=1; //开总中断 // ET0=1; //定时器T0中断允许 TMOD=0x01; //使用定时器T0的模式1 TH0=(65536-46083)/256; //定时器T0的高8位赋初值 TL0=(65536-46083)%256; //定时器T0的高8位赋初值 TR0=1; //启动定时器T0 TF0=0; P2=0xff; while(1)//无限循环等待查询 { while(TF0==0) ; TF0=0; P2=~P2; TH0=(65536-46083)/256; //定时器T0的高8位赋初值 TL0=(65536-46083)%256; //定时器T0的高8位赋初值 } } //实例43:用定时器T1查询方式控制单片机发出1KHz音频#include // 包含51单片机寄存器定义的头文件 sbit sound=P3^7; //将sound位定义为P3.7引脚 /************************************************************** 函数功能:主函数 **************************************************************/ void main(void) { // EA=1; //开总中断 // ET0=1; //定时器T0中断允许 TMOD=0x10; //使用定时器T1的模式1 TH1=(65536-921)/256; //定时器T1的高8位赋初值

(完整版)单片机知识点总结

单片机考点总结 1.单片机由CPU、存储器及各种I/O接口三部分组成。 2.单片机即单片微型计算机,又可称为微控制器和嵌入式控制器。 3.MCS-51系列单片机为8位单片机,共40个引脚,MCS-51基本类型有8031、8051 和8751. (1)I/O引脚 (2)8031、8051和8751的区别: 8031片内无程序存储器、8051片内有4KB程序存储器ROM、8751片内有4KB程序存储器EPROM。 (3)

4.MCS-51单片机共有16位地址总线,P2口作为高8位地址输出口,P0口可分时复用 为低8位地址输出口和数据口。MCS-51单片机片外可扩展存储最大容量为216=64KB,地址范围为0000H—FFFFH。(1.以P0口作为低8位地址/数据总线;2. 以P2口作为高8位地址线) 5.MCS-51片内有128字节数据存储器(RAM),21个特殊功能寄存器(SFR)。(1)MCS-51片内有128字节数据存储器(RAM),字节地址为00H—7FH; 00H—1FH: 工作寄存器区; 00H—1FH: 可位寻址区; 00H—1FH: 用户RAM区。 (2)21个特殊功能寄存器(SFR)(21页—23页);

(3)当MCS-51上电复位后,片内各寄存器的状态,见34页表2-6。 PC=0000H, DPTR=0000H, Acc=00H, PSW=00H, B=00H, SP=07H, TMOD=00H, TCON=00H, TH0=00H, TL0=00H, TH1=00H, TL1=00H, SCON=00H, P0~P3=FFH 6. 程序计数器PC:存放着下一条要执行指令在程序存储器中的地址,即当前PC值或现行值。程序计数器PC是16位寄存器,没有地址,不是SFR. 7. PC与DPTR的区别:PC和DPTR都用于提供地址,其中PC为访问程序存储器提供地址,而DPTR为访问数据存储器提供地址。 8. MCS-51内部有2个16位定时/计数器T0、T1,1个16位数据指针寄存器DPTR,其中MOVE DPTR, #data16 是唯一的16位数据传送指令,用来设置地址指针DPTR。(46页) 定时/计数器T0和T1各由2个独立的8位寄存器组成,共有4个独立寄存器:TH1、TL1、TH0、TL0,可以分别对对这4个寄存器进行字节寻址,但不能吧T0或T1当作1个16位寄存器来寻址。即:MOV T0,#data16 ;MOV T1,#data16 都是错的,MOV TH0,#data;MOV TL0,,#data是正确的。 9.程序状态字寄存器PSW(16页) (1)PSW的格式: D7 D6 D5 D4 D3 D2 D1 D0 PSW D0H (2)PSW寄存器中各位的含义; Cy:进位标志位,也可以写为C。 Ac:辅助进位标志位。

单片机中断程序大全

单片机中断程序大全公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

//实例42:用定时器T0查询方式P2口8位控制L E D闪烁#include // 包含51单片机寄存器定义的头文件void main(void) { // EA=1; //开总中断 // ET0=1; //定时器T0中断允许 TMOD=0x01; //使用定时器T0的模式1 TH0=(65536-46083)/256; //定时器T0的高8位赋初值 TL0=(65536-46083)%256; //定时器T0的高8位赋初值 TR0=1; //启动定时器T0 TF0=0; P2=0xff; while(1)//无限循环等待查询 { while(TF0==0) ; TF0=0; P2=~P2; TH0=(65536-46083)/256; //定时器T0的高8位赋初值 TL0=(65536-46083)%256; //定时器T0的高8位赋初值 //实例43:用定时器T1查询方式控制单片机发出1KHz音频

#include // 包含51单片机寄存器定义的头文件sbit sound=P3^7; //将sound位定义为P3.7引脚 void main(void) {// EA=1; //开总中断 // ET0=1; //定时器T0中断允许 TMOD=0x10; //使用定时器T1的模式1 TH1=(65536-921)/256; //定时器T1的高8位赋初值 TL1=(65536-921)%256; //定时器T1的高8位赋初值 TR1=1; //启动定时器T1 TF1=0; while(1)//无限循环等待查询 { while(TF1==0); TF1=0; sound=~sound; //将P3.7引脚输出电平取反 TH1=(65536-921)/256; //定时器T0的高8位赋初值 TL1=(65536-921)%256; //定时器T0的高8位赋初值 } } //实例44:将计数器T0计数的结果送P1口8位LED显示 #include // 包含51单片机寄存器定义的头文件sbit S=P3^4; //将S位定义为P3.4引脚

单片机原理及应用知识点汇总复习

单片机原理及应用知识点汇总 一、填空题 1、单片机是将微处理器、一定容量的RAM和ROM以及I/O 口、定时器等电路集成在一块芯片上而构成的微型计算机。 2、单片机80C51片内集成了 4 KB的FLASH ROM,共有 5 个中断源。 3、两位十六进制数最多可以表示256 个存储单元。 4、在80C51中,只有当EA引脚接高电平时,CPU才访问片内的Flash ROM。 5、当CPU访问片外的存储器时,其低八位地址由P0 口提供,高八位地址由P2 口提供,8位数据由P0 口提供。 6、在I/O口中,P0 口在接LED时,必须提供上拉电阻,P3 口具有第二功能。 7、80C51具有64 KB的字节寻址能力。 特 第 持 ,其 。 IP。 边沿 计数 / 22 、串行通信有同步通信和异步通信两种通信方式。 23、在异步通信中,数据的帧格式定义一个字符由4部分组成,即:起始位、数据位、奇偶校验位和停止位。 24、串行通信中,为使设备同步工作,需要通信双方有两个共同的要求,一是通信双方必须采用统一的编码方式,二是通信双方必须能产生相同的传送速率。 25、单片机80C51中的串行通信共有 4 种方式,其中方式0 是用作同步移位寄存器来扩展I/O口的。 26、设80C51的晶振频率为11.0592MHz,选用定时器T工作模式2作波特率发生器,波特率为2400b/s,且SMOD置0,则定时器的初值为F4H 27、键盘可分为独立连接式和矩阵式两类。键盘可分为编码式和非编 码式两类。 28、LED数码管有静态显示和动态显示两种方式。 29、在执行下列指令后,A=___60H___,R0=__45H____,(60H)=___45H___。

单片机中断实验报告

实验三定时器中断实验 一、实验目的 1、掌握51单片机定时器基本知识; 2、掌握定时器的基本编程方法; 3、学会使用定时器中断。 二、实验内容 1、利用定时器设计一个秒表,计数范围为0—59,并在数码管实时显示。 三、实验设备 PC 机一台、单片机实验箱 主要器件:AT89C52、7SEG-BCD、 四、实验步骤 1、使用Proteus设计仿真原理图; 2、使用Keil设计程序; 3、联合调试仿真。 五、实验流程图 六、实验程序与结果 #include #define uint unsigned int #define uchar unsigned char sbit F=P2^1; void timer1_init() 开始 设置显示初值启动定时器 判断是否到59 继续 是 否

{ TMOD=0x10;//将定时器1设置为工作方式1 TH1=(65536-6000)/256;//定时器每加一时间为1/fsoc,定时时间为1/500 //(1/500)s/(1/3000000)s=6000 TL1=(65536-6000)%256;//fsoc=3000000,所以装入16位定时器中值为65536-6000 EA=1; ET1=1; TR1=1; } void main() { timer1_init(); while(1); } void timer1() interrupt 3 { TH1=(65536-6000)/256;//每次进入中断,重装初值TL1=(65536-6000)%256; F=~F;//每次进入中断P1.1口取反 } #include #define uint unsigned int #define uchar unsigned char sbit F=P2^1; void timer0_init() {TMOD=0x01;//将定时器0设置为工作方式1 TH0=(65536-83)/256;//定时器每加一时间为1/fsoc,定时时间为2Khz,既500us //500us/6us=83.3333 TL0=(65536-83)%256;//fsoc=6000000,所以装入16位定时器中值为65536-83 EA=1; ET0=1; TR0=1; }void main() { timer0_init(); while(1); } void timer0() interrupt 1 { TH0=(65536-83)/256;//每次进入中断,重装初值 TL0=(65536-83)%256; F=~F;//每次进入中断P1.1口取反,表示定时时间到 } #include // 包含51单片机寄存器定义的头文件 #define seg_data P1 #define seg_data2 P3 #define uint unsigned int

51单片机利用中断控制灯频率和顺序

#include //包含51单片机寄存器定义的头文件#include int e=0,f=0,d=1,a=0,b=0,c=0,delay=10,m=1,V=128; G=1; /******************************************* 函数功能:主函数 ******************************************/ void main(void) { EA=1; //开放总中断 EX0=1; //允许使用外中断 ET0=1; //定时器0开 EX1=1; TMOD=0X01; IT0=1; //选择负跳变来触发外中断 IT1=1; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; while(1) ; //无限循环,防止程序跑飞 }

/************************************************************** 函数功能:外中断T0的中断服务程序 **************************************************************/ Time() interrupt 1 //外中断0的中断编号为0 { if(m%delay==0) { m=1; switch(e) { case 0: P1=G; a++; G=P1<<1; // P1=G; if(a==8) { a=0; G=1; } break; case 1: //反序 P1=V; b++; V=P1>>1; // P1=V; if(b==8) { b=0; V=128; } break; case 2: //中间到两边 P1=pow(2,4+c)+pow(2,3-c); c++; if(c==4) { c=0; }

(完整word版)单片机知识点总结

第一部分硬件基础 1、单片机的组成; 2、单片机的并行I/O口在使用时,有哪些注意的地方? 3、单片机的存储器;程序存储器和数据存储器的寻址范围,地址总线和数据总线的位数;数据存储器内存空间的分配;特殊功能寄存器区; 4、时钟及机器周期; 5、单片机的控制总线、地址总线及数据总线等。 例: 一、填空 1.MCS-51单片机有4个存储空间,它们分别是:、、、。 2、MCS-51单片机的一个机器周期包括个状态周期,个振荡周期。设外接12MHz晶振,则一个机器周期为μs。 3.程序状态字PSW由位组成。 4.在MCS-51单片机内部,其RAM高端128个字节的地址空间称 为区,但其中仅有个字节有实际意义。 5. MCS-51 系列单片机为位单片机,其数据总线为位,地址总线为位,可扩展的地址范围为。 6. MCS-51 单片机的4 个并行I/O 口若作为普通I/O 口使用时,输入操作分为读引脚和读锁存器,需要先向端口写“1”的操作是。 7. MCS-51 单片机的特殊功能寄存器分为可位寻址和不可位寻址两种,那么IE 为,TMOD 为。 8.通常MCS-51单片机上电复位时PC= H、SP= H、通用寄存器采用第组,这一组寄存器的地址范围 是 H。 9.MCS-51单片机堆栈遵循的数据存储原则。 10.在MCS-51单片机中,使用P2、P0口传送信号,且使用P0口来传送信号,这里采用的 是技术。 11.MCS-51单片机位地址区的起始字节地址为。

12.对于并行口在读取端口引脚信号时,必须先对端口写。13.PC的内容是。 14、MCS-51 单片机运行出错后需要复位,复位的方法是在复位引脚上加一个持续时间超过个时钟周期的高电平。 15、具有4KBytes 储存容量之存储器,其至少需具有根地址线。 二、问答 1.简述MCS-51 单片机的P0、P1、P2 和P3 口的功能。 2.MCS-51单片机的三总线是由哪些口线构成的。 3.MCS-51单片机的位寻址区的字节地址范围是多少?位地址范围是多少? 4. MCS-51单片机存储器在结构上有什么特点?在物理上和逻辑上各有那几个地址空间? 5.简述MCS-51单片机00H-7FH片内RAM的功能划分,写出它们的名称以及所占用的地址空间,并说明它们的控制方法和应用特性。 6.请写出MCS-51单片机的五个中断源的入口地址。 第二部分 C51程序设计 1、C51的指令规则;C51编程语句及规则; 2、C51表达式和运算符; 3、顺序程序、分支程序及循环程序设计; 4、C51的函数; 5、中断函数。 例: 1.程序的基本结构有。 2.C51的存储器模式有、、。 3.C51中int型变量的长度为,其值域为;unsigned char型变量的长度为位,其值域为。 4.C51中关键字sfr的作用,sbit的作 用。 5.函数定义由和两部分组成。 6.C51的表达式由组成。C51表达式语句由表达式和组成。

51单片机定时中断C语言的写法步骤

51单片机定时中断C语言的写法步骤 程序说明:51单片机定时器0工作于方式一,定时50ms中断一次 晶振为12M #include void main { TOMD = 0X01;//配置定时器0工作于方式一 TH1 = (65536-50000)/256; //高八位装入初值 TL1 = (65536-50000)%256; //低八位装入初值 ET0 = 1; //开定时器0中断 EA = 1; //开总中断 TR0 = 1; //启动定时器0 while(1) { ; } } void Timer0_int() interrupt 1 { //重新装初值 TH1 = (65536-50000)/256; //高八位装入初值 TL1 = (65536-50000)%256; //低八位装入初值 } /****************************************************************************** *********************************/ 上面是比较好理解的。如果实在要求简洁的话,看下面的,跟上面功能一样 #include void main { TOMD = 0X01;//配置定时器0工作于方式一 TH1 = 0x3c; //高八位装入初值 TL1 = 0xb0; //低八位装入初值 IE = 0x82;//开总中断并开定时器0中断 TR0 = 1; //启动定时器0 while(1) { ; } }

void Timer0_int() interrupt 1 { //重新装初值 TH1 = 0x3c; //高八位装入初值TL1 = 0xb0; //低八位装入初值}

(完整版)MCS-51单片机复习要点

MCS-51单片机 8051单片机是8位单片机,有40个管脚,8根数据线,16根地址线。 单片机的八大组成部分:CPU 、ROM 、RAM 、I/O 、定时/计数器、串口、SFR 、中断服务系统 一、MCS-51机的内存结构 (如图1所示) 0FFFH FFH 80H 7FH 0000H 00H 0000H 程序存储器 内部数据存储器 外部数据存储器 图1 MCS-51机的内存结构 物理上分为:4个空间, 片内ROM 、片外ROM 片内RAM 、片外RAM 逻辑上分为;3个空间, 程序内存(片内、外)统一编址 MOVC 数据存储器(片内) MOV 数据存储器(片外) MOVX 1、程序内存 寻址范围:0000H ~ FFFFH 容量64KB EA = 1,寻址从内部ROM ;EA = 0,寻址从外部ROM 地址长度:16位 存储器地址空间为64KB 作用: 存放程序及程序运行时所需的常数。 8051 单片机6个具有特殊含义的单元是:0000H —— 系统复位,PC 指向此处; 0003H —— 外部中断0入口 000BH —— T0溢出中断入口 0013H —— 外中断1入口 001BH ——T1溢出中断入口

0023H ——串口中断入口 2、内部数据存储器 物理上分为两大区:00H ~ 7FH即128B内RAM 和SFR区。如图2所示。 7FH 资料缓冲区 堆栈区80字节数据缓冲器用 工作单元 30H 2FH 位地址:16字节 00H~7FH 128 可位寻址位 20H 1FH 3区 2区 1区32字节4组R0~R7工作寄存器 0区 00H 图2 内部数据存储器 二、殊功能寄存器SFR 寻址空间离散分配在:80H ~ FFH , 注意PC不在此范围内。地址末尾为0或8的SFR具有位寻址功能 1、C PU是运算器加控制器 2、算术运算寄存器 (1)累加器A(E0H) (2)B寄存器:乘、除法运算用 (3)程序状态字PSW寄存器:包含程序运行状态信息。 PSW CY AC FO RS1 RS0 OV —P CY(PSW.7)——进位/借位标志;位累加器。 AC (PSW.6)——辅助进/借位标志;用于十进制调整。 F0 (PSW.5)——用户定义标志位;软件置位/清零。 OV (PSW.2)——溢出标志;硬件置位/清零。 P (PSW.0)——奇偶标志;A中1的个数为奇数P = 1;否则P = 0。 RS1、RS0 ——寄存器区选择控制位。 0 0 :0区R0 ~ R7 0 1 :1区R0 ~ R7 1 0 :2区R0 ~ R7 1 1 :3区R0 ~ R7

51单片机串口中断使用总结

下面的程序为通过串口调试助手实现上位机通过串口发送数据给单片机,单片机接收后并回发给上位机(发一个接一个)。 #include unsigned int flag,a; void main() { TMOD=0x20; //通过定时器1来设置串行口的波特率 TH1=0xfd; TL1=0xfd; //设置串行口的波特率为9600,相应的晶振频率为11.0592MHZ,SM0=0; SM1=1; //选择串行口为工作方式1 TR1=1; //启动定时器1 REN=1; //允许串行口接收数据 EA=1; //开总中断 ES=1; //开串行口中断 while(1) { if(flag==1) { ES=0; flag=0; SBUF=a; while(!TI); TI=0; ES=1; } } } void srei()interrupt 4 { //if(RI==1) //{ RI=0;

P0=SBUF; //P0口接led来检测接收到的数据 a=SBUF; flag=1; // } } 单片机的串口中断分发送中断和接收中断,即在串口发送完(给发送SBUF赋值并发送)一帧数据后TI(发送中断标志位)置位,而串口接收完(接收SBUF获得数据)一帧数据后RI (接收中断标志位)置位。根据要求在进入中断后可有两种写法: 一:在中断里检测是否是接收中断 void srei()interrupt 4 { if(RI==1) { P0=SBUF; RI=0; //P0口接led来检测接收到的数据 a=SBUF; flag=1; } } 即判断是接收中断,只有在接收中断后,才将SBUF取回,并在主函数里在发送给上位机,此时主函数 if(flag==1) { } 在这个if语句里不用关中断,为啥呢? 上位机发送数据单片机接收进入接收中断通过a=SBUF取回接收到的数据放入a中主函数用if(flag==1)检测a已取回数据用SBUF=a将取回到的数据再放入发送缓冲器并发送发送完后虽进入中断由于中断里用if(RI==1)检测,所以发送中断里并不执行其他命令,因此实现了数据的一收一发 二:不在中断里检测是否是接收中断 中断函数这样写

单片机基础知识点总结

单片机基础知识点总结 单片机基础知识点总结 第1章 1、微型计算机通常由哪些部分组成?各有哪些功能? 答:微型计算机通常由控制器、运算器、存储器、输入输出接口电路、输入设备和输出设备组成。控制器的功能是负责从内部存储器中取出指令 并对指令进行分析、判断、并根据指令发出控制信号,使计算机有条不紊 的协调工作;运算器主要完成算数运算和逻辑运算;存储器用于存储程序 和数据;输入输出接口电路完成CPU与外设之间相连;输入和输出设备用于和计算机进行信息交流的输入和输出。 2、单片微型计算机与一般微型计算机相比较有哪些区别?有哪些特点? 答:与通用微型计算机相比,单片机的硬件上,具有严格分工的存储器ROM和RAM和IO端口引脚具有复用功能;软件上,采用面向控制的 指令系统和硬件功能具有广泛的通用性,以及品种规格的系列化。单片机 还具备体积小、价格低、性能强大、速度快、用途广、灵活性强、可靠性 高等特点。 3、单片机的几个重要指标的定义。 答:单片机的重要指标包括位数(单片机能够一次处理的数据的宽度)、存储器(包括程序存储器、数据存储器)、IO口(与外界进行信息交换)、速度(每秒执行多少条指令)、工作电压(通常是5V)、功耗和温度。

4、单片微型计算机主要应用在哪些方面? 答:单片机的主要应用领域有智能化产品、智能化仪表、智能化测控系统、智能化接口等方面。 5、单片机的特点 存储器ROM和RAM严格分工;采用面向控制的指令系统;输入输 出端口引脚具有复用功能;品种规格的系列化;硬件功能具有广泛的通用 性 6、水塔水位的控制原理 (1)当水位上升达到上限时,B、C棒与A棒导电,从而与+5V电源连通。b、c两端均呈高电平状态,这时应使电机和水泵停止工作,不再给水 塔供水。(2)当水位降到下限以下时,B、C棒不与A棒导电,从而断开与 +5 V电源的连通。b、c两端均呈低电平状态。这时应启动电机,带动水泵工作给水塔供水。(3)当水位处于上下限之间时,B棒与A棒导电,而C棒不与A棒导电。b端呈高电平状态,c端呈低电平状态。这时无论是电机已在运转还是停止,都应维持电机和水泵的现有工作状态,直到水位上升到 水位上限或下降到水位下限。 第2章 1、MCS-51单片机内部包含哪些主要功能部件?它们的作用是什么? 答:MCS-51单片机在一块芯片中集成了CPU、RAM、ROM、定时计数器、多功能IO口和中断控制等基本功能部件。1)单片机的核心部分是CPU,CPU是单片机的大脑和心脏。2)程序存储器用于存放编好的程序或表格常数。数据存储器用于存放中间运算结果、数据暂存和缓冲、标志位等。3)

51单片机中断总结

51单片机中断总结 51单片机中断总结-马强 Yybmec51单片机中断系统5个中断源:2个外部中断请求INT0和INT1、2个片内定时器/计数器T0和T1的溢出中断请求串行口中断请求TI或RI(合为一个中断源)51单片机中断级别中断源INIT0---外部中断0T0---定时器/计数器0中断INIT1---外部中断1T1----定时器/计数器1中断TI/RI---串行口中断T2---定时器/计数器2中断默认中断级别最高第2第3第4第5最低序号(C语言用)012345中断允许寄存器IE位序号符号位 DB7EADB6-------DB5ET2DB4ESDB3ET1DB2EX1DB1ET0DB0EX0EA---全局中允许位。EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。EA=0,关闭全部中断。-------,无效位。ET2---定时器/计数器2中断允许位。ET2=1,打开T2中断。ET2=0,关闭T2中断。ES---串行口中断允许位。ES=1,打开串行口中断。ES=0,关闭串行口中断。ET1---定时器/计数器1中断允许位。ET1=1,打开T1中断。ET1=0,关闭T1中断。EX1---外部中断1中断允许位。EX1=1,打开外部中断1中断。EX1=0,关闭外部中断1中断。ET0---定时器/计数器0中断允许位。ET0=1,打开T0中断。ET0=0,关闭T0中断。EX0---外部中断0中断允许位。EX0=1,打开外部中断0中断。EX0=0,关闭外部中断0中断。中断优先级寄存器IP位序号DB7DB6DB5DB41DB3DB2DB1DBYybmec位地址---------PSPT1PX1PT0PX0-------,无效位。PS---串行口中断优先级控制位。PS=1,串行口中断定义为高优先级中断。PS=0,串行口中断定义为低优先级中断。PT1---定时器/计数器1中断优先级控制位。PT1=1,定时器/计数器1中断定义为高优先级中断。PT1=0,定时器/计数器1中断定义为低优先级中断。PX1---

单片机课程知识点总结

单片机应用技术课程总结大作业 1.单片机C51语言 单片机C51语言与C语言的差别不大,应用的基本语法一致,算法可以套用,但C51语言多了一些C语言中没有的关键字如图1-1,其中大多数都与存储器相关,这也是在编程中特别需要注意的。 图1-1 C51扩展关键字 2.51单片机的内部硬件知识 51单片机在一块芯片上集成了CPU,RAM,ROM、定时器/计数器和多种1O功能部件,具有一台微型计算机的基本结构,主要包括下列部件:一个8位的CPU、一个布尔处理机、一个片内振荡器、128B的片内数据存储器、4KB的片内程序存储器(8031无)、外部数据存储器和程序存储器的寻址范围为64KB,21字节的专用寄存器、4个8位并行10接口、一个全双工的串行口、2个16位的定时器/计数器、5个中断源、2个中断优先级111条指令、片内采用单总线结构。图 2-1为51系列单片机的内部结构框图。

图2-1 51单片机的结构框图 在编程的时候不仅要根据单片机内部硬件资源配置,还要注意每一种硬件外设对应的引脚,这样在大项目中便于充分利用所有的引脚,节约资源;另外合理的分配引脚会尽可能多的拓展单片机的资源,在51单片机中大多采用40引脚的双列直插式的封装(DIP),引脚图如图 2-2所示,有图可以知道,P0~P3中,除标准输出输入引脚P1外,其他引脚都有第二功能,只需将相应外设配置好,就可以利用第二功能。 图2-2 51单片机外部引脚图和总线结构图 单片机有最小工作系统,包括电源电路,复位电路,时钟电路等,只有这些单元与单片机按照要求结合在一起,单片机才能正常工作。51单片机的最小工作系统如图2-3所示:

单片机考试知识点总结

一、填空题: 1、当使用8051单片机时,需要扩展外部程序存储器,此时EA应接低电平。 2、8051上电复位后,从地址0000H开始执行程序,外部中断1的中断入口地址为0013H. 3、8051最多有64KB的程序存储器和64KB的数据存储器。 4、P0口通常用作分时复用为地址总线(低8位)及数据总线或外接上拉电阻用作普通I/O 口。 5、P2口的功能为用作地址总线和作为普通I/O口使用。 6、若由程序设定RS1、RS0=01,则工作寄存器R0的直接地址为08H。 7、若由程序设定RS1、RS0=00,则工作寄存器R0的直接地址为00H。 8、若累加器A中的数据为01110010B,则PSW中的P=0(偶数个1为0,奇数为1) 9、8051单片机共有5个中断源,分别是INT0外部中断0、INT1外部中断1、T0定时器/计数器中断0中断、T1定时器计数器1中断、串行口中断。 10、ADC0809是8通路8位逐次逼近式模/数转换器。 11、计算机中按功能把总线分为数据总线、地址总线和控制总线。 12、MOV A,#0F5H中,#0F5H的寻址方式称之为立即寻址。MOV类指令称之为一般传输指令。 13、8051的一个机器周期等于12个晶体震荡周期;通常8051单片机的ALE引脚以1/6倍的晶振频率输出脉冲。 14、8051单片机复位后,堆栈指针SP指向第07H号内部RAM;8051的堆栈是向上生长的。 15、十进制调整指令DA A,专用于BCD码的加减运算。 16、单片机的中断触发方式有低电平触发和下降沿触发两种。大多数情况下,单片机控制系统采用下降沿触发方式触发中断。 17、若执行加法运算后累加器(A)中的数据为01110010B,则PSW中的P=0 18、8051单片机的程序存储器和数据存储器编址方式采用的是哈佛结构,即数据存储器和程序存储器分开的编址方式。 二、单项选择题 1、8051单片机执行MOVX写指令时,相关的信号状态是 PSEN无效为高电平,WR有效为低电平 2、若PSW.4=1,PSW.3=1,现在需要保存R1的内容,可执行PUSH 19H指令 3、下列指令不是变址寻址方式的是MOVX A,@DPTR 4、在8051片外扩展一片EEPROM 28C64需要13根地址线(片选除外),8根数据线。 5、8051定时器/计数器工作方式2是自动重装8位计数器 6、单片机程序存储器的寻址范围是由程序计数器PC的位数决定的,MCS-51的PC为15位,因此其寻址范围是64KB。(2^16B=64KB) 7、若单片机的振荡频率为12MHz,设定时器工作在方式1需要定时1ms,则定时器初值应为2^16-1000.(计算过程:机器周期=12/12MHz=1μs 次数=1ms/1μs=1000次方式一为16位=2^16) 8、访问外部数据存储器的指令是MOVX,访问程序存储器的指令是MOVC。 9、汇编语言中,最多包含4个区段,其中操作码区段是必不可少的。 10、MCS-51单片机的位寻址区域为20H-2FH。 11、MCS-51单片机复位后,PC值被初始化为0000H。 12、MCS-51单片机在同一优先级的中断源同时申请中断时,CPU首先响应外部中断0. 三、读程序 1、执行下列程序段中第一条指令后

51单片机中断系统编程

51单片机中断系统编程 51单片机中断系统编程 上传的图片 抱歉,您所在的组无权下载附件,请注册或登陆中断是指如下过程(如下图所示):CPU 与外设同时工作,CPU执行主程序,外设做准备工作。当外设准备好时向CPU发中断请求信 号,若条件满足,则CPU终止主程序的执行,转去执行中断服务程序。在中断服务程序中 CPU与外设交换信息,待中断服务程序执行完后,CPU再返回刚才终止的主程序继续执行。 5.3.1 中断系统 MCS-51单片机提供了5个固定的可屏蔽中断源,3个在片内,2个在片外,它们在程序存储 器中各有固定的中断入口地址,由此进入中断服务程序。5个中断源的符号、名称及产生 的条件如下。 ? INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。 ? INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。 ? T0:定时器/计数器0中断,由T0计数溢出引起。 ? T1:定时器/计数器l中断,由T1计数溢出引起。 ? TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。 中断源有两级中断优先级,可形成中断嵌套。两个特殊功能寄存器用于中断控制和条件设 置。整个中断系统的结构框图如图所示。 上传的图片 抱歉,您所在的组无权下载附件,请注册或登陆 中断系统结构框图 2 中断系统的控制寄存器 中断系统有两个控制寄存器(IE和IP),它们分别用来设定各个中断源的打开/关闭和中

断优先级。此外,在TCON中另有4位用于选择引起外部中断的条件并作为标志位。 (1)中断允许寄存器IE IE在特殊功能寄存器中,字节地址为A8H,位地址(由低位到高位)分别是A8H-AFH。IE 用 来打开或关断各中断源的中断请求,基本格式如下: 上传的图片 抱歉,您所在的组无权下载附件,请注册或登陆 ? EA:全局中断允许位。EA=0,禁止一切中断;EA=1,打开全局中断控制,此时,由各 个中断控制位确定相应中断的打开或关闭。 ? ×:无效位。 ? ES:串行I/O中断允许位。ES=1,允许串行I/O中断;ES=0,禁止串行I/O中断。 ? ETl;定时器/计数器T1中断允许位。ETl=1,允许T1中断;ETl=0,禁止T1中断。 ? EXl:外部中断l中断允许位。EXl=1,允许外部中断1中断;EXl=0,禁止外部中断1中 断。 ? ET0:定时器/计数器T0中断允许位。ET0=1,允许T0中断;ET0=0,禁止TO中断。 ? EX0:外部中断0中断允许位。EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0中 断。 (2)中断优先级寄存器IP IP在特殊功能寄存器中,字节地址为B8H,位地址(由低位到高位)分别是B8H一BFH。 MCS-51单片机的中断分为两个优先级,IP用来设定各个中断源属于两级中断中的哪一级, 其基本格式如下: 上传的图片

51单片机中断总结

51单片机中断总结: 1. 查询优先级为固定的(外部中断0>定时器0>外部中断1>定时器1>串行中断)。 2. 执行优先级可以通过IP寄存器进行设置(高/低)。 3. CPU同时收到多个中断请求时,首先响应优先级较高者,然后相应优先级较低者;如果 优先级相同,则按照查询优先级顺序依次响应。 4. 正在执行的中断服务,不能被同级或更低级的中断请求打断,但会被更高级的中断请求 打断。推论(1)高优先级的中断不能被任何其它中断所打断(2)低优先级的中断只能在没有任何中断服务运行时得到响应。 5. 对于定时器和外部中断,在进入中断服务后,其中断标志位会自动清零;对于串行中断,由于有两个中断源,需要手动查询并清零RI或/和TI。 if (RI) { // processing RI = 0; } if (TI) { // processing TI = 0; } 6. 如果是使用汇编写中断服务,需要保护累加器、状态寄存器、寄存器组等 8051 Tutorial: Interrupts https://www.360docs.net/doc/585732919.html,/tutint.php As the name implies, an interrupt is some event which interrupts normal program execution. As stated earlier, program flow is always sequential, being altered only by those instructions which expressly cause program flow to deviate in some way. However, interrupts give us a mechanism to "put on hold" the normal program flow, execute a subroutine, and then resume normal program flow as if we had never left it. This subroutine, called an interrupt handler, is only executed when a certain event (interrupt) occurs. The event may be one of the timers "overflowing," receiving a character via the serial port, transmitting a character via the serial

相关文档
最新文档