单片机实验三(2)-中断、定时器的应用

 

		  ORG 0000H
		  LJMP START
		  ORG 000BH	 ;T0的中断矢量位置
		  LJMP T0INT
		  ORG 0100H
START: MOV TMOD,#1  ;工作方式为1
       MOV TH0,#4BH
	   MOV TL0,#0FDH
	   SETB EA      ;开放中断
	   SETB ET0
	   MOV R0,#40   ;设置循环次数
	   MOV A,#001H
	   MOV P1,A     ;输出给p1
	   SETB TR0				                 
	   SJMP $	    ;等待中断
T0INT: MOV TH0,#4BH ;重新装载计数器的值
       MOV TL0,#0FDH
	   DJNZ R0,QUIT
	   MOV R0,#40
	   RL A
	   MOV P1,A
QUIT: RETI
      END

 

  ORG 0000H
		  LJMP START
		  ORG 000BH	 ;T0的中断矢量位置
		  LJMP T0INT
		  ORG 0100H
		 
START: MOV TMOD ,#4;
       MOV TH0,#0FFH	  ;高8位
	   MOV TL0,#16H	  ;低5位  32-10=22
	   SETB EA      ;开放中断
	   SETB ET0
	   MOV R0,#10   ;设置循环次数
	   SETB TR0				                 
	   SJMP $	    ;等待中断
T0INT:
	   CPL P1.0
	   MOV TH0,#255	  ;高8位
	   MOV TL0,#016H	  ;低5位  32-10=22
	   MOV R0,#10   ;设置循环次数
QUIT: RETI
     
END

 

  ORG 0000H
		  LJMP START
		  ORG 0003H	 ;INT0的中断矢量位置
		  LJMP T0INT
		  ORG 0013H	 ;INT1的中断矢量位置
		  LJMP T1INT
		  ORG 0100H
		 
START:
	   SETB EA      ;开放中断
	   SETB EX1
	   SETB EX0
	   SETB PX0
	   SETB IT0 ; 边沿触发
	   SETB IT1			                
	   SJMP $	    ;等待中断
T0INT:
       MOV P1,#0FFH
	   MOV A,#00H
	   MOV R5,#6
	   LOOP1:
	            MOV R4,#2000H
	  			LOOP3:
	      			MOV R6,#2000H
     			LOOP4:
	     			 DJNZ R6,LOOP4
		 			 DJNZ R4,LOOP3

             MOV P1,A
			 CPL A
	         DJNZ R5,LOOP1
	 LJMP QUIT
	  
T1INT:
       MOV A,#003H
	   MOV R0,#4
       LOOP2:    
	        
			 MOV R3,#2000H
	  			LOOP5:
	      			MOV R2,#2000H
     			LOOP6:
	     			 DJNZ R2,LOOP6
		 			 DJNZ R3,LOOP5
			 MOV P1,A	
	   	  	 RL A
			 RL A
	         DJNZ R0,LOOP2
       LJMP 	QUIT
QUIT: RETI
     
END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
org 0000h sjmp main org 000bh ljmp t0int org 0030h main: mov sp,#60h mov tmod,#01h mov th0, #3ch ;5000微秒 mov tl0,#0b0h setb et0 ;允许t0中断 setb tr0 ;显示t0 setb ex0 ;允许外部中断0 setb ex1 ;允许外部中断1 setb ea ;开总中断 mov R0,#20 mov 26h,#59 mov 27h,#50 mov 28h,#23 re: call disp sjmp re disp: mov A ,26h mov B,#10 div AB ;取余 mov 20h,B ;秒个位 mov 21h,A ;秒十位 mov A,20h mov dptr,#tab movc A,@A+dptr setb p2.5 mov p1,A ;显示秒个位 call del ;延时 clr p2.5 mov A,21h mov dptr,#tab movc A,@A+dptr setb p2.4 mov p1,A ;显示秒十位 call del ;延时 clr p2.4 mov A ,27h mov B,#10 div AB ;取余 mov 22h,B ;分个位 mov 23h,A ;分十位 mov A,22h mov dptr,#tab movc A,@A+dptr setb p2.3 ;选数码管 mov p1,A ;显示分个位 call del ;延时 clr p2.3 mov A,23h mov dptr,#tab movc A,@A+dptr setb p2.2 ;选数码管 mov p1,A ;显示分十位 call del ;延时 clr p2.2 mov A ,28h mov B,#10 div AB ;取余 mov 24h,B ;时个位 mov 25h,A ;时十位 mov A,24h mov dptr,#tab movc A,@A+dptr setb p2.1 ;选数码管 mov p1,A ;显示时个位 call del ;延时 clr p2.1 mov A,25h mov dptr,#tab movc A,@A+dptr setb p2.0 ;选数码管 mov p1,A ;显示时十位 call del ;延时 clr p2.0 ret t0int: mov th0,#3ch mov tl0,#0b0h ;5000us djnz R0,rere mov R0,#20 ;1s inc 26h mov A,26h cjne A,#60,rere ;秒满60跳 mov 26h,#0 ;;清零 inc 27h mov A,27h cjne A,#60,rere ;分满六十跳 mov 27h,#0 ;清零 inc 28h mov A ,28h cjne A,#24,rere ;时满24跳 24小时制 mov 28h,#0 ;清零 rere: reti tab:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h DEL:MOV R7,#0AH ;延时子程序 AA:DJNZ R7,AA ret end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值