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

📄 41.c

📁 51单片机的转速计程序
💻 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 + -