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

📄 1357.c

📁 单片机开发资料光盘-双龙-686M.zip
💻 C
字号:
#include "io8535.h"
#include "math.h"
#pragma interrupt_handler timer:5
int word,data,data_temp,out_temp,adc[9],ip,jp,reg;
float temp;
static int s[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x6F};
void paixu()
{          
 for(ip=0;ip<8;ip++)
 {
  for(jp=0;jp<8-ip;jp++)
   {
   if(adc[jp]<adc[jp+1])
    {
     adc[8]=adc[jp];
     adc[jp]=adc[jp+1];
     adc[jp+1]=adc[8];
    }
   }
 }
 adc[8]=adc[2]+adc[3]+adc[4]+adc[5];
}
void main()
{
 SP=0x025F;
 DDRA=0x00;
 DDRB=0xFF;
 DDRD=0xFF;
 PORTB=0x00;
 TIMSK=0x40;     //允许T/C2溢出中断    
 TCNT2=0x00;     //T/C2计数初值  
 TCCR2=0x05;     //T/C2采用128分频  
 ADCSR=0xE5;     //adc采用32分频  
 ADMUX=6;        //采集第6路的数据  
 word=0xfe;      //置位线初值 
 SREG=0x80;      //允许中断 
 for(;;)
 {
  for(ip=0;ip<8;ip++)
  {
   for(reg=0;reg<3000;reg++)
   {;}
   adc[ip]=ADC;
   }
  paixu();  //调用排序函数,对数据进行处理
  temp=adc[8]/4;
  temp=5*temp;   //标度变换(y=5*x-1000)
  temp=temp-1000;
  data_temp=temp;
  data=data_temp%10;data_temp=data_temp/10;data=s[data];
  *(volatile unsigned char *)0x100=data;
  data=data_temp%10;data_temp=data_temp/10;data=s[data];
  *(volatile unsigned char *)0x101=data;
  data=data_temp%10;data_temp=data_temp/10;data=s[data];
  *(volatile unsigned char *)0x102=data;
  data=data_temp%10;data=s[data];
  *(volatile unsigned char *)0x103=data;
 }//二转十,求得个十百千位,并查出相应位的七段码依次存于SRAM的$100~$103
}
void timer()
{ // T/C2中断执行程序,完成四路数码动态扫描显示
 int sreg_temp;
 sreg_temp=SREG;
 switch(word)
 {
  case 0xfe:
   PORTD=0xfe;
   out_temp=*(volatile unsigned char *)0x100;
   PORTB=out_temp;
   word=0xfd;break;
  case 0xfd:
   PORTD=0xfd;
   out_temp=*(volatile unsigned char *)0x101;
   PORTB=out_temp;
   word=0xfb;break;
  case 0xfb:
   PORTD=0xfb;
   out_temp=*(volatile unsigned char *)0x102;
   PORTB=out_temp;
   word=0xf7;break;
  case 0xf7:
   PORTD=0xf7;
   out_temp=*(volatile unsigned char *)0x103;
   PORTB=out_temp;
   word=0xfe;break;
 }
 SREG=sreg_temp;
}

⌨️ 快捷键说明

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