单片机总结系列-1

时间:2019-05-12 02:48:03下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《单片机总结系列-1》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《单片机总结系列-1》。

第一篇:单片机总结系列-1

单片机,通过片内总线连接而成:中央处理器(CPU由运算器、控制器和若干特殊功能寄存器组成)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行输入/输出口(P0口-P3口)、串行口、定时/计数器、中断系统及特殊功能寄存器。主要部件集成在一块集成电路芯片上的微型计算机称为单片机。三总线结构:⑴ 地址总线AB,16位,P2口提供高8位地址,P0口经地址锁存器提供低8位。片外存储器可寻址范围达64KB(即=65536个字节)。⑵ 数据总线DB,D0-D7共8位,由P0口提供,分时输送低8位地址(通过地址锁存器锁存)和8位数据信息。⑶ 控制总线CB。时钟电路与时序:单片机芯片内部有一个高增益反向放大器,其输入引脚为XTAL1,输出引脚为XTAL2,芯片外部通过这两个引脚接晶体振荡器CYS和微调电容器C1、C2形成反馈电路(通常取值在20~30pF),构成稳定的自激振荡器,振荡频率范围通常是1.2MHz~12MHz。振荡脉冲经分频后再为系统所用。时序单位共4个:节拍、状态、机器周期和指令周期。CPU执行一条指令的时间称为指令周期。一般由若干个机器周期组成。机器周期=6状态=12晶振周期(拍节)。单片机的存储器单片机分为程序存储器(用于存放编好的程序、表格和常数。内部有4K ROM,片外最多可扩展64K ROM,两者统一编址。)和数据存储器(内部有128B RAM;片外最多可扩展64 K RAM。内、外RAM地址有重叠,可通过不同的指令来区分:“MOV”是对内部RAM进行读写的操作指令;“MOVX”是对外部RAM进行读写的操作指令),在物理空间上是相互独立哈佛结构。物理结构上可以分为片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。片内数据存储器工作寄存器区、可位寻址区、通用RAM区、特殊功能寄存器区。工作方式程序执行方式、掉电保护方式、低功耗方式(空闲方式、掉电方式)最小系统对于内部带有程序存储器的51单片机,若上电工作时所需要的电源、复位电路和晶体振荡电路齐全,即可构成完整的单片机最小系统。致单片机不工作的原因EA没有接高电平、晶振电容使用不当、晶振不起振ALE控制信号端无信、复位电路设计不当。【并行输入/输出口有4个8位的双向并行输入/输出(I/O)端口,P0口、P1口、P2口和P3口。P0口是一个双功能的8位并行I/O口(地址/数据分时复用口和通用I/O口),字节地址为80H,位地址为80H~87H。可作输入/输出端口使用,又可作地址/数据总线分时传输低8位地址和8位数据。P1口是单一功能的并行I/O口,字节地址为90H,位地址为90H~97H。它只用作通用的数据输入/输出口。P2口是一个双功能的8位并行I/O口,字节地址为80H,位地址为A0H~A7H。可作通用的输入/输出口用,又可用作高8位地址总线。P3口是一个双功能的8位并行I/O口,字节地址为B0H,位地址为B0H~B7H,它的第一功能是通用输入/输出口,作第二功能用时,各引脚定义如下:读引脚和读锁存器的区别读引脚:由传送指令(MOV)实现;读锁存器:读锁存器是先从锁存器中读取数据,进行处理后,将处理后的数据重新写入锁存器中,这类指令成为“读-修改-写”指令。“读锁存器”可以避免因引脚外部电路的原因而使引脚的状态发生改变造成误读。】【中断系统功能实现中断与返回、能实现优先权排队、高级中断能中断低级中断。优点分时操作、实时处理、故障处理。5个中断源(优先级高→低)外部中断0(IE0,0003H)、定时/计数器中断0(TF0,000BH)、外部中断1(IE1,0013H)、定时/计数器中断1(TF1,001BH)、串行口发送/接收中断(TI/RI,002BH)CPU中断响应的条件中断源有中断请求,此中断的中断允许位为1,CPU开总中断。中断响应过程将相应的优先级状态触发器臵1(以阻断后来的同级或低级的中断请求);执行一条硬件LCALL指令,即把程序计数器PC的内容压入堆栈保存,再将相应的中断服务程序的入口地址送入PC;执行中断服务程序。外部中断请求有2种触发方式:电平触发和边沿脉冲触发。】【定时/计数器的工作原理T0和T1的实质是加1计数器,即每输入一个脉冲,计数器加1,当加到计数器全为1时,再输入一个脉冲,就使计数器归零,且计数器的溢出使TCON中的标志位TF0或TF1臵1,向CPU发出中断请求。只是输入的计数脉冲来源不同,把它们分成定时与计数两种功能。当为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器增1,直至计满溢出。定时器的定时时间与系统的振荡频率紧密相关,因MCS-51单片机的一个机器周期由12个振荡脉冲组成,如果单片机系统采用12 MHz晶振,则计数周期为1us,这是最短的定时周期。当为计数工作方式时,计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外部信号计数,若前一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。所以检测一个从1到0的跳变需要两个机器周期,即外部输入信号的周期应大于或等于两个机器周期,也就是说外部输入信号的频率必须小于晶振频率的1/24,若频率超过晶振频率的1/24,则无法准确计数脉冲个数。虽然对外部输入信号的占空比无特殊要求,但是为了确保输入信号电平在变化之前至少被采样一次,要求电平保持时间至少是一个完整的机器周期。由定时器0、定时器

