┊ 网站导航 ┊ 管理登陆 ┊ 免责声明 ┊ 问题反馈 ┊ 友链说明┊本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正! 不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作! ![]() ![]() ![]() ![]() ![]() ![]() 本站学习交流群:138..158(高级群1-满)、77930286(高级群2)、61804809(群3) Copyright© MCUSY All Rights Reserved 本站网警备案号: WZ36040002485 ICP备案证书号:粤ICP备09034963号 |
1.原理图:
2.程序例子(汇编例子):
;*****************************************************************************
;*实验名称:定时器0中断和外中断1实验(T0中断和INT1同时存在)
;*实验对象:XY-900_USB型单片机学习开发系统 http://www.mcusy.cn
;*实验说明:开机P2 每隔0.5S做左移一位,按P3.3(INT1中断),LED闪烁5次后返回
;*****************************************************************************
; 提示:如果有多个中断,中断向量在程序起始处一定要按中断顺序排列,否则出现问题
ORG 00H
AJMP START
ORG 0BH ;T0中断起始地址
JMP TIM0
ORG 13H ;INT1(P3.3)中断起始地址
AJMP EXT1
START: MOV SP,#70H
MOV TMOD,#00000001B
MOV TH0,#HIGH(65536-10000) ;1000US
MOV TL0,#LOW(65536-10000) ;
SETB TR0 ;启动T0
MOV IE,#10000110B ;T0、INT1中断使能,
MOV IP,#00000100B ;设定INT1优先
MOV R5,#100 ;中断100次即1S
MOV R1,#0FEH ;循环初值
JMP $
TIM0: PUSH ACC ;将A压入堆栈暂时保护
PUSH PSW
MOV TH0,#HIGH(65536-5000) ;500US
MOV TL0,#LOW(65536-5000) ;
DJNZ R3,LOOP ;中断了100次?
MOV R3,#100 ;重设R5=100
MOV A,R1 ;读入P1至A
MOV P2,A
RL A ;A的值左移一位
MOV R1,A ;存入左移初值
LOOP: POP PSW ;恢复PSW
POP ACC
RETI
EXT1: PUSH ACC
PUSH PSW
MOV A,#00
MOV R2,#10 ;闪灯5次
LOOP3: MOV P2,A
CALL DELAY
CPL A
DJNZ R2,LOOP3
POP PSW
POP ACC
RETI
;---------- 以下是延时子程序 ----------------------------------
DELAY: MOV R5,#20 ;0.2S
D1: MOV R6,#20 ;10MS
D2: MOV R7,#248 ;0.5MS
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END
┊ 网站导航 ┊ 管理登陆 ┊ 免责声明 ┊ 问题反馈 ┊ 友链说明┊本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正! 不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作! ![]() ![]() ![]() ![]() ![]() ![]() 本站学习交流群:138..158(高级群1-满)、77930286(高级群2)、61804809(群3) Copyright© MCUSY All Rights Reserved 本站网警备案号: WZ36040002485 ICP备案证书号:粤ICP备09034963号 |