- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
;定时计数器; TF1; TF1;怎样编制计数程序?;C51中断程序设计的完整语法如下:;;中断举例;#include reg51.h
#define uchar unsigned char
sbit key1=P1^0;sbit key2=P1^2;sbit key3=P1^4;sbit key4=P1^6;
sbit kled1=P3^4;sbit kled2=P3^5;sbit kled3=P3^6;sbit kled4=P3^7;
uchar nkey1=0,nkey2=0,nkey3=0,nkey4=0,nkey;
code uchar dis[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
code uchar wie[ ]={0x01,0x02};
uchar led[2];
void delay()
{ uchar k; for(k=0;k250;k++); }
void key() interrupt 0
{ kled1=1;kled2=1;kled3=1;kled4=1;
if (key1==0) {nkey1++;nkey=nkey1; kled1=0;}
if (key2==0) {nkey2++;nkey=nkey2; kled2=0;}
if (key3==0) {nkey3++;nkey=nkey3; kled3=0;}
if (key4==0) {nkey4++;nkey=nkey4; kled4=0;}
led[1]=nkey/10;led[0]=nkey%10;}
void main()
{ uchar ii; IE=0X81;IP=0X0;TCON=0X01;
while(1) { for(ii=0;ii2;ii++)
{ P0=0x00; P2=wie[ii]; P0=dis[led[ii]]; delay(); } } };1 工作原理
计数器—存储单元THx、TLx 可预置的加法存储器
溢出 TCON中的TFx,申请中断
2 工作模式
13、16、8位 --TMOD中M1M0
3 工作方式
计管脚脉冲—TMOD中C/T=1 (TLx加)
计(晶振振荡数/12)—TMOD中C/T=0 (TLx加) 定时延时概念
4 编程
;定时器/计数器的控制主要是通过以下几个寄存器实现的:
TCON---定时器/计数器控制寄存器
TMOD---定时器/计数器工作方式控制寄存器
IE ---中断允许控制寄存器
THX TLX---计数初值;在计数工作方式下,计数器的计数值范围是:
??????????1~8192(2的13方) 256*32=8192
当为定时工作方式时,定时时间的计算公式为:
?????????( 8192 -计数初值)×晶振周期×12
或??? ( 8192 -计数初值)×机器周期
其时间单位与晶振周期或机器周期相同。
如果单片机的晶振选为6.000MHz,则最小定时时间为:
???? [8192—8191]×2×10-6=2×10-6(s)=2(us)
最长定时时间为:
?????(8192—0)×2×10-6=16384×10-6(s)=16,384(us)。; ;在工作方式1下,计数器的计数值范围是:
??????????1~65536(2的16方) 256*256=65536
当为定时工作方式1时,定时延时时间的计算公式为:
?????????(65536—计数初值)× 晶振周期×12
或??? (65536—计数初值)× 机器???期
其时间单位与晶振周期或机器周期相同。
如果单片机的晶振选为6.000MHz,则最小定时时间为:
????? [65536—65535]×2×10-6=2×10-6(s)=2(us)
最长定时时间为:
????? (65536—0)×2×10-6=131072×10-6(s)=131072(us)。;;? 如果定时/计数器0工作于工作方式3,那么定时/计数器1的工作方式就因为自己的一些控制位已被定时/计数器0借用,只能工作在方式0、方式1或方式2下.;例;C51源程序;1 在proteus上画出如下电路图.
2 在keil中编制程序,要求能对应LED显示按键按下的次数值(累计).;#include reg51.h
#define uchar unsigned c
原创力文档


文档评论(0)