晶振为12MHZ利用定时器T1,工作方式1,用来生产1秒钟定时,试说明有关定时器特殊功能寄存器设置及编程思路

如题所述

第1个回答  推荐于2016-11-25
12MHz晶振机器周期为1us
T1工作方式1为16位计数模式最大可以65536us=65ms
可以采用50ms一次的中断方式
并在中断里面使用静态变量记录中断次数
当中断20次的时候就是1秒钟的时间了

//初始化部分
TMOD|=0x10;//T1 M0 置1 工作方式1 16位计数模式
TH1=(65536-50000)/256; //取高8位 设置初始值
TL1=(65536-50000)%256; //取低8位
ET1=1;//定时器中断允许打开
TR1=1;//开计数
EA=1;//打开总中断允许

//中断处理部分
static unsigned char cont=0;//保存进入中断的次数
TH1=(65536-50000)/256;//重装定时器
TL1=(65536-50000)%256;
if(++cont==20)//检测是否到了1秒钟
{
cont=0;//清零次数
//1秒钟到了,添加处理代码
}本回答被提问者采纳
第2个回答  2013-08-29
我估计这个问题 很难回答哦···我知道个网站你搜索下电子发烧友,那里面都是专业的