用51单片机汇编语言编程一个中断,并能响声音

单片机考试试题及答案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
单片机考试试题及答案
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢单片机答案汇编_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
单片机答案汇编
上传于|0|0|文档简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩9页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢查看: 621|回复: 1
关于51单片机用汇编编写中断程序的问题
今天刚学的8051会汇编的中断部分,发现写完的程序存在一些问题,希望大家能帮我解决一下
下面是程序的源代码:
//**************************************************************************************
//程序名称:汇编语言的基础运用,中断打断数码管
//调试环境:proteus仿真
//作& & 者:CAIN
//预期效果:当开关按下的时候数码管会停止变化,led灯流水显示,之后继续执行数码管程序
//创建日期:
//**************************************************************************************
//& && && && && && && && && &中断程序位置的配置
//**************************************************************************************
& && & ORG& & 0000H
& && && &&&AJMP& &MAIN
& && && &&&ORG& & 0003H
& && && &&&LJMP& &IN0
& && && &&&ORG& & 0030H
//**************************************************************************************
//& && && && && && && && && && && && && && && && && && && &主函数
//**************************************************************************************
MAIN:&&SETB& &EA
& && && &&&SETB& &EX0
& && && &&&SETB& &IT0
START: MOV& & A,#01H
& && & MOV& & R3,#9H
& && && &&&MOV& & R4,#1H
L1:& && && &&&MOV& & DPTR,#TABLE
& && && &&&MOV& & A,R4& &
& && && &&&MOVC& &A,@A+DPTR
& && && &&&MOV& & P2,A
& && && &&&INC& & R4& &
& && && &&&ACALL&&DELAY
& && && &&&DJNZ& &R3,L1
& && && &&&AJMP& &START
//**************************************************************************************
//& && && && && && && && && && && && && && && && && && && &延时函数
//**************************************************************************************
& && & MOV& & R5,#0AH
L4:& && && &&&MOV& & R6,#64H
L3:& && && &&&MOV& & R7,#0C8H
L2:& && && &&&NOP
& && && &&&NOP
& && && &&&NOP
& && && &&&DJNZ& &R7,L2
& && && &&&DJNZ& &R6,L3&&
& && && &&&DJNZ& &R5,L4
& && && &&&RET
//**************************************************************************************
//& && && && && && && && && && && && && && && && && && && &外部中断0服务函数
//**************************************************************************************
& && & PUSH& &ACC
& && && &&&PUSH& &DPH
& && && &&&PUSH& &DPL
& && && &&&PUSH& &PSW
& && && &&&MOV& & R2,#8H
& && && &&&MOV& & A,#01H
L5:& && && &&&MOV& & P1,A
& && && &&&ACALL&&DELAY
& && && &&&RL& &&&A
& && && &&&DJNZ& &R2,L5
& && && &&&POP& & PSW
& && && &&&POP& & DPL
& && && &&&POP& & DPH
& && && &&&POP& & ACC
& && && &&&RETI&&
//**************************************************************************************
//& && && && && && && && && && && && && && && && && && && &数码管段选数组
//**************************************************************************************
TABLE:&&DB& & 3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fH,40H
& && &&&END
//**************************************************************************************
//& && && && && && && && && && && && && && && && && && && && && && && && &&&END
//**************************************************************************************
程序中有以下问题:
接通单片机电源后,按下开关,执行完中断程序后会有两种错误情况,第一种是需要等待一段时间后数码管才会继续变化,另一种是执行完中断之后数码管会从1(设定的初值)开始变话
本人认为问题可能在的地方,我觉得问题是处在延时函数上,具体原因没有找到,请大神们找一找是什么原因。
仿真截图:
(55.46 KB, 下载次数: 10)
19:17 上传
Powered by汇编语言实现中断嵌套的典型程序 - 51单片机 - 电子工程世界网
汇编语言实现中断嵌套的典型程序
10:09:34来源: eefocus
设计一个基于的声光报警电路。要求:利用按键触发外部中断0,蜂鸣器发音,发光二极管点亮,声光报警延迟1S后停止(利用定时器TO延时)。蜂鸣器由P1.2控制,发光二极管由P2.0控制。设计硬件电路并给出其完整的程序。
/*典型错误一*/
/*&ORG 0000H
&AJMP MAIN
&ORG 0003H
&AJMP INTE0
&ORG 000BH
&AJMP INT120
&ORG 0030H
MAIN:&& MOV R0,#00H
&MOV TMOD,#01H
&MOV TH0,#4CH
&MOV TL0,#00H
HERE:&& AJMP HERE
INTE0:& CLR P1.2
&CLR EX0;可有可无
&&&&&&& ORG 0080H
INT120: MOV TH0,#4CH
&MOV TL0,#00H
HERE0:&CJNE R0,#14H,HERE0;典型错误1
;此程序已经在定时器T0中断内部,利用
;此程序等待T0中断,中断无从进入。所以
;程序在此行成死循环,即停在此处。声光
;报警启动但停不下来。
&SETB P1.2
&SETB P2.0
&&&&&&& CLR ET0
&&&&&&& END
/*典型错误二*/
/*&ORG 0000H
&AJMP MAIN
&ORG 0003H
&AJMP INTE0
&ORG 000BH
&AJMP INT120
&ORG 0030H
MAIN:&& MOV R0,#00H
&MOV TMOD,#01H
&MOV TH0,#4CH
&MOV TL0,#00H
HERE:&& AJMP HERE
INTE0:& CLR P1.2
&CLR EX0;可有可无
&&&&&&& ORG 0080H
INT120: MOV TH0,#4CH
&MOV TL0,#00H
&CJNE R0,#14H,HERE;典型错误2
;此程序已经在定时器T0中断内部,利用
;此程序等待T0中断,中断无从进入。所以
;程序在此行成死循环,即停在此处。声光
;报警启动但停不下来。和上例一样。
&SETB P1.2
&SETB P2.0
&&&&&&& CLR ET0
&&&&&&& END
/*正确答案*/
&&&&&&& ORG 0000H
&AJMP MAIN
&ORG 0003H
&AJMP INTEX0
&ORG& 000BH
&AJMP INTT0
&&&&&&& ORG& 0030H
MAIN:&MOV R0,#00H
&MOV TMOD,#01H
&MOV TH0,#4CH
&MOV TL0,#00H
&&&&&&& SETB EA
HERE:&CJNE R0,#14H,HERE
&MOV R0,#00H
&SETB P2.0
&SETB P1.2
&&&&&&& CLR TR0
&AJMP HERE
INTEX0: SETB TR0
&&&&&&& RETI
INTT0:& MOV TH0,#4CH
&MOV TL0,#00H
&&&&&&& RETI
&&&&&&& END &
关键字:&&
编辑:什么鱼 引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
微信扫一扫加关注 论坛活动 E手掌握
微信扫一扫加关注
芯片资讯 锐利解读
大学堂最新课程
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
热门资源推荐
频道白皮书
何立民专栏
北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

我要回帖

更多关于 单片机汇编语言入门 的文章

 

随机推荐