实验目的:
十多年的海兴网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,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元起,快前往官网查看详情吧