全站数据
8 4 2 0 5 8 1

晶振为6Mhz编写一个1S延时的子程序怎么写

家长学习网 | 简单学习,快乐成才!         
问题更新日期:2024-10-14 10:35:49

问题描述

晶振为6Mhz编写一个1S延时的子程序怎么写求高手给解答
精选答案
最佳答案

用中断,定时器工作方式1,计数最大数为65536,那么从15536开始计数,达到65536要计50000次,6M的晶振机器周期为2微秒,那么溢出一次耗时为100000微秒,计数溢出10次即为1秒钟 ORG 000BH AJMP TIME0 ORG 30H MAIN: MOV 30H,#00H;先把30H地址的数据清零,用做给溢出计数用 MOV TMOD,#00000001B MOV TH0,#3CH MOV TL0,#0B0H SETB EA SETB ET0 SETB TR0 LOOP:AJMP LOOP TIME0:PUSH ACC PUSH PSW INC 30H;进入中断后就自增 MOV A,30H CJNE A,#10,T_RET;看计数器的溢出到了10次没,没有就跳到T_RET再继续从15536计数 T_L1:延时1秒到了,写自己的程序吧。

MOV 30H,#00H;记得把溢出计数器再次清零 T_RET:MOV TH0,#3CH MOV TL0,#0B0H POP PSW POP ACC RETI END