1、定时器方式寄存器TMOD(只能进行字节操作,不能位寻址)和定时器控制寄存器TCON组成(既能进行字节操作,又能位寻址)。定时器0,定时器1是16位加法计数器,分别由两个8位专用寄存器组成;定时器0由TH0和TL0组成,定时器1由TH1和TL1组成。(一般当T1作为串行通信接口的波特率发生器时T0才工作在方式3,此时TL0可作为8位的定时/计数器;而TH0只能作为8位定时器。)GATE—门控位。GATE=0,只要用软件使TR0(或TR1)臵1就可以启动定时器,而不管INT0(或INT1)的电平是高还是低。GATE=1,只有INT0(或INT1)引脚为高电平且由软件使TR0(或TR1)臵1时,才能启动定时器工作。定时/计数器的初始化1确定工作方式——对TMOD赋值。2预臵定时或计数的初值——直接将初值写入TH0、TL0或TH1、TL1。3根据需要开启定时/计数器中断——直接对IE寄存器赋值。4启动定时/计数器工作——将TR0或TR1臵“1”初值X = M-计数值,计数值与定时器的工作方式有关。若是定时工作模式,计数脉冲由内部供给,对机器周期进行计数,因此计数脉冲频率为f=fosc/12,计数周期T=1/f=12/fosc,若定时时间为t,则定时工作方式的计数初值:X= M-计数值=2n-t/T=2n-t ∙ fosc/12(例如主频为6MHZ,要求产生1ms的定时,试计算计数初值X。若设臵定时器工作于工作方式1,定时1ms,则计数初值X=216-(6MHZ×1ms)/12=65536-500=65036=FE0CH为定时方式1,在臵TR0=1以后,定时立即开始,但在定时时间到后,还必须用软件再次装入初值、重新启动才能开始新的定时。T1为计数方式2,在臵TR1=1以后,以计数开始,在计数次数到以后,自动装入初值并重新计数,因此软件设计不必再考虑装入初值。)】【通信方式 并行(多个数据各位同时传送,速度快效率高,但占用的数据线较多,成本高,仅适用于短距离)和串行(每个数据是一位一位按顺序传送,数据传送的速度有限制,但成本低,一根数据线就可以传送)。串行通讯分类 异步通信方式是按字符传送的,字符的前面有一个起始位(0),后面有一个停止位(1),这是一种起止式的通讯方式,字符之间没有固定的间隔长度,有点事数据传送的可靠性较高、能及时发现错误,缺点是通信效率较低。同步通信方式按数据块传送的,把传送的字符按顺序连接起来,组成数据块,在数据块前面加上特殊的同步字符,作为数据块的起止符号,在数据块后面加上校验字符,用于校验通信中的错误。同步通信中字符之间是没有间隔的,通讯效率比较高。串行通讯传输方式单工,半双工,全双工。串行口的结构 串行接口控制电路、发送电路(发送缓冲器SBUF,发送控制电路)、接收电路(接受缓冲器SBUF,接收控制电路)。特殊功能寄存器SCON存放串行口的控制和状态信息,串行口用定时器T1作为波特率发生器(发送接受时钟),电源控制寄存器PCON的最高位SMOD为串行口波特率的倍率控制位,中断允许控制寄存器IE控制串行通信中断是否允许。数据缓冲器SBUF 两个数据缓冲器在物理上是相互独立的,逻辑上却占用一个字节地址(99H)。发送时,就是CPU写入SBUF;接受时,就是CPU读取SBUF的过程。可以同时发送和接收数据,对于发送缓冲器,由于发送时CPU是主动的,不会产生重叠错误。波特率的计算方式0、方式2是固定的。方式1,方式3可变。波特率 = 2SMOD / 32 ×(T1的溢出率);T1溢出率 = 单位时间内溢出次数 = 1 /(T1的定时时间);而T1的定时时间t就是T1溢出一次所用的时间。此情况下,一般设T1工作在模式2(8位自动重装初值)。N = 256- t / T,t =(256-N)T =(256-N)×12 / fosc,所以,T1溢出率 = 1/t = fosc / 12(256-N),故,波特率 = 2SMOD / 32 × fosc / 12(256-N)。

