单片机原理及应用(第六讲)

上传人:仙*** 文档编号:244103334 上传时间:2024-10-02 格式:PPT 页数:33 大小:93KB
返回 下载 相关 举报
单片机原理及应用(第六讲)_第1页
第1页 / 共33页
单片机原理及应用(第六讲)_第2页
第2页 / 共33页
单片机原理及应用(第六讲)_第3页
第3页 / 共33页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,程序设计举例,汇编语言编程环境及,ISIS,仿真介绍,MCS-51,中断系统,第 六 讲,一、程序设计举例,对于编程工作,正确的设计思路应该是首先对设计任,务作出透彻的分析,然后根据分析的情况设计出总体方案,,按总体方案的要求画出流程图,最后一步步实现源程序。,1,、程序流程图,真正的程序设计过程应该是流程图的设计,编程只是将,设计好的程序流程图转换成程序设计语言。程序流程图和对,应的源程序是等效的,但程序流程图给人更明确、直观,且,便于查错和修改。,第 六 讲,第四章,MCS-51,汇编语言程序设计,(,1,)程序流程图的画法,先粗后细的原则,只考虑逻辑结构和算法,不考虑或少考虑具体指令。集,中精力考虑程序的结构,保证程序的合理性和可靠性,余下,的工作就是进行指令的代换。,第一步:进行最初始规化,画出第一张流程图。,第二步:将第一张流程图的各个子任务进行细化,并决定每,个子任务采用什么算法。这一步的主要任务就是设,计算法。画出第二张流程图。,第三步:根据算法要求,为每一个参数、中间结果、各种指,针、计数器分配存储单元,确定数据类型和数据结,构,完成第三张流程图。,第 六 讲,第四章,MCS-51,汇编语言程序设计,(,2,)从程序流程图到程序,画好流程图后,就可以比较方便地进行编程设计了。,从二维图形变成一维的程序;,从功能描述变成具体的指令实现。,第 六 讲,第四章,MCS-51,汇编语言程序设计,2,、简单程序,就是一种顺序程序,既无分支又无循环。,例一:现有两个双字节无符号数,分别存放在,R3R4,,,R5R6,中,,高字节在前,低字节在后,编程使两数相加,和数存,放到,20H21H22H,单元中。,第 六 讲,第四章,MCS-51,汇编语言程序设计,ORG 2000H,CLR C,MOV A,R4,ADD A,R6,MOV 22H,A,MOV A,R3,ADDC A,R5,MOV 21H,A,MOV A,#00H,ADDC A,#00H,MOV 20H,A,JMP$,END,第 六 讲,第四章,MCS-51,汇编语言程序设计,例二:将一个单字节的十六进制数转换成,BCD,码,单字节数,存放在,23H,中,转换后,,R5,存放百位,,R6,存放十位和个位。,ORG 0000H,MOV A,23H,MOV B,#100,DIV AB,MOV R5,A,XCH A,B,MOV B,#10,DIV AB,SWAP A,ADD A,B,MOV R6,A,JMP$,END,第 六 讲,第四章,MCS-51,汇编语言程序设计,3,、分支程序,实际的应用程序中,程序不可能始终是直线执行的,常,要求计算机能够作出一些判断并根据判断作出不同的处理,,这就会产生一个或多个分支,体现计算机的智能。,(,1,)简单分支,例三:比较两个无符号,8,位二进制数的大小,将大的数存入低,地址中,设两数分别存在,30H,和,31H,中。,第 六 讲,第四章,MCS-51,汇编语言程序设计,ORG 0000H,LJMP START,ORG 1000H,START:CLR C,MOV A,30H,SUBB A,31H,JNC NEXT,MOV A,30H,XCH A,31H,MOV 30H,A,NEXT:JMP NEXT,END,第 六 讲,第四章,MCS-51,汇编语言程序设计,(,2,),多重分支,例四:设变量,x,存入,36H,单元中,求得函数,y,的值存入,37H,中。,编程按下式要求给,y,赋值:,x+10 (x=10),y=0 (10 x=5),x-10 (0 x5),第 六 讲,第四章,MCS-51,汇编语言程序设计,ORG 0000H,LJMP START,ORG 0100H,START:CLR C,MOV A,36H,CJNE A,#5,M0,M0:JC M1,CLR C,CJNE A,#0AH,M2,MM:JC M2,ADD A,#0AH,SJMP EN,M1:CLR C,SUBB A,#10,SJMP EN,M2:MOV A,#0,EN:MOV 37H,A,SJMP$,END,第 六 讲,第四章,MCS-51,汇编语言程序设计,4,、,循环程序,(,1,)单循环,例五:求,1,、,2,、,3,、,、,n,之和(设,n256,),解:,R5,作循环次数计数器,R6,作和数高位字节寄存器,n,存于内部,RAM 23H,中,最终和存入,23H,、,24H,中,第 六 讲,第四章,MCS-51,汇编语言程序设计,ORG 0000H,LJMP START,ORG 0200H,START:MOV R5,23H,CLR A,MOV R6,#00,MOV R4,#01H,LOOP:CLR C,ADD A,R4,JNC NEXT,INC R6,NEXT:INC R4,DJNZ R5,LOOP,MOV 23H,R6,MOV 24H,A,SJMP$,END,第 六 讲,第四章,MCS-51,汇编语言程序设计,(,2,)多重循环,例六:延时,10ms,子程序,设主频率为,6MHz,。,解:主频为,6MHz,,,机器周期即为,2us,,,那么执行,一条,DJNZ,的指令时间为,2us,,,所以:,第 六 讲,第四章,MCS-51,汇编语言程序设计,DELY:MOV R5,#100,DLY0:MOV R4,#50,DLY1:DJNZ R4,DLY1 ;50*2=100us,DJNZ R5,DLY0 ;100*100=10ms,RET,第 六 讲,第四章,MCS-51,汇编语言程序设计,5,、查表程序,就是把事先计算或测得的数据按一定的顺序编制成表格,,存放在程序存储器中。,例七:一个十六进制数存放在,HEX,单元的低四位,将其转换,成,ASCII,码,并送回,HEX,单元。,第 六 讲,第四章,MCS-51,汇编语言程序设计,ORG 0000H,HEX EQU 33H,LJMP BIGAIN,ORG 0200H,BIGAIN:MOV A,HEX,ANL A,#0FH,ADD A,#03H,MOVC A,A+PC,MOV HEX,A,RET,ASCTAB:DB 30H,31H,32H,33H、34H、35H、36H、37H,DB 38H、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,8D,H,8CH,8BH,8AH,89H,88H,TCON,位地址,此控制寄存器中有,4,位中断请求标志:,IE0,、,IE1,、,TF0,、,TF1,。,硬件置位或清零。,2,、,TCON,字节地址为,88H,。,特殊功能寄存器,为串行口控制寄存器。,其格式如下:,SM,0,SM,1,SM,2,REN,TB8,RB8,RI,TI,9FH,9EH,9D,H,9CH,9BH,9AH,99H,98H,SCON,位地址,此控制寄存器中有,2,位中断请求标志:,TI,或,RI,。,硬件置位,需用软件清零。,3,、,SCON,字节地址为,98H,六、中断控制,1,、中断允许寄存器,IE,字节地址为,A8H,。,其格式为:,EA,ES,ET1,EX1,EX0,ET0,AFH,AEH,AD,H,AC,H,AB,H,AA,H,A9H,A8H,IE,位地址,两级控制,允许置“,1”,,禁止置“,0”,2,、中断优先级寄存器,IP,字节地址为,B8H,两个中断优先级:高级和低级。,IP,寄存器格式如下:,PS,PT1,PX1,PX0,PT0,BC,H,BBH,BA,H,B9H,B8H,IP,位地址,用软件(指令)进行设置,高级置“,1,”,,低级置“,0,”,。,例:设置,IP,寄存器,使,2,个外中断为高优先级,其余为低优,先级。,(,1,)用位操作指令:,SETB PX0,SETB 0BAH,CLR (0B8H).4,CLR IP.1,CLR 0BBH,(,2,),用字节操作指令,MOV IP,,,#05H,或,ORL IP,,,#05H,可以吗?,七、中断响应,中断请求被响应,需满足以下条件:,(,1,)该中断源发出中断请求;,(,2,),CPU,开放中断;,(,3,)申请中断的中断源的中断允许位为“,1”,;,(,4,)无同级或更高级中断正在被服务。,但下列三种情况,中断不会立即响应:,(,1,),CPU,正在处理相同的或更高级的中断。,(,2,)所查询的机器周期不是所执行指令的最后一个机器周期。,(,3,)正在执行的指令是,RETI,或是访问,IE,或,IP,的指令,需要在执行完,这些指令后,再执行一条指令才能响应新的中断请求。,中断响应后,,CPU,将当前,PC,值压入堆栈(先压,PCL,,,后压,PCH,),,保护断点,并将该中断的入口地址装入,PC,,,从而使,CPU,执行中断服务程序。,外部中断,0,0003H,定时器,/,计数器,T0,000BH,外部中断,1,0013H,定时器,/,计数器,T1,001BH,串行口中断,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,)当前指令是,MOV A,,,R3,2,、中断查询确认后,在下列各种,8031,单片机运,行中,能立即进行响应的是:,(,1,)同一级别的中断请求按时间的先后顺序顺,序响应。,(,2,)同一时间同一级别的多中断请求,将形成,阻塞,系统无法响应。,(,3,)低优先级不能中断高优先级,但高优先级,能中断低优先级。,(,4,)同级中断不能嵌套。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!