mdsk.net
当前位置:首页 >> 单片机用t1方式1计时 >>

单片机用t1方式1计时

有个东东叫单片机小精灵,应该能解决你的问题,呵呵,最近变懒了下面这个是10ms定时程序,定时器1,方式1,中断自动重装(PS:你可以在中断里面写上累加100次的变量,就等于是1s了):#include <reg51.h> void InitTimer1(void)

I初始化程序:MOV TMOD, #51HMOV TH0, #3CHMOV TL0, #0B0HSETB TR0MOV TH1, #0FFHMOV TL1, #0ECHSETB TR1SJMP $END

51单片机定时器t1用作定时的方式有三种,分别为工作方式0,13位定时模式.工作方式1,16位定时模式工作方式2,8位自动重装载模式.

at89c51单片机的定时器t1用作定时方式有3种,默认的是方式0,为13位计数方式,这种方式很少用,完全可以用方式1代替.方式1为16位计数,最多计65536个机器周期,假设晶振频率为12MHz,机器周期就是1us,所以,最长定时的时间是65536*1us.方式2,是自动装载8位计数方式.常用于串口通信控制波特率.

用定时器t1方式1计数,要求每计满10次产生溢出标志,则th1、tl1的初始值是: a:ffh、f6h --这个对 b:f6h、f6h c:f0h 、f0h d:ffh、f0h 说明:初值 = 65536 - 10 = 65526 = fff6h 只有选a,才对.可以看看我的百度空间,里面有许多例程.

/**********************************************************************************************************/#include "REG52.H" sbit GPIO_LOOK = P1^3; sbit LED1 = P1^2; bit Flag = 1; unsigned char Count_Temp, Count_Outk; void Time_Init(void) { TMOD =

#include<reg51.h>#include<lcd.h>unsigned int time=0;unsigned char miao,fen,xiaoshi;void main(){unsigned char i=0;TMOD=0x10;TH1=0xFF; //2 00us TL1=0x38;ET1=1;EA=1;TR1=1;lcd_init();while(1){ write_com(0x80+4);write_data(xiaoshi/10+0x

TMOD=0010 0000

TMOD=0x10;TH1=0xFC;L1=0x18;即为高电平时间为1ms.最大定时时间:2^16毫秒t=(2^16-计数初始值)X晶振周期X12.

51单片机只有 t1、t0,没有t2(52才有).如果工作在方式0,方式1、方式2 的话,51单片机的t0、t1都可以做波特率发生器(一般是方式2做波特率发生器).但是t0可以工作在方式3,t1不能工作在方式3.这种情况下,只能用t1作为波特率发生器,t1 的资源tf1、tr1给了t0,t0工作在方式3,可以当做定时器、计数器用.而如果用t0做波特率发生器,因为t1不能工作在方式3,方式3就没法用了.

网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com