main.c

来自「基于mega128上实现ad7705的驱动程序」· C语言 代码 · 共 88 行

C
88
字号
#include <iom128v.h>
#include<macros.h>
#include "delay.h"
#include "7705.h"
#include "KeyScay.h"
#include "lcd.h"

/****************************************************************************/
//功能: AD7705使用
//输入: 无
//输出: 无
//备注:
/****************************************************************************/
/***************************全局变量声明*************************************/
uint vol16bit=0;
uchar test1[]=" AD7705TEST ";
uint vint=0;
float voltemp=0;
uchar flag=0;
 
//void int0_isr(void);
/****************************************************************************/
//函数名:    ad7705()
//功能:      实现模数转换
//输入:      chan(通道)
//输出:      adc16(经ADC转换后的16位2进制数)
//备注:
/****************************************************************************/
//unsigned int ad7705(unsigned char chan)
//{ unsigned int adc16=0;
  //init_adc7705();
  //adc16=read_adc7705(0);
  //return(adc16);
//}
/****************************************************************************/
//函数名:    main(void)
//功能:      主函数
//输入:      无
//输出:      无
//备注:
/****************************************************************************/
void main(void)
{ 
  uchar tongdao=0x00;
  uchar key_vale;
  
  DDRF=0xF3;   
  PORTF=0xFF;
  DDRD=0xf7;  //PD0为输入,与键盘的所有行线连接,采用键盘中断查询法
  MCUCR=0x30; //打开SE和SM1,允许sleep和power_down模式
  EIMSK=0x01;  //允许外部中断INT0,低电平触发中断
  LCD_init();
  LCD_DisplayString(1,1,test1);
  
  while(1)
  { 
    CLI();
	SEI();
    asm("sleep"); //进入sleep模式
	
    if(flag=1)
     {
	   key_vale=key_scay();
	   
	   if(key_vale==10)
	   {
	    vol16bit=ad7705(tongdao);
	    voltemp=(vol16bit/65535.0)*2500;
	    vint=(int)voltemp;
	    LCD_DisplayInt(2,5,vint); 
	    delay_nms(1);
		} 
     }
  }
  
}   


//功能:键盘中断扫描程序,外部0中断
#pragma interrupt_handler int0_isr:2  
void int0_isr(void)
  {
    EIMSK=0x00;          //禁止外部中断
    flag=1;
	EIMSK=0x01;         //允许外部中断
  }
 

⌨️ 快捷键说明

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