单片机---1MHz方波的产生(中断和查询方式)
创始人
2024-02-22 12:23:31

单片机—定时/计数器方式产生1MHz方波

要求: 使用定时器1,采用工作方式1,在输出口P2.0产生周期未1秒的方波;

定时计数基本流程

  1. 计算初值
  2. 定义TMOD寄存器确定 T0 或 T1 为工作方式
  3. 把计数器初值装入 THx 和 TLx (x=0,1与上面确定的T0,T1保持一致)
  4. 采用中断方式时,要对 IE 和 IP 寄存器进行赋值,打开中断
  5. 使TRx(x=0,1) 置位, 启动定时/计数器工作

要求分析

  • 定时器T1由 TH1(字节地址8DH) 和 TL1(字节地址8BH) 组成,使用时我们在其装填初值

  • T1定时器对应TMOD寄存器的高八位,采用工作方式1则对应M1M0=01,所以这里我们将TMOD的初值设为 0001 0000 转化为对应16进制数为 TMOD=0x10

  • 要产生周期为1s的方波,可以利用定时器在500ms时产生溢出, 在通过软件方法是输出口P2.0的输出状态取反, 不断重复这一过程即可.

  • 1s=1000ms,工作方式1是16位定时/计数器,对每一个机器周期(1μs)进行计数,其最大值为2**16=65536μs,约等于65.54ms,那么我们产生500ms的定时可以采用每次50ms的定时,并且让其计数10次来实现

  • 根据公式计算初值为:

    a=216 - t • fosc / 12 = 65536 - 50000 • 11.059/12 = 19456.833 (11.059MHz晶振频率)

    a=216 - t • fosc / 12 = 65536 - 50000 • 12/12 = 15536 (12MHz晶振频率)

    15536转化为16进制为0x3CB0 即 TH1=0x3C TL1=0xB0

  • 对于查询方式来说,我们利用 TCON 定时/计数控制寄存器中 TF1的溢出来作为计数,核心思想方法同上面一致,采用每次50ms的计时,时间到产生溢出,循环溢出10次后将输出口的电平取反即可实现对应方波的.

代码编写

中断方式实现

//中断方式
#include  //定义头文件,我的单片机型号为80C52RC
unsigned char num; //用于循环计数变量
sbit D1=P2^0;	   //方波输出口为P2.0/*中断函数 中断源:"定时/计数器1(T1)",代号3*/
void timer1() interrupt 3 
{TH1=0x3C; TL1=0xB0;  //装填计数器初值num++;			 	 //计数变量自增
}
/*程序主函数*/
void main()
{num=0;		//初始化计数变量EA=1;		//打开中断允许寄存器IE内的总开关EAET1=1;		//打开中断允许寄存器IE内的开关ET0TMOD=0x10;	//0001 0000//低四位,GATE=0,C/T=0,M1M0=01;选用中断源T1,方式1,16位定时器TH1=0x3C; TL1=0xB0;  //装填计数器初值TR1=1;				 //启动定时器T1while(1)			 // 无限循环使得方波连续{if(num==10) //中断函数每执行0次,取反一次,10*50ms=500ms,即led1以1s的间隔交替点亮熄灭{num = 0;   //中断函数每执行20次,初始化计数变量D1 = !D1;  //取反}}
}

查询方式实现

//查询方式
#include  //定义头文件,我的单片机型号为80C52RC
unsigned char num; //用于循环计数变量
sbit D2=P2^1;	   //方波输出口为P2.1void main()
{num = 1; 		//设置计数的次数//低四位,GATE=0,C/T=0,M1M0=01;选用定时器T1,方式1,16位定时器TMOD = 0x10;	//0001 0000TR1 = 1;		//启动T1			TH1=0x3C; TL1=0xB0;	// 装载计数器初值while(1)  			// 无限循环使得方波连续{if (TF1==1)		//判断定时器T1溢出标志位是否为1{num++;TF1 = 0; 	//清除中断TH1=0x3C; TL1=0xB0;	// 装载计数器初值if (num==10) //若产生了10次溢出 {2 = !D2; // 定时时间到使D2反向num = 1;			}}		}
}

结果演示

仿真图如下:

在这里插入图片描述

仿真效果如下:

在这里插入图片描述

实物演示如下:

在这里插入图片描述

在这里插入图片描述

可以见结果符合所需要求.

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...