⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 单片机C51的定时器程序
💻 C
字号:
	  /********************************************************************
* 文件名  : main.c
* 描述    :  定时器0工作方式3,在外部晶振11.0592MHZ下,精确定时0.2ms,
             每隔一秒数码管上的数值加1。
* 创建人  : 符芳壮,2012年6月13日
* 版本号  : 1.0
***********************************************************************/
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int 
#define uchar unsigned char

//数码管的段码编码
uchar code table[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//下一行的数组可以显示数值外,还可以显示数码管的点
uchar code table_d[16] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1};

//定义全局变量
uint count;
/**********************************************************
*函数名称:void time0_init(void)
*函数功能:定时器0初始化
*输入    :无
*输出	 :无
**********************************************************/
void time0_init(void)
{
    TMOD = 0x03; //定时器0工作方式3
	TL0  = 0x47; //定时0.2ms
	EA   =1;     //开启总中断
	ET0  =1;    //开启定时器0中断
	TR0  =1;   //启动定时器0
}



/**********************************************************
*函数名称:void time0_int(void)
*函数功能:定时器0中断实现count自加
*输入    :无
*输出	 :无
**********************************************************/
void time0_int(void) interrupt 1 using 0
{
   	TL0  = 0x47; //重新装载初值定时0.2ms
	count++;
}


void main(void)
{
   uint i = 0;
   time0_init();
   P2 = 0x00;
   while(1){
   P0 = table[i%16];
   if(count==5000){
   i++;
   count=0;
   }

   
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -