单片机原理及应用(第六讲)_第1页
单片机原理及应用(第六讲)_第2页
单片机原理及应用(第六讲)_第3页
单片机原理及应用(第六讲)_第4页
单片机原理及应用(第六讲)_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计举例汇编语言编程环境及ISIS仿真介绍MCS-51中断系统,第六讲,一、程序设计举例,对于编程工作,正确的设计思路应该是首先对设计任务作出透彻的分析,然后根据分析的情况设计出总体方案,按总体方案的要求画出流程图,最后一步步实现源程序。,1、程序流程图真正的程序设计过程应该是流程图的设计,编程只是将设计好的程序流程图转换成程序设计语言。程序流程图和对应的源程序是等效的,但程序流程图给人更明确、直观,且便于查错和修改。,第六讲,第四章MCS-51汇编语言程序设计,(1)程序流程图的画法先粗后细的原则只考虑逻辑结构和算法,不考虑或少考虑具体指令。集中精力考虑程序的结构,保证程序的合理性和可靠性,余下的工作就是进行指令的代换。第一步:进行最初始规化,画出第一张流程图。第二步:将第一张流程图的各个子任务进行细化,并决定每个子任务采用什么算法。这一步的主要任务就是设计算法。画出第二张流程图。第三步:根据算法要求,为每一个参数、中间结果、各种指针、计数器分配存储单元,确定数据类型和数据结构,完成第三张流程图。,第六讲,第四章MCS-51汇编语言程序设计,(2)从程序流程图到程序画好流程图后,就可以比较方便地进行编程设计了。从二维图形变成一维的程序;从功能描述变成具体的指令实现。,第六讲,第四章MCS-51汇编语言程序设计,2、简单程序就是一种顺序程序,既无分支又无循环。例一:现有两个双字节无符号数,分别存放在R3R4,R5R6中,高字节在前,低字节在后,编程使两数相加,和数存放到20H21H22H单元中。,第六讲,第四章MCS-51汇编语言程序设计,ORG2000HCLRCMOVA,R4ADDA,R6MOV22H,AMOVA,R3ADDCA,R5MOV21H,AMOVA,#00HADDCA,#00HMOV20H,A,JMP$END,第六讲,第四章MCS-51汇编语言程序设计,例二:将一个单字节的十六进制数转换成BCD码,单字节数存放在23H中,转换后,R5存放百位,R6存放十位和个位。,ORG0000HMOVA,23HMOVB,#100DIVABMOVR5,AXCHA,BMOVB,#10DIVAB,SWAPAADDA,BMOVR6,AJMP$END,第六讲,第四章MCS-51汇编语言程序设计,3、分支程序实际的应用程序中,程序不可能始终是直线执行的,常要求计算机能够作出一些判断并根据判断作出不同的处理,这就会产生一个或多个分支,体现计算机的智能。(1)简单分支例三:比较两个无符号8位二进制数的大小,将大的数存入低地址中,设两数分别存在30H和31H中。,第六讲,第四章MCS-51汇编语言程序设计,ORG0000HLJMPSTARTORG1000HSTART:CLRCMOVA,30HSUBBA,31HJNCNEXTMOVA,30HXCHA,31HMOV30H,ANEXT:JMPNEXTEND,第六讲,第四章MCS-51汇编语言程序设计,(2)多重分支例四:设变量x存入36H单元中,求得函数y的值存入37H中。编程按下式要求给y赋值:x+10(x=10)y=0(10x=5)x-10(0x5),第六讲,第四章MCS-51汇编语言程序设计,ORG0000HLJMPSTARTORG0100HSTART:CLRCMOVA,36HCJNEA,#5,M0M0:JCM1CLRCCJNEA,#0AH,M2MM:JCM2ADDA,#0AHSJMPEN,M1:CLRCSUBBA,#10SJMPENM2:MOVA,#0EN:MOV37H,ASJMP$END,第六讲,第四章MCS-51汇编语言程序设计,4、循环程序(1)单循环例五:求1、2、3、n之和(设n256)解:R5作循环次数计数器R6作和数高位字节寄存器n存于内部RAM23H中最终和存入23H、24H中,第六讲,第四章MCS-51汇编语言程序设计,ORG0000HLJMPSTARTORG0200HSTART:MOVR5,23HCLRAMOVR6,#00MOVR4,#01HLOOP:CLRCADDA,R4JNCNEXTINCR6,NEXT:INCR4DJNZR5,LOOPMOV23H,R6MOV24H,ASJMP$END,第六讲,第四章MCS-51汇编语言程序设计,(2)多重循环例六:延时10ms子程序,设主频率为6MHz。解:主频为6MHz,机器周期即为2us,那么执行一条DJNZ的指令时间为2us,所以:,第六讲,第四章MCS-51汇编语言程序设计,DELY:MOVR5,#100DLY0:MOVR4,#50DLY1:DJNZR4,DLY1;50*2=100usDJNZR5,DLY0;100*100=10msRET,第六讲,第四章MCS-51汇编语言程序设计,5、查表程序就是把事先计算或测得的数据按一定的顺序编制成表格,存放在程序存储器中。例七:一个十六进制数存放在HEX单元的低四位,将其转换成ASCII码,并送回HEX单元。,第六讲,第四章MCS-51汇编语言程序设计,ORG0000HHEXEQU33HLJMPBIGAINORG0200HBIGAIN:MOVA,HEXANLA,#0FHADDA,#03HMOVCA,A+PCMOVHEX,ARETASCTAB:DB30H,31H,32H,33H、34H、35H、36H、37HDB38H、39H、40H,第六讲,第四章MCS-51汇编语言程序设计,二、汇编语言编程环境及ISIS仿真介绍(在系统环境下作演示介绍),第六讲,第四章MCS-51汇编语言程序设计,三、中断的概念(第5章MCS-51的中断系统),单片机对内、外随机发生的事件的处理是采用查询和中断两种方式。查询方式:方便、简捷、不增添硬件电路,但会大量占用CPU的工作时间。中断方式:增加了一定的硬件电路,但提高了对突发事件的响应速度,且不占用CPU工作时间。,什么是中断?中断响应过程?中断服务(中断服务程序)?中断系统、中断源、中断请求(中断申请)以及中断返回、断点保护等基本概念。,中断流程:,断点,主程序,继续执行主程序,响应中断请求,返回主程序,中断服务程序,四、MCS-51中断系统的结构,MCS-51单片机的中断系统:5个中断源,两级中断优先级,可实现两级中断程序嵌套。用户可以用软件来屏蔽中断请求,也可以用软件使CPU接收中断请求。每个中断源的中断级别均可用软件设置。,中断系统结构见书101页,图5-2,五、中断请求源,1、MCS-51中断系统的5个中断源:(1)INT0:外部中断0,中断标志位IE0(TCON);(2)INT1:外部中断1,中断标志位IE1(TCON);(3)定时器/计数器T0溢出中断,中断标志位TF0(TCON);(4)定时器/计数器T1溢出中断,中断标志位TF1(TCON);(5)串行口中断请求,中断标志位TI或RI(SCON)。,特殊功能寄存器,为定时器/计数器的控制寄存器。其格式如下:,TF1,TR1,TF0,TR0,IE1,IT1,IT0,IE0,8FH,8EH,8DH,8CH,8BH,8AH,89H,88H,TCON,位地址,此控制寄存器中有4位中断请求标志:IE0、IE1、TF0、TF1。硬件置位或清零。,2、TCON字节地址为88H。,特殊功能寄存器,为串行口控制寄存器。其格式如下:,SM0,SM1,SM2,REN,TB8,RB8,RI,TI,9FH,9EH,9DH,9CH,9BH,9AH,99H,98H,SCON,位地址,此控制寄存器中有2位中断请求标志:TI或RI。硬件置位,需用软件清零。,3、SCON字节地址为98H,六、中断控制,1、中断允许寄存器IE字节地址为A8H。其格式为:,EA,ES,ET1,EX1,EX0,ET0,AFH,AEH,ADH,ACH,ABH,AAH,A9H,A8H,IE,位地址,两级控制,允许置“1”,禁止置“0”,2、中断优先级寄存器IP字节地址为B8H,两个中断优先级:高级和低级。IP寄存器格式如下:,PS,PT1,PX1,PX0,PT0,BCH,BBH,BAH,B9H,B8H,IP,位地址,用软件(指令)进行设置,高级置“1”,低级置“0”。,例:设置IP寄存器,使2个外中断为高优先级,其余为低优先级。,(1)用位操作指令:SETBPX0SETB0BAHCLR(0B8H).4CLRIP.1CLR0BBH(2)用字节操作指令MOVIP,#05H或ORLIP,#05H可以吗?,七、中断响应,中断请求被响应,需满足以下条件:(1)该中断源发出中断请求;(2)CPU开放中断;(3)申请中断的中断源的中断允许位为“1”;(4)无同级或更高级中断正在被服务。但下列三种情况,中断不会立即响应:(1)CPU正在处理相同的或更高级的中断。(2)所查询的机器周期不是所执行指令的最后一个机器周期。(3)正在执行的指令是RETI或是访问IE或IP的指令,需要在执行完这些指令后,再执行一条指令才能响应新的中断请求。,中断响应后,CPU将当前PC值压入堆栈(先压PCL,后压PCH),保护断点,并将该中断的入口地址装入PC,从而使CPU执行中断服务程序。,外部中断00003H定时器/计数器T0000BH外部中断10013H定时器/计数器T1001BH串行口中断0023H,中断入口地址:,(1)各中断源发出的中断请求信号,都会标记在MCS-51系统的IE寄存器中。(2)各中断源发出的中断请求信号,都会标记在MCS-51系统的TMOD寄存器中。(3)各中断源发出的中断请求信号,都会标记在MCS-51系统的IP寄存器中。(4)各中断源发出的中断请求信号,都会标记在MCS-51系统的TCON或SCON寄存器中。,1、下列说法错误的是:,(1)当前正在进行高优先级中断处理(2)当前正在执行RETI指令(3)当前指令是DIV指令,且正处于取指令的机器周期(4)当前指令是MOVA,R3,2、中断查询确认后,在下列各种8031单片机运行中,能立即进行响应的是:,(1)同一级别的中断请求按时间的先后顺序顺序响应。(2)同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。(3)低优先级不能中断高优先级,但高优先级能中断低优先

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论