- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
五、可编程外围定时器/计数器8253 2、 8253的工作方式和控制字 8253计数器工作方式由编程 设定,通过将控制字写入控 制寄存器,来选择每一个计 数器的工作方式。控制字的 格式如下图8.15所示。 8253的6种控制方式如下: (1)方式0:这种方式在计数 器减为0时,输出线OUT升为 高电平,向CPU发出中断请 求。方式控制字写入后,输出 线OUT为低电平,计数器初值写入后计数器开始计数,计数期间仍为低电平。(2)方式1:方式1输出单拍负脉冲信号,脉冲宽度可编程设定。在设定工作方式和写入计数值后,OUT输出高电平。在门控信号GATE上升为高电平时,OUT输出低电乎,并开始计数。在计数器减为0时,输出变为高电平。 五、可编程外围定时器/计数器8253 2、 8253的工作方式和控制字 (3)方式2:方式2为脉冲发生器方式,产生连续的负脉冲信号。OUT输出的负脉冲宽度等于一个时钟周期,脉冲周期等于写入计数器的计数值和时钟周期的乘积。OUT受门控信号GATE控制。 (4)方式3:方式3计数时,计数器输出为方波。若计数值N为偶数,在前N/2计数期间OUT输出高电平,后N/2计数期间OUT输出低电平。如果N为奇数,高低电平为(N+1)/2和(N-1)/2。其余特性同方式2。 (5)方式4:方式4为软件触发选通方式。方式控制字写入8253后,计数器输山高电平,再写入计数值之后开始计数。当计数到0时输出一个时钟周期的负脉冲。当门控GATE输入低电平时,计数停止。 (6)方式5:方式5为硬件触发选通方式。写入方式控制字和计数值后,输出保持高电平,只有在门控信号GATE上升沿之后才开始计数,计完最后一个数,输出一个时钟周期的负脉冲。 五、可编程外围定时器/计数器8253 3、 8253与C51单片机的接口 【例8-7】 按照图8.16所示 的连接,对8253进行编程, 实现图中的的输出波形。 分析: (1)8253控制字的地址 为0B 1111 1111 1111 1111 即0xFFFF;通道0地址 为0B 0011 1111 1111 1111即0x3FFF;通道1地址为0B0111 1111 1111 1111即0x7FFF;通道2地址为0B 1011 1111 1111 1111即0xBFFF。 (2)通道0工作在方式0,通道1工作在方式3,通道2工作在方式4。程序如下: 五、可编程外围定时器/计数器8253 3、 8253与C51单片机的接口 #include reg51.h #include stdio.h #define P8253CW 0XFFFF //8253控制字 #define P8253T0 0X3FFF //8253通道0地址 #define P8253T1 0X7FFF //8253通道1地址 #define P8253T2 0XBFFF //8253通道2地址 #define uchar unsigned char #define uint unsigned int void WCW(uchar data); //函数申明 void WT0(uchar data); void WT1(uchar data); void WT2(uchar data); xdata uchar c8253word=0; Uart_init(); void Delay; main() { Uart_init(); P0=0XFF; //端口初始化为0xFF P1=0XFF; P2=0XFF; 五、可编程外围定时器/计数器8253 3、 8253与C51单片机的接口 P3=0XFF; c8253word=0x10; //通道0方式0 WCW(c8253word); //写入控制字 WT0(0x80); //写入计数初值 c8253word=0x56; //通道1方式3 WCW(c8253word); //写入控制字 WT1(0x80);
文档评论(0)