当前位置: 首页 > news >正文

日常网站维护/推广关键词怎么设置

日常网站维护,推广关键词怎么设置,中国设计之窗官网,小清新个人网站继上篇的《单片机(AT89C51)定时/计数器详解及其实验案例》由于各种原因里面没有实验案例现在在此补上。 单片机(AT89C51)定时/计数器详解见上篇:https://blog.csdn.net/weixin_45629315/article/details/105418365 目录 案例分析…

继上篇的《单片机(AT89C51)定时/计数器详解及其实验案例》由于各种原因里面没有实验案例现在在此补上。

单片机(AT89C51)定时/计数器详解见上篇:https://blog.csdn.net/weixin_45629315/article/details/105418365

目录

案例分析

实验一(已知8051单片机的fosc=12MHz用T1定时,试编程由P1.0引脚分别输出周期为2ms的方波)

方法一(查询法):

方法二(中断法):

实验结果图:

           ​

实验二(已知8051单片机的fosc=12MHz用T1定时。试编程由P1.0引脚分别输出周期为2s的方波):

方法一(查询法):

方法二(中断法):

实验结果图:

 实验三(使用定时器1, 以定时方法在P1.0输出周期为20ms,占空比为20%的矩形脉冲,设单片机晶振频率fosc为12MHz,编程实现):

代码:

实验结果图:


 

案例分析

总结了经常遇到的三种类型:

  1. 已知8051单片机的fosc=12MHz用T1定时,试编程由P1.0引脚分别输出周期为2ms的方波。

  2. 已知8051单片机的fosc=12MHz用T1定时。试编程由P1.0引脚分别输出周期为2s的方波。
  3. 使用定时器1, 以定时方法在P1.0输出周期为20ms,占空比为20%的矩形脉冲,设单片机晶振频率fosc为12MHz,编程实现。

 为了方便分析我们先把实验图给出来(示波器是为了让我们的实验结果更加的明显):

实验一(已知8051单片机的fosc=12MHz用T1定时,试编程由P1.0引脚分别输出周期为2ms的方波)

先计算我们的初值(结果可以不用详细的计算,直接在代码中表示就好了):  T初值=2^16-1ms/1us什么你还不知道这个算式怎么写?看看我上一篇吧,链接给你丢这里了:https://blog.csdn.net/weixin_45629315/article/details/105418365

方法一(查询法):

# include  <reg51.h>  sbit  P1_0=P1^0; 	//将P1_0位定义为 P1.0void  main()
{  char  i;TMOD=0x10;   		//使用定时器T1的模式1TR1=1;     			//启动定时器T1for( ; ;)   			            //无限循环{	TH1=(65536-1000)/256; 
TL1=(65536-1000)%256;                   //定时器T1赋初值do {  }  while  (!TF1);  		//查询计数溢出TF1=0;P1_0=! P1_0;  			//取反}    
}

方法二(中断法):

# include  <reg51.h> 		//包含特殊功能寄存器库
sbit  P1_0=P1^0;
void  main()
{EA=1; 				    //开总中断ET1=1;  				//定时器T1中断允许TMOD=0x10;  		    //使用定时器T1的模式1TH1=(65536-1000)/256; 		//定时器T1的高8位赋初值TL1=(65536-1000)%256;  		//定时器T1的低8位赋初值	TR1=1;  			        //启动定时器T1while(1);
}
void  time1_int(void)  interrupt 3   	//中断服务程序
{P1_0=!P1_0;  					       //取反TH1=(65536-1000)/256;TL1=(65536-1000)%256;  		//定时器T1赋初值
}

实验结果图:

           

实验二(已知8051单片机的fosc=12MHz用T1定时。试编程由P1.0引脚分别输出周期为2s的方波):

先计算我们的初值(结果可以不用详细的计算,直接在代码中表示就好了):  T初值=2^16-1s/1us,通过计算会发现我们需要的初值是个负数说明了我们想要的周期超过了定时计数器的最大范围,那我们需要怎么解决呢?可以想把这个周期的时间划分为几个相等小块,然后再计数一下,就可以实现大的周期化成小的周期。

注:周期不要化的太小否则会出问题(大家可以尝试一下)要很小的话会超出char的范围,要是真的想改的很小,把count的类型改为int即可。

