实验(六):定时器实验-创新互联

一、实验目的与任务

实验目的:

十多年的海兴网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整海兴建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“海兴网站设计”,“海兴网站推广”以来,每个客户项目都认真落实执行。

     1.掌握定时/计数器的中断法工作原理;

     2.熟悉C51编程与调试方法。

任务:

     1. 运行Keil开发环境,完成定时器软件编程;

     2. 建立Proteus仿真模型;

     3.完成系统仿真与调试。

二、实验内容

1. 利用片内定时器/计数器进行定时,定时间隔3s;

2. 选择I/O口接入发光二极管;

3. 使用AT89S51单片机的定时器/计数器T1控制LED每隔3秒点亮一次(即亮3秒,灭3秒,如此反复)。

三、实验内容 (1)软件实现:

实验步骤:

1.运行Keil uVision5 开发环境,按照“模块化单片机教学实验平台配套的实验指导书1.2.3 节”介绍的方法建立程esimlab6. uvproj,CPU 为AT89S51,包含启动文件STARTUP.A51。

2.输入源程序,在Keil uVision5 开发环境中,建立源程序esimlab6.c,将上述程序加入该程序文件。并将该文件加入工程esimlab6.uvproj。

3.设置工程esimlab6. uvproj 属性,将其晶振频率设置为12MHz,选择输出可执行文件(HEX 文件),仿真方式为“Use Simulator”。

4.构造(Build)工程esimlab6.uvproj。如果输入有误进行修改,直至构造正确,生成可执行程序 esimlab6.hex 为止。

(2)Proteus仿真:

实验步骤:

1.运行Proteus 开发环境,建立工程,新建原理图设计文件esimlab6. Pdsprj,参考图一。

图一 原理图实例

2.设置单片机属性,将其晶振频率设置为12MHz,载入KEIL生成的文件esimlab6.hex。

3.运行仿真并观察结果。

四、实验报告

main.c

#includevoid Timer1_Init(void); //中断初始化函数


void main(){
	
	Timer1_Init();//中断初始化
	P1_5 = 0;
	while(1){
	}
}

void Timer1_Init(void)		//1毫秒@12.000MHz
{
	TMOD &= 0x0F;		//设置定时器模式
	TMOD |= 0x10;		//设置定时器模式
	TL1 = 0x18;		//设置定时初值
	TH1 = 0xFC;		//设置定时初值
	TF1 = 0;		//清除TF1标志
	TR1 = 1;		//定时器1开始计时
	ET1 = 1;		
	EA = 1;			//中断总允许
	PT1 = 0;
}


void Timer1_Routine() interrupt 3 //定时器1中断函数
{
	static unsigned int count1 = 0;
	TL1 = 0x18;		//设置定时初值
	TH1 = 0xFC;		//设置定时初值	
	count1++;
	if(count1 == 3000){ //每三秒转换一次状态
		count1 = 0;
		P1_5 = ~P1_5;
	}
		
}

TO、T1 都具有定时器和计数器两种工作模式,不论是工作在定时器模式还是计数器模式,实质都是对脉冲信号进行计数,只不过是计数信号的来源不同。计数器模式是对加在T0(P3.4)和T1(P3.5)两个引脚上的外部脉冲进行计数;而定时器模式是对单片机的系统时钟信号经片内12分频后的内部脉冲信号(脉冲信号周期=机器周期)计数。由于系统时钟频率是定值,所以可根据计数值计算出准确的定时时间。两个定时器/计数器属于增1计数器,即每对一个脉冲计数,则计数器赠1。 

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享题目:实验(六):定时器实验-创新互联
网址分享:http://scyanting.com/article/dspdog.html