谈谈51单片机延时子程序
ms:
time2_5ms_1:
;*****************************************************************
;延时10mS
;*****************************************************************
time10ms:
time10ms_1:
;*****************************************************************
;延时50mS
;*****************************************************************
time50ms:
time50ms_1:
;*****************************************************************
;延时100mS
;*****************************************************************
time100ms:
time100ms_1:
;*****************************************************************
;延时200mS
;*****************************************************************
time200ms:
time200ms_1:
time200ms_2:
;*****************************************************************
;延时500mS
;*****************************************************************
time500ms:
time500ms_1:
time500ms_2:
;*****************************************************************
;延时1S
;*****************************************************************
time1s:
time1s_1:
time1s_2:
12M晶振 机器周期为1US NOP为单周期指令 DJNZ为双周期指令.
3)
;;晶振12MHZ,延时1秒
DELAY:MOV
LOOP3:MOV
LOOP1:MOV
LOOP0:DJNZ
LOOP2:DJNZ
LOOP4:DJNZ
4);延时1分钟子程序,F=6MHz
;程序已测过,延时时间60,000,000.0uS
delay60s:mov r3,#228
loop1:
5)计算机反复执行一段程序以达到延时的目的称为软件延时,单片机程序中经常需要短时间的延时,但是相当一部分人对延时程序很模糊,对延时程序的算法不够了解,在这里我以12MHz晶振和两个经典延时子程序为例,详细分析单片机汇编延时程序。
何为时钟周期、机器周期、和指令周期?
时钟周期:也就是振荡周期,以12MHz的时钟脉冲为例,那时钟周期就为(1/12000000)s=(1/12)us;
机器周期:1个机器周期=6个状态周期=12个时钟周期=1us;
指令周期:CPU执行一条指令所需要的时间称为指令周期,指令周期是以机器周期为单位的,不同的指令所需的机器周期不一定相同,可参考51单片机指令速查表。
0.1s延时子程序(12MHz晶振):
D1:
T=1+(1+2*R6+2)*R7+2
0.5s延时子程序(12MHz晶振):
D1:
D2:
T=1+[1+(1+2*R5+2)*R6+2]*R7+2
6) 51单片机经典流水灯程序,在51单片机的P2口接上8个发光二极管,产生流水灯的移动效果。
START:
LOOP:
;0.1秒延时子程序(12MHz晶振)===================
DELAY:
D1:
51单片机延时子程 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)