若已知波特率,则可求出T1的计数初值: y = 256-2SMOD×fosc /(波特率×32×12)串行口初始化确定T1的工作方式(编程TMOD寄存器);计算T1的初值,装载TH1、TL1;启动T1(编程TCON中的TR1位);确定串行口控制(编程SCON寄存器)。串行口在中断方式工作时,还要进行中断设臵(编程IE、IP寄存器)。方式01、同步8位数据,波特率为F0SC/12;

2、低位在前,高位在后;

3、TI,再发送数据,软件清0,CLRTI;

4、RI,再接收数据,软件清0,CLRRI;

5、同步通信,无起始位和停止位。方式1

1、一帧为10位信息,1位起始(0),8位数据,1位停止(1);

2、波特率可变;

3、异步通信;

4、接收时,RB8里是停止位,数据位在SBUF(SM2=0)方式2,3是异步11位(以方式2接收数据时,REN必须臵1)RS-232C采用负逻辑电平,规定DC(-3~-5)为逻辑1,规定DC(+3~+5)为逻辑0,通常RS-232C的信号传输最大距离为30m,最高传输速率为20kbit/s

如果按键较多,则常用软件方法去抖动。为了保证CPU对键的一次闭合仅作一次键输入处理,必须去除抖动影响。即检测出键闭合后执行一个延时程序产生5ms~10ms的延时,等前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平则确认为真正有键按下。当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序,从而去除了抖动影响。

第二篇:单片机总结

单片机总结

——20120921030黄国林 我所在的专业生物医学工程专业,是一个理工医相结合的专业,但是侧重的方向还是工程学,对于计算机,单片机的要求比较高,虽然我们在大三的时候会有单片机的专业课,但是我们院也成立的相关的创新实验室,进行单片机的学习,组建自己的相关团队,做创新研发。但自己的只是还是有限,因此但是选修了这门课来扩宽自己的视野,对以后的单片机的学习打一定得基础。

51单片机的运用涉及到我们生活中的方方面面,为我们的生活提供了诸多便利,小到我们平时调动车流的交通信号灯,再到我们平时使用的形形色色的数码管,液晶显示屏等等,下面介绍一个我学习过的单片机的报警装置与旋转灯的应用./* 名称:报警与旋转灯

*/

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit SPK=P3^7;

uchar FRQ=0x00;

//延时

void DelayMS(uint ms)

{

}

//INT0中断函数 uchar i;while(ms--)for(i=0;i<120;i++);说明:定时器控制报警灯旋转显示,并发出仿真警报声。

void EX0_INT()interrupt 0

{

}

//定时器0中断

void T0_INT()interrupt

1{

}

//定时器1中断

void T1_INT()interrupt

3{

}

//主程序

void main()