我们可以将周期化为初值为20ms一个小周期然后循环的执行50遍就是我们的1s,那么初值就是:T初值=2^16-20ms/1us(当然这边的方法只要是可以的就行,不一定要和我一样进行划分奥

方法一(查询法):

# include  <reg51.h>  sbit  P1_0=P1^0; 	//将P1_0位定义为 P1.0void  main()
{  char  i;char count=0;TMOD=0x10;   		//使用定时器T1的模式1TR1=1;     			//启动定时器T1for( ; ;)   			//无限循环{	TH1=(65536-20000)/256; TL1=(65536-20000)%256;         //定时器T1赋初值do {  }  while  (!TF1);  	   //查询计数溢出TF1=0;                         //计数器溢出后,将TF1清0count=count+1;if (count==50) {P1_0=! P1_0;  			//取反count=0;}    }
}

方法二(中断法):

# include  <reg51.h> 		//包含特殊功能寄存器库
sbit  P1_0=P1^0;
char count;
void  main()
{TMOD=0x10;  		//使用定时器T1的模式1TH1=(65536-20000)/256; 		//定时器T1的高8位赋初值TL1=(65536-20000)%256;  		//定时器T1的低8位赋初值EA=1; 				//开总中断ET1=1;  			//定时器T1中断允许	TR1=1;  			//启动定时器T1count=0;while(1);
}
void  time0_int(void)  interrupt 3   	//中断服务程序
{ count++;TH1=(65536-20000)/256;TL1=(65536-20000)%256;  		//定时器T1赋初值if(count==50){P1_0=!P1_0;  					//取反 count=0;
}
}

实验结果图:

                             

 实验三(使用定时器1, 以定时方法在P1.0输出周期为20ms,占空比为20%的矩形脉冲,设单片机晶振频率fosc为12MHz,编程实现):

这个实验较前面的几个实验有不同之处:首先要了解什么叫占空比?(占空比是指在一串理想的脉冲序列中(如方波),正脉冲的持续时间与脉冲总周期的比值,这样我们就可以计算了:

占空比为20%,那么高电平的占比时间就是20ms*20%=4ms;低电平的占比时间就是20ms*80%=16ms

可以看出高电平时间比上低电平时间为---1:4,可以借鉴实验二的方法设置count

那么我们就可以设置初值为4ms,然后执行一次跳低电平,执行5次跳高电平(并且计数器count置零)

代码:

# include  <reg51.h> 		//包含特殊功能寄存器库
sbit  P1_0=P1^0;
char count=0;            //设置计数器的count为全局变量
void  main()
{TMOD=0x10;  		//使用定时器T1的模式1TH1=(65536-4000)/256; 		//定时器T1的高8位赋初值(设置一个循环为4000)TL1=(65536-4000)%256;  		//定时器T1的低8位赋初值EA=1; 				//开总中断ET1=1;  				//定时器T1中断允许	TR1=1;  			//启动定时器T1P1_0=1;while(1);
}
void  time0_int(void)  interrupt 3   	//中断服务程序
{ count++;TH1=(65536-4000)/256;TL1=(65536-4000)%256;  		//定时器T1赋初值if(count==1){P1_0=0;  					//取反 }if(count==5){P1_0=1;count=0;} 
}

实验结果图:

                                       

写的不好,仅供参考

No pains No results 

http://www.lbrq.cn/news/1238419.html

相关文章:

  • 建和做网站/杭州seo公司服务
  • 欧美浅蓝色新闻网站css模板/推广论坛有哪些
  • 南京网站建设王道下拉??/外贸网站推广怎么做
  • 徐州市中宇建设工程有限公司网站/万能优化大师下载
  • 建行网站/网页搜索优化
  • 北京网站制作公司招聘信息/全球搜官网
  • 如何用css做网站/工厂管理培训课程
  • wordpress 蓝色主题/百度seo发帖推广
  • 奉化建设网站/推广普通话演讲稿
  • 深圳建设网站上市/营销推广工作内容
  • 网站建设与管理的现状/百度首页排名优化平台
  • 网站开发参考文献期刊/google广告投放
  • wordpress add_action/武汉排名seo公司
  • 大型集团网站建设/企业网站设计规范
  • 许昌做网站公司报价/域名ip查询入口
  • 青岛做网站建网站/站长统计幸福宝2022年排行榜
  • 网站建设及维护业务服务合同/搜索词分析
  • 安宁网站建设 熊掌/怎么理解搜索引擎优化
  • 河北网络推广/大连seo外包平台
  • 建设淘宝网站需要多少钱/百度营销中心
  • 南京做网站多少钱/有效获客的六大渠道
  • 海口网站运营托管咨询/软文投放平台有哪些
  • 罗岗网站建设公司/长沙靠谱的关键词优化
  • 网站开发类毕业设计/seoapp推广
  • 网站制作学校找哪家/有利于seo优化的是
  • 做建材哪个网站平台好/百度大数据
  • java社交网站开发/网站收录查询爱站
  • 网站开发培训流程/网站建设费用明细表
  • wordpress导航仿制/安卓系统优化app
  • 广东省高水平建设专业网站/关键词指数查询工具
  • 第九章:了解特殊场景下的redis
  • 一个网页的加载过程详解
  • Linux 摄像头实时抓取:V4L2、FFmpeg 与 GStreamer 全面讲解
  • vscode的Remote-SSH插件配置SSH主机方法
  • 秋招笔记-8.3
  • IMAP电子邮件归档系统Mail-Archiver