




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
盐城工学院本科生毕业设计说明书(2009)单片机原理与接口技术课程设计说明书 中断系统及中断优先级实验项目设计专业电气工程及其自动化学生姓名 吴春阳班级 电气125学号 指导教师 吴春阳完成日期 2016年1 月7 日 1盐城工学院课程设计说明书(2015)目 录一 理论部分11课题要求与内容12 系统方案设计23 系统硬件的设计34 系统软件设计9二 实践部分91 系统硬件原理简介92 系统硬件调试中出现的问题及解决措施123 系统软件12 3.1 软件设计123.2软件调试中出现的问题及解决措施14三 实验指导.14 1 实验目的.14 2 实验设备.15 3 实验要求.15 4 实验原理.15 5 实验内容.18 6 实验报告.19 7 参考程序清单.20 8 问题.23四 结束语.24五 附录.25 附录1 仿真图.25 附录2 元器件清单.26 附录3 实物图.27 附录4 参考文献.29 中断系统及中断优先级实验项目设计一 理论部分1课题要求与内容课题要求:(1) 扩展1个LED数码管(2) 用2个按键模拟外部中断源(3) 按键独立模拟中断,INT0中断时显示0,INT1中断时显示1,主程序显示8(4) 中断优先级控制,INT1中断级高2 系统方案设计 中断装置和中断处理程序统称为中断系统。 中断系统是计算机的重要组成部分。实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统。中断系统的应用大大提高了计算机效率 不同的计算机其硬件结构和软件指令是不完全相同的,因此,中断系统也是不相同的。计算机的中断系统能够加强CPU对多任务事件的处理能力。中断机制是现代计算机系统中的基础设施之一,它在系统中起着通信网络作用,以协调系统对各种外部事件的响应和处理。中断是实现多道程序设计的必要条件。 中断是CPU对系统发生的某个事件作出的一种反应。 引起中断的事件称为中断源。中断源向CPU提出处理的请求称为中断请求。发生中断时被打断程序的暂停点成为断点。CPU暂停现行程序而转为响应中断请求的过程称为中断响应。处理中断源的程序称为中断处理程序。CPU执行有关的中断处理程序称为中断处理。而返回断点的过程称为中断返回。中断的实现实行软件和硬件综合完成,硬件部分叫做硬件装置,软件部分成为软件处理程序。为使系统能及时响应并处理发生的所有中断,系统根据引起中断事件的重要性和紧迫程度,硬件将中断源分为若干个级别,称作中断优先级。根据课题要求,设计电路,确定元器件及其参数。用ISIS 7 Professional软件画出仿真图。用Keil软件编写程序,编译正确后生成HEX文件。将程序输入到仿真图中观察是否符合课题要实现的现象,满足的话将程序用烧录软件烧录到焊接好的万能板上,实现用硬件显示的要求。3 系统硬件的设计 硬件电路大致包括成单片机系统、单片机外围电路、8个发光二极管显示电路三个部分组成(1) 单片机系统单片机采用STC89C51芯片,在系统可编程时,无需编程器,无需仿真器,可直接在个人电脑上烧录程序到单片机。 图1.STC89C51芯片功能图 STC89C52RC/RD+系列单片机是宏晶科技推出的新一代超强抗干扰/高速/低功耗的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可任意选择,最新的D版本内部集成MAX810专用复位电路。 at89c51双列直插和smt两种封装的芯片引脚图管脚说明: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。(2) 单片机外围电路 图2 单片机外围电路晶振电路 51单片机片内有一个由高增益反向放大器构成的振荡器。反向发达器的输入 端XTAL1,输出端XTAL2,两端跨接石英晶体及两个电容形成稳定的自激振荡器电容通常取22pf左右。按键切换显示方式,如图3所示。 按K1显示:数码管显示0 按K2显示:数码管显示1。 图3 按键切换显示(3) 8个发光二极管显示电路 由8个二极管8个1K电阻组成的显示电路。图4所示。 图4 数码管显示电路4 系统软件设计(5) 用Keil软件编写程序,编写主程序模块、按键独立模拟中断,INT0断时显示0,INT1中断时显示1,主程序显示8。二 实践部分1 系统硬件原理简介 单片机 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 系统芯片共有40个引脚,引脚的排列顺序为从靠芯片的缺口(见图5)左边那列引脚逆时针数起,依次为1、2、3、4。40,其中芯片的1脚顶上有个凹点(见图5)。在单片机的40个引脚中,电源引脚2根,外接晶体振荡器引脚2根,控制引脚4根以及4组8位可编程I/O引脚32根。 图5 89C51、89C52引脚图引脚功能说明 :Vcc:电源电压GND:地 P0 口:P0 口是一组8 位漏极开路型双向I/O 口,也即地址/数据总线复用。作为输出口用时,每位能吸收电流的方式驱动8 个TTL 逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0 口接受指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1 口:P1 是一个带内部上拉电阻的8 位双向I/O 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。P2 口:P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。在访问外部程序存储器或16 位四肢的外部数据存储器时,P2 口送出高8 位地址数据,在访问8 位地址的外部数据存储器时,P2 口线上的内容(也即特殊功能寄存器(SFR)区中R2 寄存器的内容),在整个访问期间不改变。Flash 编程和程序校验时,P2 也接收高位地址和其他控制信号。P3 口:P3 是一个带有内部上拉电阻的8 位双向I/O 口,P3 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。P3 口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。 ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。即使不访问外部存储器,ALE 仍以时钟振荡频率的1/6 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是,每当访问外部数据存储器时将跳过一个ALE 脉冲。PSEN:程序存储允许输出是外部程序存储器的读选通型号,当89C51 由外部存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN 信号不出现。 EA/VPP:外部访问允许。欲使CPU 仅访问外部程序存储器(地址为 0000HFFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA 端状态。如EA 端为高电平(接Vcc 端),CPU 则执行内部程序存储器中的指令。Flash 存储器编程时,该引脚加上+12v 的编程允许电源Vpp,当然这必须是该器件使用12v 编程电压Vpp。 XTAL1:振荡器反相放大器及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。89C51 中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1 和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。外接石英晶体或陶瓷谐振器及电容C1、C2 接在放大器的反馈回路中构成并联振荡电路。对电容C1、C2 虽没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使用石英晶体,我们推荐电容使用30Pf10 Pf,而如使用陶瓷谐振器建议选择40Pf10Pf。用户也可以采用外部时钟。这种情况下,外部时钟脉冲接到XTAL1 端,即内部时钟发生器的输入端XTAL2 则悬空。2硬件调试中出现的问题及解决措施 当所有元器件都到了准备焊接的时候,我没有用万用表依此检查元器件好坏。直接把元器件按照电路直接焊上去,当我把程序烧录进去之后,按键K1、K2发光二极管没有变化。 解决措施:我重新拿万用表,一遍一遍的检查了电路。最后,发现是我按键接错了。3 系统软件3.1 软件设计程序如下:#include#include#define uchar unsigned char#define uint unsigned intsbit k1=P32;sbit k2=P33;/*全局变量*/uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e; /公阳极void init() PX1=1; /外中断1为高级别 EX0=1;EX1=1; /开外部中断 IT0=0;IT1=0; /低电平触发 EA=1; /开总中断/*外部中断0中断程序 */void external0() interrupt 0 while(1) P2=table0; /显示0 if(k1) break; /*外部中断1中断程序 */void external1() interrupt 2 while(1) P2=table1; /显示1 if(k2) break; /*主函数*/void main() init(); /中断初始化 while(1) P2=table8; /显示8 三、实验指导1、实验目的1.1掌握单片机中断机制1.2熟悉中断的应用和编程1.3用 PROTEUS设计、仿真基于AT89C51单片机的中断优先级实验1.4掌握发光二极管的控制方法2、实验设备2.1 USB通讯线2.2 单片机最小系统、发光二极管阵列显示模块、独立式键盘模块2.3 计算机2.4 电烙铁、锡、小斜口钳3、实验要求3. 1学习单片机中断机制,及中断优先级和中断保护的方法。3.2根据实验电路图,在Keil程序编辑器中编写程序。3.3用Proteus仿真软件画出实验电路图,将在uVision的程序写入到仿真软件中,观察实验现象。3.4连接好实验模块,完成中断优先级功能4、 实验原理通常一个微处理器读取外围设备(如键盘等)的输入信息的方法有轮询(Polling)及中断(Interrupt)两种。轮询的方法是CPU依照某种既定法则,依序询问每一外围设备IO是否需要服务,此种方法CPU需花费一些时间来做询问服务,当IO设备增加时,询问服务时间也相对增加,因此势必浪费许多CPU时间,降低整体运行的效率。使用中断是一个较好的解决方法。使用中断使系统对外部设备的请求响应更加灵敏,并且不需要占用CPU的时间进行轮询。但是,当使用中断,特别是有多个中断嵌套时要特别注意内存单元内容的保护。4.1 80C51中断结构 当中断发生后,程序将跳至对应中断入口地址去执行中断子程序,或称中断服务例程(Interrupt Service Routine),这些特殊的地址称为中断向量,例如当80C51外部中断INTl发生时,会暂停主程序的执行,跳至地址0013H去执行中断服务例程,直到RETI指令后,才返回主程序继续执行。MCS-51系列的程序内存中有7个矢量地址,叙述如下:(1)00H复位当第9脚RESET为高电平,CPU会跳至地址00H处开始执行程序,亦即程序一定要从地址00H开始写起。(2)03H(外部中断0)当INT0引脚由高电位变至低电位时,CPU会接受外部中断0,并跳至地址03H处去执行中断子程序。(3)0BH(计时/计数器0中断)当CPU接受计时计数器0中断置位而产生中断要求时,会跳至地址0BH处去执行中断子程序。(4)13H(外部中断1)当INTl引脚由高电位变至低电位时,CPU会接受外部中断1,并跳至地址13H处去执行中断子程序。(5)1BH(计时计数器1中断)当CPU接受计时计数器1中断置位而产生中断要求时,会跳至地址1BH刻去执行中断子程序。(6)23H(串行中断1)当串行端口传送数据或接收数据完毕时,CPU会接受串行中断,并跳至地址23H处去执行中断子程序。(7)2BH(计时计数器2中断)当CPU接受计时计数器2产生中断要求时,会跳至地址2BH处去执行中断子程序。此中断仅8052系列才有。4.2 中断使能位8051针对中断提供两层使能,第一层为EA全局使能控制,第二层为分别控制EX0,ET0、EXl、ETl、ES、ET2。当8051在初始状态时,寄存器的各个中断使能位都预设为“0”,即所有中断都禁止,故欲允许中断时,应先使能相对应的中断。当中断产生后,此中断状态会记录于定时器计数器控制寄存器(TimerCounterControlRigister,TCON)的中断请求标志(InterruptRequest flag)中,当标志被设立,表示中断已发生。由图20-1可知,当外部中断或定时器0、定时器1中断发生时,CPU都可以判别是哪种中断。因此当这四个中断发生时,中断服务例程被执行后,CPU会主动清除中断请求标志,对于其他的中断,由于CPU无法判别,因此中断请求标志需由程序指令来清除。另外,在TCON中尚有两个位称为中断型式控制位(Wype control bit),经由这两个位的设定,可以边择外部中断为负边缘触发或低电平触发。欲设定中断使能与否,必须规划位于特殊功能寄存器中的中断使能寄存器IE(Interrupt Enable Register),其位于地址A8H,是一个可位寻址的寄存器。4.3 中断保护由于各个中断执行的起始地址间仅有8个Bytes,因此欲在此空间内完成中断服务例程是有困难的。通常中断服务例程是置于主程序后面,而在中断向量地址只书写跳跃指令,跳至相对应中断服务例程去执行。当执行新的中断服务例程时,注意不可以破坏旧有的数据和状态,因此在编写时还要保存各个寄存器的数据。通常会被更改的数据(如ACC、PSW等),可以利用堆栈在执行中断服务例程之前就将其PUSH起来,待执行结束后再将相关寄存器POP即可。另外,因为8051可任意选择四个寄存器库中的一组寄存器,所以利用选择不同寄存器库的方式亦可达到数据保存的目的。4.4 中断优先级8051对于各种中断优先权采用双层结构,首先对于优先权可由中断优先权寄存器(Interrupt Priority IP)设定该中断为高优先权或低优先权,高优先权可以中断低优先权,但是当优先权相同时(都为高优先权或低优先权),则由内部的轮询顺序决定哪一个中断被接受,轮询次序如图1-1所示。IT0选择低准位或负沿触发IT1选择低准位或负沿触发IE0IE1高优先级低优先级 高 低NT0TE0-INT1TF1R1T1TF2EXF2+EX0ET0EX1ET1ESPT2EAPSPT1PX1PT0PX0ET2 图1-1 MCU内部中断机制 IP寄存器:PSPT1PX1PT0PX0(MSB) (LSB)PX0,PX1:外部中断0,1的中断优先级控制;1-高优先级,0-低优先级。PT0,PT1:定时器/计数器0,1的中断优先级控制;PS:串行口中断优先级控制。IP中对应位全为零时,CPU按照片内硬件优先级来顺序响应中断:中断源外部中断0 高定时器/计数器0外部中断1定时器/计数器1串行口中断 低5、 实验内容 (1)使用proteus仿真软件连接电路仿真原理图; (2)编写功能要求的程序,生成.HEX文件; (3)将.HEX文件下载到仿真电路中,查看仿真效果; (4)如果仿真没有问题,连接实验电路板到下载器,将.HEX文件下载到单片机中; (5)观察实验现象,是否符合实验要求; (6) 如果错误,继续检查直到得出正常的现象。6 参考程序清单6.1 汇编语言程序 ORG 0; JMP START; ORG 03H; JMP INT0; ORG 13H; JMP INT1;START: MOV IE.#B; MOV SP.#30H; SETB IT0; SETB IT1; SETB IP.0; MOV A.#01H;LOOP: MOV P2.A; CALL DELAY; RR A; JMP LOOP;INT0: PUSH PSW; PUSH A; SETB RS0; MOV R0.#8;INT0_LOOP0: MOV A.#00H;INT0_LOOP1: MOV P2.A; CALL DELAY;MOV A,#00H;DJNZ R1.INT0_LOOP1;DJNZ R0.INT0_LOOP0;POP A;POP PSW;RET1;INT1: PUSH PSW; PUSH A;CLR RS0;SETB RS1;MOV R0.#8;INT1_LOOP1: MOV A.#FFH;INT1_LOOP1: MOV P2.A; CALL DELAY;CPL A;DJNZ R1.INT1_LOOP1;DJNZ R0.INT1_LOOP0;POP A;POP PSW;RET1;DELAY: MOV R7.#250;D1: MOV R6.#500; DJNZ R6.$;DJNZ R7.D1;RETEND6.2 C51程序#include#include#define uchar unsigned char#define uint unsigned intsbit k1=P32;sbit k2=P33;/*全局变量*/uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e; /公阳极void init() PX1=1; /外中断1为高级别 EX0=1;EX1=1; /开外部中断 IT0=0;IT1=0; /低电平触发 EA=1; /开总中断/*外部中断0中断
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高效开发流程2025年考试试题及答案
- 现代社会中的编程语言选择与应用试题及答案
- 吉林省长春市第二实验学校2025年数学八下期末达标检测模拟试题含解析
- 社会实践活动在幼儿园的开展计划
- 教学资源共享与借用策略计划
- 湖北省黄冈市麻城市思源实验学校2025届八下数学期末综合测试模拟试题含解析
- 2024年宁夏开放大学辅导员考试真题
- 2025届福建省南安市柳城义务教育小片区八年级数学第二学期期末质量跟踪监视试题含解析
- 2024年黑龙江省体育局下属事业单位真题
- 黑龙江省七台河市名校2025届八下数学期末教学质量检测模拟试题含解析
- 病假医疗期申请单(新修订)
- 95598工单大数据分析及压降策略
- 《游园不值》-完整版课件
- 钻孔桩钻孔记录表(旋挖钻)
- 660MW机组金属监督项目
- 大连银行招聘考试最新笔试复习材料题目内容试卷真题复习
- 卷烟纸生产工艺
- JBK-698CX淬火机数控系统
- 肩关节镜下肩袖修补术的护理查房ppt
- 回旋镖运动轨迹的模拟
- 《康复医学》PPT课件(PPT 105页)
评论
0/150
提交评论