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

📄 text1.c

📁 单片机快速入门原程序
💻 C
字号:
#include <reg51.h>
#include<stdio.h>
Uart_Init();
sbit P10=0x90;
sbit P11=0x91;
sbit P12=0x92;
sbit P13=0x93;
bit Change_Flag;
void Update_LED();
xdata int nCounter=0;
xdata int nIndex=0;
xdata int nDataToDisplay=0;
char Table[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
main()
{	Uart_Init();
	TH0=0x3C;	/* 计数初值写入TH0 */
	TL0=0xAF;	/* 写入计数初值到TL0 */
	ET0=1;		/* 定时器0中断允许*/
	EA=1;		/* 全局中断允许 */
	TF0=0;		/* 定时器0中断标志位清0 */
	TR0=1;		/* 定时器0准备开始 */
	P10=1;
	Change_Flag=0;
	nCounter=0;
	while(1)
	{	if(Change_Flag==1)
		{Update_LED();
			if(nDataToDisplay>9999) nDataToDisplay=0;
			printf("counter refreshed  %d \n",nDataToDisplay);			   
		}
	}
}
void Timer0_Overflow() interrupt 1 using 0
{	TH0=0x3C;	/* 计数初值写入TH0 */
	TL0=0xAF;	/* 写入计数初值到TL0 */
if(nCounter==20)
		{nCounter=0;
			nDataToDisplay++;
			Change_Flag=1;
			/* 计数时间到1s计数值加1 */
		}
	nCounter++;
}
Uart_Init()
	{SCON = 0x52;    /* 设置串行口控制寄存器SCON*/
	 TMOD = 0x21;    /* 12M时钟时波特率为2400  */
	 TCON = 0x69;    /* TCON */
	 TH1 =  0xf3;    /* TH1 */
	}
void Update_LED()
{	int nTemp;
	nTemp=nDataToDisplay;
	P13=0;
	nIndex=nTemp%10;
	SBUF=Table[nIndex];
	P13=1;
//	while(!TI);	/* 等待发送完毕 */
//	TI=0;
	nTemp/=10;
	P12=0;
	nIndex=nTemp%10;
	SBUF=Table[nIndex];
	P12=1;
//	while(!TI);/* 等待发送完毕 */
//	TI=0;
	nTemp/=10;
	P11=0;
	nIndex=nTemp%10;
	SBUF=Table[nIndex];
	P11=1;
//	while(!TI);/* 等待发送完毕 */
//	TI=0;
	nTemp/=10;
	P10=0;
	nIndex=nTemp%10;
	SBUF=Table[nIndex];
	P10=1;
	Change_Flag=0;
}

⌨️ 快捷键说明

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