33问答网
所有问题
当前搜索:
51单片机用定时器做延时函数
51单片机
12MHZ晶振
用定时器
怎样
实现
100ms的定时,我想要做秒表,用数码...
答:
){t=0;EA=1;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;TR0=1;while(1){ Display(time);} } void t0()interrupt 1 { TH0=(65536-50000)/256;TL0=(65536-50000)%256;t++;if(t==2){ time++;t=0;} } 你的问题是
延迟
那边void Delay_1ms(uint u);...
下面图片程序解读一下,stc
51单片机
的
延时函数
?
答:
再定义一个无符号char型变量i,利用for语句设置了一个120ms的i- -语句,每次减1,当减到0时跳出程序定义一个无符号整型T变量的
延时函数
,再定义一个无符号char型变量i,利用for语句设置了一个120ms的i- -语句,每次减1,当减到0时跳出程序 ...
设计一个由
51单片机
控制的一到五秒的程序
延时
程序!再加个数码管显示延时...
答:
include <reg51.h> //调用
51单片机
的头文件 define uchar unsigned char define uint unsigned int unsigned char code LED[]= { //定义表格一定要使用code,这样会做到程序存储区中 0x3F, //"0"的字形表,0B00111111 0x06, //"1"的字形表,0B00000110 0x5B, //"2"的字形...
51单片机延时
出错
答:
解决的办法是将delay
函数
定义为可重用,接着在进入中断时关闭
定时器
或者关闭定时器中断,然后再调用delay函数结束后打开定时器或者打开定时器中断。当然这可能会和你本来想要的功能有所出入,具体问题还是要具体分析。上楼说的有错,你的这个程序与嵌套无关,
51
里面当进入中断后则处理中断,如果中断还未处理...
求
51单片机利用定时器
消抖的程序!!
答:
定时器消抖就是
利用定时器
运行一段时间以消耗一段程序运行周期达到
延时
目的,再关闭定时器,如果你的想法是这样那很好办,一般我们都用delay
函数
来粗虐延时,你只要将TRx=1(定时器1或0的开关)去替换delay就行,然后根据定时器的初始化来确定延时长短,然后进去中断服务函数,重装初值后TRx=0,关闭定时器就行了,然后下一次...
MCS-
51单片机
的系统时钟频率:f=12MHz,
利用定时器
T0,采用工作方式2,T0...
答:
楼主:1,你首先要知道:T0,采用工作方式2最大
延迟时间
为256us.2,你可以通过计算公式:初值=256-t*F/12。t为定时时间,F就是你选用的晶体频率。3,因此,你先编写一个50us的T0中断
函数
,350US通过设置一个全局的变量,让
定时器
T0产生7次中断后清0,这样你的两个
延时
都兼顾了。4,你在MAIN函数...
51单片机
delay
函数
过程中,
定时器
中断是否还在记数?
答:
ms级别的 最好用示波器查看波形,这样你可以确定他开关时间到底是多少 可以确定的是delayms()
函数
是不会影响中断程序的执行的 或者你可以换种方式 在
定时器
达到计数20 之后 也就是你程序进入那个if之后把定时器给关了,然后点灯
延时
200ms,之后关灯 然后再开启计数,这样的话就需要你计数时间刚好是800ms...
请教老师,
51单片机
在12M晶振,C语言编程时,
延时函数
120次=1ms(书本上...
答:
C的话其实时间没有办法完全定性地计算的 如果非得精确的话只能
使用定时器
了,或者汇编的也行 不过时间要求精度不是很高的话使用下面的代码就行了 当时使用示波器把时间完全调准的,65536ms范围内还是比较准的,已经可以满足通常的要求了:include "reg
51
.h" //头文件包含 //宏定义 define uint ...
关于
51单片机
60秒倒计时的c语言程序,delay和dispiay部分分别什么意思啊...
答:
delay(int t)这个是
延时
子程序,如果采用20M晶振的话,调用一次延时t毫秒。display()是数码管动态扫描显示子程序,位控位为P3.0、P3.1,段码控制为P1。扫描间隔时间为5毫秒左右。
求
51单片机
可以调用的
延时函数
,微秒级的,
答:
用STC_ISP去看吧..不然不准确的..带传入的都不准确的..例如 void Delay100us()//@12.000MHz { unsigned char i;_nop_();i = 47;while (--i);} void Delay10us()//@12.000MHz { unsigned char i;_nop_();i = 2;while (--i);} 我调用Delay10us 10次是不是就是100us了.....
棣栭〉
<涓婁竴椤
3
4
5
6
8
7
9
10
11
12
涓嬩竴椤
灏鹃〉
其他人还搜