打印

51单片机系列之六:中断的应用

[复制链接]
2099|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
十年砍柴|  楼主 | 2010-8-20 19:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
51单片机系列之六:中断的应用
一、设计任务
1、如图1,单片机的P2口通过一个排阻接上一个数码管,P3.2口接上一个开关(开关用于产生中断信号)。用单片机实现:开始时数码管的a,b,c,d,e,f,g依次被点亮(循环),当P3.2口来一个中断信号(一个低电平)时,数码管的a,b,c,d,e,f,g全部点亮,并且亮暗闪烁8次,然后接着原来的依次点亮。
2、如图2,单片机P0口接红色数码管,P1口接蓝色数码管,P2口接绿色数码管,P3.2接开关1(用于产生低优先级中断),P3.3口接开关2(用于产生高优先级中断)。用单片机实现:开始时红色数码管显示数字1~~8(循环),当开关1按下时,红色数码管显示当前数字停止,绿色数码管显示1~~8,一次完了后红色数码管接着显示,当绿色数码管显示时,按下开关2,绿色数码管显示当前数字停止,蓝色数码管显示1~~8(一次)。
二、电路原理图



1——1:数码管的各段依次被点亮




1——2K0按下时,产生中断信号


           2——1:低优先级中断

       2——2:高优先级中断

三、设计程序
//INT0中断数码管a,b,c,d,e,f,g

ORG
0


SJMP START


ORG 30H


SJMP INT0S

START:MOV IE,#81H

MOV TCON,#1


MOV A,#0FEH


MOV P3,#0FFH

ST:
MOV P2,A


ACALL DELAY


RL A


SJMP ST

INT0S:PUSH ACC

MOV R2,#8

LOOP: CLR A


MOV P2,A


ACALL DELAY


MOV A,#0FFH


MOV P2,A


ACALL DELAY


DJNZ R2,LOOP


POP ACC


RETI

DELAY:MOV R7,#250

D1: MOV R6,#250


D2: NOP


NOP


NOP


DJNZ R6,D2


DJNZ R7,D1


RET


END

//高级中断中断低级中断

ORG 0


SJMP START


ORG 3


SJMP INT0S


ORG 13H


SJMP INT1S


ORG 30H

START: MOV IE,#85H

MOV TCON,#5


MOV A,#0FEH


MOV P3,#0FEH


SETB PX1

ST0:
MOV A,#1

ST1:
PUSH ACC


ACALL SEG7


MOV P0,A


ACALL DELAY


POP ACC


INC A


CJNE A,#9,ST1


SJMP ST0

INT0S: PUSH ACC

MOV A,#0

LOOP:
INC A


PUSH ACC


ACALL SEG7


MOV P2,A


POP ACC


ACALL DELAY


CJNE A,#8,LOOP



POP ACC


MOV P2,#0FFH


RETI

INT1S: PUSH ACC

MOV A,#0

LOOP1: INC A

PUSH ACC


ACALL SEG7


MOV P1,A


ACALL DELAY


POP ACC


CJNE A,#8,LOOP1


MOV P1,#0FFH


POP ACC


RETI

DELAY: MOV R7,#250

D1:
MOV R6,#250


D2:
NOP


NOP


NOP


DJNZ R6,D2


DJNZ R7,D1


RET

SEG7:
INC A


MOVC A,@A+PC


RET


DB 0C0H,0F9H,0A4H,0B0H


DB 99H,92H,82H,0F8H


DB 80H,90H,88H,83H


DB 0C6H,0A1H,86H,8EH


END

相关帖子

沙发
lirui5528| | 2010-8-21 18:16 | 只看该作者
顶一个。

使用特权

评论回复
板凳
hotpower| | 2010-8-22 12:34 | 只看该作者
这种例程不宜菜鸟的成长。
建议楼主整规范些,否则会误导青少年…

使用特权

评论回复
地板
ardy0220| | 2010-8-22 12:50 | 只看该作者
顶一个

使用特权

评论回复
5
chank| | 2010-8-22 13:45 | 只看该作者
别用汇编了,都不学这个了,直接用C吧。

使用特权

评论回复
6
tcc8073| | 2010-8-22 14:30 | 只看该作者
如果学单片机没有学过一款单片机的汇编,很难说对单片机有多精通,只有精通一款单片机的汇编,才能真的明白单片机.如果以后你想学ARM,没有汇编基础,很难入门.

使用特权

评论回复
7
lirui5528| | 2010-8-31 10:59 | 只看该作者
如果学单片机没有学过一款单片机的汇编,很难说对单片机有多精通,只有精通一款单片机的汇编,才能真的明白单片机.如果以后你想学ARM,没有汇编基础,很难入门. ...
tcc8073 发表于 2010-8-22 14:30
严重同意!

使用特权

评论回复
8
ounie| | 2010-9-1 15:21 | 只看该作者
头脑连个基本概念都没有,就搞汇编,只会越搞越没兴趣

遥想当年,书的第一章就讲什么中断,连那口都不知道是干嘛的 就上中断了 无语

后来还是自己买了本C语言的书,书中的程序都有详细的注解,配合一个51开发板,慢慢的实践,对单片机就入门了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:岂能尽如人意,但求无愧于心!

0

主题

11

帖子

1

粉丝