8051单片机中断定时器实现1分钟循环
{/n/'title/': /'ORG 0000H//n SJMP START//n ORG 001BH ;T1中断入口.//n SJMP T1_INT//n ORG 0030H//nSTART://n MOV 50H,#60//n MOV 51H,#1//n JNB P1.0,LOOP1//n JNB P1.1,LOOP2//t;按键扫描//n AJMP START//n//nLOOP1://n JNB P1.0,$ //t;等待按键松开//n MOV TMOD, #10H //t;设置T1定时方式1//n MOV TH1, #3CH //t;送入初始值.//n MOV TL1, #0B0H //t;定时50MS//n MOV IE, #10001000B //t;开放总中断和T1中断.//n SETB TR1 //t//t//t;启动T1//nLP: JB P1.0,LP//t//t ;等待按键再次被按下//n JNB P1.0,WAIT//t//t ;按键被再次按下//n//nWAIT: JNB P1.0,$//t//t ;等待按键松开//n CLR TR1//t//t//t ;关闭定时器//n JB P1.0,START//t//t ;返回主程序//n//nT1_INT://n MOV TH1, #3CH//t ;重新送入初始值.//n MOV TL1, #0B0H//t ;定时//n DJNZ 50H, T1_INT//n DJNZ 51H, T1_INT //t;等待1min//n CPL P3.5 //t//t//t;输出方波//n RETI //t//t//t//t//t;中断返回//n//nLOOP2: JNB P1.1,$ //t//t//t//t;等待按键松开//nLP1: ACALL DELAY_500us//n CPL P3.4//t//t//t//t;取反,生成方波//n JNB P1.1,BACK//t//t ;按键再次被按下,返回主程序//n JB P1.1,LP1//nBACK: JNB P1.1,$//n JB P1.1,START//n//nDELAY_500us://n MOV R0,#249//n DJNZ R0,$//n RET//nEND//nLOOP1到LOOP2之间的那段,这个能不能把中断循环改成1min。/', /'description/': /'是的,你可以将LOOP1到LOOP2之间的循环改成1分钟。可以使用两个寄存器(例如50H和51H)来计数循环次数,然后在T1中断中进行递减。当两个寄存器都递减到零时,表示已经过了1分钟,可以执行相应的操作。以下是修改后的代码://n//nORG 0000H//n SJMP START//n ORG 001BH ;T1中断入口.//n SJMP T1_INT//n ORG 0030H//nSTART://n MOV 50H,#60//n MOV 51H,#1//n JNB P1.0,LOOP1//n JNB P1.1,LOOP2 ;按键扫描//n AJMP START//n//nLOOP1://n JNB P1.0,$ ;等待按键松开//n MOV TMOD, #10H ;设置T1定时方式1//n MOV TH1, #3CH ;送入初始值.//n MOV TL1, #0B0H ;定时50MS//n MOV IE, #10001000B ;开放总中断和T1中断.//n SETB TR1 ;启动T1//nLP: JB P1.0,LP ;等待按键再次被按下//n JNB P1.0,WAIT ;按键被再次按下//n//nWAIT: JNB P1.0,$ ;等待按键松开//n CLR TR1 ;关闭定时器//n JB P1.0,START ;返回主程序//n//nT1_INT://n MOV TH1, #3CH ;重新送入初始值.//n MOV TL1, #0B0H ;定时//n DJNZ 50H, T1_INT//n DJNZ 51H, T1_INT ;等待1min//n CPL P3.5 ;输出方波//n MOV 50H, #60 ;重新设置循环次数//n MOV 51H, #1//n RETI ;中断返回//n//nLOOP2: JNB P1.1,$ ;等待按键松开//nLP1: ACALL DELAY_500us//n CPL P3.4 ;取反,生成方波//n JNB P1.1,BACK ;按键再次被按下,返回主程序//n JB P1.1,LP1//nBACK: JNB P1.1,$//n JB P1.1,START//n//nDELAY_500us://n MOV R0,#249//n DJNZ R0,$//n RET//nEND//n//n这样,T1中断将在循环50H * 51H次后执行相应操作,并且每次循环间隔为1分钟。/', /'keywords/': /'8051, 单片机, 定时器, T1, 中断, 1分钟循环, 方波/
原文地址: https://www.cveoy.top/t/topic/pwsn 著作权归作者所有。请勿转载和采集!