{

P2=0x00;SPK=0x00;TMOD=0x11;TH0=0x00;//T0、T1方式1 TH1=-45000/256;TL1=-45000%256;P2=_crol_(P2,1);TH0=0xfe;TL0=FRQ;SPK=~SPK;TR0=~TR0;//开启或停止两定时器,分别控制报警器的声音和LED旋转 TR1=~TR1;if(P2==0x00)P2=0xe0;//开3个旋转灯 elseP2=0x00;//关闭所有LED

}

TL0=0xff;IT0=1;IE=0x8b;IP=0x01;TR0=0;TR1=0;while(1){} FRQ++;DelayMS(1);//定时器启停由INT0控制,初始关闭//开启0,1,3号中断 //INT0设为最高优先

同时,51单片机只是单片机的一类,单片机的应用十份广泛,以后我会更加努力的学习相关的内容。

20120921030黄国林

第三篇:NXP LPC900系列单片机ISP编程技术总结

NXP LPC900系列单片机ISP编程技术总结

1、将编译好的用户应用程序下载(编程)到LPC900系列单片机(MCU)内部Flash的方法有三种:

(1)在系统编程ISP(In-System Programming)。

(2)在电路编程ICP(In-Circuit Programming)。(3)通用或专用编程器编程。

编程器编程是一种传统的并行编程方法,特别适合于DIP封装(如果是表贴的需专用适配器)或量产阶段(批量)的MCU编程,其特点是速度快、可靠性高。其缺点是无法对已焊接的表贴MCU编程,而且成本较高,一台稍好一点的通用编程器至少在千元以上。目前大部分品牌通用编程器(如Xeltek 3000U等)和周立功LPC PRO专用编程器均支持LPC900编程,而且有些编程器借助专用下载线(如Xeltek ISP-Header01、周立功ICP900-ADP)还可完成ICP编程。

ICP和ISP均采用串行编程方法。其中ICP是一种通用标准(规范)编程,硬件连接采用PCL(P0.5)、PDA(P0.4)、RST、VDD和GND 五线制,但要求编程时PCL、PDA、RST和VDD与系统其它电路断开。ICP的加载(启动)是由MCU内部硬件电路完成的,并调用MCU内部IAP(在应用编程,In-Application Programming)实现Flash编程。上位机(PC机)通过专用ICP下载器(如周立功MiniPRO和涛行TX-MiniICP)与目标系统相连,编程软件使用FlashMagic或SmartPRO。

注意:仅老款的LPC932不支持ICP编程,其它LPC900系列的均支持。

关于ICP编程更多的内容可参阅周立功公司的“LPC900系列单片机ICP解决方案”和“LPC900 在电路编程(ICP)规范”。

2、与ICP不同,ISP是一种通用非标准串行在线编程,尽管不同IC厂家内部实现ISP编程技术(算法)不同,但外部硬件连接均采用串口(或USB转串口)的RXD、TXD。根据ISP的加载启动(Bootloader)方式不同(LPC900的ISP加载机制可参阅NXP的AN10221-“In-System Programming with the P89LPC932”图2),LPC900的ISP编程方法又可分为三种:(1)RST 3脉冲法。(2)帧间隔法。(3)直接跳入法。

“3脉冲法”有点类似ICP,硬件连接也是采用5线制:RXD、TXD、DTR、RTS和GND,其中DTR控制MCU的VDD,RTS控制RST,且要求ISP编程时MCU的VDD和RST应与系统其它I电路断开,具体电路可参阅周立功的“LPC900系列单片机ICP及ISP使用指南”图1.16。该方法的ISP加载是在MCU加电复位后有内部硬件完成的,因此适用于刚出厂的全新空片编程和已下载运行应用程序的升级编程。就是因编程时要断开VDD和RST板上连接比较麻烦。

