以下是一个简单的示例代码片段,演示了如何在C语言中让程序等待0.5秒:
#include <stdio.h>
#include <time.h>
int main() {
printf("开始等待...\n")
usleep(500000)
printf("等待结束!\n")
return 0
}
时钟晶振12MHZ,CALL delay_500ms 即可delay_500ms:MOV R3,#5
LOOP0:MOV R1,#64H
LOOP1:MOV R0,#0F9H
LOOP2:NOP
NOP
DJNZ R0,LOOP2
DJNZ R1,LOOP1
DJNZ R3,LOOP0
RET
可以用定时中断,当然也可以用循环延时的,不过没意义。单片机不可能不做其它事,在那里循环。#include <reg51.h>
#define uchar unsigned char
sbit LED=P1^0
uchar time
void initT0( )
{
TMOD = 0x01 //定时器0,工作方式1
TH0 = (65536-50000)/256
TL0 = (65536-50000)%256 //50ms中断一次
EA = 1
ET0 = 1
TR0 = 1
}
void main(void)
{
initT0()
while(1)
{
if(time==10) //中断20次,0.5s
{
time=0
LED=!LED//P1.0上的LED,0.5s亮或灭一次
}
}
}
void T0int( ) interrupt 1
{
TH0 = (65536-65536)/256
TL0 = (65536-65536)%256
time++
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)