请给出具体的程序好吗,谢谢!
追答你的要求不具体,只能给出一部分:
#include
#define uchar unsigned char
#define uint unsigned int
uchar i; //标志位
void init() //初始化
{
TMOD=0x01; //定时器0工作方式1
EA=1; //开总中断
ET0=1; //开定时器0中断
TH0=(65536-50000)/256; //定时器装初值,溢出为25ms
TL0=(65536-50000)%256;
TR0=1; //开定时器0
}
void t0() interrupt 1
{
i=~i; //这里根据你的实际需要是每小时变化一次还是只执行一次
}
void main()
{
init();
while(1)
{
if(i==0)
{/**这里就是你延时1小时候做的事情**/}
}
}
对不起,我实际需要精确延时4h。。。。。。
怎样用51单片机实现小时级延时
delay_1hour=1;i=100;j=3600;TR0=1;}\/\/在任意你想开始延时一小时的地方加这个函数。在延时期间,单片机还可以干其他指令。
51单片机中怎么得到精确延时?
51单片机的几种精确延时实现延时通常有两种方法:一种是硬件延时,要用到定时器\/计数器,这种方法可以提高CPU的工作效率,也能做到精确延时;另一种是软件延时,这种方法主要采用循环体进行。1 使用定时器\/计数器实现精确延时 单片机系统一般常选用11.059 2 MHz、12 MHz或6 MHz晶振。第一种更容易产生...
51单片机用c语言怎么写延时函数?
120次对吧。所以一个简单的延时功能就诞生了,我们只需要自减120次,就可以延时1ms,如果我们要延时50ms呢,那就自减50*120=6000次。那么在程序上如何表达呢?我们可以用两套for循环 void delay(int i){ int x,y;for(x=i;x>0;x--){ for(y=120;y>0;y--)} } 参数 i 代表该函...
51单片机编写延时1分钟、1小时的子程序
include <reg51.h> unsigned char time_1m=120;unsigned char time_1h=60;\/\/timer init void initTimer(void) \/\/1Mhz晶振 { TMOD=0x1;TH0=0x5d;TL0=0x3e;} \/\/timer0\/counter0 interrupt void timer0(void) interrupt 1 \/\/ 500MS 中断一次 { TH0=0x5d;TL0=0x3e;time_1m--;if(...
51单片机怎么延时程序
最容易让人忽略的是计算循环外的那部分延时,在对时间要求不高的场合,这部分对程序不会造成影响。500ms延时子程序程序:(晶振12MHz,一个机器周期1us。)void delay500ms(void){ unsigned char i,j,k;for(i=15;i>0;i--)for(j=202;j>0;j--)for(k=81;k>0;k--);} ...
如何使用51单片机定时器实现定时功能
2)闹钟:在电子时钟电路中,通过定时器的工作模式,实现小时、分、秒的计时及时钟的闹铃功能。3)PWM 波形的生成:单片机中的 PWM 波形可用于直流电机的调速、灯光亮度的控制、温度控制等各种场合。通过定时器和 PWM 的结合,就可以实现的波形生成和调制。总之,51单片机定时器在单片机系统中的应用非常...
51单片机中,定时器怎么做延时函数用,比如说,要精确延时1s,该怎么写...
void main(){ while(1){ Delay1ms(1000);\/\/1s延时;} } void Delay1ms(unsigned int a)\/\/0~65535 { unsigned long b;\/\/0~0xffffffff b = TimeTickCount;\/\/记下及时器初始值 while((TimeTickCount-b<a)||(0xffffffff+TimeTickCount-b...
51单片机,求用汇编语言编写延时1小时的子程序,要精确到秒级别
这个可以做到,如果晶振是12M的话,一下方法可以实现延时1小时,精确度在秒级别。DELAY1H:MOV R7,#180 ;1\/1000000 DLY1H:LCALL DELAY_20S ;180*19.960603s +2*180 DJNZ R7,DLY1H ;2*180\/1000000 RET 2\/1000000 共延时时间:3592.9s误差为7.1秒,如果再精确的话,再加一点延时...
请帮忙在51系列单片机系统中,编写一个延时1ms的子程序。谢谢。。_百...
1、首先,在电脑中打开keil软件,创建好工程,然后添加c文件,如下图所示。2、然后添加c文件,接下来输入代码,先输入一个头文件命令。3、然后,进行宏定义,代码如图所示。4、然后声明P1口,如下图所示。5、最后,将延时语句全部添加进去,代码按照图中所示的直接敲入即可。6、最后,点击编译,生成HEX...
怎么用51单片机定时1个小时 好像是循环,具体汇编程序是怎样的
你先开启个定时器,根据你选用的 晶振 ,计算出你要用定时器定时的基准时间,就假设是10毫秒吧。然后给定时器的THx,TLx写入初值,开启中断,进行定时。然后就等待中断。在你响应中断的程序中,再次给单片机送入初值,由于是10毫秒中断一次,因此我们设置几个“软件计数器”比如每此中断,软甲计数器+1,...