“帧间隔法”硬件连接只需RXD、TXD和GND,简称“3线制”,“3线制”是目前大多数IC厂家ISP编程采用的连接方式,如STC51单片机等。简单方便,成本低(仅需20元左右的RS232转TTL电路或用户自己用1片MAX232即可)。其原理是MCU检测到RXD上帧间隔码(连续的低电平,即串口“Break”脉冲)就进入ISP模式。虽然这种检测是由MCU硬件完成的,但应用程序一开始必须对串口进行初始化,其C代码参见上述“使用指南”程序清单1.2。由此可见,原则上“帧间隔法”只适合于应用程序的升级编程。不过,对于刚出厂的全新空片,由于其“引导状态位”=1,加电复位后就自动进入ISP模式,因此上述三种方法都适用的。“直接跳入法”就是应用程序判断某个开关,如接通(为0),则进入ISP模式,否则状态不变运行用户程序。显然该方法也必须在应用程序中嵌入“开关判断”代码(参见上述“使用指南”程序清单1.4)。一般都用于应用程序的升级编程。ISP编程的上位机程序可使用FlashMagic或ZlgISP900,其中ZlgISP900上述三种方法都可以,但不支持ICP编程。而FlashMagic支持方法(1)和(2)以及ICP编程,对于“3脉冲法”,编程前必须将其“Advanced Option”中“Hardware Config”的“Use DTR and RTS to enter ISP”勾选上,而“帧间隔法”则不能勾选,此外,除非MCU是全新空片或者确定其引导状态位(Status Bit)为1,否则进行ISP编程之前必须通过ISP菜单中“Start Bootloader”的“Send Break Condition”发送“3脉冲”或“帧间隔”才能使MCU进入ISP模式,而且要求:“Interface”选“None(ISP)”;“Baud Rate”选“7200”(内部RC振晶)。

注意:由于FlashMagic每次发ISP命令前要发2个同步码(大写字符U,原理后面阐述),因此其成功率比ZlgISP900。

3、LPC900出厂全新原装空片,其引导状态位(Boot Status Bit)=1,加电复位后MCU自动进入ISP模式,不必再通过“3脉冲法”和“帧间隔法”进入ISP,在MCU接收上位机ISP命令前,上位机必须通过发同步字符“U”让MCU自动跟踪串口通信波特率,上位机收到MCU回送的“U”表示跟踪成功,然后就可进行各种ISP操作了,如读ID,读配置信息,擦除、编程、加密Flash等。

(1)由于全新空片MCU加电复位后已自动进入ISP模式,因此ZlgISP900上述三种方法均可进行ISP编程。FlashMagic也不需“Send Break Condition”。(2)FlashMagic每次发ISP命令前要发2个同步字符“U”,而ZlgISP900只在执行“进入ISP模式”命令时发同步字符“U”。

(3)同步字符“U”的十六进制代码是0x55,在MCU的RXD上(加上“起始位”)实际上就是一串方波,便于MCU自动跟踪测算波特率。由于MCU是自动跟踪上位机串口通信波特率的,因此FlashMagic 或 ZlgISP900的波特率选择不是很重要的,不过一般建议选择7200或9600。

4、下载用户应用程序到MCU时要注意,必须先将配置参数中引导状态位设置为0,否则即使成功下载应用程序,复位后也无法正常运行,因状态位=1,加电复位后MCU会自动进入ISP模式的。

ZlgISP900开始运行后或在读入加载文件(*.hex)后总是自动将引导状态位置为1(也许是个小Bug?),因此必须在读入文件后,先将“安全级别”改为“弱级”,再进入“查看配置信息”,去掉“引导向量=0x1”前的“√”去掉,并点击“设置配置信息至缓冲区”,然后才能将应用程序和配置信息下载到MCU。FlashMagic在下载应用程序时会自动将引导状态位置为0的。

如果使用ZlgISP900在下载应用程序时将状态位置为1了,唯一的办法就是将状态位设置为0后重新下载一次配置信息。

5、虽然ISP编程方法(“3脉冲法”除外)简单方便,而且成本很低,但许多LP900的用户发现其成功率很低,特别是对刚买来焊上的新片,成功率更低。归纳起来有如下三大类故障:

(1)第一次编程成功了,但用户程序没有正常运行。

(2)已下载用户程序并正常运行,但无法再进行ISP编程。

(3)使用ZlgISP900时,点击“进入ISP”后显示“成功进入ISP状态”,但无法进行ISP操作,如读ID显示出错;使用FlashMagic进行ISP操作时显示通信失败,并显示“Failed Autobaud”。这种情况对于刚焊上的空片出现最多。对于这三种情况,首先要解决的是所使用的MCU是不是买的全新原装产品,现在市面上有很多“翻新片”,性能很差,工作不稳定。其次是尽量使用物理串口,因为USB转串口工作不稳定,其驱动程序也容易出问题。

