电工优优今天要和大家分享的单片机相关信息,接下来我将从51单片机学习:定时器1实验这个方面来介绍。
实验名称:定时器1实验接线说明:实验现象:下载程序后,D1指示灯间隔1s闪烁注意事项:***************************************************************************************/#include "reg52.h"
typedef unsigned int u16; //对系统默认数据类型进行重定义typedef unsigned char u8;
//定义LED1管脚sbit LED1=P2^0;
/******************************************************************************** 函 数 名 : delay_10us* 函数功能 : 延时函数,ten_us=1时,大约延时10us* 输 入 : ten_us* 输 出 : 无*******************************************************************************/void delay_10us(u16 ten_us){while(ten_us--);}
/******************************************************************************** 函 数 名 : time1_init* 函数功能 : 定时器1中断配置函数,通过设置TH和TL即可确定定时时间* 输 入 : 无* 输 出 : 无*******************************************************************************/void time1_init(void){TMOD|=0X10;//选择为定时器0模式,工作方式1TH1=0XFC; //给定时器赋初值,定时1msTL1=0X18;ET1=1;//打开定时器1中断允许EA=1;//打开总中断TR1=1;//打开定时器}
/******************************************************************************** 函 数 名 : main* 函数功能 : 主函数* 输 入 : 无* 输 出 : 无*******************************************************************************/void main(){time1_init();//定时器1中断配置
while(1){}}
void time1() interrupt 3 //定时器1中断函数{static u16 i;//定义静态变量iTH1=0XFC; //给定时器赋初值,定时1msTL1=0X18;i++;if(i==1000){i=0;LED1=!LED1;}}