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

📄 t0.c.bak

📁 单片机开发板源程序适合初学者 第六部分 继电器输出控制
💻 BAK
字号:
/*实验名称:定时中断0
  功能:利用定时器,产生秒计数器,使数码管从000计到999
  作者:http://www.mcuprog.com
        05-02-01
*/
#include <reg51.h>
//LCD的口线
sbit E=P3^5;
sbit RW=P3^6;
sbit RS=P3^7;	
//8字LED的连接方法
//P0.7,P0.6,P0.5,P0.4,P0.3,P0.2,P0.1,P0.0
//G,   F   A   E   B   H  C   D


unsigned char code ledcode[]={0x84,0xf5,0x46,0x54,0x35,0x1c,0x0c,0xd5,	
			      0x04,0x14,0x05,0x2c,0x8e,0x64,0x0e,0x0f};	//数码管段码表

unsigned char js100ms,jsgw,jssw,t0100ms,t0sm;

void time0(void);

void main(void)
{
	E=0;			//取消LCD对LED的影响
	RW=0;
	RS=1;
	
	js100ms=0x00;
	jsgw=0x00;
	jssw=0x00;
	t0100ms=0x14;
	t0sm=0x01;			//从第一个LED开始显示
	TH0=0xee;
	TL0=0x00;
	TMOD=0x01;
	TR0=1;
	IE=0x82;
	while(1)
	{}	
}

void time0(void) interrupt 1
{
	TH0=0xee;
	TL0=0x00;
	t0100ms--;
	if(t0100ms==0x00)
	{
		t0100ms=0x14;
		js100ms++;
		if(js100ms==0x0a)
		{
			js100ms=0x00;
			jsgw++;
			if(jsgw==0x0a)
			{
				jsgw=0x00;
				jssw++;
				if(jssw==0x0a)
				{jssw=0x00;}
			}
		}
	}
	t0sm++;
	if(t0sm==0x04)
	{t0sm=0x01;}
	P0=0xff;
	switch(t0sm)
	{
		case 0x01:	{ P2=0xdf;P0=ledcode[js100ms];}break;
		case 0x02:	{ P2=0xef;P0=ledcode[jsgw]&0x7f;}break;
		case 0x03:  { P2=0xf7;P0=ledcode[jssw];}break;
		default: 	break;
	}
}

⌨️ 快捷键说明

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