第一类故障一般都是下载应用程序时没有将状态位置为0。解决办法很简单,只要重新将状态位置为0写入MCU即可。

第二类故障稍复杂些,如果是使用“帧间隔法”,最有可能的原因是没有将“帧间隔法”初始化代码嵌入到应用程序中,另一种可能性是编程时不小心把MCU的ISP程序所占扇区(LPC933是扇区3,其它是扇区7)给擦除掉了,如果出现这种情况,唯一的办法就是将ISP程序源码(可从网上下载到)嵌入到用户程序工程中重新编译,并使用ICP或编程器下载到MCU中。

第三类故障出现最多,情况也最复杂,这也是国内很多用户不愿意使用LPC900的原因之一,特别是以前使用过其它MCU的(如STC的51系列单片机),ISP下载很方便,很可靠。尽管NXP和FlashMagic官方网站或论坛上指出出现这种故障的原因大部分是用户使用不当引起的(参见“http://forum.flashmagictool.com/index.php?topic=3628.0”),但据笔者多年开发经验来看,还是NXP LPC900的ISP程序(或者是FlashMagic、ZlgISP900?)在设计上不够完善引起的,特别是ISP程序中的“自动跟踪波特率”(Autobaud)在设计上可能有点小Bug,经常失败!(Failed Autobaud),导致串口无法正常通信。

对于这种故障,笔者有点小经验:就是先运行FlashMagic或ZlgISP900使MCU进入ISP模式(如果是全新空片已进入ISP模式就不必运行了!),退出程序后再运行“串口调试助手”,自动重复发送同步字符“U”(0x55),当正确接收到字符“U”时表示MCU波特率跟踪成功,然后再运行FlashMagic或ZlgISP900便可进行ISP操作了,注意波特率要选择与“串口调试助手”一致(一般是9600)。

第四篇:关于51系列单片机中断嵌套

说最基本的,老的51单片机(80C51系列)有5个中断源,2个优先级,可以实现二级中断服务嵌套。现在很多扩展的51单片机已经有4个优先级(或更多)和更多的中断源了。

在说到中断之前,我先来定义一下优先级,明白了什么是优先级,后面的阐述就容易明白了。实际上很多人都是混淆了优先级的含义,所以才觉得糊里糊涂。

中断的优先级有两个:查询优先级和执行优先级。

什么是查询优级呢?我们从datasheet或书上看到的默认(IP寄存器不做设置,上电复位后为00H)的优先级:

外部中断0 > 定时/计数器0 > 外部中断1 > 定时/计数器1 > 串行中断 或 int0,timer0,int1,timer1,serial port 或 INT0、T0、INT1、T1、UART 或 PX0>PT0>PX1>PT1>PS>......其实都是查询优级。首先查询优先级是不可以更改和设置的。这是一个中断优先权排队的问题。是指多个中断源同时产生中断信号时,中断仲裁器选择对哪个中断源优先处理的顺序。而这与是否发生中断服务程序的嵌套毫不相干。当CPU查询各个中断标志位的时候,会依照上述5个查询优先级顺序依次查询,当数个中断同时请求的时候,会优先查询到高优查询先级的中断标志位,但并不代表高查询优先级的中断可以打断已经并且正在执行的低查询优先级的中断服务。

例如:当计数器0中断和外部中断1(按查询优先级,计数器0中断>外部中断1)同时到达时,会进入计时器0的中断服务函数;但是在外部中断1的中断服务函数正在服务的情况下,这时候任何中断都是打断不了它的,包括逻辑优先级比它高的外部中断0计数器0中断。

而中断的执行优先级就是你对IP寄存器的设置了。在2个优先级的情况下,某位为1,则相应的中断源为高优先级;为0,则为低优先级。

关于中断的优先级有三条原则:

1、CPU同时接收到几个中断时,首先响应优先级最高的中断请求;

2、正在进行的中断过程不能被新的同级或低行优优先级的中断请求所中断;

3、正在进行的低行优优先级中断服务,能被高行优优先级中断请求中断;

若:同一执行优先级中的中断申请不止一个时,则有一个中断优先权排队问题。同一执行优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,优先权自高到低的顺序即: 外部中断0>定时/计数0>外部中断1>定时/计数1>串行接口

例如:设置IP = 0x10,即设置串口中断为最高优先级,则串口中断可以打断任何其他的中断服务函数实现嵌套,且只有串口中断能打断其他中断的服务函数。若串口中断没有触发,则其他几个中断之间还是保持逻辑优先级,相互之间无法嵌套。

关于中断嵌套。可以这样说,当一个中断正在执行的时候,如果事先设置了中断优先级寄存器IP,那么当一个更高优先级的中断到来的时候会发生中断嵌套,如果没有设置则不会发

生任何嵌套;如果有同一个优先级的中断触发,它并不是在“不断的申请”,而是将它相应的中断标志位置即IE寄存器的某位置位,当CPU执行完当前中断之后,按照查询优先级重新去查询各个中断标志位,进入相应中断。

要记住,没有设置IP时,单片机会按照查询优先级(或都说逻辑优先级)来排队进入服务。如果要想让某个中断优先响应,则要设置IP,更改执行优先级(或者说物理优先级)。要注意的是,当设置了IP后,当低执行优先级中断在运行时,如果有高执行优先级的中断产生,则会嵌套调用进入高执行优先级的中断。如果你是用C语言写的程序,并在中断服务时 using 了寄存组,要注意,两个不同执行优先级的中断服务程序不要 using 同一组寄存器。

看两个问题,如下: 在各个中断都是低优先级的时候,如果定时器0的溢出进入中断。在这个中断处理的过程中,外部中断0也被触发了,那么是不是要发生中断嵌套? 如果定时器0发生中断的时候,进入中断处理程序,这个时候外部中断1条件触发条件满足了。因为定时器0自然优先级比外部中断1高,那么定时器0的中断处理程序继续执行。假设定时器中断处理程序执行的过程中,外部中断1的触发。条件消失了,那么等定时器0的中断处理完后,程序还是会进入外部中断1处理程序吗?

答案1:在IP事先设置了外部中断0的优先级的情况下,CUP会中止定时器0的中断服务,进入外部中断0服务程序,执行完以后再回到定时器0中断服务程序。否则不会。

答案2:肯定会进入中断的;外部中断1的触发条件满足后会置位外部1的中断标志,即使后来外部中断1的触发条件消失了,也不会清除已置位的中断标志,所以等定时器0的中断处理完后,程序判断外部中断的中断标志为1后依然会进入外部中断1处理程序的,只有在外部中断1处理程序中执行reti指令才会硬件清除外部中断1的中断标志(这也正是为什么中断返回使用reti指令而不可以用ret替换的原因)...

第五篇:单片机项目总结

单片机项目总结

段绍峰、王春光、于和善

一、团队遇到的难题及解决方案

1、我们再买器件时,由于不知道型号以及性能指标,所以买了很多并不需要的器件,并且有时买不到需要的器件,所以被迫更改电路设计。

2、在设计的过程中,编辑的程序不能应用到我们的硬件中,比如时钟的程序不能使始终运行,以及温湿度显示不够准确。在这种情况下,我们不断更改程序,比如调整LCD的偏置电压,有时还更改连接的端口,最后解决了两个显示问题。

3、起始时,我们并没有弄懂数码管的共阴以及共阳接法,导致电路连接错误,最后检查后改正了电路焊接。并且初始时并没有搞懂窗帘控制芯片的输入电压的定义,所以导致输入电压过高,烧坏了芯片,解决方法就是换了一个芯片重新进行了连接。

4、在编写时钟的程序时,开始不会编写音乐的程序,经过Google后,明白音乐的编写时通过改变输出信号的频率以及长短来改变声音,最后实现了音乐的编写。而且开始时并不知道DHT11芯片的信号的读取,所以便在网上搜索数据手册,弄懂其信号的输出时输出二进制数,并且通过时间长短代表0和1,于是懂得了其程序的编写。

5、由于我们的智能家居是由三部分实现,所以需要的端口很多,一个单片机不够,最后在我们减少端口使用未果后,便采取了使用三

个单片机的策略,实现了我们的项目。

二、团队管理

通过单片机课上的系统设计项目,作为一个三人组成的团队,我们在团队管理方面都深有体会。

团队成员都要有责任感,每个人都要积极做项目,对单片机有很高的兴趣,遇到困难决不退缩。并且对项目的总体要有一定的把握与了解,能够做到相互监督,相互督促。在遇到问题是相互帮助,齐心协力解决。但是团队也是需要责任分配的,每个人都要负责好自己的职责,最后能够保证完成自己的任务,最后能够经过大家的共同努力完成单片机项目。

三、课程设计体会

1、在项目的制作中,能够充分利用我们学过的知识,并且能增强我们对知识的利用能力,电路的设计与焊接,以及程序的编辑都得到了充分的锻炼。并且在项目的制作过程中,我们根据自己的需要学习知识,并且把知识应用到制作中,这是先明确问题所在,通过一切渠道寻找知识来源,学习,再应用。这是我们在高中没有接触过的全新的学习方法,让我们受益匪浅。

2、在设计的过程中,我们先是设计温室控制,以及窗帘的定时的半自动升降,但是在制作过程发现这些并不是很好做,而且我们还把继电气控制电路和窗帘控制芯片烧掉,这些都是我们未曾想到的问题,但是我们及时改正思路,最后完成了我们的项目。这是我们明白

不要盲目自信,有时要量力而行。

3、我们在做单片机时,花费了很多的时间,而且更改了好几次电路,浪费了不少的东西,成本控制的有点高,超出了我们的预期。所以我们以后再做项目需要更加详细的计划,争取能够以最小的成本收获最好的结果。

四、项目成员贡献排序

段绍峰完成了窗帘控制电路,并且制作了小房子,完成网站设计;王春光完成了音乐始终的设计与制作,并且完成了我们的结题论文。于和善完成了温湿显示电路的设计与制作,并且制作了PPT以及单片机项目总结。三人共同完成了我们的实验进程与感想。

所以三人的贡献为:段绍峰33%,王春光 33%,于和善33%。

五、课程改革建议

1、希望能够更新我们的实验装备,让我们使用更加方便。

2、望能够每星期都有实验,并且每天都能开放实验室。并且希望老师以及学长能够给我们更多的帮助。

3、能够推荐更加适应我们的辅助丛书,帮助我们学习。

下载单片机总结系列-1word格式文档
下载单片机总结系列-1.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    单片机教学总结

    2014—2015学年第二学期《单片机应用技术》课教学总结 本学期本人担任电气中职13-1班《单片机应用技术》课的教学任务,为了顺利完成本门课的教学任务,本人能从各方面作起,现总......

    单片机课程设计总结

    单片机课程设计总结 做了两周的课程设计,有很多的心得体会,有关于单片机方面的,更多的是关于人与人之间关系方面的。我们组一共有三个人,但其他两个人是真的神龙见首不见尾,除了......

    单片机串口总结

    51单片机串口总结 有句话说“尽信书不如无书”,要学好单片机就要不断的、大胆的实验,要多怀疑,即使我们的怀疑最终被证明是错误的那么这也是进步(人们认识事物很多情况下来源于......

    单片机课程设计总结

    单片机课程设计心得体会: 这个学期的单片机课已经早早的上完了,但是理论纯属理论,没有与实践的结合总让我们学的不踏实,感觉没有达到学以致用的效果。所庆幸的是在课程介绍考试......

    单片机实验总结

    单片机原理及接口技术实验总结 本学期的单片机实验转眼已到尾声,共做了六项实验,分别是KEIL4、ISP下载软件的安装于使用、P1口输出循环灯实验、P1口转弯灯实验、P3.3口输入......

    单片机课程设计总结

    《单片机技术实践》课程设计总结本课程实践的目的是,掌握单片机测量模拟量和数字量的测量方法,掌握单片机的外部控制方法,掌握单片机的显示器、键盘的扩展方法。通过学习和设计......

    单片机实习总结

    单片机实习总结为期四周的单片机实习结束了,回忆起这次实习的经历,自己感到受益匪浅,收获颇丰。通过对单片机小系统的设计、焊接、装配,掌握电路原理图及电子线路的基本焊接装配......

    单片机考点总结

    一:80C51单片机在功能上分为基本型和增强型,在制造上采用CHMOS工艺。在片内程序存储器的配置上有掩膜ROM,EPROM,和Flash,无片内程序存储器等形式。80C51单片机由微处理器,存储器,I......