请帮我用8951做个定时器,用C语言写,做好注释
include reg5h include intrins.h unsigned char i;void main(){ TMOD=0x00;TH1=0x3c;TL1=0xb0;EA=1;ET1=1;TR1=1;while(1){ if(i==20){ i=0;//下面写你要处理的的其他程序,你只要了定时1s。
就延时5S钟啊,这很简单啊。最好是用中断来做,这样可以空出很多时间做其他事情。我发一个小程序给你吧,把你邮箱给我。。
我看楼上写的程序不怎么好,而且不容易懂,不是单片机c语言吧,于是自作主张的自己又写了一个,是51单片机的,12MHz晶振。
似乎不太现实,500k的频率,1us要改变一次p3的状态,如果用12M的晶振,一个指令周期就是1us了,刚跳出中断又会再次进入中断,主程序根本没法执行。
请问单片机C语言定时器程序怎么写?
include reg5h include intrins.h unsigned char i;void main(){ TMOD=0x00;TH1=0x3c;TL1=0xb0;EA=1;ET1=1;TR1=1;while(1){ if(i==20){ i=0;//下面写你要处理的的其他程序,你只要了定时1s。
我看楼上写的程序不怎么好,而且不容易懂,不是单片机c语言吧,于是自作主张的自己又写了一个,是51单片机的,12MHz晶振。
如果将LED换作蜂鸣器,通过改变脉冲宽可改变音调。
假设你用的晶振为12m,用p0口输出周期为2ms的方波。使用定时器工作方式至于计数初值的计算,授之以鱼不如授之以渔!在定时器模式下,计数器的计数脉冲来自于晶振脉冲的12分频信号,即对机器周期进行计数。
假设有k1~停表,k2~复位,k3~继续运行 先说停表和继续运行的 停表:如果k1按下,TR0=0;继续运行:如果k3按下,TR0=1;复位:直接用硬件复位单片机或者k2按下,数据清零。
求教一个简单的C语言定时器中断程序
文件名 : 定时器的使用.c 描述 : 相对前面的软件延时,定时器的延时更为精确。定时时间可用光盘中的“51定时器计算.exe”计算。该软件 位于单片机开发辅助工具文件夹中。相应的视频为“定时器的使用.exe”。
以秒为单位的)。这个时候,你只要把PC指针指向中断服务程序的第一条语句,然后在中断服务程序的最后一条语句设置一个断点,然后按run全速运行一次中断服务程序,再看看“sec”显示的是多少。
程序 主要 用于 中断函数 ,非中断函数 也 有应用,较少。分别举个例子:1)用于 中断:假设 一个 用 定时器 做的 时钟函数,定时器 设置为 1s一个中断。
急急急C语言定时器程序注释
1、— 如果是12M晶振的话,那么定时器一个计数频率是12M / 12 = 1M,即一个计数周期是1us。你给的程序看出,是定时器工作在MODE1。16位计数器。但是你给的程序应该有问题。
2、C语言编程规范-注释 规则:1:一般情况下,源程序有效注释量必须在20%以上。说明:注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。
3、注意:多数C语言编译器不支持多线程,而且ANSI C也没有线程库,因此C语言无法实现实际意义上的定时器(即包含触发机制的定时器)。回到本问题:1 计数器:简单的int变量(一般为全局或相对全局)就可以实现。
如何使用c语言书写定时器1中断服务程序的首部?
1、以秒为单位的)。这个时候,你只要把PC指针指向中断服务程序的第一条语句,然后在中断服务程序的最后一条语句设置一个断点,然后按run全速运行一次中断服务程序,再看看“sec”显示的是多少。
2、如果是51单片机,你可以使用TMOD设置两个定时器,然后使用TR0、TR1分别启动两个定时器。PT0置为“1”,就可以中断定时器1的服务函数,相反,如果PT1置为“1”就可以中断定时器0的服务函数。
3、那就用定时器吧,程序开始就设置一个定时器,根据需求设置,循环定时器或者单次出发定时器。然后写定时器的中断函数就可以。这个不难。两部分组成。1:初始化一个定时器。2:定时器的相应函数。
4、{ TH1=(65536-50000)/256;TL1=(65536-50000)%256;} 上面的意思是定时器 1 的中断服务程序,定时器 1 的中断服务序号是 3 ,因此我们要写成 interrupt 3 ,服务程序的内容是给 两个初值寄存器装入新值。
C语言定时器
将itimerval结构的成员itinterval和成员itvalue均赋值为2秒即可。在C语言中,alarm函数、setitimer函数,这两种定时方式都是通过信号来通知定时到期的,可以通过将itimerval结构的成员itinterval和成员itvalue均赋值为2秒即可。
意思就是延迟250ms,250就是100ms延时子函数写成1ms的。
首先第一步要定时器0设置于模式1时,然后由高8位TH0和低8位TL0两个8位寄存器组成,注意的是当设定计算值为65536-50000=15536(D)时,转换为十六进制就是3CB0(H),此时,TH0=3C,TL0=B0分别装入就可以了。
首先做在我们新建项目的主窗口上添加一个Label控件,用来显示时间。
如果是51单片机,你可以使用TMOD设置两个定时器,然后使用TR0、TR1分别启动两个定时器。PT0置为“1”,就可以中断定时器1的服务函数,相反,如果PT1置为“1”就可以中断定时器0的服务函数。