📄 41.c
字号:
#include<regX51.h>
unsigned int i;
unsigned char a[10]={0x03,0x9F,0x25,0xD,0x99,0x49,0x41,0x1F,0x1,0x9};
unsigned char b[10]={0x02,0x9E,0x24,0xC,0x98,0x48,0x40,0x1E,0x0,0x8};
unsigned int shi;
unsigned int ge;
unsigned int dian;
unsigned int k;
unsigned int n;
/*void delay(unsigned char i)
{
while(i--);
}*/
void timer1()interrupt 3 using 2//定时器1中断程序
{
if(i<=40000) //250us计40000次为10s
i++;
else
{
i=0; //到10s,i清0,
P0_0=1;P0_2=1;P0_1=1;P2=0xFF;
}
}
void huoer()interrupt 2 using 2 //外部中断1程序
{
TR1=0; //关定时器
ET1=0; //关定时器中断
n=40000/i;
shi=n/100;
P0_0=1;P2=a[shi];P0_0=0;
k=n%100;ge=k/10;
P0_1=1;P2=b[ge];P0_1=0;
dian=n%10;
P0_2=1;P2=a[dian];P0_2=0;
i=0;
}
void main()
{
EA=1; //开中断
ET1=1; //开定时器1中断
TMOD=0x20; //设置定时器1为方式2工作,高8位存储初值,低8位作计数器
TR1=1; //开计数器1
TH1=0x06; //装载初值6
TL1=0x06; //装载初值6,6到25 6,共计数250次为250us
EX1=1; //开外部中断1
IT1=1; //触发方式为下降沿
IP=0x03; //设置中断优先级,外部中断1高,定时器1低
P0_0=1;P0_2=1;P0_1=0;P2=a[0];P0_0=0;P0_2=0;
P0_1=1;P2=b[0];
while(1)
{
TR1=1;
ET1=1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -