第四章_3MCS-51单片机的内部资源及其编程定时-计数器编程实例zxl_第1页
第四章_3MCS-51单片机的内部资源及其编程定时-计数器编程实例zxl_第2页
第四章_3MCS-51单片机的内部资源及其编程定时-计数器编程实例zxl_第3页
第四章_3MCS-51单片机的内部资源及其编程定时-计数器编程实例zxl_第4页
第四章_3MCS-51单片机的内部资源及其编程定时-计数器编程实例zxl_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、定时定时/计数器编程实例计数器编程实例数码管显示实验:“实现数值065535的变化显示”问题:问题:如何使数值变化的速如何使数值变化的速度减慢?(如每隔度减慢?(如每隔1 1秒数值秒数值加加1 1)void main(void) unsigned char i,j; unsigned int uiTemp = 0; while(1) convert(uiTemp); for(i=0;i6;i+) P2=LED_segi; /送段码 P0=LED_biti; /送位码 delay1ms(5); /5ms延迟 uiTemp+; 例1:实现数值065535的变化显示,每隔50ms数值加1。( 设晶振

2、频率为12MHz)例1:实现数值065535的变化显示,每隔数值加1。( 设晶振频率为12MHz)q例例2 2:设晶振频率:设晶振频率fosc=6MHzfosc=6MHz,要求在,要求在P2.0P2.0脚上输出周期为脚上输出周期为2ms2ms的方波。的方波。解:采用定时器解:采用定时器T0T0的方式的方式1 1进行编程进行编程时所需计数次数时所需计数次数n=1000usn=1000us2us2us500500于计数器递增计数,为得到于计数器递增计数,为得到500500个计数之后的定时器溢出,必须个计数之后的定时器溢出,必须给定时器置初值给定时器置初值6553665536500500。2ms#i

3、nclude sbit P2_0=P20;void T0_ISR() TH0= (65536500)/ 256; TL0=(65536500) 256; P2_0=!P2_0; void main(void) TMOD=0 x01; TH0=(65536500)/256; TL0=(65536500)256; ET0=1; EA=1; TR0=1; while(1); 使用方式进行编程:#include sbit P2_0=P20;void main(void) TMOD=0 x01; TH0= (65536500)/256; TL0=(65536500)256; TR0=1; while(1

4、) TH0= (65536500)/256; TL0=(65536500)256; while (!TF0);P2_0 = ! P2_0;TF0 = 0; 使用方式进行编程:查询查询TF0TF0是否为是否为1 1,如果为如果为1 1则说明溢则说明溢出(定时时间到)出(定时时间到)q例3:设单片机fosc=6MHz,要求在P2.0引脚上输出周期为,占空比为的矩形波。在例2基础上应作何修改?2ms,占空比,占空比2ms,占空比,占空比2ms,占空比,占空比解:采用定时器T0的方式1进行编程0.5msi = 10.5msi = 20.5msi = 30.5msi = 4q例3:设单片机fosc=6M

5、Hz,要求在P2.0引脚上输出周期为,占空比为的矩形波。在例2基础上应作何修改?#include reg51.hsbit P1_0=P10; TH0=(65536-250)/256; TL0=(65536- 250)%256; TMOD=0 x01; TH0=(65536- 250)/256; TL0=(65536- 250)%256; ET0=1; EA=1; TR0=1; i = 0; P1_0 = 1;while (1) ; q例3:设单片机fosc=6MHz,要求在P2.0引脚上输出周期为,占空比为的矩形波。在例2基础上应作何修改?#include reg51.hsbit P1_0=P

6、10;unsigned char i;void TIMER0_ISR (void) interrupt 1 TH0=(65536-250)/256; TL0=(65536- 250)%256; void main (void) TMOD=0 x01; TH0=(65536- 250)/256; TL0=(65536- 250)%256; ET0=1; EA=1; TR0=1; i = 0; P1_0 = 1; while (1) ; q 例3:设单片机fosc=6MHz,要求在P2.0引脚上输出周期为,占空比为的矩形波。在例2基础上应作何修改?0.5msi = 10.5msi = 20.5ms

7、i = 3(不可以)#include reg51.hsbit P1_0=P10;unsigned char i;void TIMER0_ISR (void) interrupt 1 TH0=(65536-50)/256; TL0=(65536- 50)%256; void main (void) TMOD=0 x01; TH0=(65536- 50)/256; TL0=(65536- 50)%256; ET0=1; EA=1; TR0=1; i = 0; P1_0 = 1; while (1) ; q 例3:设单片机fosc=6MHz,要求在P2.0引脚上输出周期为,占空比为的矩形波。在例2基

8、础上应作何修改?q 例例4:设晶振频率:设晶振频率fosc=6MHz,要求在,要求在P2.0脚上输出周期为脚上输出周期为2s的的方波。(同例方波。(同例1) 200ms+1+1满满5 5次溢出次溢出从而实现从而实现1 1秒定时秒定时 T0工作在定时方式1,定时100ms,从而控制P1.0输出周期为200ms的方波;将这个方波输入到T1,T1工作在计数方式2,计数5次后溢出,控制P2.0反向,从而实现周期为2秒的方波输出。#include sbit P1_0 = P10;sbit P1_7 = P17;void Timer0( ) TH0 = (65536 50000) / 256;TL0 =

9、(65536 50000) % 256;P1_0 = ! P1_0;void Timer1( ) P1_7 = ! P1_7;void main( )P1_7 = 0;P1_0 = 1;程序代码:程序代码:TMOD = 0 x61;TH0 = (65536 50000) / 256;TL0 = (65536 50000) % 256;TH1 = 256 5 ;TL1 = 256 5;IP = 0 x08;EA = 1;ET0 = 1;ET1 = 1;TR0 = 1;TR1 = 1;while(1) ; #include sbit WAVE = P17;unsigned char glucCounter;void Timer0( ) interrupt 1 using 1TH0 = (65536 50000) / 256;TL0 = (65536 50000) % 256;WAVE = ! WAVE;gluc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论