电工优优今天要和大家分享的单片机相关信息,接下来我将从51单片机学习:定时器0实验这个方面来介绍。
实验名称:定时器0实验接线说明:实验现象:下载程序后,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--);}
/******************************************************************************** 函 数 名 : time0_init* 函数功能 : 定时器0中断配置函数,通过设置TH和TL即可确定定时时间* 输 入 : 无* 输 出 : 无*******************************************************************************/void time0_init(void){TMOD|=0X01;//选择为定时器0模式,工作方式1TH0=0XFC; //给定时器赋初值,定时1msTL0=0X18;ET0=1;//打开定时器0中断允许EA=1;//打开总中断TR0=1;//打开定时器}
/******************************************************************************** 函 数 名 : main* 函数功能 : 主函数* 输 入 : 无* 输 出 : 无*******************************************************************************/void main(){time0_init();//定时器0中断配置
while(1){}}
void time0() interrupt 1 //定时器0中断函数{static u16 i;//定义静态变量iTH0=0XFC; //给定时器赋初值,定时1msTL0=0X18;i++;if(i==1000){i=0;LED1=!LED1;}}