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

📄 ceju.txt

📁 超声波测距128单片机ATMEGA128超声波测距128单片机
💻 TXT
字号:
#include<iom128v.h>
#include<lcd.h>
#pragma interrupt_handler recive:2
#pragma interrupt_handler ovf:15


unsigned char k=0;
unsigned long int time;
unsigned char o;
unsigned char i;

void _delay(unsigned long int a)            //延时程序
    {
     unsigned int x;
     unsigned int y;
     for(x=0;x<a;x++)
     for(y=0;y<100;y++);
    }

void Time1_init(void)        //定时器T1初始化,普通计数模式
    {
     TIMSK=0X04;
     EICRA|=0X03;
    }


void send(unsigned long int b)                          //显示程序
    { 
     unsigned int m;
     unsigned int n;
         for(m=0;m<20;m++)
            {
             for(n=0;n<22;n++);
             PORTB=~PORTB;
            }
     TCCR1B|=0X01;             //定时器T1开始计时
}

 
void ovf(void)
    {
     o++;
    }


void print(unsigned char x,unsigned char y,unsigned int shuju)  
                              //把五位数据转换成字符显示两位小数
{
 unsigned char d[6]={48,48,48,48,48,0}; 
 unsigned char j;                     
 for(j=5;j>0;j--)
 {
  d[j-1]=shuju%10+48;
  shuju/=10;
 }
 lcd_putse(x,y,d);
 
 lcd_putss(x,y,d[0]);
 lcd_putss(++x,y,d[1]);
 lcd_putss(++x,y,d[2]);
 //lcd_putss(++x,y,46);
 lcd_putss(++x,y,d[3]);
 lcd_putss(++x,y,d[4]);
}


void recive(void) 
    {
     EIMSK=0X00;
     TCCR1B|=0X00;
     TCCR1B=0X00;            //关闭定时器
     time=TCNT1H*256+TCNT1L;
	 lcd_clear();
	 lcd_putsc(0,0,"计数值");
	 print(8,8,time);
     lcd_putsc(0,1,"溢出");
	 print(8,24,o);
	 k++;
	 lcd_putsc(0,2,"中断");
	 print(8,40,k);
	 _delay(1000);
	 EIMSK=0X01;
    }


void main(void)
{
 SREG|=0X80;
 EIMSK|=0X01;
 DDRB=0XFF;
 PORTB=0X00;
 lcd_init();
 lcd_clear();
 Time1_init();
 send(1);
 lcd_putsc(0,0,"计数值");
 lcd_putsc(0,1,"溢出");
 while(1);
}



⌨️ 快捷键说明

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