- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 51单片机的定时器/计数器; 7.1 概述; 7.2 定时器/计数器的结构; 7.2 定时器/计数器的结构; 7.2 定时器/计数器的结构; 7.2 定时器/计数器的结构;7.2.1 工作方式控制寄存器TMOD;7.2.1 工作方式控制寄存器TMOD;7.2.1 工作方式控制寄存器TMOD;;7.3 定时器/计数器的工作方式; 7.3.1 方式0; 定时器/计数器工作在方式1 (M1M0=01)时,为16位计数器。其逻辑结构图如图:(以T1为例); 定时器/计数器工作在方式2 (M1M0=10)时,为8位自动恢复初值的计数器。其逻辑结构图见下图:;方式3 (M1M0=11);2.T0--TH0做8位定时器;工作方式3下的定时器/计数器T1;7.4 定时器/计数器的应用编程;7.4 定时器/计数器的应用编程;7.4 定时器/计数器的应用编程;7.4 定时器/计数器的应用编程;7.4 定时器/计数器的应用编程; 7.4.1 定时器的应用; 7.4.1 定时器的应用;(1)用查询方式编程
#includereg51.h //包含51单片机寄存器定义的头文件
sbit P10=P1^0; //将P10定义为P1.0
/*函数功能:主函数*/
void main(void)
{
TMOD=0x01; //TMOD=0000 0001B,使用定时器T0的方式1
TH0=0xFC; //定时器T0的高8位赋初值
TL0=0x18; //定时器T0的低8位赋初值
TR0=1; //启动定时器T0
while(1) //无限循环,TF0≠1等待
{
if(TF0==1) //T0溢出判断
{
TH0=0xFC; //重新赋计数初值
TL0=0x18;
TF0=0; //软件清除溢出标志
P10=~P10; //P1.0取反
}
}
};(2)用中断方式编程
#includereg51.h //包含51单片机寄存器定义的头文件
sbit P10=P1^0; //将P10定义为P1.0
/*函数功能:定时器T0的中断服务程序*/
void Time0() interrupt 1 using 0 //“interrupt”声明函数为中断服务函数
{
TH0=0xFC; //重新赋计数初值
TL0=0x18;
P10=~P10; //将P1.0引脚输出电平取反,产生方波
}
/*函数功能:主函数*/
void main(void)
{
TMOD=0x01; //TMOD=0000 0001B,使用定时器T0的方式1
EA=1; //开总中断
ET0=1; //定时器T0中断允许
TH0=0xFC ; //定时器T0的高8位赋初值
TL0=0x18; //定时器T0的低8位赋初值
TR0=1; //启动定时器T0
while(1); //无限循环,等待中断
}; 7.4.1 定时器的应用; 7.4.1 定时器的应用;#includereg51.h //包含单片机寄存器的头文件
#define uchar unsigned char
uchar Countor; //设置全局变量,储存定时器T0中断次数
uchar i=0; //LED显示位置计数
uchar idata led[8]={ 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f };
/*函数功能:定时器T0的中断服务程序*/
void Time0() interrupt 1 using 0 //“interrupt”声明函数为中断服务函数
{
TH0=(65536-50000)/256; //定时器T0的高8位重新赋初值
TL0=(65536-50000)%256; //定时器T0的低8位重新赋初值
Countor++; //中断次数自加1
if(Countor==20) //若累计满20次,即计时满1s
{
Countor=0; //将Countor清0,重新从0开始计数
P1=led[i]; //输出P1口状态
i++;
if(i==8)i=0; //i=8重新循环
}
};/*函数功能:主函数*/
void main(void)
{
TMOD=0x01; //使用定时器T0的方式1
EA=1; //开总中断
ET0=1; //定时器T0中断允许
TH0=(65536-50000)/256; //定时器T0的高8位赋初值
TL0=(65536-50000)
您可能关注的文档
最近下载
- 2025青岛上合产投控股集团有限公司公开招聘(14人)笔试备考试题及答案详解(夺冠).docx VIP
- 2025-2026新版部编人教版小学3三年级语文上册(全册)教案设计.doc
- 2025青岛上合产投控股集团有限公司公开招聘(14人)笔试备考试题及答案详解(考点梳理).docx VIP
- 口腔科冠调合知情同意书.docx
- 山东省临沂市费县2024-2025学年九年级上学期期中考试数学试题(含答案).pdf VIP
- 16111(1118修改)柔性掩护支架采煤作业规程.doc
- 2025青岛上合产投控股集团有限公司公开招聘(14人)笔试备考试题及答案详解参考.docx VIP
- 高效液相色谱法测定奶粉中三聚氰胺的含量.docx VIP
- YY_T 1268-2023 环氧乙烷灭菌的产品追加和过程等效.docx VIP
- 2025青岛上合产投控股集团有限公司公开招聘(14人)笔试备考试题及答案详解一套.docx VIP
原创力文档


文档评论(0)